diff mbox

[committed] Remove pthread stubs for gthreads on hppa-hpux

Message ID 20110208000048.GA25355@hiauly1.hia.nrc.ca
State New
Headers show

Commit Message

John David Anglin Feb. 8, 2011, midnight UTC
This patches removes the pthread stubs added to resolve various pthread
functions used by the GTHREADS interface.  In testing, I found the set of
stubs incomplete and we also needed full functionality for certain
interfaces like pthread_key_create.  In the end, I decided to just change
LIB_SPEC to link against the shared libc in static links.

Tested on hppa2.0w-hp-hpux11.11 and hppa64-hp-hpux11.11 with no regressions.
Committed to trunk.

Dave
diff mbox

Patch

Index: config.gcc
===================================================================
--- config.gcc	(revision 169874)
+++ config.gcc	(working copy)
@@ -1140,7 +1140,6 @@ 
 	else
 	    tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
 	fi
-	extra_parts="libgcc_stub.a"
 	case x${enable_threads} in
 	x | xyes | xposix )
 		thread_file=posix
Index: config/pa/pa64-hpux.h
===================================================================
--- config/pa/pa64-hpux.h	(revision 169874)
+++ config/pa/pa64-hpux.h	(working copy)
@@ -61,34 +61,40 @@ 
   "%{!shared:\
      %{!p:%{!pg:%{fopenmp:%{static:-a shared} -lrt %{static:-a archive}}\
 	    %{mt|pthread:-lpthread} -lc\
-	    %{static:%{!nolibdld:-a shared -ldld -a archive -lc}}}}\
+	    %{static:%{!nolibdld:-a shared -ldld -a archive -lc}\
+		%{!mt:%{!pthread:-a shared -lc -a archive}}}}}\
      %{p:%{!pg:%{static:%{!mhp-ld:-a shared}%{mhp-ld:-a archive_shared}}\
 	   -lprof %{static:-a archive}\
 	   %{fopenmp:%{static:-a shared} -lrt %{static:-a archive}}\
 	   %{mt|pthread:-lpthread} -lc\
-	   %{static:%{!nolibdld:-a shared -ldld -a archive -lc}}}}\
+	   %{static:%{!nolibdld:-a shared -ldld -a archive -lc}\
+		%{!mt:%{!pthread:-a shared -lc -a archive}}}}}\
      %{pg:%{static:%{!mhp-ld:-a shared}%{mhp-ld:-a archive_shared}}\
        -lgprof %{static:-a archive}\
        %{fopenmp:%{static:-a shared} -lrt %{static:-a archive}}\
        %{mt|pthread:-lpthread} -lc\
-       %{static:%{!nolibdld:-a shared -ldld -a archive -lc}}}}\
+       %{static:%{!nolibdld:-a shared -ldld -a archive -lc}\
+		%{!mt:%{!pthread:-a shared -lc -a archive}}}}}\
    %{shared:%{mt|pthread:-lpthread}}"
 #else
 #define LIB_SPEC \
   "%{!shared:\
      %{!p:%{!pg:%{fopenmp:%{static:-a shared} -lrt %{static:-a archive}}\
 	    %{mt|pthread:-lpthread} -lc\
-	    %{static:%{!nolibdld:-a shared -ldld -a archive -lc}}}}\
+	    %{static:%{!nolibdld:-a shared -ldld -a archive -lc}\
+		%{!mt:%{!pthread:-a shared -lc -a archive}}}}}\
      %{p:%{!pg:%{static:%{mgnu-ld:-a shared}%{!mgnu-ld:-a archive_shared}}\
 	   -lprof %{static:-a archive}\
 	   %{fopenmp:%{static:-a shared} -lrt %{static:-a archive}}\
 	   %{mt|pthread:-lpthread} -lc\
-	   %{static:%{!nolibdld:-a shared -ldld -a archive -lc}}}}\
+	   %{static:%{!nolibdld:-a shared -ldld -a archive -lc}\
+		%{!mt:%{!pthread:-a shared -lc -a archive}}}}}\
      %{pg:%{static:%{mgnu-ld:-a shared}%{!mgnu-ld:-a archive_shared}}\
        -lgprof %{static:-a archive}\
        %{fopenmp:%{static:-a shared} -lrt %{static:-a archive}}\
        %{mt|pthread:-lpthread} -lc\
-       %{static:%{!nolibdld:-a shared -ldld -a archive -lc}}}}\
+       %{static:%{!nolibdld:-a shared -ldld -a archive -lc}\
+		%{!mt:%{!pthread:-a shared -lc -a archive}}}}}\
    %{shared:%{mt|pthread:-lpthread}}"
 #endif
 
Index: config/pa/t-pa-hpux11
===================================================================
--- config/pa/t-pa-hpux11	(revision 169874)
+++ config/pa/t-pa-hpux11	(working copy)
@@ -1,26 +1,2 @@ 
 TARGET_LIBGCC2_CFLAGS = -fPIC -frandom-seed=fixed-seed
 LIB2FUNCS_EXTRA=lib2funcs.asm quadlib.c
