Mercurial > hg > CbC > CbC_gcc
comparison libcilkrts/configure.ac @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 # Copyright (C) 2011-2016, Intel Corporation | |
2 # All rights reserved. | |
3 # | |
4 # Redistribution and use in source and binary forms, with or without | |
5 # modification, are permitted provided that the following conditions | |
6 # are met: | |
7 # | |
8 # * Redistributions of source code must retain the above copyright | |
9 # notice, this list of conditions and the following disclaimer. | |
10 # * Redistributions in binary form must reproduce the above copyright | |
11 # notice, this list of conditions and the following disclaimer in | |
12 # the documentation and/or other materials provided with the | |
13 # distribution. | |
14 # * Neither the name of Intel Corporation nor the names of its | |
15 # contributors may be used to endorse or promote products derived | |
16 # from this software without specific prior written permission. | |
17 # | |
18 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
19 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
20 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
21 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
22 # HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, | |
23 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, | |
24 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS | |
25 # OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED | |
26 # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |
27 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY | |
28 # WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
29 # POSSIBILITY OF SUCH DAMAGE. | |
30 # | |
31 # ********************************************************************* | |
32 # | |
33 # PLEASE NOTE: This file is a downstream copy of a file mainitained in | |
34 # a repository at cilkplus.org. Changes made to this file that are not | |
35 # submitted through the contribution process detailed at | |
36 # http://www.cilkplus.org/submit-cilk-contribution will be lost the next | |
37 # time that a new version is released. Changes only submitted to the | |
38 # GNU compiler collection or posted to the git repository at | |
39 # https://bitbucket.org/intelcilkruntime/intel-cilk-runtime.git are | |
40 # not tracked. | |
41 # | |
42 # We welcome your contributions to this open source project. Thank you | |
43 # for your assistance in helping us improve Cilk Plus. | |
44 | |
45 AC_INIT([Cilk Runtime Library], [2.0], [cilk@intel.com]) | |
46 AC_PREREQ([2.64]) | |
47 | |
48 # Needed to define ${target}. Needs to be very early to avoid annoying | |
49 # warning about calling AC_ARG_PROGRAM before AC_CANONICAL_SYSTEM | |
50 AC_CANONICAL_SYSTEM | |
51 target_alias=${target_alias-$host_alias} | |
52 AC_SUBST(target_alias) | |
53 | |
54 AM_INIT_AUTOMAKE(foreign no-dist) | |
55 | |
56 AM_MAINTAINER_MODE | |
57 | |
58 AM_ENABLE_MULTILIB(, ..) | |
59 | |
60 # Test for GNU extensions. Will define _GNU_SOURCE if they're available | |
61 AC_USE_SYSTEM_EXTENSIONS | |
62 | |
63 # Build a DLL on Windows | |
64 # AC_LIBTOOL_WIN32_DLL | |
65 AC_PROG_CC | |
66 AC_PROG_CXX | |
67 # AC_PROG_LIBTOOL | |
68 # AC_CONFIG_MACRO_DIR([..]) | |
69 AC_CONFIG_FILES([Makefile libcilkrts.spec]) | |
70 AC_FUNC_ALLOCA | |
71 | |
72 # Check for dl functions | |
73 AC_CHECK_LIB(dl, dladdr, | |
74 [AC_DEFINE(HAVE_DLADDR, 1, [Define if you have dladdr()])]) | |
75 | |
76 # Check whether the target supports protected visibility. | |
77 save_CFLAGS="$CFLAGS" | |
78 CFLAGS="$CFLAGS -Werror" | |
79 AC_TRY_COMPILE([void __attribute__((visibility("protected"))) foo(void) { }], | |
80 [], libcilkrts_cv_have_attribute_visibility=yes, | |
81 libcilkrts_cv_have_attribute_visibility=no) | |
82 CFLAGS="$save_CFLAGS" | |
83 if test $libcilkrts_cv_have_attribute_visibility = yes; then | |
84 AC_DEFINE(HAVE_ATTRIBUTE_VISIBILITY, 1, | |
85 [Define to 1 if the target supports __attribute__((visibility(...))).]) | |
86 fi | |
87 | |
88 # Get target configury. | |
89 . ${srcdir}/configure.tgt | |
90 if test -n "$UNSUPPORTED"; then | |
91 AC_MSG_ERROR([Configuration ${target} is unsupported.]) | |
92 fi | |
93 | |
94 if test "${multilib}" = "yes"; then | |
95 multilib_arg="--enable-multilib" | |
96 else | |
97 multilib_arg= | |
98 fi | |
99 | |
100 AC_MSG_CHECKING([for --enable-version-specific-runtime-libs]) | |
101 AC_ARG_ENABLE([version-specific-runtime-libs], | |
102 AC_HELP_STRING([--enable-version-specific-runtime-libs], | |
103 [Specify that runtime libraries should be installed in a compi | |
104 ler-specific directory]), | |
105 [case "$enableval" in | |
106 yes) enable_version_specific_runtime_libs=yes ;; | |
107 no) enable_version_specific_runtime_libs=no ;; | |
108 *) AC_MSG_ERROR([Unknown argument to enable/disable version-specific libs | |
109 ]);; | |
110 esac], | |
111 [enable_version_specific_runtime_libs=no]) | |
112 AC_MSG_RESULT($enable_version_specific_runtime_libs) | |
113 | |
114 | |
115 # Calculate toolexeclibdir | |
116 # Also toolexecdir, though it's only used in toolexeclibdir | |
117 case ${enable_version_specific_runtime_libs} in | |
118 yes) | |
119 # Need the gcc compiler version to know where to install libraries | |
120 # and header files if --enable-version-specific-runtime-libs option | |
121 # is selected. | |
122 toolexecdir='$(libdir)/gcc/$(target_alias)' | |
123 toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)' | |
124 ;; | |
125 no) | |
126 if test -n "$with_cross_host" && | |
127 test x"$with_cross_host" != x"no"; then | |
128 # Install a library built with a cross compiler in tooldir, not libdir. | |
129 toolexecdir='$(exec_prefix)/$(target_alias)' | |
130 toolexeclibdir='$(toolexecdir)/lib' | |
131 else | |
132 toolexecdir='$(libdir)/gcc-lib/$(target_alias)' | |
133 toolexeclibdir='$(libdir)' | |
134 fi | |
135 multi_os_directory=`$CC -print-multi-os-directory` | |
136 case $multi_os_directory in | |
137 .) ;; # Avoid trailing /. | |
138 *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;; | |
139 esac | |
140 ;; | |
141 esac | |
142 | |
143 # Set config_dir based on the target. config_dir specifies where to get | |
144 # target-specific files. The generic implementation is incomplete, but | |
145 # contains information on what's needed | |
146 case "${target}" in | |
147 | |
148 i?86-*-* | x86_64-*-*) | |
149 config_dir="x86" | |
150 ;; | |
151 | |
152 arm-*-*) | |
153 config_dir="arm" | |
154 ;; | |
155 | |
156 sparc*-*-*) | |
157 config_dir="sparc" | |
158 ;; | |
159 | |
160 *) | |
161 config_dir="generic" | |
162 ;; | |
163 | |
164 esac | |
165 AC_SUBST(config_dir) | |
166 | |
167 # We have linker scripts for appropriate operating systems | |
168 linux_linker_script=no | |
169 case "${host}" in | |
170 *-*-linux*) | |
171 linux_linker_script=yes | |
172 ;; | |
173 esac | |
174 AM_CONDITIONAL(LINUX_LINKER_SCRIPT, test "$linux_linker_script" = "yes") | |
175 | |
176 mac_linker_script=no | |
177 case "${host}" in | |
178 *-*-apple*) | |
179 mac_linker_script=yes | |
180 ;; | |
181 esac | |
182 AM_CONDITIONAL(MAC_LINKER_SCRIPT, test "$mac_linker_script" = "yes") | |
183 | |
184 AC_LIBTOOL_DLOPEN | |
185 AM_PROG_LIBTOOL | |
186 AC_SUBST(toolexecdir) | |
187 AC_SUBST(toolexeclibdir) | |
188 | |
189 AC_SUBST(lt_cv_dlopen_libs) | |
190 | |
191 # Check to see if -pthread or -lpthread is needed. Prefer the former. | |
192 # Note that the CILK_SELF_SPEC in gcc.c may force -pthread. | |
193 # In case the pthread.h system header is not found, this test will fail. | |
194 XCFLAGS="" | |
195 XLDFLAGS="" | |
196 CFLAGS="$CFLAGS -pthread" | |
197 AC_LINK_IFELSE( | |
198 [AC_LANG_PROGRAM( | |
199 [#include <pthread.h> | |
200 void *g(void *d) { return NULL; }], | |
201 [pthread_t t; pthread_create(&t,NULL,g,NULL);])], | |
202 [XCFLAGS=" -Wc,-pthread"], | |
203 [CFLAGS="$save_CFLAGS" LIBS="-lpthread $LIBS" | |
204 AC_LINK_IFELSE( | |
205 [AC_LANG_PROGRAM( | |
206 [#include <pthread.h> | |
207 void *g(void *d) { return NULL; }], | |
208 [pthread_t t; pthread_create(&t,NULL,g,NULL);])], | |
209 [], | |
210 [AC_MSG_ERROR([Pthreads are required to build libcilkrts])])]) | |
211 | |
212 # Check for pthread_{,attr_}[sg]etaffinity_np. | |
213 AC_LINK_IFELSE( | |
214 [AC_LANG_PROGRAM( | |
215 [#include <pthread.h>], | |
216 [cpu_set_t cpuset; | |
217 pthread_attr_t attr; | |
218 pthread_getaffinity_np (pthread_self (), sizeof (cpu_set_t), &cpuset); | |
219 if (CPU_ISSET (0, &cpuset)) | |
220 CPU_SET (1, &cpuset); | |
221 else | |
222 CPU_ZERO (&cpuset); | |
223 pthread_setaffinity_np (pthread_self (), sizeof (cpu_set_t), &cpuset); | |
224 pthread_attr_init (&attr); | |
225 pthread_attr_getaffinity_np (&attr, sizeof (cpu_set_t), &cpuset); | |
226 pthread_attr_setaffinity_np (&attr, sizeof (cpu_set_t), &cpuset);])], | |
227 AC_DEFINE(HAVE_PTHREAD_AFFINITY_NP, 1, | |
228 [ Define if pthread_{,attr_}{g,s}etaffinity_np is supported.])) | |
229 | |
230 # Every c++ lib is linking by default with -nostdlib, which leads to the | |
231 # fact, that proper pthread library will not be given at link time. We have | |
232 # to hard-code that. | |
233 case "${target}" in | |
234 | |
235 *android*) | |
236 XLDFLAGS="$XLDFLAGS -lc" | |
237 ;; | |
238 *) | |
239 XLDFLAGS="$XLDFLAGS -lpthread" | |
240 ;; | |
241 | |
242 esac | |
243 | |
244 AC_SUBST(XCFLAGS) | |
245 AC_SUBST(XLDFLAGS) | |
246 | |
247 CFLAGS="$save_CFLAGS" | |
248 | |
249 if test $enable_shared = yes; then | |
250 link_cilkrts="-lcilkrts %{static: $LIBS}" | |
251 else | |
252 link_cilkrts="-lcilkrts $LIBS" | |
253 fi | |
254 AC_SUBST(link_cilkrts) | |
255 | |
256 # Determine what GCC version number to use in filesystem paths. | |
257 GCC_BASE_VER | |
258 | |
259 # Must be last | |
260 AC_OUTPUT |