Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 528986 - media-sound/pulseaudio with sys-libs/uclibc - modules/.libs/module-null-sink.o: In function `module_null_sink_LTX_pa__get_description': module-null-sink.c:(.text+0x7a3): undefined reference to `libintl_dgettext'
Summary: media-sound/pulseaudio with sys-libs/uclibc - modules/.libs/module-null-sink....
Status: RESOLVED OBSOLETE
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: x86 Linux
: Normal normal (vote)
Assignee: Gentoo Linux Gnome Desktop Team
URL: https://bugs.freedesktop.org/show_bug...
Whiteboard:
Keywords: NeedPatch, UPSTREAM
Depends on: 547292
Blocks: uclibc-porting
  Show dependency tree
 
Reported: 2014-11-11 23:40 UTC by Michael Mounteney
Modified: 2018-10-14 12:16 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log (build.log,472.43 KB, text/plain)
2014-11-12 11:27 UTC, Michael Mounteney
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Mounteney 2014-11-11 23:40:12 UTC
The build crashes at the step of building module-null-sink.la because the build step omits "-lintl"

It seems to be straightforward problem with the ebuild configuration on what I imagine is a minority platform, i.e., uclibc.

If the build step is repeated manually with "-lintl" inserted, the step succeeds.

Reproducible: Always

Steps to Reproduce:
1. emerge -quDN pulseaudio
Actual Results:  
Crucial lines from temp/build.log are:


libtool: link: ( cd ".libs" && rm -f "module-cli.la" && ln -s "../module-cli.la" "module-cli.la" )
libtool: link: i686-gentoo-linux-uclibc-gcc -std=gnu99 -shared  -fPIC -DPIC  modules/.libs/module_simple_protocol_tcp_la-module-protocol-stub.o   -Wl,-rpath -Wl,/tmp/S/portage/media-sound/pulseaudio-5.0-r5/work/pulseaudio-5.0-abi_x86_32.x86/src/.libs -Wl,-rpath -Wl,/usr/lib/pulseaudio -Wl,-rpath -Wl,/usr/lib/pulse-5.0/modules -L/tmp/S/portage/media-sound/pulseaudio-5.0-r5/work/pulseaudio-5.0-abi_x86_32.x86/src/.libs ./.libs/libpulsecore-5.0.so -L/usr/lib ./.libs/libpulsecommon-5.0.so ./.libs/libpulse.so ./.libs/libprotocol-simple.so /tmp/S/portage/media-sound/pulseaudio-5.0-r5/work/pulseaudio-5.0-abi_x86_32.x86/src/.libs/libpulsecore-5.0.so /usr/lib/libltdl.so -lspeexdsp /tmp/S/portage/media-sound/pulseaudio-5.0-r5/work/pulseaudio-5.0-abi_x86_32.x86/src/.libs/libpulse.so /tmp/S/portage/media-sound/pulseaudio-5.0-r5/work/pulseaudio-5.0-abi_x86_32.x86/src/.libs/libpulsecommon-5.0.so -ljson-c /usr/lib/libiconv.so -lsndfile -lpthread -lrt -ldl -lm  -pthread -O2 -march=native -Wl,-z -Wl,nodelete -Wl,--no-undefined -Wl,-O1 -Wl,--as-needed   -pthread -Wl,-soname -Wl,module-simple-protocol-tcp.so -o .libs/module-simple-protocol-tcp.so
libtool: link: ( cd ".libs" && rm -f "module-simple-protocol-tcp.la" && ln -s "../module-simple-protocol-tcp.la" "module-simple-protocol-tcp.la" )
libtool: link: i686-gentoo-linux-uclibc-gcc -std=gnu99 -shared  -fPIC -DPIC  modules/.libs/module-null-sink.o   -Wl,-rpath -Wl,/tmp/S/portage/media-sound/pulseaudio-5.0-r5/work/pulseaudio-5.0-abi_x86_32.x86/src/.libs -Wl,-rpath -Wl,/usr/lib/pulseaudio -L/tmp/S/portage/media-sound/pulseaudio-5.0-r5/work/pulseaudio-5.0-abi_x86_32.x86/src/.libs ./.libs/libpulsecore-5.0.so -L/usr/lib /usr/lib/libltdl.so -lspeexdsp /tmp/S/portage/media-sound/pulseaudio-5.0-r5/work/pulseaudio-5.0-abi_x86_32.x86/src/.libs/libpulse.so ./.libs/libpulsecommon-5.0.so ./.libs/libpulse.so /tmp/S/portage/media-sound/pulseaudio-5.0-r5/work/pulseaudio-5.0-abi_x86_32.x86/src/.libs/libpulsecommon-5.0.so -ljson-c /usr/lib/libiconv.so -lsndfile -lpthread -lrt -ldl -lm  -pthread -O2 -march=native -Wl,-z -Wl,nodelete -Wl,--no-undefined -Wl,-O1 -Wl,--as-needed   -pthread -Wl,-soname -Wl,module-null-sink.so -o .libs/module-null-sink.so
modules/.libs/module-null-sink.o: In function `module_null_sink_LTX_pa__get_description':
module-null-sink.c:(.text+0x7a3): undefined reference to `libintl_dgettext'
modules/.libs/module-null-sink.o: In function `module_null_sink_LTX_pa__init':
module-null-sink.c:(.text+0xb81): undefined reference to `libintl_dgettext'
collect2: error: ld returned 1 exit status
Makefile:5723: recipe for target 'module-null-sink.la' failed

