summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2011-11-12 15:39:44 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2011-11-12 15:39:44 +0000
commitd094e1b2d8d815a0d591f2f840b3e6994cb64dea (patch)
tree4034c1df3a62329780ea83855d5b039cc2c0034f
parenta1c1db7fb9b0e3561e80423e83137f489861c73a (diff)
downloadgcc-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/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 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. */