Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 498390 - sys-devel/gettext-0.18.3.1-r1 with dev-libs/libxml2[lzma,icu]: automagic dependency on dev-libs/icu?
Summary: sys-devel/gettext-0.18.3.1-r1 with dev-libs/libxml2[lzma,icu]: automagic depe...
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-01-17 18:03 UTC by David Kredba
Modified: 2014-01-22 20:24 UTC (History)
1 user (show)

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


Attachments
config.log (config.log,10.80 KB, text/plain)
2014-01-17 18:05 UTC, David Kredba
Details
build.log (build.log,760.74 KB, text/plain)
2014-01-17 18:05 UTC, David Kredba
Details

Note You need to log in before you can comment on or make changes to this bug.
Description David Kredba 2014-01-17 18:03:14 UTC
ldd /var/tmp/portage/sys-devel/gettext-0.18.3.1-r1/work/gettext-0.18.3.1/gettext-tools/src/.libs/msgfmt:

linux-vdso.so.1 (0x00007fff365fe000)
        libgettextsrc-0.18.3.so => /usr/lib64/libgettextsrc-0.18.3.so (0x00007fe34eabe000)
        libgettextlib-0.18.3.so => /usr/lib64/libgettextlib-0.18.3.so (0x00007fe34e7ef000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fe34e43d000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fe34e221000)
        libacl.so.1 => /lib64/libacl.so.1 (0x00007fe34e019000)
        libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007fe34dcb4000)
        libncurses.so.5 => /lib64/libncurses.so.5 (0x00007fe34da5d000)
        libgcc_s.so.1 => /usr/lib64/libgcc_s.so.1 (0x00007fe34eec1000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fe34ed01000)
        libattr.so.1 => /lib64/libattr.so.1 (0x00007fe34d858000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007fe34d654000)
        libicuuc.so.52 => /usr/lib64/libicuuc.so.52 (0x00007fe34d2e0000)
        libz.so.1 => /lib64/libz.so.1 (0x00007fe34d0c9000)
        liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fe34cea6000)
        libm.so.6 => /lib64/libm.so.6 (0x00007fe34cba5000)
        libicudata.so.52 => /usr/lib64/libicudata.so.52 (0x00007fe34b338000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007fe34eda6000

Could you please tell me where it came from?

Makefile anywhere in tree not contains string icuuc.
Output of find . -type f  -exec grep -H icuuc {} \; is empty in /var/tmp/portage/sys-devel/gettext-0.18.3.1-r1/work. The same for string icuda.

I found it when I tried to build gcc-4.8.2-r1 using alpha gcc-4.9.0, which failed due to libstdcxx ABI tool old for msgfmt refering to one of these icu libraries!
No LTO. Pkgconfig seems to be "icu safe", if it is used anyhow anyway.

Reproducible: Always




Portage 2.2.8 (default/linux/amd64/13.0/no-multilib, gcc-4.9.0-alpha20140116, glibc-2.17, 3.12.7-gentoo x86_64)
=================================================================
System uname: Linux-3.12.7-gentoo-x86_64-Intel-R-_Core-TM-2_Quad_CPU_Q9550_@_2.83GHz-with-gentoo-2.2
KiB Mem:     8170392 total,    433268 free
KiB Swap:    8396796 total,   8347268 free
Timestamp of tree: Fri, 17 Jan 2014 12:30:01 +0000
ld GNU ld (GNU Binutils) 2.24.51.20140116
app-shells/bash:          4.2_p45-r1
dev-java/java-config:     2.2.0
dev-lang/python:          2.7.6, 3.2.5-r3, 3.3.3
dev-util/cmake:           2.8.12.1-r3
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.11.6, 1.12.6, 1.14.1
sys-devel/binutils:       2.24.51
sys-devel/gcc:            4.9.0_alpha20140116
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4.2
sys-devel/make:           4.0-r1
sys-kernel/linux-headers: 3.12 (virtual/os-headers)
sys-libs/glibc:           2.17
Repositories: gentoo
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-fPIC -O2 -ggdb -pipe -march=native -mtune=native -flto=4 -fuse-linker-plugin -mno-avx -mno-sse4.2 -mno-3dnow"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /var/bind /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-fPIC -O2 -ggdb -pipe -march=native -mtune=native -flto=4 -fuse-linker-plugin -mno-avx -mno-sse4.2 -mno-3dnow"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--quiet-build=n"
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 splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch usersandbox usersync xattr"
FFLAGS="-fPIC -O2 -ggdb -pipe -march=native -mtune=native -flto=4 -fuse-linker-plugin -mno-avx -mno-sse4.2 -mno-3dnow"
GENTOO_MIRRORS="ftp://gentoo.mirror.web4u.cz/"
LANG="cs_CZ.UTF-8"
LDFLAGS="-Wl,--as-needed -Wl,-O2 -Wl,-flto=4 -flto=4 -fuse-linker-plugin -O2 -ggdb -pipe -march=native -mtune=native -fPIC"
MAKEOPTS="-j4"
PKGDIR="/usr/portage/packages"
PORTAGE_COMPRESS="echo"
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=""
USE="X a52 aac acl alsa amd64 berkdb blas bluetooth branding bzip2 cairo caps cdda cddb cdparanoia cdr cli cracklib crypt cups cvs cxx dbus declarative djvu dri dts dv dvb dvd dvdr encode exif fam ffmpeg fftw flac fontconfig fortran ftp gd gdbm geoip gif gmp gnuplot gps graphviz gsl gsm gstreamer gtk hdf5 iconv icu idn ieee1394 imagemagick imlib ipv6 ithreads javascript jbig jpeg jpeg2k kde ladspa lame lapack lcms ldap libass libsamplerate lzma lzo mad matroska mms mmx mmxext mng modplug modules mp3 mp4 mpeg mplayer msn mtp mudflap musepack musicbrainz ncurses netcdf nls nptl ocaml ocamlopt odbc ogg openexr opengl openmp pam pch pcre pdf perl plotutils png policykit postscript python qt3support qt4 quicktime rdesktop readline ruby samba scanner semantic-desktop session slang smp sndfile sox speex spell sse sse2 ssl ssse3 svg szip tcpd theora threads tidy tiff truetype udev unicode usb v4l vcd vdpau vnc vorbis wavpack wmf wxwidgets x264 xattr xcb xft xine xinerama xml xosd xpm xscreensaver xv xvid xvmc zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" 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 adc65 agfa_cl20 aox ax203 barbie canon casio_qv clicksmart310 digigr8 digita dimagev dimera3500 directory enigma13 fuji gsmart300 hp215 iclick jamcam jd11 jl2005a jl2005c kodak_dc120 kodak_dc210 kodak_dc240 kodak_dc3200 kodak_ez200 konica konica_qm150 largan lg_gsm mars mustek panasonic_coolshot panasonic_dc1000 panasonic_dc1580 panasonic_l859 pccam300 pccam600 pentax polaroid_pdc320 polaroid_pdc640 polaroid_pdc700 ricoh ricoh_g3 samsung sierra sipix_blink2 sipix_web2 smal sonix sony_dscf1 sony_dscf55 soundvision spca50x sq905 st2205 stv0674 stv0680 sx330z topfield toshiba_pdrm11 tp6801" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" FFTOOLS="aviocat cws2fws ffescape ffeval fourcc2pixfmt graph2dot ismindex pktdumper qt-faststart trasher ffhash" GPSD_PROTOCOLS="aivdm ashtech earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 navcom nmea ntrip oceanserver oncore rtcm104v2 rtcm104v3 sirf superstar2 tnt tripmate tsip ubx fury geostar nmea2000" GRUB_PLATFORMS="pc" INPUT_DEVICES="evdev keyboard mouse joystick" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer scripting-beanshell scripting-javascript nlpsolver wiki-publisher" LINGUAS="cs en" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2 python3_3" QEMU_SOFTMMU_TARGETS="x86_64 arm i386" QEMU_USER_TARGETS="arm i386 x86_64" RUBY_TARGETS="ruby19 ruby20 ruby21" USERLAND="GNU" VIDEO_CARDS="nouveau" 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"
USE_PYTHON="2.7 3.2 3.3"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, SYNC
Comment 1 David Kredba 2014-01-17 18:05:13 UTC
Created attachment 368026 [details]
config.log
Comment 2 David Kredba 2014-01-17 18:05:54 UTC
Created attachment 368028 [details]
build.log
Comment 3 David Kredba 2014-01-17 18:17:35 UTC
/usr/bin/gettext is OK:
linux-vdso.so.1 (0x00007fffa228d000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f4e83028000)
        libgcc_s.so.1 => /usr/lib64/libgcc_s.so.1 (0x00007f4e8359c000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f4e833da000)

/usr/bin/msgattrib is not OK:
linux-vdso.so.1 (0x00007fff4a126000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f856e056000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f856de3a000)
        libgcc_s.so.1 => /usr/lib64/libgcc_s.so.1 (0x00007f856e5c9000)
        libgettextsrc-0.18.3.so => /usr/lib64/libgettextsrc-0.18.3.so (0x00007f856dbf7000)
        libgettextlib-0.18.3.so => /usr/lib64/libgettextlib-0.18.3.so (0x00007f856d928000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f856e408000)
        libacl.so.1 => /lib64/libacl.so.1 (0x00007f856d720000)
        libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007f856d3bb000)
        libncurses.so.5 => /lib64/libncurses.so.5 (0x00007f856d164000)
        libattr.so.1 => /lib64/libattr.so.1 (0x00007f856cf5f000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f856cd5b000)
        libicuuc.so.52 => /usr/lib64/libicuuc.so.52 (0x00007f856c9e7000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f856c7d0000)
        liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f856c5ad000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f856c2ac000)
        libicudata.so.52 => /usr/lib64/libicudata.so.52 (0x00007f856aa3f000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f856e4ad000)

