How do I add missing stdc functions to libstdc++-v3?
Jonathan Wakely
jwakely.gcc@gmail.com
Tue Mar 13 01:25:00 GMT 2012
On 13 March 2012 00:14, Vaugha Brewchuk wrote:
> I have done a bit more experimenting and have made small progress. I tried linking abi_check manually while adding an object including strdup(). As a result, my original error message changed from:
>
> /bin/ld: Undefined symbols:
> access(char const*, int)
> ___gxx_personality_sj0
> ___cxa_call_unexpected
> strxfrm(char*, char const*, unsigned long)
> strdup(char*)
> write(int, void const*, unsigned long)
> _strdup
>
> to:
>
> /bin/ld: Undefined symbols:
> access(char const*, int)
> ___gxx_personality_sj0
> ___cxa_call_unexpected
> strxfrm(char*, char const*, unsigned long)
> strdup(char*)
> write(int, void const*, unsigned long)
>
> So the actual linker error relating to missing "_strdup" disappeared, but the error with "strdup(char*)" remained. I then edited my system headers to add the missing definitions for access(), strxfrm(), strdup() and write() and rebuilt gcc-3.2.3 from scratch (it takes around 20 hours on a 68040!). Subsequent manual linking of abi_check only complained about two missing symbols:
>
> /bin/ld: Undefined symbols:
> ___gxx_personality_sj0
> ___cxa_call_unexpected
>
> Could someone please indicate to me at what point in gcc configuration (or build) the system headers are scanned for presence or absence of functions? Where do I tweak the gcc source to be able to define these missing functions without the need for editing my system headers? I tried to search the sources and the build directories, but was not successful in finding anything obviously related.
>
> Finally, how and where are the missing two symbols "___gxx_personality_sj0" and "___cxa_call_unexpected" normally generated? And again, where in the code do I need to start looking to define a workaround?
They should be defined by gcc itself, in libsupc++.so, you shouldn't
have to do anything.
How are you linking abi_check? What exact command?
I think the problem is how you're linking, not missing features of the OS.
More information about the Gcc-help
mailing list