+2011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
+ * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
+ pthread_mutex_unlock): Remove.
+ * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
+ * config/pa/t-pa64: Likewise.
+ * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
+ shared libc if not linking against libpthread.
+ * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
+
2011-02-07 Iain Sandoe <iains@gcc.gnu.org>
PR target/47558
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
-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}} \
"%{!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
{
}
#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
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
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
$(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)