This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
How do I add missing stdc functions to libstdc++-v3?
- From: Vaugha Brewchuk <vaugha_brewchuk at yahoo dot ca>
- To: gcc-help at gcc dot gnu dot org
- Date: Tue, 6 Mar 2012 15:04:30 -0500
- Subject: How do I add missing stdc functions to libstdc++-v3?
Hello,
I recently spent a considerable amount of time porting gcc-3.2.3 to NEXTSTEP 3.3 on m68k NeXT hardware. With some tweaks I was able to finish all three stages of c, objc, c++ and f77 and all the binaries successfully compare. I do, however, have a problem with correctly configuring libstdc++ and consequently c++ binaries do not link. I spent some time reading through the gcc, collect2 and libstdc++ documentation, but so far I was not able to find an obvious solution. Below are the error messages that I receive when compiling abi_check.cc:
/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
I presume that the function declarations displayed above originate from collect2 and that they were not picked up from the NeXT headers during the libstdc++ configuration. Where can I override this so that the messages disappear? I already defined these functions (access, strxfrm, strdup and write) as required in the applicable libstdc++ code but that is not sufficient. Presumably collect2 stores a definition of all available system symbols somewhere?
This brings me to my second question. How do I then add the object files or source code for the functions missing from the standard NeXT libraries to the libstdc++ build? I looked through the source tree and nothing obvious jumps at me.
Finally, I am somewhat perplexed about the missing ___gxx_personality_sj0 and ___cxa_call_unexpected symbols, and would appreciate any insight.
I should also add here that I am not a software developer, but I simply enjoy tinkering with software as a hobby, so please be gentle with me.
Any assistance or suggestions would be greatly appreciated,
thank you!