[Bug libstdc++/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 #5 from paolo dot carlini at oracle dot com  2010-05-03 11:52 
---
This is what I get on x86_64:

nm libstdc++.a | grep
_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE
 U
_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE
 U
_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE
 V
_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE

thus, seems a target problem to me.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43968



[Bug libstdc++/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 #4 from ubizjak at gmail dot com  2010-05-03 11:50 ---
As shown, these symbols are exported as "u":

`u'
  The symbol is a unique global symbol.  This is a GNU
  extension to the standard set of ELF symbol bindings.  For
  such a symbol the dynamic linker will make sure that in the
  entire process there is just one symbol with this name and
  type in use.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43968



[Bug libstdc++/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 #3 from ubizjak at gmail dot com  2010-05-03 11:46 ---
(In reply to comment #2)
> Before we do anything here, you should try to explain why the problem happens
> only on alpha, because on x86_64 it doesn't and those symbols are exported
> ("V"). Are the symbols exported on alpha? Are we **really** sure that aging
> target is otherwise ok, binutils included?

In the hope it helps, this is what I get from
libstdc++-v3/src/.libs/libstdc++.a:

$ c++filt _ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE
std::num_get >
>::id

$ nm libstdc++.a | grep
_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE
 U
_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE
 u
_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43968



[Bug libstdc++/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 #2 from paolo dot carlini at oracle dot com  2010-05-03 10:52 
---
Before we do anything here, you should try to explain why the problem happens
only on alpha, because on x86_64 it doesn't and those symbols are exported
("V"). Are the symbols exported on alpha? Are we **really** sure that aging
target is otherwise ok, binutils included?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43968



[Bug libstdc++/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 #1 from ubizjak at gmail dot com  2010-05-03 08:14 ---
The testcase:

#include 
#include 

int
main (int argc, char *argv[])
{
std::string myStr = "Hello, World!";
std::cout << myStr << std::endl;
return 0;
}


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43968