-LIBGCCSTUB_OBJS = pthread_default_stacksize_np-stub.o \
-	pthread_mutex_lock-stub.o \
-	pthread_mutex_unlock-stub.o
-
-stublib.c: $(srcdir)/config/pa/stublib.c
-	rm -f stublib.c
-	cp $(srcdir)/config/pa/stublib.c .
-
-pthread_default_stacksize_np-stub.o: stublib.c $(GCC_PASSES)
-	$(GCC_FOR_TARGET) -c -O2 -DL_pthread_default_stacksize_np stublib.c \
-	  -o pthread_default_stacksize_np-stub.o
-
-pthread_mutex_lock-stub.o: stublib.c $(GCC_PASSES)
-	$(GCC_FOR_TARGET) -c -O2 -DL_pthread_mutex_lock stublib.c \
-	  -o pthread_mutex_lock-stub.o
-
-pthread_mutex_unlock-stub.o: stublib.c $(GCC_PASSES)
-	$(GCC_FOR_TARGET) -c -O2 -DL_pthread_mutex_unlock stublib.c \
-	  -o pthread_mutex_unlock-stub.o
-
-$(T)libgcc_stub.a: $(LIBGCCSTUB_OBJS)
-	-rm -rf $(T)libgcc_stub.a
-	$(AR) rc $(T)libgcc_stub.a $(LIBGCCSTUB_OBJS)
-	$(RANLIB) $(T)libgcc_stub.a
Index: config/pa/pa-hpux11.h
===================================================================
--- config/pa/pa-hpux11.h	(revision 169874)
+++ config/pa/pa-hpux11.h	(working copy)
@@ -114,23 +114,19 @@ 
    -z %{mlinker-opt:-O} %{!shared:-u main -u __gcc_plt_call}\
    %{static:-a archive} %{shared:-b}"
 
-/* HP-UX 11 has posix threads.  HP libc contains pthread stubs so that
-   non-threaded applications can be linked with a thread-safe libc
-   without a subsequent loss of performance.  For more details, see
-   <http://docs.hp.com/en/1896/pthreads.html>.  */
+/* HP-UX 11 has posix threads.  HP's shared libc contains pthread stubs
+   so that non-threaded applications can be linked with a thread-safe
+   libc without a subsequent loss of performance.  For more details,
+   see <http://docs.hp.com/en/1896/pthreads.html>.  */
 #undef LIB_SPEC
 #define LIB_SPEC \
   "%{!shared:\
      %{fopenmp:%{static:-a archive_shared} -lrt %{static:-a archive}}\
      %{mt|pthread:-lpthread} -lc\
-     %{static:%{!nolibdld:-a archive_shared -ldld -a archive -lc}}}\
+     %{static:%{!nolibdld:-a archive_shared -ldld -a archive -lc}\
+       %{!mt:%{!pthread:-a shared -lc -a archive}}}}\
    %{shared:%{mt|pthread:-lpthread}}"
 
-/* The libgcc_stub.a library needs to come last.  */
-#undef LINK_GCC_C_SEQUENCE_SPEC
-#define LINK_GCC_C_SEQUENCE_SPEC \
-  "%G %L %G %{!nostdlib:%{!nodefaultlibs:%{!shared:-lgcc_stub}}}"
-
 #undef STARTFILE_SPEC
 #define STARTFILE_SPEC \
   "%{!shared:%{pg:gcrt0%O%s}%{!pg:%{p:mcrt0%O%s}%{!p:crt0%O%s}} \
Index: config/pa/t-pa64
===================================================================
--- config/pa/t-pa64	(revision 169874)
+++ config/pa/t-pa64	(working copy)
@@ -19,10 +19,7 @@ 
 
 TARGET_LIBGCC2_CFLAGS = -fPIC -Dpa64=1 -DELF=1 -mlong-calls
 LIB2FUNCS_EXTRA = quadlib.c
-LIBGCCSTUB_OBJS = rfi-stub.o dfi-stub.o jvrc-stub.o cxaf-stub.o \
-	pthread_default_stacksize_np-stub.o \
-	pthread_mutex_lock-stub.o \
-	pthread_mutex_unlock-stub.o
+LIBGCCSTUB_OBJS = rfi-stub.o dfi-stub.o jvrc-stub.o cxaf-stub.o
 
 stublib.c: $(srcdir)/config/pa/stublib.c
 	rm -f stublib.c
@@ -44,18 +41,6 @@ 
 	$(GCC_FOR_TARGET) -c -O2 -DL_Jv_RegisterClasses stublib.c \
 	  -o jvrc-stub.o
 
-pthread_default_stacksize_np-stub.o: stublib.c $(GCC_PASSES)
-	$(GCC_FOR_TARGET) -c -O2 -DL_pthread_default_stacksize_np stublib.c \
-	  -o pthread_default_stacksize_np-stub.o
-
-pthread_mutex_lock-stub.o: stublib.c $(GCC_PASSES)
-	$(GCC_FOR_TARGET) -c -O2 -DL_pthread_mutex_lock stublib.c \
-	  -o pthread_mutex_lock-stub.o
-
-pthread_mutex_unlock-stub.o: stublib.c $(GCC_PASSES)
-	$(GCC_FOR_TARGET) -c -O2 -DL_pthread_mutex_unlock stublib.c \
-	  -o pthread_mutex_unlock-stub.o
-
 $(T)libgcc_stub.a: $(LIBGCCSTUB_OBJS)
 	-rm -rf $(T)libgcc_stub.a
 	$(AR) rc $(T)libgcc_stub.a $(LIBGCCSTUB_OBJS)
Index: config/pa/stublib.c
===================================================================
--- config/pa/stublib.c	(revision 169874)
+++ config/pa/stublib.c	(working copy)
@@ -56,33 +56,3 @@ 
 {
 }
 #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 new, unsigned long *old)
-{
-  if (old)
-    *old = 0;
-  return 0;
-}
-#endif
-
-#ifdef L_pthread_mutex_lock
-int pthread_mutex_lock (void * __attribute__((unused)));
-int
-pthread_mutex_lock (void *p)
-{
-  return 0;
-}
-#endif
-
-#ifdef L_pthread_mutex_unlock
-int pthread_mutex_unlock (void * __attribute__((unused)));
-int
-pthread_mutex_unlock (void *p)
-{
-  return 0;
-}
-#endif