Can it be libxml2 built with USE=icu?
Comment 4 David Kredba 2014-01-17 18:34:14 UTC
It is.

ldd /usr/bin/msgfmt
        linux-vdso.so.1 (0x00007fff423a7000)
        libgettextsrc-0.18.3.so => /usr/lib64/libgettextsrc-0.18.3.so (0x00007f3377ac6000)
        libgettextlib-0.18.3.so => /usr/lib64/libgettextlib-0.18.3.so (0x00007f33777f8000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f3377446000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f337722a000)
        libacl.so.1 => /lib64/libacl.so.1 (0x00007f3377022000)
        libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007f3376cc1000)
        libncurses.so.5 => /lib64/libncurses.so.5 (0x00007f3376a6a000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f3377d09000)
        libattr.so.1 => /lib64/libattr.so.1 (0x00007f3376865000)
        libgcc_s.so.1 => /usr/lib64/libgcc_s.so.1 (0x00007f3377ec8000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f3376661000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f337644a000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f3376149000)

Lesson learned.

Could you please think about to inform people in ebuild that libxml2[lzma,icu] will make big parts of gettext binaries depend on icu and lzma libraries?
Comment 5 Jeroen Roovers (RETIRED) gentoo-dev 2014-01-20 14:18:45 UTC
It's an indirect dependency and ldd isn't designed to show you that, only the entire batch of libraries it links to at run time. Try lddtree for a better picture. Or `scanelf -n' to get a list of only its directly linked libraries.

gettext links directly against libxml2, so it indirectly uses whatever libxml2 is using.
Comment 6 David Kredba 2014-01-22 17:34:09 UTC
Hello, here it is.

lddtree without [icu,lzma on libxml2]:

/usr/bin/msgfmt (interpreter => /lib64/ld-linux-x86-64.so.2)
    libgettextsrc-0.18.3.so => /usr/lib64/libgettextsrc-0.18.3.so
        libacl.so.1 => /lib64/libacl.so.1
            libattr.so.1 => /lib64/libattr.so.1
        libxml2.so.2 => /usr/lib64/libxml2.so.2
            libdl.so.2 => /lib64/libdl.so.2
            libz.so.1 => /lib64/libz.so.1
            libm.so.6 => /lib64/libm.so.6
        libncurses.so.5 => /lib64/libncurses.so.5
    libgettextlib-0.18.3.so => /usr/lib64/libgettextlib-0.18.3.so
    libc.so.6 => /lib64/libc.so.6
    libpthread.so.0 => /lib64/libpthread.so.0

lddtree with [icu,lzma on libxml2]:
/usr/bin/msgfmt (interpreter => /lib64/ld-linux-x86-64.so.2)
    libgettextsrc-0.18.3.so => /usr/lib64/libgettextsrc-0.18.3.so
        libacl.so.1 => /lib64/libacl.so.1
            libattr.so.1 => /lib64/libattr.so.1
        libxml2.so.2 => /usr/lib64/libxml2.so.2
            libdl.so.2 => /lib64/libdl.so.2
            libicuuc.so.52 => /usr/lib64/libicuuc.so.52
                libicudata.so.52 => /usr/lib64/libicudata.so.52
                libstdc++.so.6 => /usr/lib64/libstdc++.so.6
                libgcc_s.so.1 => /uET_EXEC libgettextsrc-

scanelf -n /usr/bin/msgfmt 
 TYPE   NEEDED FILE
0.18.3.so,libgettextlib-0.18.3.so,libc.so.6,libpthread.so.0 /usr/bin/msgfmtsr/lib64/libgcc_s.so.1
            libz.so.1 => /lib64/libz.so.1
            liblzma.so.5 => /lib64/liblzma.so.5
            libm.so.6 => /lib64/libm.so.6
        libncurses.so.5 => /lib64/libncurses.so.5
    libgettextlib-0.18.3.so => /usr/lib64/libgettextlib-0.18.3.so
    libc.so.6 => /lib64/libc.so.6
    libpthread.so.0 => /lib64/libpthread.so.0


Hmm, am I broken? ( :-) ).

I use trunk binutils.

ldd keeps reporting this:

ldd /usr/bin/msgfmt 
        linux-vdso.so.1 (0x00007fff4a6a4000)
        libgettextsrc-0.18.3.so => /usr/lib64/libgettextsrc-0.18.3.so (0x00007f89ad32a000)
        libgettextlib-0.18.3.so => /usr/lib64/libgettextlib-0.18.3.so (0x00007f89ad05d000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f89accab000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f89aca8f000)
        libacl.so.1 => /lib64/libacl.so.1 (0x00007f89ac887000)
        libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007f89ac528000)
        libncurses.so.5 => /lib64/libncurses.so.5 (0x00007f89ac2d2000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f89ad56c000)
        libattr.so.1 => /lib64/libattr.so.1 (0x00007f89ac0ce000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f89abeca000)
        libicuuc.so.52 => /usr/lib64/libicuuc.so.52 (0x00007f89abb55000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f89ab940000)
        liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f89ab71e000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f89ab41d000)
        libicudata.so.52 => /usr/lib64/libicudata.so.52 (0x00007f89a9bb1000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f89ad60a000)
        libgcc_s.so.1 => /usr/lib64/libgcc_s.so.1 (0x00007f89ad5f3000)

And at runtime it killed older gcc bootsrap from a newer gcc but when I ran the failing command by hand it succeeded.
Comment 7 SpanKY gentoo-dev 2014-01-22 20:24:14 UTC
(In reply to David Kredba from comment #6)

all that shows is that gettext links against libxml2, and libxml2 links against libicu.  gettext itself is not linking against libicu.

the gettext ebuild depends on libxml2, and libxml2 depends on icu.

not a bug.