diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-03-13 10:57:07 +0000 |
---|---|---|
committer | Sebastian Huber <sh@gcc.gnu.org> | 2015-03-13 10:57:07 +0000 |
commit | cd93945d0345971b75bbc3f4a0d6d8d6a474f644 (patch) | |
tree | 986b376731172e3e654d665a0958e076f287ef73 /libgomp | |
parent | 9b78b1e73091dccb5176b1c0c5eeb165ea85771c (diff) | |
download | gcc-cd93945d0345971b75bbc3f4a0d6d8d6a474f644.zip gcc-cd93945d0345971b75bbc3f4a0d6d8d6a474f644.tar.gz gcc-cd93945d0345971b75bbc3f4a0d6d8d6a474f644.tar.bz2 |
libgomp: Add RTEMS support
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
Diffstat (limited to 'libgomp')
-rw-r--r-- | libgomp/ChangeLog | 7 | ||||
-rwxr-xr-x | libgomp/configure | 22 | ||||
-rw-r--r-- | libgomp/configure.ac | 42 | ||||
-rw-r--r-- | libgomp/configure.tgt | 4 |
4 files changed, 49 insertions, 26 deletions
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index 2333428..6237db5 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -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) diff --git a/libgomp/configure b/libgomp/configure index 0818707..e39787c 100755 --- a/libgomp/configure +++ b/libgomp/configure @@ -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 -*- # diff --git a/libgomp/configure.ac b/libgomp/configure.ac index 4687b01..51e646d 100644 --- a/libgomp/configure.ac +++ b/libgomp/configure.ac @@ -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]) diff --git a/libgomp/configure.tgt b/libgomp/configure.tgt index ad98de1..2970f6f 100644 --- a/libgomp/configure.tgt +++ b/libgomp/configure.tgt @@ -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 |