http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56779
Bug #: 56779 Summary: libstdc++.so: undefined reference to `libintl_textdomain' Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: libstdc++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: tre...@sourcemage.org Created attachment 29749 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29749 full compile log for gcc-4.8.0 libstdc++.so has references to libintl_textdomain, but intl is not listed as a needed library $ readelf -d /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../lib/libstdc++.so |grep NEEDED 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] 0x0000000000000001 (NEEDED) Shared library: [ld-linux-x86-64.so.2] 0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1] $ readelf -s /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../lib/libstdc++.so |grep libintl 252: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND libintl_gettext 1825: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND libintl_textdomain 2592: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND libintl_bindtextdomain 961: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND libintl_gettext 2534: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND libintl_textdomain 3301: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND libintl_bindtextdomain This causes major problems when trying to link a C++ program eg: g++ -march=native -mtune=native -m64 -pipe -ffast-math -funroll-loops -O3 -s -Wl,--as-needed -lpthread -lintl -pthread -Wl,-rpath,'$ORIGIN/../lib' -Wl,-rpath,'$ORIGIN/../intl' -Wl,--version-script,empty.vers /var/git/x86_64/firebird3/temp/Release/gpre/hsh.o /var/git/x86_64/firebird3/temp/Release/gpre/jrdmet.o /var/git/x86_64/firebird3/temp/Release/gpre/cme.o /var/git/x86_64/firebird3/temp/Release/gpre/par.o /var/git/x86_64/firebird3/temp/Release/gpre/sqe.o /var/git/x86_64/firebird3/temp/Release/gpre/msc.o /var/git/x86_64/firebird3/temp/Release/gpre/c_cxx.o /var/git/x86_64/firebird3/temp/Release/gpre/exp.o /var/git/x86_64/firebird3/temp/Release/gpre/movg.o /var/git/x86_64/firebird3/temp/Release/gpre/pat.o /var/git/x86_64/firebird3/temp/Release/gpre/cmp.o /var/git/x86_64/firebird3/temp/Release/gpre/gpre.o /var/git/x86_64/firebird3/temp/Release/gpre/sql.o /var/git/x86_64/firebird3/temp/Release/gpre/int_cxx.o /var/git/x86_64/firebird3/temp/Release/gpre/cmd.o /var/git/x86_64/firebird3/temp/Release/gpre/boot/gpre_meta_boot.o /var/git/x86_64/firebird3/temp/Release/yvalve/gds.o /var/git/x86_64/firebird3/temp/Release/common.a -o /var/git/x86_64/firebird3/gen/Release/firebird/bin/gpre_boot -L/var/git/x86_64/firebird3/gen/Release/firebird/lib -lpthread -latomic_ops -lm -ldl -lcurses /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../lib/libstdc++.so: undefined reference to `libintl_gettext' /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../lib/libstdc++.so: undefined reference to `libintl_textdomain' /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../lib/libstdc++.so: undefined reference to `libintl_bindtextdomain' collect2: error: ld returned 1 exit status gettext In some cases this can be solved by setting LDFLAGS="-lintl", but in other cases the makefiles ignore this setting and fail. gcc was configure with --disable-nls, but gettext-0.18.2 was on the system,and installed /usr/lib/libasprintf.a /usr/lib/libasprintf.la /usr/lib/libasprintf.so /usr/lib/libasprintf.so.0 /usr/lib/libasprintf.so.0.0.0 /usr/lib/libgettextlib-0.18.2.so /usr/lib/libgettextlib.la /usr/lib/libgettextlib.so /usr/lib/libgettextpo.a /usr/lib/libgettextpo.la /usr/lib/libgettextpo.so /usr/lib/libgettextpo.so.0 /usr/lib/libgettextpo.so.0.5.2 /usr/lib/libgettextsrc-0.18.2.so /usr/lib/libgettextsrc.la /usr/lib/libgettextsrc.so /usr/lib/libintl.a /usr/lib/libintl.la /usr/lib/libintl.so /usr/lib/libintl.so.8 /usr/lib/libintl.so.8.1.2 The output from configure includes the following: checking whether NLS is requested... no checking build system type... checking for msgfmt... x86_64-pc-linux-gnu checking for x86_64-pc-linux-gnu-gcc... gcc x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking target system type... /usr/bin/msgfmt checking for gmsgfmt... x86_64-pc-linux-gnu checking target system type... /usr/bin/msgfmt checking for xgettext... x86_64-pc-linux-gnu checking for x86_64-pc-linux-gnu-ar... ar checking for x86_64-pc-linux-gnu-ranlib... ranlib checking for x86_64-pc-linux-gnu-gcc... gcc x86_64-pc-linux-gnu checking for x86_64-pc-linux-gnu-gcc... gcc checking for a BSD-compatible install... /bin/install -c checking whether build environment is sane... /usr/bin/xgettext checking for C compiler default output file name... checking for msgmerge... /usr/bin/msgmerge .... checking whether NLS is requested... no checking whether to use NLS... no gcc was build using: gcc-4.7.2 binutils-2.23.1 gettext-0.18.2 A full compile log for gcc-4.8.0 is attached when gcc is built without gettext support, but gettext-