gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.

gcc/
2014-03-26  Tobias Burnus  <burnus@net-b.de>

        * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
        (CILK_SELF_SPECS): New define.
        (driver_self_specs): Use it.

libcilkrts/
2014-03-26  Tobias Burnus  <burnus@net-b.de>

        * libcilkrts.spec.in: New.
        * Makefile.am: Handle libcilkrts.spec.
        * configure.ac: Determine link options for libcilkrts.spec.
        * Makefile.in: Regenerate.
        * configure: Regenerate.
        * aclocal.m4: Regenerate.

From-SVN: r208847
This commit is contained in:
Tobias Burnus 2014-03-26 20:16:35 +01:00 committed by Tobias Burnus
parent 8707b3bcc0
commit b9487dd868
8 changed files with 157 additions and 34 deletions

View File

@ -1,3 +1,9 @@
2014-03-26 Tobias Burnus <burnus@net-b.de>
* gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
(CILK_SELF_SPECS): New define.
(driver_self_specs): Use it.
2014-03-26 Richard Biener <rguenther@suse.de>
* tree-pretty-print.c (percent_K_format): Implement special

View File

@ -766,6 +766,7 @@ proper position among the other output files. */
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!nostartfiles:%S}} " VTABLE_VERIFICATION_SPEC " \
%{static:} %{L*} %(mfwrap) %(link_libgcc) " SANITIZER_EARLY_SPEC " %o\
%{fopenmp|ftree-parallelize-loops=*:%:include(libgomp.spec)%(link_gomp)}\
%{fcilkplus:%:include(libcilkrts.spec)%(link_cilkrts)}\
%{fgnu-tm:%:include(libitm.spec)%(link_itm)}\
%(mflib) " STACK_SPLIT_SPEC "\
%{fprofile-arcs|fprofile-generate*|coverage:-lgcov} " SANITIZER_SPEC " \
@ -932,9 +933,15 @@ static const char *const multilib_defaults_raw[] = MULTILIB_DEFAULTS;
#define GTM_SELF_SPECS "%{fgnu-tm: -pthread}"
#endif
/* Likewise for -fcilkplus. */
#ifndef CILK_SELF_SPECS
#define CILK_SELF_SPECS "%{fcilkplus: -pthread}"
#endif
static const char *const driver_self_specs[] = {
"%{fdump-final-insns:-fdump-final-insns=.} %<fdump-final-insns",
DRIVER_SELF_SPECS, CONFIGURE_SPECS, GOMP_SELF_SPECS, GTM_SELF_SPECS
DRIVER_SELF_SPECS, CONFIGURE_SPECS, GOMP_SELF_SPECS, GTM_SELF_SPECS,
CILK_SELF_SPECS
};
#ifndef OPTION_DEFAULT_SPECS

View File

@ -1,3 +1,12 @@
2014-03-26 Tobias Burnus <burnus@net-b.de>
* libcilkrts.spec.in: New.
* Makefile.am: Handle libcilkrts.spec.
* configure.ac: Determine link options for libcilkrts.spec.
* Makefile.in: Regenerate.
* configure: Regenerate.
* aclocal.m4: Regenerate.
2014-03-20 Tobias Burnus <burnus@net-b.de>
PR other/60589

View File

@ -51,6 +51,7 @@ AM_LDFLAGS = -lpthread
gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
# Target list.
nodist_toolexeclib_HEADERS = libcilkrts.spec
toolexeclib_LTLIBRARIES = libcilkrts.la
libcilkrts_la_SOURCES = \
@ -110,7 +111,7 @@ libcilkrts_la_LDFLAGS += -no-undefined
# C/C++ header files for Cilk.
# cilkincludedir = $(includedir)/cilk
cilkincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include/cilk
cilkinclude_HEADERS = \
nodist_cilkinclude_HEADERS = \
include/cilk/cilk_api.h \
include/cilk/cilk_api_linux.h \
include/cilk/cilk.h \

View File

