Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Wed, 24 Jul 2013 12:01:11 -0400
From: Rich Felker <dalias@...ifal.cx>
To: musl@...ts.openwall.com
Subject: Re: Missing symbols for supporting glibc-built libstdc++.so.6

On Wed, Jul 24, 2013 at 11:36:11PM +0800, orc wrote:
> I did not send a report about this especially, just my experiments
> showed that. Just because nvidia blob did not require libstdc++.so at
> all. But others did.
> You can start reading somewhere in long 'Hello' thread about 6 Jul 2012.
> 
> Tested now:
> - Hello world prog:
> #include <iostream>
>  
> int main()
> {
>     std::cout << "Hello, world!" << std::endl;
>     return 0;
> }
> 
> % g++ test.cc -o test-cpp
> % musl-out/lib/libc.so ./test-cpp
> [lots of "Error relocating..." errors]
> % musl-out/lib/libc.so ./test-cpp 2>&1 | fgrep _ZGVNSt7collateIwE2idE #
> picking one
> % nm /usr/lib/libstdc++.so.6 | fgrep _ZGVNSt7collateIwE2idE
> 00000000002e40d8 u _ZGVNSt7collateIwE2idE
> (man nm says that 'u' is "unique global" and gnu extension)
> 
> On musl system there is 'V' instead of 'u'.
> Is my example falls under "glibc-built libstdc++.so.6"?

Yes. Thanks for the report. It's fixed in git. Here is the original
thread on "unique global" support in binutils:

http://www.sourceware.org/ml/binutils/2009-06/msg00016.html

With the latest git, the only symbol errors in glibc-built libstdc++
are the ones I described at the beginning of this thread:

Error relocating .../libstdc++.so.6: __towlower_l: symbol not found
Error relocating .../libstdc++.so.6: __nl_langinfo_l: symbol not found
Error relocating .../libstdc++.so.6: __strxfrm_l: symbol not found
Error relocating .../libstdc++.so.6: __towupper_l: symbol not found
Error relocating .../libstdc++.so.6: __uselocale: symbol not found
Error relocating .../libstdc++.so.6: __wcsxfrm_l: symbol not found
Error relocating .../libstdc++.so.6: __strcoll_l: symbol not found
Error relocating .../libstdc++.so.6: __wcscoll_l: symbol not found
Error relocating .../libstdc++.so.6: __duplocale: symbol not found
Error relocating .../libstdc++.so.6: __wcsftime_l: symbol not found
Error relocating .../libstdc++.so.6: __newlocale: symbol not found
Error relocating .../libstdc++.so.6: __strftime_l: symbol not found
Error relocating .../libstdc++.so.6: __freelocale: symbol not found
Error relocating .../libstdc++.so.6: __strtod_l: symbol not found
Error relocating .../libstdc++.so.6: __strtof_l: symbol not found
Error relocating .../libstdc++.so.6: __iswctype_l: symbol not found
Error relocating .../libstdc++.so.6: strtold_l: symbol not found
Error relocating .../libstdc++.so.6: __wctype_l: symbol not found

(Pathnames elided to make this legible in email.)

Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.