aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2011-11-12 07:39:44 -0800
committerRichard Henderson <rth@gcc.gnu.org>2011-11-12 07:39:44 -0800
commit33a55f2919b6667660c3d1f87ac0969fb76f26fe (patch)
tree4034c1df3a62329780ea83855d5b039cc2c0034f
parent5f41422fc7be19182f2df199f84ff20c96636526 (diff)
downloadgcc-33a55f2919b6667660c3d1f87ac0969fb76f26fe.zip
gcc-33a55f2919b6667660c3d1f87ac0969fb76f26fe.tar.gz
gcc-33a55f2919b6667660c3d1f87ac0969fb76f26fe.tar.bz2
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
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/pa/pa-linux.h3
-rw-r--r--gcc/config/pa/pa.c3
-rw-r--r--gcc/config/pa/pa.h5
4 files changed, 17 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d2cdaa9b..592ea0a 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 6c6cf21..addc0e1 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 66574ba..134f1f8 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 2f1295b..c52e3d5 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. */