diff options
author | John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | 2011-02-18 21:19:52 +0000 |
---|---|---|
committer | John David Anglin <danglin@gcc.gnu.org> | 2011-02-18 21:19:52 +0000 |
commit | eddabc80ca0e2fcdcf45fc55a9604145a46b857a (patch) | |
tree | 2fcf40123fae20a3c2770c2d1c299f470549f52f | |
parent | ca3da783ed735b6eec19ca4576ce64a8fcacce65 (diff) | |
download | gcc-eddabc80ca0e2fcdcf45fc55a9604145a46b857a.zip gcc-eddabc80ca0e2fcdcf45fc55a9604145a46b857a.tar.gz gcc-eddabc80ca0e2fcdcf45fc55a9604145a46b857a.tar.bz2 |
config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
* config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
* config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
* config/pa/t-pa-hpux11: Add rules to build pthread stubs.
* config/pa/t-pa64: Likewise.
* config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
From-SVN: r170287
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/config.gcc | 1 | ||||
-rw-r--r-- | gcc/config/pa/pa-hpux11.h | 5 | ||||
-rw-r--r-- | gcc/config/pa/stublib.c | 39 | ||||
-rw-r--r-- | gcc/config/pa/t-pa-hpux11 | 29 | ||||
-rw-r--r-- | gcc/config/pa/t-pa64 | 22 |
6 files changed, 104 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 48e86d2..43d065c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> + + * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts. + * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock, + pthread_mutex_unlock, pthread_once): Reinstate pthread stubs. + * config/pa/t-pa-hpux11: Add rules to build pthread stubs. + * config/pa/t-pa64: Likewise. + * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define. + 2011-02-18 Jakub Jelinek <jakub@redhat.com> PR driver/47787 diff --git a/gcc/config.gcc b/gcc/config.gcc index 54b822e..1d7c8d3 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1165,6 +1165,7 @@ hppa[12]*-*-hpux11*) 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 diff --git a/gcc/config/pa/pa-hpux11.h b/gcc/config/pa/pa-hpux11.h index b0fc868..81dfdf3 100644 --- a/gcc/config/pa/pa-hpux11.h +++ b/gcc/config/pa/pa-hpux11.h @@ -127,6 +127,11 @@ along with GCC; see the file COPYING3. If not see %{!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}} \ diff --git a/gcc/config/pa/stublib.c b/gcc/config/pa/stublib.c index 288645a..d3cf559 100644 --- a/gcc/config/pa/stublib.c +++ b/gcc/config/pa/stublib.c @@ -56,3 +56,42 @@ _Jv_RegisterClasses (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 new, unsigned long *old) +{ + if (old) + *old = 0; + return 0; +} +#endif + +#ifdef L_pthread_mutex_lock +int pthread_mutex_lock (void); +int +pthread_mutex_lock (void) +{ + return 0; +} +#endif + +#ifdef L_pthread_mutex_unlock +int pthread_mutex_unlock (void); +int +pthread_mutex_unlock (void) +{ + return 0; +} +#endif + +#ifdef L_pthread_once +int pthread_once (void); +int +pthread_once (void) +{ + return 0; +} +#endif diff --git a/gcc/config/pa/t-pa-hpux11 b/gcc/config/pa/t-pa-hpux11 index 2773828..4436b4c 100644 --- a/gcc/config/pa/t-pa-hpux11 +++ b/gcc/config/pa/t-pa-hpux11 @@ -1,2 +1,31 @@ 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 \ + pthread_once-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 + +pthread_once-stub.o: stublib.c $(GCC_PASSES) + $(GCC_FOR_TARGET) -c -O2 -DL_pthread_once stublib.c \ + -o pthread_once-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 diff --git a/gcc/config/pa/t-pa64 b/gcc/config/pa/t-pa64 index 488c4d5..e6ac7a5 100644 --- a/gcc/config/pa/t-pa64 +++ b/gcc/config/pa/t-pa64 @@ -19,7 +19,11 @@ 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 +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 \ + pthread_once-stub.o stublib.c: $(srcdir)/config/pa/stublib.c rm -f stublib.c @@ -41,6 +45,22 @@ jvrc-stub.o: stublib.c $(GCC_PASSES) $(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 + +pthread_once-stub.o: stublib.c $(GCC_PASSES) + $(GCC_FOR_TARGET) -c -O2 -DL_pthread_once stublib.c \ + -o pthread_once-stub.o + $(T)libgcc_stub.a: $(LIBGCCSTUB_OBJS) -rm -rf $(T)libgcc_stub.a $(AR) rc $(T)libgcc_stub.a $(LIBGCCSTUB_OBJS) |