[Bug target/43968] undefined references to `std::{num_get, num_put, money_get, money_put} [...] ::id' with -static

2010-05-05 Thread ubizjak at gmail dot com


--- 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

2010-05-04 Thread ubizjak at gmail dot com


--- 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

2010-05-04 Thread paolo dot carlini at oracle dot com


--- 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

2010-05-04 Thread jakub at gcc dot gnu dot org


--- 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

2010-05-04 Thread ubizjak at gmail dot com


--- 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

2010-05-04 Thread jakub at gcc dot gnu dot org


--- 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

2010-05-04 Thread paolo dot carlini at oracle dot com


--- 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

2010-05-04 Thread jakub at gcc dot gnu dot org


--- 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

2010-05-04 Thread ubizjak at gmail dot com


--- 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

2010-05-03 Thread ubizjak at gmail dot com


--- 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

2010-05-03 Thread paolo dot carlini at oracle dot com


--- 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

2010-05-03 Thread ubizjak at gmail dot com


--- 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

2010-05-03 Thread paolo dot carlini at oracle dot com


--- 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

2010-05-03 Thread ubizjak at gmail dot com


--- 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