From: Pythagoras W. <py...@ll...> - 2007-05-11 18:14:48
|
On Fri, May 11, 2007 at 09:46:05AM -0700, Bryan Henderson wrote: :I recently upgraded to gcc-4.0.0-1 and gcc-c++-4.0.0-1 and now a C++ :program compiled under the previous gcc3 will not run and C++ compiles :fail. : :The problem is there is no libgcc_s.a on my system, and presumably there :used to be. g++ does a "-lgcc_s", so it's required. I looked at an old :gcc-3.3.2-3.aix5.1.ppm.rpm and it does not appear to contain libgcc_s.a :either. : :Where am I supposed to get libgcc_s? libgcc_s is part of the libgcc RPM. Pick the appropriate one of: libgcc-4.0.0-1.aix5.1.ppc.rpm libgcc-4.0.0-1.aix5.2.ppc.rpm libgcc-4.0.0-1.aix5.3.ppc.rpm However, if you are doing dynamic 64-bit builds, it still won't work: $ echo "int main() { }" > foo.c $ /opt/freeware/bin/g++ -maix64 -o foo foo.c ld: 0711-317 ERROR: Undefined symbol: .__register_frame_info_table ld: 0711-317 ERROR: Undefined symbol: .__deregister_frame_info ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. collect2: ld returned 8 exit status That is due to there being no 64-bit shared object. In the 3.3.2 series, there was a separate library file called libgcc_s_ppc64.a that 64-builds would use. No such thing exists in the 4.0.0 series. Also, note that the pthread-specific versions of libgcc_s are also missing. -- Pythagoras Watson, LLNL ASC Systems Administrator |