Modify gold testsuite to disable plugins added by GCC driver.
[deliverable/binutils-gdb.git] / gold / configure.ac
... / ...
CommitLineData
1dnl Process this file with autoconf to produce a configure script.
2dnl
3dnl Copyright (C) 2006-2014 Free Software Foundation, Inc.
4dnl
5dnl This file is free software; you can redistribute it and/or modify
6dnl it under the terms of the GNU General Public License as published by
7dnl the Free Software Foundation; either version 3 of the License, or
8dnl (at your option) any later version.
9dnl
10dnl This program is distributed in the hope that it will be useful,
11dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
12dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13dnl GNU General Public License for more details.
14dnl
15dnl You should have received a copy of the GNU General Public License
16dnl along with this program; see the file COPYING3. If not see
17dnl <http://www.gnu.org/licenses/>.
18dnl
19
20AC_PREREQ(2.59)
21
22AC_INIT(gold, 0.1)
23AC_CONFIG_SRCDIR(gold.cc)
24
25AC_CANONICAL_TARGET
26
27AM_INIT_AUTOMAKE([no-dist parallel-tests])
28
29AM_CONFIG_HEADER(config.h:config.in)
30
31# PR 14072
32AH_VERBATIM([00_CONFIG_H_CHECK],
33[/* Check that config.h is #included before system headers
34 (this works only for glibc, but that should be enough). */
35#if defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__CONFIG_H__)
36# error config.h must be #included before system headers
37#endif
38#define __CONFIG_H__ 1])
39
40AC_ARG_WITH(sysroot,
41[ --with-sysroot[=DIR] search for usr/lib et al within DIR],
42[sysroot=$withval], [sysroot=no])
43
44if test "$sysroot" = "yes"; then
45 sysroot='${exec_prefix}/${target_alias}/sys-root'
46elif test "$sysroot" = "no"; then
47 sysroot=
48fi
49
50sysroot_relocatable=0
51if test -n "$sysroot"; then
52 case "sysroot" in
53 "${prefix}" | "${prefix}/"* | \
54 "${exec_prefix}" | "${exec_prefix}/"* | \
55 '${prefix}' | '${prefix}/'*| \
56 '${exec_prefix}' | '${exec_prefix}/'*)
57 sysroot_relocatable=1
58 ;;
59 esac
60fi
61
62AC_DEFINE_UNQUOTED(TARGET_SYSTEM_ROOT, "$sysroot",
63 [System root for target files])
64AC_DEFINE_UNQUOTED(TARGET_SYSTEM_ROOT_RELOCATABLE, $sysroot_relocatable,
65 [Whether the system root can be relocated])
66
67dnl "install_as_default" is true if the linker to be installed as the
68dnl default linker, ld.
69dnl "installed_linker" is the installed gold linker name.
70
71installed_linker=ld.gold
72AC_ARG_ENABLE(gold,
73[[ --enable-gold[=ARG] build gold [ARG={default,yes,no}]]],
74[case "${enableval}" in
75 default)
76 install_as_default=yes
77 ;;
78 yes)
79 if test x${enable_ld} = xno; then
80 install_as_default=yes
81 fi
82 ;;
83 esac],
84[install_as_default=no])
85AC_SUBST(install_as_default)
86AC_SUBST(installed_linker)
87
88dnl For now threads are a configure time option.
89AC_ARG_ENABLE([threads],
90[ --enable-threads multi-threaded linking],
91[case "${enableval}" in
92 yes | "") threads=yes ;;
93 no) threads=no ;;
94 *) threads=yes ;;
95 esac],
96[threads=no])
97if test "$threads" = "yes"; then
98 AC_DEFINE(ENABLE_THREADS, 1,
99 [Define to do multi-threaded linking])
100fi
101AM_CONDITIONAL(THREADS, test "$threads" = "yes")
102
103AC_ARG_ENABLE([plugins],
104[ --enable-plugins linker plugins],
105[case "${enableval}" in
106 yes | "") plugins=yes ;;
107 no) plugins=no ;;
108 *) plugins=yes ;;
109 esac],
110[plugins=no])
111if test "$plugins" = "yes"; then
112 AC_DEFINE(ENABLE_PLUGINS, 1,
113 [Define to enable linker plugins])
114fi
115AM_CONDITIONAL(PLUGINS, test "$plugins" = "yes")
116
117AC_ARG_ENABLE([targets],
118[ --enable-targets alternative target configurations],
119[case "${enableval}" in
120 yes | "")
121 AC_MSG_ERROR([--enable-targets option must specify target names or 'all'])
122 ;;
123 no)
124 enable_targets=
125 ;;
126 *)
127 enable_targets=$enableval
128 ;;
129esac],
130[# For now, enable all targets by default
131 enable_targets=all
132])
133
134# Canonicalize the enabled targets.
135if test -n "$enable_targets"; then
136 for targ in `echo $enable_targets | sed -e 's/,/ /g'`; do
137 result=`$ac_config_sub $targ 2>/dev/null`
138 if test -n "$result"; then
139 canon_targets="$canon_targets $result"
140 else
141 # Permit unrecognized target names, like "all".
142 canon_targets="$canon_targets $targ"
143 fi
144 done
145fi
146
147# See which specific instantiations we need.
148targetobjs=
149all_targets=
150default_machine=
151default_size=
152default_big_endian=
153default_osabi=ELFOSABI_NONE
154targ_32_little=
155targ_32_big=
156targ_64_little=
157targ_64_big=
158for targ in $target $canon_targets; do
159 if test "$targ" = "all"; then
160 targ_32_little=yes
161 targ_32_big=yes
162 targ_64_little=yes
163 targ_64_big=yes
164 all_targets=yes
165 else
166 . ${srcdir}/configure.tgt
167
168 if test "$targ_obj" = "UNKNOWN"; then
169 AC_MSG_ERROR("unsupported target $targ")
170 else
171 targetobjs="$targetobjs ${targ_obj}.\$(OBJEXT)"
172 if test "$targ_extra_obj" != ""; then
173 targetobjs="$targetobjs ${targ_extra_obj}.\$(OBJEXT)"
174 fi
175 if test "$targ_size" = "32" -o "$targ_extra_size" = "32"; then
176 if test "$targ_big_endian" = "true" \
177 -o "$targ_extra_big_endian" = "true"; then
178 targ_32_big=yes
179 fi
180 if test "$targ_big_endian" = "false" \
181 -o "$targ_extra_big_endian" = "false"; then
182 targ_32_little=yes
183 fi
184 fi
185 if test "$targ_size" = "64" -o "$targ_extra_size" = "64"; then
186 if test "$targ_big_endian" = "true" \
187 -o "$targ_extra_big_endian" = "true"; then
188 targ_64_big=yes
189 fi
190 if test "$targ_big_endian" = "false" \
191 -o "$targ_extra_big_endian" = "false"; then
192 targ_64_little=yes
193 fi
194 fi
195
196 if test "$target" = "$targ"; then
197 default_machine=$targ_machine
198 default_size=$targ_size
199 default_big_endian=$targ_big_endian
200 default_osabi=$targ_osabi
201
202 AM_CONDITIONAL(DEFAULT_TARGET_ARM, test "$targ_obj" = "arm")
203 AM_CONDITIONAL(DEFAULT_TARGET_I386, test "$targ_obj" = "i386")
204 AM_CONDITIONAL(DEFAULT_TARGET_POWERPC, test "$targ_obj" = "powerpc")
205 AM_CONDITIONAL(DEFAULT_TARGET_SPARC, test "$targ_obj" = "sparc")
206 AM_CONDITIONAL(DEFAULT_TARGET_X86_64, test "$targ_obj" = "x86_64")
207 AM_CONDITIONAL(DEFAULT_TARGET_TILEGX, test "$targ_obj" = "tilegx")
208 DEFAULT_TARGET=${targ_obj}
209 AC_SUBST(DEFAULT_TARGET)
210 fi
211 fi
212 fi
213done
214
215# Remove any duplicates.
216to=""
217for t in $targetobjs; do
218 case " $to " in
219 *" $t "*) ;;
220 *) to="$to $t" ;;
221 esac
222done
223targetobjs=$to
224
225if test -n "$targ_32_little"; then
226 AC_DEFINE(HAVE_TARGET_32_LITTLE, 1,
227 [Define to support 32-bit little-endian targets])
228fi
229if test -n "$targ_32_big"; then
230 AC_DEFINE(HAVE_TARGET_32_BIG, 1,
231 [Define to support 32-bit big-endian targets])
232fi
233if test -n "$targ_64_little"; then
234 AC_DEFINE(HAVE_TARGET_64_LITTLE, 1,
235 [Define to support 64-bit little-endian targets])
236fi
237if test -n "$targ_64_big"; then
238 AC_DEFINE(HAVE_TARGET_64_BIG, 1,
239 [Define to support 64-bit big-endian targets])
240fi
241
242if test -n "$all_targets"; then
243 TARGETOBJS='$(ALL_TARGETOBJS)'
244else
245 TARGETOBJS="$targetobjs"
246fi
247AC_SUBST(TARGETOBJS)
248
249AC_DEFINE_UNQUOTED(GOLD_DEFAULT_MACHINE, $default_machine,
250 [Default machine code])
251AC_DEFINE_UNQUOTED(GOLD_DEFAULT_SIZE, $default_size,
252 [Default size (32 or 64)])
253AC_DEFINE_UNQUOTED(GOLD_DEFAULT_BIG_ENDIAN, $default_big_endian,
254 [Default big endian (true or false)])
255AC_DEFINE_UNQUOTED(GOLD_DEFAULT_OSABI, $default_osabi,
256 [Default OSABI code])
257
258AC_ARG_WITH(lib-path,
259[ --with-lib-path=dir1:dir2... set default LIB_PATH],
260[case "$withval" in
261 yes) LIB_PATH='"/lib:/usr/lib"' ;;
262 no) LIB_PATH='""' ;;
263 *) LIB_PATH='"'"$withval"'"' ;;
264 esac],
265[LIB_PATH='"::DEFAULT::"'])
266AC_DEFINE_UNQUOTED(LIB_PATH, $LIB_PATH,
267 [Default library search path])
268if test "x$target_alias" = "x" -o "x$host_alias" = "x$target_alias"; then
269 AC_DEFINE(NATIVE_LINKER, 1, [Whether configured as a native linker])
270fi
271
272AC_CHECK_TOOL(NM, nm)
273
274AC_PROG_CC
275AC_PROG_CXX
276AC_PROG_YACC
277AC_PROG_RANLIB
278AC_PROG_INSTALL
279AC_PROG_LN_S
280
281AC_GNU_SOURCE
282
283ZW_GNU_GETTEXT_SISTER_DIR
284AM_PO_SUBDIRS
285
286AC_C_BIGENDIAN
287
288AC_EXEEXT
289
290AM_CONDITIONAL(NATIVE_LINKER,
291 test "x$target_alias" = "x" -o "x$host_alias" = "x$target_alias")
292AM_CONDITIONAL(GCC, test "$GCC" = yes)
293
294AM_CONDITIONAL(NATIVE_OR_CROSS_LINKER,
295 test "x$target_alias" = "x" -o "x$host_alias" = "x$target_alias" -o "x$host_alias" = "x$build_alias")
296
297dnl Test for whether static linking is supported. Some systems do not
298dnl install static libraries. This only affects the set of tests that
299dnl we run.
300AC_CACHE_CHECK([whether static linking works], [gold_cv_lib_static],
301[LDFLAGS_hold=$LDFLAGS
302LDFLAGS="$LDFLAGS -static"
303AC_LINK_IFELSE([
304AC_LANG_PROGRAM([[void f() { }]])],
305[gold_cv_lib_static=yes], [gold_cv_lib_static=no])
306LDFLAGS=$LDFLAGS_hold])
307AM_CONDITIONAL(HAVE_STATIC, test "$gold_cv_lib_static" = "yes")
308
309dnl Some architectures do not support taking pointers of functions
310dnl defined in shared libraries except in -fPIC mode. We need to
311dnl tell the unittest framework if we're compiling for one of those
312dnl targets, so it doesn't try to run the tests that do that.
313AM_CONDITIONAL(FN_PTRS_IN_SO_WITHOUT_PIC, [
314 case $target_cpu in
315 powerpc*) false;;
316 x86_64) false;;
317 sparc64) false;;
318 *) true;;
319 esac])
320
321dnl Test for gcc 4.1 or later. Full support for -mcmodel=medium is
322dnl only available in gcc 4.1.
323AC_CACHE_CHECK([for gcc >= 4.1], [gold_cv_prog_gcc41],
324[AC_COMPILE_IFELSE([
325#if !defined __GNUC__
326error
327#elif __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 1)
328error
329#endif
330], [gold_cv_prog_gcc41=yes], [gold_cv_prog_gcc41=no])])
331
332save_CFLAGS="$CFLAGS"
333CFLAGS="$CFLAGS -mcmodel=medium"
334AC_COMPILE_IFELSE([int i;], [have_mcmodel_medium=yes], [have_mcmodel_medium=no])
335CFLAGS="$save_CFLAGS"
336dnl Whether we can test -mcmodel=medium.
337AM_CONDITIONAL(MCMODEL_MEDIUM,
338[test "$target_cpu" = "x86_64" -a "$have_mcmodel_medium" = "yes" -a "$gold_cv_prog_gcc41" = "yes"])
339
340AC_CACHE_CHECK([whether $CC supports -fmerge-constants],
341 [gold_cv_merge_constants], [
342save_CFLAGS="$CFLAGS"
343CFLAGS="$CFLAGS -fmerge-constants"
344AC_COMPILE_IFELSE([const char *s = "foo";],
345 [gold_cv_merge_constants=yes],
346 [gold_cv_merge_constants=no])
347CFLAGS="$save_CFLAGS"])
348AC_SUBST([MERGE_CONSTANTS_FLAG])
349AS_IF([test "$gold_cv_merge_constants" = yes],
350 [MERGE_CONSTANTS_FLAG=-fmerge-constants],
351 [MERGE_CONSTANTS_FLAG=])
352
353dnl Test for __thread support.
354AC_CACHE_CHECK([for thread support], [gold_cv_c_thread],
355[AC_COMPILE_IFELSE([__thread int i = 1;],
356[gold_cv_c_thread=yes], [gold_cv_c_thread=no])])
357
358AM_CONDITIONAL(TLS, test "$gold_cv_c_thread" = "yes")
359
360dnl On GNU/Linux TLS in static programs only works when using glibc
361dnl 2.4 or later.
362AC_CACHE_CHECK([for glibc >= 2.4], [gold_cv_lib_glibc24],
363[AC_COMPILE_IFELSE([
364#include <features.h>
365#if !defined __GLIBC__
366error
367#elif __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 4)
368error
369#endif
370], [gold_cv_lib_glibc24=yes], [gold_cv_lib_glibc24=no])])
371
372AM_CONDITIONAL(STATIC_TLS, test "$gold_cv_lib_glibc24" = "yes")
373
374dnl Test for #pragma omp threadprivate
375AC_CACHE_CHECK([for omp support], [gold_cv_c_threadprivate],
376[save_CFLAGS="$CFLAGS"
377CFLAGS="$CFLAGS -fopenmp"
378AC_COMPILE_IFELSE([
379#include <omp.h>
380int i;
381#pragma omp threadprivate (i)
382], [gold_cv_c_threadprivate=yes], [gold_cv_c_threadprivate=no])
383CFLAGS="$save_CFLAGS"])
384if test "$gold_cv_c_threadprivate" = "yes"; then
385 AC_DEFINE(HAVE_OMP_SUPPORT, 1,
386 [Define if compiler supports #pragma omp threadprivate])
387fi
388AM_CONDITIONAL(OMP_SUPPORT, test "$gold_cv_c_threadprivate" = "yes")
389
390dnl Test for the -ftls-dialect=gnu2 option.
391dnl Use -Werror in case of compilers that make unknown -m options warnings.
392dnl They would pass the test here, but fail in actual use when $WARN_CFLAGS
393dnl gets set later by default Autoconf magic to include -Werror. (We are
394dnl assuming here that there is no compiler that groks -mtls-dialect=gnu2
395dnl but does not grok -Werror.)
396save_CFLAGS="$CFLAGS"
397CFLAGS="$CFLAGS -Werror -fpic -mtls-dialect=gnu2"
398AC_COMPILE_IFELSE([
399__thread int i;
400void foo (void)
401{
402 i = 10;
403}
404], [have_tls_gnu2=yes], [have_tls_gnu2=no])
405CFLAGS="$save_CFLAGS"
406AM_CONDITIONAL(TLS_GNU2_DIALECT, test "$have_tls_gnu2" = "yes")
407
408dnl On GNU/Linux TLS descriptors are supported by the dynamic loader
409dnl only with glibc 2.9 or later.
410AC_CACHE_CHECK([for glibc >= 2.9], [gold_cv_lib_glibc29],
411[AC_COMPILE_IFELSE([
412#include <features.h>
413#if !defined __GLIBC__
414error
415#elif __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 9)
416error
417#endif
418], [gold_cv_lib_glibc29=yes], [gold_cv_lib_glibc29=no])])
419
420AM_CONDITIONAL(TLS_DESCRIPTORS, test "$gold_cv_lib_glibc29" = "yes")
421
422dnl Test for the -frandom-seed option.
423AC_CACHE_CHECK([for -frandom-seed support], [gold_cv_c_random_seed],
424[save_CFLAGS="$CFLAGS"
425CFLAGS="$CFLAGS -frandom-seed=foo"
426AC_COMPILE_IFELSE([int i;], [gold_cv_c_random_seed=yes],
427[gold_cv_c_random_seed=no])
428CFLAGS="$save_CFLAGS"])
429if test "$gold_cv_c_random_seed" = "yes"; then
430 # In Makefile, '$@' will be expanded to be the name of the file
431 # being built, providing a unique seed for each file.
432 RANDOM_SEED_CFLAGS=-frandom-seed=\$@
433fi
434AC_SUBST(RANDOM_SEED_CFLAGS)
435
436dnl On GNU/Linux ifunc is supported by the dynamic linker in glibc
437dnl 2.11 or later, and by binutils 2.20.1 or later.
438AC_CACHE_CHECK([for glibc ifunc support], [gold_cv_lib_glibc_ifunc],
439[save_LDFLAGS="$LDFLAGS"
440LDFLAGS="$LDFLAGS -static"
441AC_LINK_IFELSE([AC_LANG_PROGRAM([[
442#include <features.h>
443#if !defined __GLIBC__
444error
445#elif __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 11)
446error
447#endif
448void func (void) { }
449void invoke (void);
450__asm__(".type invoke, %gnu_indirect_function");
451typedef void (*funcptr) (void);
452funcptr dispatch (void) __asm__ ("invoke");
453funcptr dispatch (void) { return &func; }]],
454[[invoke();]])
455], [
456if ${NM} conftest$EXEEXT | grep "__rela\?_iplt_start" >/dev/null 2>&1; then
457 gold_cv_lib_glibc_ifunc=both
458else
459 gold_cv_lib_glibc_ifunc=dyn
460fi], [gold_cv_lib_glibc_ifunc=no])
461LDFLAGS="$save_LDFLAGS"])
462
463AM_CONDITIONAL(IFUNC, test "$gold_cv_lib_glibc_ifunc" != "no")
464AM_CONDITIONAL(IFUNC_STATIC, test "$gold_cv_lib_glibc_ifunc" = "both")
465
466AM_BINUTILS_WARNINGS
467
468WARN_CXXFLAGS=`echo ${WARN_CFLAGS} | sed -e 's/-Wstrict-prototypes//' -e 's/-Wmissing-prototypes//' -e 's/-Wshadow//'`
469AC_SUBST(WARN_CXXFLAGS)
470
471AC_ARG_WITH(gold-ldflags,
472[ --with-gold-ldflags=FLAGS additional link flags for gold],
473[if test "$withval" = "no" -o "$withval" = "yes"; then
474 GOLD_LDFLAGS=
475 else
476 GOLD_LDFLAGS=$withval
477 fi],
478[GOLD_LDFLAGS=])
479AC_SUBST(GOLD_LDFLAGS)
480
481AC_ARG_WITH(gold-ldadd,
482[ --with-gold-ldadd=LIBS additional libraries for gold],
483[if test "$withval" = "no" -o "$withval" = "yes"; then
484 GOLD_LDADD=
485 else
486 GOLD_LDADD=$withval
487 fi],
488[GOLD_LDADD=])
489AC_SUBST(GOLD_LDADD)
490
491dnl Force support for large files by default. This may need to be
492dnl host dependent. If build == host, we can check getconf LFS_CFLAGS.
493LFS_CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
494AC_SUBST(LFS_CFLAGS)
495
496AC_CHECK_HEADERS(sys/mman.h)
497AC_CHECK_FUNCS(chsize mmap)
498AC_REPLACE_FUNCS(pread ftruncate ffsll)
499
500AC_CACHE_CHECK([mremap with MREMAP_MAYMOVE], [gold_cv_lib_mremap_maymove],
501[AC_LINK_IFELSE([
502AC_LANG_PROGRAM([[
503#include <sys/mman.h>
504void f() { mremap (0, 0, 0, MREMAP_MAYMOVE); }
505]])], [gold_cv_lib_mremap_maymove=yes], [gold_cv_lib_mremap_maymove=no])])
506if test "$gold_cv_lib_mremap_maymove" = "yes"; then
507 AC_DEFINE(HAVE_MREMAP, 1,
508 [Define to 1 if you have the mremap function with MREMAP_MAYMOVE support])
509else
510 AC_LIBOBJ(mremap)
511fi
512
513# Link in zlib if we can. This allows us to write compressed sections.
514AM_ZLIB
515AM_CONDITIONAL(HAVE_ZLIB, test "$ac_cv_header_zlib_h" = "yes")
516
517dnl We have to check these in C, not C++, because autoconf generates
518dnl tests which have no type information, and current glibc provides
519dnl multiple declarations of functions like basename when compiling
520dnl with C++.
521AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf, snprintf, vsnprintf, strverscmp])
522
523dnl Check if gcc supports the -gpubnames option.
524dnl Use -Werror in case of compilers that make unknown -g options warnings.
525dnl They would pass the test here, but fail in actual use when $WARN_CFLAGS
526dnl gets set later by default Autoconf magic to include -Werror. (We are
527dnl assuming here that there is no compiler that groks -gpubnames
528dnl but does not grok -Werror.)
529save_CFLAGS="$CFLAGS"
530CFLAGS="$CFLAGS -Werror -gpubnames"
531AC_COMPILE_IFELSE([int i;], [have_pubnames=yes], [have_pubnames=no])
532CFLAGS="$save_CFLAGS"
533AM_CONDITIONAL(HAVE_PUBNAMES, test "$have_pubnames" = "yes")
534
535dnl Check if gcc supports the -fno-use-linker-plugin option.
536save_CFLAGS="$CFLAGS"
537CFLAGS="$CFLAGS -Werror -fno-use-linker-plugin"
538AC_COMPILE_IFELSE([int i;], [have_no_use_linker_plugin=yes], [have_no_use_linker_plugin=no])
539CFLAGS="$save_CFLAGS"
540AM_CONDITIONAL(HAVE_NO_USE_LINKER_PLUGIN, test "$have_no_use_linker_plugin" = "yes")
541
542AC_LANG_PUSH(C++)
543
544AC_CHECK_HEADERS(unordered_set unordered_map)
545AC_CHECK_HEADERS(tr1/unordered_set tr1/unordered_map)
546AC_CHECK_HEADERS(ext/hash_map ext/hash_set)
547AC_CHECK_HEADERS(byteswap.h)
548
549dnl When plugins enabled dynamic loader interface is required. Check headers
550dnl which may provide this interface. Add the necessary library to link.
551AC_CHECK_HEADERS(windows.h)
552AC_CHECK_HEADERS(dlfcn.h)
553AC_SEARCH_LIBS(dlopen, [dl dld])
554case "$ac_cv_search_dlopen" in
555 no*) DLOPEN_LIBS="";;
556 *) DLOPEN_LIBS="$ac_cv_search_dlopen";;
557esac
558AC_SUBST(DLOPEN_LIBS)
559
560AC_CHECK_FUNCS(mallinfo posix_fallocate fallocate readv sysconf times)
561AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf, snprintf, vsnprintf, strverscmp, strndup, memmem])
562
563# Use of ::std::tr1::unordered_map::rehash causes undefined symbols
564# at link time with some versions of GCC.
565AC_CACHE_CHECK([whether ::std::tr1::unordered_map::rehash is usable.],
566[gold_cv_unordered_map_rehash],
567[AC_LINK_IFELSE([AC_LANG_PROGRAM([[
568#include <tr1/unordered_map>
569void bar() { ::std::tr1::unordered_map<int, int> x; x.rehash(10); }
570]])], [gold_cv_unordered_map_rehash=yes], [gold_cv_unordered_map_rehash=no])])
571if test "$gold_cv_unordered_map_rehash" = "yes"; then
572 AC_DEFINE(HAVE_TR1_UNORDERED_MAP_REHASH, 1,
573 [Define if ::std::tr1::unordered_map::rehash is usable])
574fi
575
576# Use of tr1/unordered_map with off_t as a key is not supported on GCC
577# 4.1.xx when compiling in 32-bit mode with a 64-bit off_t type.
578AC_CACHE_CHECK([whether std::tr1::hash<off_t> is defined],
579[gold_cv_hash_off_t],
580[CXXFLAGS_hold=$CXXFLAGS
581CXXFLAGS="$CXXFLAGS $LFS_CFLAGS"
582AC_COMPILE_IFELSE([
583#include <sys/types.h>
584#include <tr1/unordered_map>
585std::tr1::hash<off_t> h;
586],
587[gold_cv_hash_off_t=yes],
588[gold_cv_hash_off_t=no])
589CXXFLAGS=$CXXFLAGS_hold])
590if test "$gold_cv_hash_off_t" = "yes"; then
591 AC_DEFINE(HAVE_TR1_HASH_OFF_T, 1,
592 [Define if std::tr1::hash<off_t> is usable])
593fi
594
595# gcc 4.3.0 doesn't recognize the printf attribute on a template
596# function. Check for that. This is gcc bug 35546. This test can
597# probably be removed after the bug has been fixed for a while.
598AC_CACHE_CHECK([whether we can use attributes with template functions],
599[gold_cv_template_attribute],
600[AC_COMPILE_IFELSE([
601template<typename T> extern void foo(const char*, ...)
602 __attribute__ ((__format__ (__printf__, 1, 2)));
603template<typename T> void foo(const char* format, ...) {}
604void bar() { foo<int>("%s\n", "foo"); }
605], [gold_cv_template_attribute=yes], [gold_cv_template_attribute=no])])
606if test "$gold_cv_template_attribute" = "yes"; then
607 AC_DEFINE(HAVE_TEMPLATE_ATTRIBUTES, 1,
608 [Define if attributes work on C++ templates])
609fi
610
611dnl Check if the system has struct stat::st_mtim.
612AC_CACHE_CHECK([for struct stat::st_mtim.],
613[gold_cv_stat_st_mtim],
614[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
615#include <sys/stat.h>
616long bar() { struct stat s; return (long)(s.st_mtim.tv_sec + s.st_mtim.tv_sec);}
617]])], [gold_cv_stat_st_mtim=yes], [gold_cv_stat_st_mtim=no])])
618if test "$gold_cv_stat_st_mtim" = "yes"; then
619 AC_DEFINE(HAVE_STAT_ST_MTIM, 1,
620 [Define if struct stat has a field st_mtim with timespec for mtime])
621fi
622
623AC_LANG_POP(C++)
624
625AC_CHECK_HEADERS(locale.h)
626AC_CHECK_FUNCS(setlocale)
627AM_LC_MESSAGES
628
629AM_MAINTAINER_MODE
630
631AC_OUTPUT(Makefile testsuite/Makefile po/Makefile.in:po/Make-in)
This page took 0.025159 seconds and 4 git commands to generate.