Expected Results:  
The build step should succeed.

emerge --info:

Portage 2.2.14 (python 2.7.8-final-0, hardened/linux/uclibc/x86, gcc-4.7.3, uclibc-0.9.33.2-r12, 3.5.7-gentoo i686)
=================================================================
System uname: Linux-3.5.7-gentoo-i686-Mobile_AMD_Sempron-tm-_Processor_2100+-with-gentoo-2.2
KiB Mem:      901716 total,    562984 free
KiB Swap:          0 total,         0 free
Timestamp of tree: Tue, 11 Nov 2014 05:15:01 +0000
ld GNU ld (Gentoo 2.24 p1.4) 2.24
app-shells/bash:          4.3_p30-r1
dev-lang/perl:            5.20.1-r2
dev-lang/python:          2.7.8, 3.2.5-r2, 3.3.5-r1, 3.4.2
dev-util/pkgconfig:       0.28-r2
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.13.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.69
sys-devel/automake:       1.13.4, 1.14.1
sys-devel/binutils:       2.24-r3
sys-devel/gcc:            4.7.3-r1, 4.8.3
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4.3-r2
sys-devel/make:           4.1-r1
sys-kernel/linux-headers: 3.17-r1 (virtual/os-headers)
sys-libs/uclibc:          0.9.33.2-r12
Repositories: gentoo
ACCEPT_KEYWORDS="x86 ~x86"
ACCEPT_LICENSE="* -@EULA"
CBUILD="i686-gentoo-linux-uclibc"
CFLAGS="-O2 -march=native -pipe -fomit-frame-pointer"
CHOST="i686-gentoo-linux-uclibc"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -march=native -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://ftp.swin.edu.au/gentoo http://mirror.pacific.net.au/linux/Gentoo ftp://ftp.swin.edu.au/gentoo ftp://mirror.pacific.net.au/linux/Gentoo "
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j2 -s"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=""
SYNC="rsync://rsync.au.gentoo.org/gentoo-portage"
USE="X acl acpi alsa cairo cli cracklib crypt cxx dbus dri fontconfig fortran freerdp glamor iconv ipv6 ldap libnotify mmap modules ncurses nptl opengl openmp pax_kernel pcre pic pulseaudio readline session ssh ssl tcpd theora threads truetype uclibc unicode usb v4l2 vnc x86 xcomposite xnest xvid zlib"
ABI_X86="32"
ALSA_CARDS="intel"
APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias"
CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author"
CAMERAS="ptp2"
COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog"
ELIBC="uclibc"
GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx"
INPUT_DEVICES="evdev"
KERNEL="linux"
LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text"
LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer"
LINGUAS="en en_GB"
OFFICE_IMPLEMENTATION="libreoffice"
PHP_TARGETS="php5-5"
PYTHON_SINGLE_TARGET="python2_7"
PYTHON_TARGETS="python2_7 python3_3"
RUBY_TARGETS="ruby19 ruby20"
USERLAND="GNU"
VIDEO_CARDS="radeon"
XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 1 Michael Mounteney 2014-11-11 23:42:24 UTC
output from equery u media-sound/pulseaudio.  I sdon't understand the "I" column since the package has never been installed, since it fails to be built.

