From c47194d2ab2e3ce6c760ea44de3ec00bf18976ee Mon Sep 17 00:00:00 2001
From: Sebastian Huber <sebastian.huber@embedded-brains.de>
Date: Wed, 27 Apr 2016 07:14:42 +0000
Subject: [PATCH] [libatomic] Add RTEMS support

gcc/

	* config/rtems.h (LIB_SPEC): Add -latomic.

libatomic/

	* configure.tgt (configure_tgt_pre_target_cpu_XCFLAGS): New variable.
	(*-*-rtems*): New supported target.
	* config/rtems/host-config.h: New file.
	* config/rtems/lock.c: Likewise.

From-SVN: r235466
---
 gcc/ChangeLog           |  4 ++++
 gcc/config/rtems.h      |  2 +-
 libatomic/ChangeLog     |  7 +++++++
 libatomic/configure.tgt | 10 ++++++++++
 4 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 75367cbd9ce8..245c929839ed 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+
+	* config/rtems.h (LIB_SPEC): Add -latomic.
+
 2016-04-27  Joel Sherrill  <joel@rtems.org>
 
 	* config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
diff --git a/gcc/config/rtems.h b/gcc/config/rtems.h
index f13f72fd17c1..e005547fd9bf 100644
--- a/gcc/config/rtems.h
+++ b/gcc/config/rtems.h
@@ -45,6 +45,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #define LIB_SPEC "%{!qrtems: " STD_LIB_SPEC "} " \
 "%{!nostdlib: %{qrtems: --start-group \
  -lrtemsbsp -lrtemscpu \
- -lc -lgcc --end-group %{!qnolinkcmds: -T linkcmds%s}}}"
+ -latomic -lc -lgcc --end-group %{!qnolinkcmds: -T linkcmds%s}}}"
 
 #define TARGET_POSIX_IO
diff --git a/libatomic/ChangeLog b/libatomic/ChangeLog
index 7fc60c220852..9f56a1baf2ac 100644
--- a/libatomic/ChangeLog
+++ b/libatomic/ChangeLog
@@ -1,3 +1,10 @@
+2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+
+	* configure.tgt (configure_tgt_pre_target_cpu_XCFLAGS): New variable.
+	(*-*-rtems*): New supported target.
+	* config/rtems/host-config.h: New file.
+	* config/rtems/lock.c: Likewise.
+
 2016-04-25  H.J. Lu  <hongjiu.lu@intel.com>
 
 	PR target/70454
diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt
index c5470d7ef8c3..eab2765d7fd2 100644
--- a/libatomic/configure.tgt
+++ b/libatomic/configure.tgt
@@ -26,6 +26,10 @@
 # Map the target cpu to an ARCH sub-directory.  At the same time,
 # work out any special compilation flags as necessary.
 
+# Give operating systems the opportunity to discard XCFLAGS modifications based
+# on ${target_cpu}.  For example to allow proper use of multilibs.
+configure_tgt_pre_target_cpu_XCFLAGS="${XCFLAGS}"
+
 case "${target_cpu}" in
   alpha*)
 	# fenv.c needs this option to generate inexact exceptions.
@@ -128,6 +132,12 @@ case "${target}" in
             ;;
         esac
 	;;
+
+  *-*-rtems*)
+	XCFLAGS="${configure_tgt_pre_target_cpu_XCFLAGS}"
+	config_path="rtems"
+	;;
+
   *-*-elf*)
 	# ??? No target OS.  We could be targeting bare-metal kernel-mode,
 	# or user-mode for some custom OS.  If the target supports TAS,
-- 
GitLab