From: Richard Henderson Date: Sat, 12 Nov 2011 15:39:44 +0000 (-0800) Subject: hppa: Install __sync libfuncs for linux. X-Git-Tag: releases/gcc-4.7.0~2223 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=33a55f2919b6667660c3d1f87ac0969fb76f26fe;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d2cdaa9b64ad..592ea0ad4c39 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 6c6cf210aa4d..addc0e18c8bb 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 66574bad2fa1..134f1f88be86 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 2f1295b0fbf2..c52e3d50877a 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. */