[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for media-sound/pulseaudio-5.0-r5:
 U I
 + + X             : Build the X11 publish module to export PulseAudio information through X11 protocol for clients to make use. Don't enable this flag if you want to use a system wide instance. If unsure, enable this flag. 
 + + alsa          : Add support for media-libs/alsa-lib (Advanced Linux Sound Architecture)
 + - asyncns       : Use libasyncns for asynchronous name resolution.
 - - bluetooth     : Enable Bluetooth Support
 + - caps          : Use Linux capabilities library to control privilege
 + + dbus          : Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc)
 - - doc           : Build the doxygen-described API documentation.
 - - equalizer     : Enable the equalizer module (requires sci-libs/fftw). 
 + - gdbm          : Use sys-libs/gdbm to store PulseAudio databases. Recommended for desktop usage. This flag causes the whole package to be licensed under GPL-2 or later. 
 - - glib          : Add support to dev-libs/glib-based mainloop for the libpulse client library, to allow using libpulse on glib-based programs. 
 - - gnome         : Use GConf to store user preferences on streams and so on. Don't enable this flag if you want to use a system wide instance. If unsure, enable this flag. 
 - - gtk           : Add support for x11-libs/gtk+ (The GIMP Toolkit)
 + + ipv6          : Add support for IP version 6
 - - jack          : Add support for the JACK Audio Connection Kit
 - - libsamplerate : Build with support for converting sample rates using libsamplerate
 - - lirc          : Add support for lirc (Linux's Infra-Red Remote Control)
 - - orc           : Use dev-lang/orc for just-in-time optimization of array operations
 - - qt4           : Add support for the Qt GUI/Application Toolkit version 4.x
 - - realtime      : (Restricted to >=media-sound/pulseaudio-0.9.21.2-r1)
                     Makes PulseAudio use RealtimeKit (sys-auth/rtkit) to get real-time priority while running. 
 + + ssl           : Use dev-libs/openssl to provide support for RAOP (AirPort) streaming. 
 + + tcpd          : Add support for TCP wrappers
 - - test          : Workaround to pull in packages needed to run with FEATURES=test. Portage-2.1.2 handles this internally, so don't set it in make.conf/package.use anymore
 + - udev          : Enable virtual/udev integration (device discovery, power and storage device support, etc)
 - - webrtc-aec    : Uses the webrtc.org AudioProcessing library for enhancing VoIP calls greatly in applications that support it by performing acoustic echo cancellation, analog gain control, noise suppression and other processing. 
 - - zeroconf      : Support for DNS Service Discovery (DNS-SD)
Comment 2 Michael Mounteney 2014-11-11 23:43:42 UTC
The system is on a thin client with an NFS root so I'm happy to clone it and experiment, if required.
Comment 3 Jeroen Roovers (RETIRED) gentoo-dev 2014-11-12 09:39:56 UTC
Please attach the entire build log to this bug report.
Comment 4 Michael Mounteney 2014-11-12 11:27:02 UTC
Created attachment 389168 [details]
build.log
Comment 5 Pacho Ramos gentoo-dev 2014-11-13 09:34:04 UTC
Please report this to upstream too to let them fix it for the next major release:
https://bugs.freedesktop.org/enter_bug.cgi?product=PulseAudio
Comment 6 Michael Mounteney 2014-11-13 11:20:05 UTC
(In reply to Pacho Ramos from comment #5)
> Please report this to upstream too to let them fix it for the next major
> release:

Are you sure that it is a problem with autoconf rather than the ebuild wrapper?  I reported it here because I can't see where the problem is introduced and thus can't report it in other than Gentoo-specific terms which is just going to lead to finger-pointing.

PS, I assume you've reproduced the problem?  The bug is still marked unconfirmed.  I'm doing a full rebuild with this month's uclibc stage3 to confirm that the bug is still there.
Comment 7 Pacho Ramos gentoo-dev 2014-11-13 13:49:58 UTC
No, I couldn't reproduce as I use glibc :/
Comment 8 Michael Mounteney 2014-11-13 23:47:23 UTC
(In reply to Pacho Ramos from comment #7)
> No, I couldn't reproduce as I use glibc :/

Well surely it is necessary to confirm that the problem lies in the autoconf setup rather than the ebuild.  I'm sure upstream is not interested in problems/bugs created by Gentoo.

My 'clean rebuild' with up-to-date stage3 is complete, and the problem still exists.
Comment 9 Stuart Cardall 2014-12-29 23:24:32 UTC
This is also a bug in musl / Alpine Linux in PA 5.99.1 & 5.99.2 so is probably not an ebuild problem.
Comment 10 Gilles Dartiguelongue (RETIRED) gentoo-dev 2014-12-30 23:19:21 UTC
I'm interested in the Alpine Linux bug report if you have it as well.
Comment 11 Stuart Cardall 2014-12-31 18:03:59 UTC
From Alpine 3.10 musl the error is identical:
==============================================================================
  CCLD     module-cli.la
  CCLD     module-simple-protocol-tcp.la
  CCLD     module-null-sink.la
modules/.libs/module-null-sink.o: In function `module_null_sink_LTX_pa__init':
module-null-sink.c:(.text+0x84a): undefined reference to `libintl_dgettext'
modules/.libs/module-null-sink.o: In function `module_null_sink_LTX_pa__get_description':
module-null-sink.c:(.text+0x521): undefined reference to `libintl_dgettext'
collect2: error: ld returned 1 exit status
Makefile:5917: recipe for target 'module-null-sink.la' failed
make[3]: *** [module-null-sink.la] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/home/stuart/aports/unmaintained/pulseaudio/src/pulseaudio-5.99.2/src'
Makefile:4796: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/home/stuart/aports/unmaintained/pulseaudio/src/pulseaudio-5.99.2/src'
Makefile:791: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/stuart/aports/unmaintained/pulseaudio/src/pulseaudio-5.99.2'
Makefile:605: recipe for target 'all' failed
make: *** [all] Error 2
===============================================================================

I was able to workaround this with:

export LDFLAGS="-lintl" 

before ./configure

There was also a problem with capability.h not being detected by ./configure in MUSL which I worked around with:

export LIBS="-lcap"

(so PA's configure report showed capability support being included) - the resulting binary showed a dependency to libcap.
Comment 12 Anthony Basile gentoo-dev 2015-04-21 12:22:16 UTC
(In reply to Stuart Cardall from comment #11)
> From Alpine 3.10 musl the error is identical:
> =============================================================================
> =
>   CCLD     module-cli.la
>   CCLD     module-simple-protocol-tcp.la
>   CCLD     module-null-sink.la
> modules/.libs/module-null-sink.o: In function
> `module_null_sink_LTX_pa__init':
> module-null-sink.c:(.text+0x84a): undefined reference to `libintl_dgettext'
> modules/.libs/module-null-sink.o: In function
> `module_null_sink_LTX_pa__get_description':
> module-null-sink.c:(.text+0x521): undefined reference to `libintl_dgettext'
> collect2: error: ld returned 1 exit status
> Makefile:5917: recipe for target 'module-null-sink.la' failed
> make[3]: *** [module-null-sink.la] Error 1
> make[3]: *** Waiting for unfinished jobs....
> make[3]: Leaving directory
> '/home/stuart/aports/unmaintained/pulseaudio/src/pulseaudio-5.99.2/src'
> Makefile:4796: recipe for target 'all' failed
> make[2]: *** [all] Error 2
> make[2]: Leaving directory
> '/home/stuart/aports/unmaintained/pulseaudio/src/pulseaudio-5.99.2/src'
> Makefile:791: recipe for target 'all-recursive' failed
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory
> '/home/stuart/aports/unmaintained/pulseaudio/src/pulseaudio-5.99.2'
> Makefile:605: recipe for target 'all' failed
> make: *** [all] Error 2
> =============================================================================
> ==
> 
> I was able to workaround this with:
> 
> export LDFLAGS="-lintl" 
> 
> before ./configure
> 
> There was also a problem with capability.h not being detected by ./configure
> in MUSL which I worked around with:
> 
> export LIBS="-lcap"
> 
> (so PA's configure report showed capability support being included) - the
> resulting binary showed a dependency to libcap.

Here's whats going on and why you get the same error on both musl and uclibc:

1) for the currently supported uclibc stages, I break out libintl (as they do on the bsd systems) because the builtin libintl is broken.  So as a result, you have to add LDFLAGS=-lintl to get the build to work.  You can do this by adding a line to /etc/portage/package.env.  `man 5 portage` for details.

About the only thing the gnome team can do here is add a USE=nls to depend on gettext, if possible, so you can turn off dependency on it and avoid the LDFLAGS.

2) musl used to not support libintl, and both alpine and the musl stages I push out needed the same LDFLAGS=-lintl.  musl now does provide libintl and so you shouldn't get this error on the gentoo musl stages.  I can't speak for alpine.

The correct fix would be for me to fixup libintl in uclibc and migrate to that as I did for musl.
Comment 13 Michael Mounteney 2017-04-03 22:15:34 UTC
Has an upstream bug been opened?  It would be nice to do that and close this Gentoo bug.
Comment 14 Anthony Basile gentoo-dev 2018-10-14 12:16:36 UTC
sys-libs/uclibc has been removed from the tree, replaced by sys-libs/uclibc-ng.  if this is still a problem on uclibc-ng, please open a new bug.