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 $<
 

Reply via email to