libgomp: Add RTEMS support
authorSebastian Huber <sebastian.huber@embedded-brains.de>
Fri, 13 Mar 2015 10:57:07 +0000 (10:57 +0000)
committerSebastian Huber <sh@gcc.gnu.org>
Fri, 13 Mar 2015 10:57:07 +0000 (10:57 +0000)
libgomp/ChangeLog

* configure.tgt (*-*-rtems*): Use local-exec TLS model.
* configure.ac (*-*-rtems*): Assume Pthread is supported.
(pthread.h): Check for this header file.
* configure: Regenerate.

From-SVN: r221415

libgomp/ChangeLog
libgomp/configure
libgomp/configure.ac
libgomp/configure.tgt

index 233342817bd301da7d01655f3bc2ffefd96cce2c..6237db56e4b6e975b094dc992f9587dd84bdd886 100644 (file)
@@ -1,3 +1,10 @@
+2015-03-13  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+
+       * configure.tgt (*-*-rtems*): Use local-exec TLS model.
+       * configure.ac (*-*-rtems*): Assume Pthread is supported.
+       (pthread.h): Check for this header file.
+       * configure: Regenerate.
+
 2015-02-25  Tom de Vries  <tom@codesourcery.com>
 
        * testsuite/libgomp.oacc-c-c++-common/reduction-1.c (DO_PRAGMA)
index 081870728e7727cc33e3b6a7e630f389670b393d..e39787c94c6190e35794ea6344402eb4a8e6fbce 100755 (executable)
@@ -14611,7 +14611,7 @@ $as_echo "#define STRING_WITH_STRINGS 1" >>confdefs.h
 
 fi
 
-for ac_header in unistd.h semaphore.h sys/loadavg.h sys/time.h sys/time.h
+for ac_header in pthread.h unistd.h semaphore.h sys/loadavg.h sys/time.h sys/time.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -15033,14 +15033,19 @@ ac_config_commands="$ac_config_commands gstdint.h"
 
 
 
-# Check to see if -pthread or -lpthread is needed.  Prefer the former.
-# In case the pthread.h system header is not found, this test will fail.
 XPCFLAGS=""
-CFLAGS="$CFLAGS -pthread"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+case "$host" in
+  *-*-rtems*)
+    # RTEMS supports Pthreads, but the library is not available at GCC build time.
+    ;;
+  *)
+    # Check to see if -pthread or -lpthread is needed.  Prefer the former.
+    # In case the pthread.h system header is not found, this test will fail.
+    CFLAGS="$CFLAGS -pthread"
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <pthread.h>
-   void *g(void *d) { return NULL; }
+       void *g(void *d) { return NULL; }
 int
 main ()
 {
@@ -15053,10 +15058,10 @@ if ac_fn_c_try_link "$LINENO"; then :
   XPCFLAGS=" -Wc,-pthread"
 else
   CFLAGS="$save_CFLAGS" LIBS="-lpthread $LIBS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <pthread.h>
-     void *g(void *d) { return NULL; }
+         void *g(void *d) { return NULL; }
 int
 main ()
 {
@@ -15075,6 +15080,7 @@ rm -f core conftest.err conftest.$ac_objext \
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
+esac
 
 # Plugins for offload execution, configure.ac fragment.  -*- mode: autoconf -*-
 #
index 4687b01d5ccf4c9fb97ca58fc969b84102e31c1e..51e646d47895d7a063989f0ad8b2c03ec87d7f51 100644 (file)
@@ -170,28 +170,34 @@ AC_SUBST(libtool_VERSION)
 AC_STDC_HEADERS
 AC_HEADER_TIME
 ACX_HEADER_STRING
-AC_CHECK_HEADERS(unistd.h semaphore.h sys/loadavg.h sys/time.h sys/time.h)
+AC_CHECK_HEADERS(pthread.h unistd.h semaphore.h sys/loadavg.h sys/time.h sys/time.h)
 
 GCC_HEADER_STDINT(gstdint.h)
 
-# Check to see if -pthread or -lpthread is needed.  Prefer the former.
-# In case the pthread.h system header is not found, this test will fail.
 XPCFLAGS=""
-CFLAGS="$CFLAGS -pthread"
-AC_LINK_IFELSE(
- [AC_LANG_PROGRAM(
-  [#include <pthread.h>
-   void *g(void *d) { return NULL; }],
-  [pthread_t t; pthread_create(&t,NULL,g,NULL);])],
- [XPCFLAGS=" -Wc,-pthread"],
- [CFLAGS="$save_CFLAGS" LIBS="-lpthread $LIBS"
-  AC_LINK_IFELSE(
-   [AC_LANG_PROGRAM(
-    [#include <pthread.h>
-     void *g(void *d) { return NULL; }],
-    [pthread_t t; pthread_create(&t,NULL,g,NULL);])],
-   [],
-   [AC_MSG_ERROR([Pthreads are required to build libgomp])])])
+case "$host" in
+  *-*-rtems*)
+    # RTEMS supports Pthreads, but the library is not available at GCC build time.
+    ;;
+  *)
+    # Check to see if -pthread or -lpthread is needed.  Prefer the former.
+    # In case the pthread.h system header is not found, this test will fail.
+    CFLAGS="$CFLAGS -pthread"
+    AC_LINK_IFELSE(
+     [AC_LANG_PROGRAM(
+      [#include <pthread.h>
+       void *g(void *d) { return NULL; }],
+      [pthread_t t; pthread_create(&t,NULL,g,NULL);])],
+     [XPCFLAGS=" -Wc,-pthread"],
+     [CFLAGS="$save_CFLAGS" LIBS="-lpthread $LIBS"
+      AC_LINK_IFELSE(
+       [AC_LANG_PROGRAM(
+        [#include <pthread.h>
+         void *g(void *d) { return NULL; }],
+        [pthread_t t; pthread_create(&t,NULL,g,NULL);])],
+       [],
+       [AC_MSG_ERROR([Pthreads are required to build libgomp])])])
+esac
 
 m4_include([plugin/configfrag.ac])
 
index ad98de13228133b0aef9b5b05ce1ef5cbdaa8276..2970f6f7b82c6f2510836e3a2af4aa7408ff51e5 100644 (file)
@@ -20,6 +20,10 @@ if test $gcc_cv_have_tls = yes ; then
     *-*-linux* | *-*-gnu*)
        XCFLAGS="${XCFLAGS} -ftls-model=initial-exec"
        ;;
+
+    *-*-rtems*)
+       XCFLAGS="${XCFLAGS} -ftls-model=local-exec"
+       ;;
   esac
 fi