The addition of libitm broke bootstrap on hppa64-hpux. The attached patch adds two new stubs to avoiding link errors and fixes a number of warnings caused by misplaced __attribute__'s.
Tested on hppa64-hp-hpux11.11. Committed to trunk. Dave -- J. David Anglin dave.ang...@nrc-cnrc.gc.ca National Research Council of Canada (613) 990-0752 (FAX: 952-6602) 2011-11-30 John David Anglin <dave.ang...@nrc-cnrc.gc.ca> PR other/51272 * config/pa/stublib.c (_ITM_registerTMCloneTable): New stub. (_ITM_deregisterTMCloneTable): Likewise. (__register_frame_info): Fix unused warning. (__deregister_frame_info, __cxa_finalize, _Jv_RegisterClasses, pthread_default_stacksize_np): Likewise. * config/pa/t-stublib (LIBGCCSTUB_OBJS): Add new objects and rules. Index: config/pa/stublib.c =================================================================== --- config/pa/stublib.c (revision 181819) +++ config/pa/stublib.c (working copy) @@ -1,5 +1,5 @@ /* Stub functions. - Copyright (C) 2006, 2009, 2010 Free Software Foundation, Inc. + Copyright (C) 2006, 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of GCC. @@ -22,46 +22,66 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see <http://www.gnu.org/licenses/>. */ +#include "tsystem.h" + #ifdef L_register_frame_info struct object; -void __register_frame_info (const void * __attribute__((unused)), - struct object * __attribute__((unused))); +void __register_frame_info (const void *, struct object *); void -__register_frame_info (const void *p, struct object *ob) +__register_frame_info (__attribute__((unused)) const void *p, + __attribute__((unused)) struct object *ob) { } #endif #ifdef L_deregister_frame_info -void *__deregister_frame_info (const void * __attribute__((unused))); +void *__deregister_frame_info (const void *); void * -__deregister_frame_info (const void *p) +__deregister_frame_info (__attribute__((unused)) const void *p) { return (void *)0; } #endif +#ifdef L_ITM_registerTMCloneTable +struct object; +void _ITM_registerTMCloneTable (const void *, size_t); +void +_ITM_registerTMCloneTable (__attribute__((unused)) const void *p, + __attribute__((unused)) size_t s) +{ +} +#endif + +#ifdef L_ITM_deregisterTMCloneTable +void _ITM_deregisterTMCloneTable (const void *); +void +_ITM_deregisterTMCloneTable (__attribute__((unused)) const void *p) +{ +} +#endif + #ifdef L_cxa_finalize -void __cxa_finalize (void * __attribute__((unused))); +void __cxa_finalize (void *); void -__cxa_finalize (void *p) +__cxa_finalize (__attribute__((unused)) void *p) { } #endif #ifdef L_Jv_RegisterClasses -void _Jv_RegisterClasses (void * __attribute__((unused))); +void _Jv_RegisterClasses (void *); void -_Jv_RegisterClasses (void *p) +_Jv_RegisterClasses (__attribute__((unused)) void *p) { } #endif #ifdef L_pthread_default_stacksize_np -int pthread_default_stacksize_np (unsigned long __attribute__((unused)), - unsigned long *); +int pthread_default_stacksize_np (unsigned long, unsigned long *); int -pthread_default_stacksize_np (unsigned long new, unsigned long *old) +pthread_default_stacksize_np (__attribute__((unused)) unsigned long new, + unsigned long *old) { if (old) *old = 0; Index: config/pa/t-stublib =================================================================== --- config/pa/t-stublib (revision 181819) +++ config/pa/t-stublib (working copy) @@ -1,4 +1,5 @@ -LIBGCCSTUB_OBJS = rfi-stub.o dfi-stub.o jvrc-stub.o cxaf-stub.o \ +LIBGCCSTUB_OBJS = rfi-stub.o dfi-stub.o ritm-stub.o ditm-stub.o \ + jvrc-stub.o cxaf-stub.o \ pthread_default_stacksize_np-stub.o \ pthread_mutex_lock-stub.o \ pthread_mutex_unlock-stub.o \ @@ -10,6 +11,12 @@ dfi-stub.o: $(srcdir)/config/pa/stublib.c $(gcc_compile) -c -O2 -DL_deregister_frame_info $< +ritm-stub.o: $(srcdir)/config/pa/stublib.c + $(gcc_compile) -c -O2 -DL_ITM_registerTMCloneTable $< + +ditm-stub.o: $(srcdir)/config/pa/stublib.c + $(gcc_compile) -c -O2 -DL_ITM_deregisterTMCloneTable $< + cxaf-stub.o: $(srcdir)/config/pa/stublib.c $(gcc_compile) -c -O2 -DL_cxa_finalize $<