------- Comment #6 from danglin at gcc dot gnu dot org 2007-10-29 01:41 ------- The warnings are expected. From pa64-hpux.h:
/* We don't want undefined weak references to __register_frame_info, __deregister_frame_info, _Jv_RegisterClasses and __cxa_finalize introduced by crtbegin.o. The GNU linker only resolves weak references if they appear in a shared library. Thus, it would be impossible to create a static executable if the symbols were weak. So, the best solution seems to be to make the symbols strong and provide an archive library of empty stub functions. */ #define TARGET_ATTRIBUTE_WEAK The other part of the story that is missing from the above is that the HP dynamic linker doesn't support undefined weak symbols. So, the symbols are strong and there default implementations in a stub archive library. That's the origin of the warnings. The warning could be avoided with a hppa64 specific implementation of crtstuff.c, but the code wouldn't do anything different than it does now. The if's that cause the warnings are optimized away. gcc-3.4.6 doesn't have the TARGET_ATTRIBUTE_WEAK define. That's the relevant difference. -- danglin at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |danglin at gcc dot gnu dot | |org Severity|normal |enhancement Priority|P3 |P5 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32815