@ -112,8 +112,8 @@ target_triplet = @target@
DIST_COMMON = $(srcdir)/include/internal/rev.mk README ChangeLog \
$(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/configure $(am__configure_deps) \
$(srcdir)/../mkinstalldirs $(srcdir)/../depcomp \
$(cilkinclude_HEADERS)
$(srcdir)/../mkinstalldirs $(srcdir)/libcilkrts.spec.in \
$(srcdir)/../depcomp
# If we're building on Linux, use the Linux version script
@LINUX_LINKER_SCRIPT_TRUE@am__append_1 = -Wl,--version-script,$(srcdir)/runtime/linux-symbols.ver
@ -122,10 +122,8 @@ DIST_COMMON = $(srcdir)/include/internal/rev.mk README ChangeLog \
@MAC_LINKER_SCRIPT_TRUE@am__append_2 = -Wl,-exported_symbols_list,$(srcdir)/runtime/mac-symbols.txt
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/../config/depstand.m4 \
am__aclocal_m4_deps = $(top_srcdir)/../config/depstand.m4 \
$(top_srcdir)/../config/lead-dot.m4 \
$(top_srcdir)/../config/libstdc++-raw-cxx.m4 \
$(top_srcdir)/../config/multi.m4 \
$(top_srcdir)/../config/override.m4 \
$(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \
@ -136,7 +134,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno
mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_FILES = libcilkrts.spec
CONFIG_CLEAN_VPATH_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
@ -160,7 +158,7 @@ am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__installdirs = "$(DESTDIR)$(toolexeclibdir)" \
"$(DESTDIR)$(cilkincludedir)"
"$(DESTDIR)$(cilkincludedir)" "$(DESTDIR)$(toolexeclibdir)"
LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
libcilkrts_la_LIBADD =
am_libcilkrts_la_OBJECTS = cilk-abi-vla.lo os-unix-sysdep.lo bug.lo \
@ -204,7 +202,7 @@ MULTIDIRS =
MULTISUBDIR =
MULTIDO = true
MULTICLEAN = true
HEADERS = $(cilkinclude_HEADERS)
HEADERS = $(nodist_cilkinclude_HEADERS) $(nodist_toolexeclib_HEADERS)
ETAGS = etags
CTAGS = ctags
ACLOCAL = @ACLOCAL@
@ -245,8 +243,6 @@ LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_RAW_CXX_CXXFLAGS@
LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
@ -310,6 +306,7 @@ infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
link_cilkrts = @link_cilkrts@
localedir = @localedir@
localstatedir = @localstatedir@
lt_cv_dlopen_libs = @lt_cv_dlopen_libs@
@ -328,7 +325,6 @@ sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
target_noncanonical = @target_noncanonical@
target_os = @target_os@
target_vendor = @target_vendor@
toolexecdir = @toolexecdir@
@ -356,6 +352,7 @@ AM_LDFLAGS = -lpthread
gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
# Target list.
nodist_toolexeclib_HEADERS = libcilkrts.spec
toolexeclib_LTLIBRARIES = libcilkrts.la
libcilkrts_la_SOURCES = \
runtime/config/$(config_dir)/cilk-abi-vla.c \
@ -403,7 +400,7 @@ libcilkrts_la_LDFLAGS = -version-info 5:0:0 -lpthread \
# C/C++ header files for Cilk.
# cilkincludedir = $(includedir)/cilk
cilkincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include/cilk
cilkinclude_HEADERS = \
nodist_cilkinclude_HEADERS = \
include/cilk/cilk_api.h \
include/cilk/cilk_api_linux.h \
include/cilk/cilk.h \
@ -505,6 +502,8 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
$(am__aclocal_m4_deps):
libcilkrts.spec: $(top_builddir)/config.status $(srcdir)/libcilkrts.spec.in
cd $(top_builddir) && $(SHELL) ./config.status $@
install-toolexeclibLTLIBRARIES: $(toolexeclib_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(toolexeclibdir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibdir)"
@ -853,10 +852,10 @@ distclean-multi:
$(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean # $(MAKE)
maintainer-clean-multi:
$(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean # $(MAKE)
install-cilkincludeHEADERS: $(cilkinclude_HEADERS)
install-nodist_cilkincludeHEADERS: $(nodist_cilkinclude_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(cilkincludedir)" || $(MKDIR_P) "$(DESTDIR)$(cilkincludedir)"
@list='$(cilkinclude_HEADERS)'; test -n "$(cilkincludedir)" || list=; \
@list='$(nodist_cilkinclude_HEADERS)'; test -n "$(cilkincludedir)" || list=; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@ -866,13 +865,33 @@ install-cilkincludeHEADERS: $(cilkinclude_HEADERS)
$(INSTALL_HEADER) $$files "$(DESTDIR)$(cilkincludedir)" || exit $$?; \
done
uninstall-cilkincludeHEADERS:
uninstall-nodist_cilkincludeHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(cilkinclude_HEADERS)'; test -n "$(cilkincludedir)" || list=; \
@list='$(nodist_cilkinclude_HEADERS)'; test -n "$(cilkincludedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
test -n "$$files" || exit 0; \
echo " ( cd '$(DESTDIR)$(cilkincludedir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(cilkincludedir)" && rm -f $$files
install-nodist_toolexeclibHEADERS: $(nodist_toolexeclib_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(toolexeclibdir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibdir)"
@list='$(nodist_toolexeclib_HEADERS)'; test -n "$(toolexeclibdir)" || list=; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(toolexeclibdir)'"; \
$(INSTALL_HEADER) $$files "$(DESTDIR)$(toolexeclibdir)" || exit $$?; \
done
uninstall-nodist_toolexeclibHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(nodist_toolexeclib_HEADERS)'; test -n "$(toolexeclibdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
test -n "$$files" || exit 0; \
echo " ( cd '$(DESTDIR)$(toolexeclibdir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(toolexeclibdir)" && rm -f $$files
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@ -929,7 +948,7 @@ check-am: all-am
check: check-am
all-am: Makefile $(LTLIBRARIES) all-multi $(HEADERS)
installdirs:
for dir in "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(cilkincludedir)"; do \
for dir in "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(cilkincludedir)" "$(DESTDIR)$(toolexeclibdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
@ -981,13 +1000,14 @@ info: info-am
info-am:
install-data-am: install-cilkincludeHEADERS
install-data-am: install-nodist_cilkincludeHEADERS
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am: install-multi install-toolexeclibLTLIBRARIES
install-exec-am: install-multi install-nodist_toolexeclibHEADERS \
install-toolexeclibLTLIBRARIES
install-html: install-html-am
@ -1029,7 +1049,8 @@ ps: ps-am
ps-am:
uninstall-am: uninstall-cilkincludeHEADERS \
uninstall-am: uninstall-nodist_cilkincludeHEADERS \
uninstall-nodist_toolexeclibHEADERS \
uninstall-toolexeclibLTLIBRARIES
.MAKE: all-multi clean-multi distclean-multi install-am install-multi \
@ -1040,17 +1061,20 @@ uninstall-am: uninstall-cilkincludeHEADERS \
clean-toolexeclibLTLIBRARIES ctags distclean distclean-compile \
distclean-generic distclean-libtool distclean-multi \
distclean-tags dvi dvi-am html html-am info info-am install \
install-am install-cilkincludeHEADERS install-data \
install-data-am install-dvi install-dvi-am install-exec \
install-exec-am install-html install-html-am install-info \
install-info-am install-man install-multi install-pdf \
install-pdf-am install-ps install-ps-am install-strip \
install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
install-multi install-nodist_cilkincludeHEADERS \
install-nodist_toolexeclibHEADERS install-pdf install-pdf-am \
install-ps install-ps-am install-strip \
install-toolexeclibLTLIBRARIES installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
maintainer-clean-multi mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool mostlyclean-multi pdf \
pdf-am ps ps-am tags uninstall uninstall-am \
uninstall-cilkincludeHEADERS uninstall-toolexeclibLTLIBRARIES
uninstall-nodist_cilkincludeHEADERS \
uninstall-nodist_toolexeclibHEADERS \
uninstall-toolexeclibLTLIBRARIES
# Tell versions [3.59,3.63) of GNU make to not export all variables.

View File

@ -968,10 +968,8 @@ AC_SUBST([am__tar])
AC_SUBST([am__untar])
]) # _AM_PROG_TAR
m4_include([../config/acx.m4])
m4_include([../config/depstand.m4])
m4_include([../config/lead-dot.m4])
m4_include([../config/libstdc++-raw-cxx.m4])
m4_include([../config/multi.m4])
m4_include([../config/override.m4])
m4_include([../libtool.m4])

58
libcilkrts/configure vendored
View File

@ -604,6 +604,7 @@ ac_subst_vars='am__EXEEXT_FALSE
am__EXEEXT_TRUE
LTLIBOBJS
LIBOBJS
link_cilkrts
lt_cv_dlopen_libs
toolexeclibdir
toolexecdir
@ -4214,7 +4215,7 @@ fi
# AC_PROG_LIBTOOL
# AC_CONFIG_MACRO_DIR([..])
ac_config_files="$ac_config_files Makefile"
ac_config_files="$ac_config_files Makefile libcilkrts.spec"
# Default to --enable-multilib
# Check whether --enable-multilib was given.
@ -11056,7 +11057,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 11059 "configure"
#line 11060 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -11162,7 +11163,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 11165 "configure"
#line 11166 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -14451,6 +14452,56 @@ 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.
CFLAGS="$CFLAGS -pthread"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <pthread.h>
void *g(void *d) { return NULL; }
int
main ()
{
pthread_t t; pthread_create(&t,NULL,g,NULL);
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
else
CFLAGS="$save_CFLAGS" LIBS="-lpthread $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <pthread.h>
void *g(void *d) { return NULL; }
int
main ()
{
pthread_t t; pthread_create(&t,NULL,g,NULL);
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
else
as_fn_error "Pthreads are required to build libcilkrts" "$LINENO" 5
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
if test $enable_shared = yes; then
link_cilkrts="-lcilkrts %{static: $LIBS}"
else
link_cilkrts="-lcilkrts $LIBS"
fi
# Must be last
cat >confcache <<\_ACEOF
@ -15567,6 +15618,7 @@ do
case $ac_config_target in
"depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"libcilkrts.spec") CONFIG_FILES="$CONFIG_FILES libcilkrts.spec" ;;
"default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
"libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;

View File

@ -49,7 +49,7 @@ AC_PROG_CC
AC_PROG_CXX
# AC_PROG_LIBTOOL
# AC_CONFIG_MACRO_DIR([..])
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([Makefile libcilkrts.spec])
AM_ENABLE_MULTILIB(, ..)
AC_FUNC_ALLOCA
@ -183,6 +183,32 @@ 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])])])
if test $enable_shared = yes; then
link_cilkrts="-lcilkrts %{static: $LIBS}"
else
link_cilkrts="-lcilkrts $LIBS"
fi
AC_SUBST(link_cilkrts)
# Must be last
AC_OUTPUT