diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-12 15:39:44 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-12 15:39:44 +0000 |
commit | d094e1b2d8d815a0d591f2f840b3e6994cb64dea (patch) | |
tree | 4034c1df3a62329780ea83855d5b039cc2c0034f | |
parent | a1c1db7fb9b0e3561e80423e83137f489861c73a (diff) | |
download | gcc-d094e1b2d8d815a0d591f2f840b3e6994cb64dea.tar.gz |
hppa: Install __sync libfuncs for linux.
* config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): New.
* config/pa/pa.h (TARGET_SYNC_LIBCALL): New default.
* config/pa/pa.c (pa_init_libfuncs): Use init_sync_libfuncs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181320 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/pa/pa-linux.h | 3 | ||||
-rw-r--r-- | gcc/config/pa/pa.c | 3 | ||||
-rw-r--r-- | gcc/config/pa/pa.h | 5 |
4 files changed, 17 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d2cdaa9b64a..592ea0ad4c3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-11-12 Richard Henderson <rth@redhat.com> + + * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): New. + * config/pa/pa.h (TARGET_SYNC_LIBCALL): New default. + * config/pa/pa.c (pa_init_libfuncs): Use init_sync_libfuncs. + 2011-11-12 Iain Sandoe <iains@gcc.gnu.org> PR target/45233 diff --git a/gcc/config/pa/pa-linux.h b/gcc/config/pa/pa-linux.h index 6c6cf210aa4..addc0e18c8b 100644 --- a/gcc/config/pa/pa-linux.h +++ b/gcc/config/pa/pa-linux.h @@ -136,3 +136,6 @@ along with GCC; see the file COPYING3. If not see /* Linux always uses gas. */ #undef TARGET_GAS #define TARGET_GAS 1 + +#undef TARGET_SYNC_LIBCALL +#define TARGET_SYNC_LIBCALL 1 diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 66574bad2fa..134f1f88be8 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -5587,6 +5587,9 @@ pa_init_libfuncs (void) set_conv_libfunc (ufloat_optab, TFmode, DImode, "_U_Qfcnvxf_udbl_to_quad"); } + + if (TARGET_SYNC_LIBCALL) + init_sync_libfuncs (UNITS_PER_WORD); } /* HP's millicode routines mean something special to the assembler. diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index 2f1295b0fbf..c52e3d50877 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -74,6 +74,11 @@ extern unsigned long total_code_bytes; #define HPUX_LONG_DOUBLE_LIBRARY 0 #endif +/* Linux kernel atomic operation support. */ +#ifndef TARGET_SYNC_LIBCALL +#define TARGET_SYNC_LIBCALL 0 +#endif + /* The following three defines are potential target switches. The current defines are optimal given the current capabilities of GAS and GNU ld. */ |