diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 75367cbd9ce879057c00474990f0b2ee3e9b8dd4..245c929839edc5fa45036b5235e117d2c5169b40 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 f13f72fd17c150de3b7b67fce544864c52759291..e005547fd9bf5ab19b7d0f563de7cfac8285d0e4 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 7fc60c22085246c88bf670244b921225c480ee52..9f56a1baf2ac6029bb9d2c7f81560e86d4d1aacc 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 c5470d7ef8c36dc6b77a16fa72c17d286ff4318d..eab2765d7fd2c4a66cece52bb7e005e93029e3ce 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,