summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libcilkrts/ChangeLog12
-rw-r--r--libcilkrts/Makefile.am7
-rw-r--r--libcilkrts/Makefile.in11
-rw-r--r--libcilkrts/configure91
-rw-r--r--libcilkrts/configure.ac57
5 files changed, 118 insertions, 60 deletions
diff --git a/libcilkrts/ChangeLog b/libcilkrts/ChangeLog
index 3881c82b8e7..ab10a0b596c 100644
--- a/libcilkrts/ChangeLog
+++ b/libcilkrts/ChangeLog
@@ -1,3 +1,15 @@
+2014-08-01 Alexander Ivchenko <alexander.ivchenko@intel.com>
+
+ * configure.ac: Move pthread affinity test to the place where
+ '-pthread' passed to CFLAGS. Otherwise the test always fails.
+ (XCFLAGS): New variable for correctly passing
+ '-pthread'.
+ (XLDFLAGS): New variable for passing the correct pthread lib.
+ * configure: Regenerate.
+ * Makefile.am (AM_CFLAGS): Add $XCFLAGS.
+ (AM_LDFLAGS): Add $XLDFLAGS.
+ * Makefile.in: Regenerate.
+
2014-05-21 John Marino <gnugcc@marino.st>
* runtime/os-unix.c (__DragonFly__): New target.
diff --git a/libcilkrts/Makefile.am b/libcilkrts/Makefile.am
index 84551c84227..70538a21a50 100644
--- a/libcilkrts/Makefile.am
+++ b/libcilkrts/Makefile.am
@@ -43,9 +43,9 @@ GENERAL_FLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/runtime -I$(top_srcdir)/
# Enable Intel Cilk Plus extension
GENERAL_FLAGS += -fcilkplus
-AM_CFLAGS = $(GENERAL_FLAGS) -std=c99
+AM_CFLAGS = $(XCFLAGS) $(GENERAL_FLAGS) -std=c99
AM_CPPFLAGS = $(GENERAL_FLAGS)
-AM_LDFLAGS = -lpthread
+AM_LDFLAGS = $(XLDFLAGS)
# May be used by toolexeclibdir.
gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
@@ -92,7 +92,8 @@ include include/internal/rev.mk
#libcilkrts_la_LDFLAGS = -rpath '$(libdir)'
libcilkrts_la_LDFLAGS = -version-info 5:0:0
-libcilkrts_la_LDFLAGS += -lpthread @lt_cv_dlopen_libs@
+libcilkrts_la_LDFLAGS += @lt_cv_dlopen_libs@
+libcilkrts_la_LDFLAGS += $(AM_LDFLAGS)
# If we're building on Linux, use the Linux version script
if LINUX_LINKER_SCRIPT
diff --git a/libcilkrts/Makefile.in b/libcilkrts/Makefile.in
index 1ee4d8270e5..e1a54b57678 100644
--- a/libcilkrts/Makefile.in
+++ b/libcilkrts/Makefile.in
@@ -270,6 +270,8 @@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
+XCFLAGS = @XCFLAGS@
+XLDFLAGS = @XLDFLAGS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -344,9 +346,9 @@ ACLOCAL_AMFLAGS = -I .. -I ../config
GENERAL_FLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/runtime \
-I$(top_srcdir)/runtime/config/$(config_dir) \
-DIN_CILK_RUNTIME=1 -fcilkplus
-AM_CFLAGS = $(GENERAL_FLAGS) -std=c99
+AM_CFLAGS = $(XCFLAGS) $(GENERAL_FLAGS) -std=c99
AM_CPPFLAGS = $(GENERAL_FLAGS)
-AM_LDFLAGS = -lpthread
+AM_LDFLAGS = $(XLDFLAGS)
# May be used by toolexeclibdir.
gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
@@ -393,9 +395,8 @@ CILK_REVISION = 3902
#libcilkrts_la_LDFLAGS = -rpath '$(libdir)'
# Hack for Cygwin
-libcilkrts_la_LDFLAGS = -version-info 5:0:0 -lpthread \
- @lt_cv_dlopen_libs@ $(am__append_1) $(am__append_2) \
- -no-undefined
+libcilkrts_la_LDFLAGS = -version-info 5:0:0 @lt_cv_dlopen_libs@ \
+ $(AM_LDFLAGS) $(am__append_1) $(am__append_2) -no-undefined
# C/C++ header files for Cilk.
# cilkincludedir = $(includedir)/cilk
diff --git a/libcilkrts/configure b/libcilkrts/configure
index 0dadbbda035..1e8eabd9bfb 100644
--- a/libcilkrts/configure
+++ b/libcilkrts/configure
@@ -605,6 +605,8 @@ am__EXEEXT_TRUE
LTLIBOBJS
LIBOBJS
link_cilkrts
+XLDFLAGS
+XCFLAGS
lt_cv_dlopen_libs
toolexeclibdir
toolexecdir
@@ -11057,7 +11059,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11060 "configure"
+#line 11062 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11163,7 +11165,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11166 "configure"
+#line 11168 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -14421,40 +14423,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
-# Check for pthread_{,attr_}[sg]etaffinity_np.
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#define _GNU_SOURCE
- #include <pthread.h>
-int
-main ()
-{
-cpu_set_t cpuset;
- pthread_attr_t attr;
- pthread_getaffinity_np (pthread_self (), sizeof (cpu_set_t), &cpuset);
- if (CPU_ISSET (0, &cpuset))
- CPU_SET (1, &cpuset);
- else
- CPU_ZERO (&cpuset);
- pthread_setaffinity_np (pthread_self (), sizeof (cpu_set_t), &cpuset);
- pthread_attr_init (&attr);
- pthread_attr_getaffinity_np (&attr, sizeof (cpu_set_t), &cpuset);
- pthread_attr_setaffinity_np (&attr, sizeof (cpu_set_t), &cpuset);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-$as_echo "#define HAVE_PTHREAD_AFFINITY_NP 1" >>confdefs.h
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-
# Check to see if -pthread or -lpthread is needed. Prefer the former.
# Note that the CILK_SELF_SPEC in gcc.c may force -pthread.
# In case the pthread.h system header is not found, this test will fail.
+XCFLAGS=""
+XLDFLAGS=""
CFLAGS="$CFLAGS -pthread"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -14469,7 +14442,7 @@ pthread_t t; pthread_create(&t,NULL,g,NULL);
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
-
+ XCFLAGS=" -Wc,-pthread"
else
CFLAGS="$save_CFLAGS" LIBS="-lpthread $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -14495,6 +14468,56 @@ fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
+# Check for pthread_{,attr_}[sg]etaffinity_np.
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _GNU_SOURCE
+ #include <pthread.h>
+int
+main ()
+{
+cpu_set_t cpuset;
+ pthread_attr_t attr;
+ pthread_getaffinity_np (pthread_self (), sizeof (cpu_set_t), &cpuset);
+ if (CPU_ISSET (0, &cpuset))
+ CPU_SET (1, &cpuset);
+ else
+ CPU_ZERO (&cpuset);
+ pthread_setaffinity_np (pthread_self (), sizeof (cpu_set_t), &cpuset);
+ pthread_attr_init (&attr);
+ pthread_attr_getaffinity_np (&attr, sizeof (cpu_set_t), &cpuset);
+ pthread_attr_setaffinity_np (&attr, sizeof (cpu_set_t), &cpuset);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+$as_echo "#define HAVE_PTHREAD_AFFINITY_NP 1" >>confdefs.h
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+# Every c++ lib is linking by default with -nostdlib, which leads to the
+# fact, that proper pthread library will not be given at link time. We have
+# to hard-code that.
+case "${target}" in
+
+ *android*)
+ XLDFLAGS="$XLDFLAGS -lc"
+ ;;
+ *)
+ XLDFLAGS="$XLDFLAGS -lpthread"
+ ;;
+
+esac
+
+
+
+
+CFLAGS="$save_CFLAGS"
+
if test $enable_shared = yes; then
link_cilkrts="-lcilkrts %{static: $LIBS}"
else
diff --git a/libcilkrts/configure.ac b/libcilkrts/configure.ac
index fb215052dd6..cc9a39f0533 100644
--- a/libcilkrts/configure.ac
+++ b/libcilkrts/configure.ac
@@ -164,6 +164,27 @@ AC_SUBST(toolexeclibdir)
AC_SUBST(lt_cv_dlopen_libs)
+# Check to see if -pthread or -lpthread is needed. Prefer the former.
+# Note that the CILK_SELF_SPEC in gcc.c may force -pthread.
+# In case the pthread.h system header is not found, this test will fail.
+XCFLAGS=""
+XLDFLAGS=""
+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);])],
+ [XCFLAGS=" -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 libcilkrts])])])
+
# Check for pthread_{,attr_}[sg]etaffinity_np.
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
@@ -183,24 +204,24 @@ AC_LINK_IFELSE(
AC_DEFINE(HAVE_PTHREAD_AFFINITY_NP, 1,
[ Define if pthread_{,attr_}{g,s}etaffinity_np is supported.]))
-# Check to see if -pthread or -lpthread is needed. Prefer the former.
-# Note that the CILK_SELF_SPEC in gcc.c may force -pthread.
-# 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);])],
- [],
- [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 libcilkrts])])])
+# Every c++ lib is linking by default with -nostdlib, which leads to the
+# fact, that proper pthread library will not be given at link time. We have
+# to hard-code that.
+case "${target}" in
+
+ *android*)
+ XLDFLAGS="$XLDFLAGS -lc"
+ ;;
+ *)
+ XLDFLAGS="$XLDFLAGS -lpthread"
+ ;;
+
+esac
+
+AC_SUBST(XCFLAGS)
+AC_SUBST(XLDFLAGS)
+
+CFLAGS="$save_CFLAGS"
if test $enable_shared = yes; then
link_cilkrts="-lcilkrts %{static: $LIBS}"