libcilkrts/
authorkyukhin <kyukhin@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 12 Aug 2014 11:06:44 +0000 (11:06 +0000)
committerkyukhin <kyukhin@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 12 Aug 2014 11:06:44 +0000 (11:06 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213854 138bc75d-0d04-0410-961f-82ee72b054a4

libcilkrts/ChangeLog
libcilkrts/Makefile.am
libcilkrts/Makefile.in
libcilkrts/configure
libcilkrts/configure.ac

index 3881c82..ab10a0b 100644 (file)
@@ -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.
index 84551c8..70538a2 100644 (file)
@@ -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
index 1ee4d82..e1a54b5 100644 (file)
@@ -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
index 0dadbbd..1e8eabd 100644 (file)
@@ -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
 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
index fb21505..cc9a39f 100644 (file)
@@ -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}"