From 33a55f2919b6667660c3d1f87ac0969fb76f26fe Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Sat, 12 Nov 2011 07:39:44 -0800 Subject: [PATCH] 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. From-SVN: r181320 --- gcc/ChangeLog | 6 ++++++ gcc/config/pa/pa-linux.h | 3 +++ gcc/config/pa/pa.c | 3 +++ gcc/config/pa/pa.h | 5 +++++ 4 files changed, 17 insertions(+) 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 + + * 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 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. */