[Bug target/43968] undefined references to `std::{num_get, num_put, money_get, money_put} [...] ::id' with -static
--- Comment #19 from ubizjak at gmail dot com 2010-05-05 06:24 --- Not a gcc bug. -- ubizjak at gmail dot com changed: What|Removed |Added Status|NEW |RESOLVED Resolution||INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43968
[Bug target/43968] undefined references to `std::{num_get, num_put, money_get, money_put} [...] ::id' with -static
--- Comment #11 from ubizjak at gmail dot com 2010-05-04 12:31 --- I belive this problem also shows on powerpc64-linux-gnu, configured with --with-long-double-128 [1]: FAIL: libmudflap.c++/pass28-frag.cxx (-static) (test for excess errors) WARNING: libmudflap.c++/pass28-frag.cxx (-static) compilation failed to produce executable FAIL: libmudflap.c++/pass41-frag.cxx (-static) (test for excess errors) WARNING: libmudflap.c++/pass41-frag.cxx (-static) compilation failed to produce executable FAIL: libmudflap.c++/pass55-frag.cxx (-static) (test for excess errors) WARNING: libmudflap.c++/pass55-frag.cxx (-static) compilation failed to produce executable FAIL: libmudflap.c++/pass57-frag.cxx (-static) (test for excess errors) WARNING: libmudflap.c++/pass57-frag.cxx (-static) compilation failed to produce executable It looks that long-double support in libstdc++ is broken for certain symbols. [1] http://gcc.gnu.org/ml/gcc-testresults/2010-05/msg00285.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43968
[Bug target/43968] undefined references to `std::{num_get, num_put, money_get, money_put} [...] ::id' with -static
--- Comment #12 from paolo dot carlini at oracle dot com 2010-05-04 12:35 --- Can well be, personally I *never* checked -static on the targets affected by the 128 bit long double issue. I'm not even sure if Jakub himself did... -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43968
[Bug target/43968] undefined references to `std::{num_get, num_put, money_get, money_put} [...] ::id' with -static
--- Comment #13 from jakub at gcc dot gnu dot org 2010-05-04 13:57 --- I guess this must be related to STB_GNU_UNIQUE, at least I can't reproduce this on ppc on Fedora 11 where STB_GNU_UNIQUE wasn't supported (even with recentish gcc), while according to log I see these WARNING: libmudflap.c++/pass41-frag.cxx (-static) compilation failed to produce executable on ppc, ppc64, s390 and s390x when doing 4.4.*-RH package builds in Fedora 12+ where STB_GNU_UNIQUE is supported. libstdc++.a symbols look good though: V _ZGVNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE u _ZNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE V _ZGVNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE u _ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43968
[Bug target/43968] undefined references to `std::{num_get, num_put, money_get, money_put} [...] ::id' with -static
--- Comment #14 from ubizjak at gmail dot com 2010-05-04 14:16 --- (In reply to comment #13) I guess this must be related to STB_GNU_UNIQUE, at least I can't reproduce this on ppc on Fedora 11 where STB_GNU_UNIQUE wasn't supported (even with recentish gcc), while according to log I see these WARNING: libmudflap.c++/pass41-frag.cxx (-static) compilation failed to produce executable on ppc, ppc64, s390 and s390x when doing 4.4.*-RH package builds in Fedora 12+ where STB_GNU_UNIQUE is supported. Thanks for your comments! FYI, my binutils are GNU ld (GNU Binutils) 2.20.1 20100303. I don't know when binutils was upgraded, but looking back, I see that at the end of april, results on alpha for this test were clean [1]. [1] http://gcc.gnu.org/ml/gcc-testresults/2010-04/msg02616.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43968
[Bug target/43968] undefined references to `std::{num_get, num_put, money_get, money_put} [...] ::id' with -static
--- Comment #15 from jakub at gcc dot gnu dot org 2010-05-04 15:31 --- Ah, seems a generic ar/ranlib bug, apparently STB_GNU_UNIQUE symbols aren't added into ar index :(. Wonder why it hasn't showed up elsewhere yet. The reason why this doesn't hit us in libstdc++.a on x86-64 is that the STB_GNU_UNIQUE symbols locale-inst.o needs are in locale-inst.o rather than compatibility-ldbl.o. Looking into it. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43968
[Bug target/43968] undefined references to `std::{num_get, num_put, money_get, money_put} [...] ::id' with -static
--- Comment #16 from paolo dot carlini at oracle dot com 2010-05-04 15:33 --- Thanks Jakub. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43968
[Bug target/43968] undefined references to `std::{num_get, num_put, money_get, money_put} [...] ::id' with -static
--- Comment #17 from jakub at gcc dot gnu dot org 2010-05-04 15:41 --- Ah, already fixed: http://sources.redhat.com/ml/binutils/2010-03/msg00249.html http://sources.redhat.com/ml/binutils-cvs/2010-03/msg00143.html http://sources.redhat.com/ml/binutils-cvs/2010-03/msg00144.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43968
[Bug target/43968] undefined references to `std::{num_get, num_put, money_get, money_put} [...] ::id' with -static
--- Comment #18 from ubizjak at gmail dot com 2010-05-04 17:42 --- (In reply to comment #15) Ah, seems a generic ar/ranlib bug, apparently STB_GNU_UNIQUE symbols aren't added into ar index :(. Wonder why it hasn't showed up elsewhere yet. The reason why this doesn't hit us in libstdc++.a on x86-64 is that the STB_GNU_UNIQUE symbols locale-inst.o needs are in locale-inst.o rather than compatibility-ldbl.o. Looking into it. Now that you mentioned - the problem was uncovered by [1]: 2010-04-28 Uros Bizjak ubiz...@gmail.com * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object type if available. [1] http://gcc.gnu.org/ml/gcc-patches/2010-04/msg01751.html I wonder if the ar/ranlib bug is severe enough that we need to check for newer version of the binutils in configure.ac. Currently we have: [gcc_GAS_CHECK_FEATURE([gnu_unique_object], gcc_cv_as_gnu_unique_object, [elf,2,19,52],, -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43968
[Bug target/43968] undefined references to `std::{num_get, num_put, money_get, money_put} [...] ::id' with -static
--- Comment #6 from ubizjak at gmail dot com 2010-05-03 12:12 --- (In reply to comment #5) This is what I get on x86_64: thus, seems a target problem to me. Do you have any advice, where/how these symbols get exported? I would like to analyze the failure, so we can blame some other tool ;) (No, I'm not sure that binutils work correctly...) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43968
[Bug target/43968] undefined references to `std::{num_get, num_put, money_get, money_put} [...] ::id' with -static
--- Comment #7 from paolo dot carlini at oracle dot com 2010-05-03 12:17 --- In locale-inst.o -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43968
[Bug target/43968] undefined references to `std::{num_get, num_put, money_get, money_put} [...] ::id' with -static
--- Comment #8 from ubizjak at gmail dot com 2010-05-03 17:25 --- (In reply to comment #7) In locale-inst.o Strange, on alpha it is defined in compatibility-ldbl.o. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43968
[Bug target/43968] undefined references to `std::{num_get, num_put, money_get, money_put} [...] ::id' with -static
--- Comment #9 from paolo dot carlini at oracle dot com 2010-05-03 17:41 --- Ah yes, it's probably because of the strange workarounds put in place for long double. Anyway, if you encounter special issues having to do with that, Jakub is the reference person. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43968
[Bug target/43968] undefined references to `std::{num_get, num_put, money_get, money_put} [...] ::id' with -static
--- Comment #10 from ubizjak at gmail dot com 2010-05-03 17:44 --- (In reply to comment #9) Ah yes, it's probably because of the strange workarounds put in place for long double. Anyway, if you encounter special issues having to do with that, Jakub is the reference person. Added to CC. -- ubizjak at gmail dot com changed: What|Removed |Added CC||jakub at gcc dot gnu dot org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2010-05-03 17:44:18 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43968