Add separate debug info file section
[deliverable/binutils-gdb.git] / ld / configure.ac
CommitLineData
252b5132
RH
1dnl Process this file with autoconf to produce a configure script
2dnl
6f2750fe 3dnl Copyright (C) 2012-2016 Free Software Foundation, Inc.
5bf135a7
NC
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.
995da1ff 9dnl
5bf135a7
NC
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.
995da1ff 14dnl
5bf135a7
NC
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
da594c4a 20AC_PREREQ(2.59)
2e98a7bd
AM
21m4_include([../bfd/version.m4])
22AC_INIT([ld], BFD_VERSION)
da594c4a 23AC_CONFIG_SRCDIR(ldmain.c)
252b5132 24
da594c4a 25AC_CANONICAL_TARGET
02ecc8e9 26AC_CANONICAL_BUILD
5d64ca4e 27AC_ISC_POSIX
252b5132 28
2e98a7bd 29AM_INIT_AUTOMAKE
64ac50ac 30AM_MAINTAINER_MODE
252b5132 31
b879806f
AM
32AC_PROG_CC
33AC_PROG_CXX
68880f31 34AC_PROG_GREP
b879806f
AM
35AC_GNU_SOURCE
36AC_USE_SYSTEM_EXTENSIONS
37AC_PROG_INSTALL
38
39LT_INIT
40ACX_LARGEFILE
41
8e523c23 42AC_ARG_WITH(lib-path, [ --with-lib-path=dir1:dir2... set default LIB_PATH],LIB_PATH=$withval)
252b5132
RH
43AC_ARG_ENABLE(targets,
44[ --enable-targets alternative target configurations],
45[case "${enableval}" in
da594c4a 46 yes | "") AC_MSG_ERROR(enable-targets option must specify target names or 'all')
252b5132
RH
47 ;;
48 no) enable_targets= ;;
49 *) enable_targets=$enableval ;;
50esac])dnl
51AC_ARG_ENABLE(64-bit-bfd,
52[ --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)],
53[case "${enableval}" in
54 yes) want64=true ;;
55 no) want64=false ;;
56 *) AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;;
57esac],[want64=false])dnl
58
9c8ebd6a
DJ
59AC_ARG_WITH(sysroot,
60[ --with-sysroot[=DIR] Search for usr/lib et al within DIR.],
61[
62 case ${with_sysroot} in
715d1656 63 yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
9c8ebd6a
DJ
64 *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
65 esac
66
67 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
68 use_sysroot=yes
69
fa1e8d8e
RS
70 if test "x$prefix" = xNONE; then
71 test_prefix=/usr/local
72 else
73 test_prefix=$prefix
74 fi
9c8ebd6a 75 if test "x$exec_prefix" = xNONE; then
fa1e8d8e 76 test_exec_prefix=$test_prefix
9c8ebd6a 77 else
fa1e8d8e 78 test_exec_prefix=$exec_prefix
9c8ebd6a
DJ
79 fi
80 case ${TARGET_SYSTEM_ROOT} in
715d1656 81 "${test_prefix}"|"${test_prefix}/"*|\
fa1e8d8e
RS
82 "${test_exec_prefix}"|"${test_exec_prefix}/"*|\
83 '${prefix}'|'${prefix}/'*|\
715d1656 84 '${exec_prefix}'|'${exec_prefix}/'*)
9c8ebd6a
DJ
85 t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
86 TARGET_SYSTEM_ROOT_DEFINE="$t"
87 ;;
88 esac
89], [
90 use_sysroot=no
91 TARGET_SYSTEM_ROOT=
92 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"'
93])
94AC_SUBST(use_sysroot)
95AC_SUBST(TARGET_SYSTEM_ROOT)
96AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
97
4fda8867
NC
98dnl Use --enable-gold to decide if this linker should be the default.
99dnl "install_as_default" is set to false if gold is the default linker.
100dnl "installed_linker" is the installed BFD linker name.
101AC_ARG_ENABLE(gold,
c7791212 102[[ --enable-gold[=ARG] build gold [ARG={default,yes,no}]]],
bf9ef603 103[case "${enableval}" in
c7791212 104 default)
4fda8867
NC
105 install_as_default=no
106 installed_linker=ld.bfd
107 ;;
c7791212 108 yes|no)
4fda8867
NC
109 install_as_default=yes
110 installed_linker=ld.bfd
111 ;;
112 *)
113 AC_MSG_ERROR([invalid --enable-gold argument])
114 ;;
115 esac],
c7791212
NC
116[install_as_default=yes
117 installed_linker=ld.bfd])
4fda8867
NC
118AC_SUBST(install_as_default)
119AC_SUBST(installed_linker)
120
7fb9f789
NC
121AC_ARG_ENABLE([got],
122AS_HELP_STRING([--enable-got=<type>],
123 [GOT handling scheme (target, single, negative, multigot)]),
124[case "${enableval}" in
125 target | single | negative | multigot) got_handling=$enableval ;;
da594c4a 126 *) AC_MSG_ERROR(bad value ${enableval} for --enable-got option) ;;
7fb9f789
NC
127esac],
128[got_handling=target])
129
130case "${got_handling}" in
131 target)
132 AC_DEFINE([GOT_HANDLING_DEFAULT], [GOT_HANDLING_TARGET_DEFAULT],
133 [Define to choose default GOT handling scheme]) ;;
134 single)
135 AC_DEFINE([GOT_HANDLING_DEFAULT], [GOT_HANDLING_SINGLE],
136 [Define to choose default GOT handling scheme]) ;;
137 negative)
138 AC_DEFINE([GOT_HANDLING_DEFAULT], [GOT_HANDLING_NEGATIVE],
139 [Define to choose default GOT handling scheme]) ;;
140 multigot)
141 AC_DEFINE([GOT_HANDLING_DEFAULT], [GOT_HANDLING_MULTIGOT],
142 [Define to choose default GOT handling scheme]) ;;
da594c4a 143 *) AC_MSG_ERROR(bad value ${got_handling} for --enable-got option) ;;
7fb9f789
NC
144esac
145
6c3bc0f8
NC
146# PR gas/19109
147# Decide the default method for compressing debug sections.
148ac_default_compressed_debug_sections=unset
149# Provide a configure time option to override our default.
150AC_ARG_ENABLE(compressed_debug_sections,
4894d80b
L
151 AS_HELP_STRING([--enable-compressed-debug-sections={all,ld,none}],
152 [compress debug sections by default])],
153[case ,"${enableval}", in
9b4c123c 154 ,yes, | ,all, | *,ld,*) ac_default_compressed_debug_sections=yes ;;
4894d80b 155 ,no, | ,none,) ac_default_compressed_debug_sections=no ;;
6c3bc0f8
NC
156esac])dnl
157
647e4d46
L
158# Decide if -z relro should be enabled in ELF linker by default.
159ac_default_ld_z_relro=unset
160# Provide a configure time option to override our default.
161AC_ARG_ENABLE(relro,
162 AS_HELP_STRING([--enable-relro],
163 [enable -z relro in ELF linker by default]),
164[case "${enableval}" in
165 yes) ac_default_ld_z_relro=1 ;;
166 no) ac_default_ld_z_relro=0 ;;
167esac])dnl
168
502bdb00 169AM_BINUTILS_WARNINGS
a2d91340 170
44350750
NC
171AM_LC_MESSAGES
172
da594c4a 173AC_CONFIG_HEADERS([config.h:config.in])
252b5132 174
df7b86aa
NC
175# PR 14072
176AH_VERBATIM([00_CONFIG_H_CHECK],
177[/* Check that config.h is #included before system headers
178 (this works only for glibc, but that should be enough). */
d17dce55 179#if defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__CONFIG_H__)
df7b86aa
NC
180# error config.h must be #included before system headers
181#endif
182#define __CONFIG_H__ 1])
183
252b5132
RH
184if test -z "$target" ; then
185 AC_MSG_ERROR(Unrecognized target system type; please check config.sub.)
186fi
187if test -z "$host" ; then
188 AC_MSG_ERROR(Unrecognized host system type; please check config.sub.)
189fi
190
191# host-specific stuff:
192
63a79b61 193ALL_LINGUAS="fr sv tr es da vi zh_CN zh_TW ga fi id bg it uk"
20e95c23
DJ
194ZW_GNU_GETTEXT_SISTER_DIR
195AM_PO_SUBDIRS
252b5132
RH
196
197AC_EXEEXT
198
199AC_PROG_YACC
200AM_PROG_LEX
201
202AM_MAINTAINER_MODE
d5fbea21 203AM_CONDITIONAL(GENINSRC_NEVER, false)
eccbf555 204ACX_PROG_CMP_IGNORE_INITIAL
252b5132
RH
205
206. ${srcdir}/configure.host
207
208AC_SUBST(HDEFINES)
209AC_SUBST(HOSTING_CRT0)
6738cadc 210AC_SUBST(HOSTING_SCRT0)
252b5132 211AC_SUBST(HOSTING_LIBS)
b27caf75 212AC_SUBST(HOSTING_SLIBS)
252b5132
RH
213AC_SUBST(NATIVE_LIB_DIRS)
214
58797674 215AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h elf-hints.h limits.h locale.h sys/param.h)
5d3236ee 216AC_CHECK_HEADERS(fcntl.h sys/file.h sys/time.h sys/stat.h)
208a4923 217ACX_HEADER_STRING
44350750 218AC_CHECK_FUNCS(glob mkstemp realpath sbrk setlocale waitpid)
199fa1b7 219AC_CHECK_FUNCS(getauxval open lseek close)
252b5132
RH
220AC_HEADER_DIRENT
221
2aec968d
L
222dnl AC_CHECK_HEADERS(sys/mman.h)
223AC_FUNC_MMAP
224
b879806f
AM
225AC_SEARCH_LIBS([dlopen], [dl])
226AM_CONDITIONAL([ENABLE_PLUGINS], [test x$plugins = xyes])
5d3236ee 227
02ecc8e9 228AC_ARG_ENABLE(initfini-array,
26e3a0c9
AM
229[ --disable-initfini-array do not use .init_array/.fini_array sections],
230[case "${enableval}" in
231 yes|no) ;;
232 *) AC_MSG_ERROR([invalid --enable-initfini-array argument]) ;;
233 esac], [enable_initfini_array=yes])
02ecc8e9
L
234AC_SUBST(enable_initfini_array)
235if test $enable_initfini_array = yes; then
236 AC_DEFINE(HAVE_INITFINI_ARRAY, 1,
237 [Define .init_array/.fini_array sections are available and working.])
238fi
239
34875e64
NC
240AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
241AC_CACHE_VAL(ld_cv_decl_getopt_unistd_h,
da594c4a 242[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
34875e64
NC
243ld_cv_decl_getopt_unistd_h=yes, ld_cv_decl_getopt_unistd_h=no)])
244AC_MSG_RESULT($ld_cv_decl_getopt_unistd_h)
245if test $ld_cv_decl_getopt_unistd_h = yes; then
246 AC_DEFINE([HAVE_DECL_GETOPT], 1,
247 [Is the prototype for getopt in <unistd.h> in the expected format?])
248fi
bf9ef603 249
252b5132
RH
250BFD_BINARY_FOPEN
251
502bdb00 252AC_CHECK_DECLS([strstr, free, sbrk, getenv, environ])
252b5132 253
597e2591
ILT
254# When converting linker scripts into strings for use in emulation
255# files, use astring.sed if the compiler supports ANSI string
256# concatenation, or ostring.sed otherwise. This is to support the
257# broken Microsoft MSVC compiler, which limits the length of string
258# constants, while still supporting pre-ANSI compilers which do not
259# support string concatenation.
e4dabd0e 260AC_MSG_CHECKING([whether ANSI C string concatenation works])
597e2591 261AC_CACHE_VAL(ld_cv_string_concatenation,
da594c4a
AM
262[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [char *a = "a" "a";])],
263 ld_cv_string_concatenation=yes,
264 ld_cv_string_concatenation=no)])
e4dabd0e
AS
265AC_MSG_RESULT($ld_cv_string_concatenation)
266if test "$ld_cv_string_concatenation" = "yes"; then
597e2591
ILT
267 STRINGIFY=astring.sed
268else
269 STRINGIFY=ostring.sed
270fi
271AC_SUBST(STRINGIFY)
272
252b5132
RH
273# target-specific stuff:
274
275all_targets=
276EMUL=
277all_emuls=
278all_emul_extras=
ba2be581 279all_libpath=
252b5132
RH
280
281dnl We need to get an arbitrary number of tdir definitions into
282dnl Makefile. We can't do it using AC_SUBST, because autoconf does
283dnl not permit literal newlines in an AC_SUBST variables. So we use a
284dnl file.
285rm -f tdirs
286
bf9ef603 287# If the host is 64-bit, then we enable 64-bit targets by default.
1110793a 288# This is consistent with what ../bfd/configure.ac does.
bf9ef603
RM
289if test x${want64} = xfalse; then
290 AC_CHECK_SIZEOF(void *)
291 if test "x${ac_cv_sizeof_void_p}" = "x8"; then
292 want64=true
293 fi
294fi
295
c58212ea
L
296elf_list_options=FALSE
297elf_shlib_list_options=FALSE
298elf_plt_unwind_list_options=FALSE
252b5132
RH
299for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
300do
301 if test "$targ_alias" = "all"; then
302 all_targets=true
82d8e420
L
303 elf_list_options=TRUE
304 elf_shlib_list_options=TRUE
305 elf_plt_unwind_list_options=TRUE
252b5132
RH
306 else
307 # Canonicalize the secondary target names.
42ecbf5e 308 result=`$ac_config_sub $targ_alias 2>/dev/null`
252b5132
RH
309 if test -n "$result"; then
310 targ=$result
311 else
312 targ=$targ_alias
313 fi
314
315 . ${srcdir}/configure.tgt
316
317 if test "$targ" = "$target"; then
318 EMUL=$targ_emul
319 fi
320
314e9a4e
L
321 if test x${want64} = xfalse; then
322 . ${srcdir}/../bfd/config.bfd
323 fi
324
534d3119
L
325 if test x${want64} = xtrue; then
326 targ_extra_emuls="$targ_extra_emuls $targ64_extra_emuls"
327 targ_extra_libpath="$targ_extra_libpath $targ64_extra_libpath"
328 fi
329
3336653a 330 for i in $targ_emul $targ_extra_emuls $targ_extra_libpath; do
252b5132 331 case " $all_emuls " in
8c3fff59
AM
332 *" e${i}.o "*) ;;
333 *)
334 all_emuls="$all_emuls e${i}.o"
335 eval result=\$tdir_$i
336 test -z "$result" && result=$targ_alias
337 echo tdir_$i=$result >> tdirs
c58212ea
L
338 case "${i}" in
339 *elf*)
340 elf_list_options=TRUE
68880f31
CLT
341 ;;
342 *)
343 if $GREP "TEMPLATE_NAME=elf32" ${srcdir}/emulparams/${i}.sh >/dev/null 2>/dev/null; then
344 elf_list_options=TRUE
345 fi
346 ;;
347 esac
348 if test "$elf_list_options" = "TRUE"; then
c58212ea
L
349 . ${srcdir}/emulparams/${i}.sh
350 if test x${GENERATE_SHLIB_SCRIPT} = xyes; then
351 elf_shlib_list_options=TRUE
352 fi
353 if test x${PLT_UNWIND} = xyes; then
354 elf_plt_unwind_list_options=TRUE
355 fi
68880f31 356 fi
c58212ea 357 ;;
252b5132
RH
358 esac
359 done
360
ba2be581 361 for i in $targ_emul $targ_extra_libpath; do
3336653a
RH
362 case " $all_libpath " in
363 *" ${i} "*) ;;
364 *)
ba2be581
RH
365 if test -z "$all_libpath"; then
366 all_libpath=${i}
367 else
368 all_libpath="$all_libpath ${i}"
369 fi
3336653a
RH
370 ;;
371 esac
372 done
373
252b5132
RH
374 for i in $targ_extra_ofiles; do
375 case " $all_emul_extras " in
376 *" ${i} "*) ;;
377 *)
378 all_emul_extras="$all_emul_extras ${i}"
379 ;;
380 esac
381 done
5063daf7 382
252b5132
RH
383 fi
384done
385
621ff761 386if test x$ac_default_compressed_debug_sections = xyes ; then
6c3bc0f8
NC
387 AC_DEFINE(DEFAULT_FLAG_COMPRESS_DEBUG, 1, [Define if you want compressed debug sections by default.])
388fi
389
647e4d46
L
390if test "${ac_default_ld_z_relro}" = unset; then
391 ac_default_ld_z_relro=0
392fi
393AC_DEFINE_UNQUOTED(DEFAULT_LD_Z_RELRO,
394 $ac_default_ld_z_relro,
395 [Define to 1 if you want to enable -z relro in ELF linker by default.])
396
c58212ea
L
397AC_SUBST(elf_list_options)
398AC_SUBST(elf_shlib_list_options)
399AC_SUBST(elf_plt_unwind_list_options)
252b5132
RH
400AC_SUBST(EMUL)
401
402TDIRS=tdirs
403AC_SUBST_FILE(TDIRS)
404
252b5132
RH
405if test x${all_targets} = xtrue; then
406 if test x${want64} = xtrue; then
407 EMULATION_OFILES='$(ALL_EMULATIONS) $(ALL_64_EMULATIONS)'
9d069ac3 408 EMUL_EXTRA_OFILES='$(ALL_EMUL_EXTRA_OFILES) $(ALL_64_EMUL_EXTRA_OFILES)'
252b5132
RH
409 else
410 EMULATION_OFILES='$(ALL_EMULATIONS)'
9d069ac3 411 EMUL_EXTRA_OFILES='$(ALL_EMUL_EXTRA_OFILES)'
252b5132 412 fi
252b5132
RH
413else
414 EMULATION_OFILES=$all_emuls
415 EMUL_EXTRA_OFILES=$all_emul_extras
416fi
417AC_SUBST(EMULATION_OFILES)
418AC_SUBST(EMUL_EXTRA_OFILES)
8e523c23 419AC_SUBST(LIB_PATH)
252b5132 420
3336653a
RH
421EMULATION_LIBPATH=$all_libpath
422AC_SUBST(EMULATION_LIBPATH)
423
252b5132
RH
424if test x${enable_static} = xno; then
425 TESTBFDLIB="--rpath ../bfd/.libs ../bfd/.libs/libbfd.so"
426else
427 TESTBFDLIB="../bfd/.libs/libbfd.a"
428fi
429AC_SUBST(TESTBFDLIB)
430
93a6d436
JL
431target_vendor=${target_vendor=$host_vendor}
432case "$target_vendor" in
433 hp) EXTRA_SHLIB_EXTENSION=".sl" ;;
434 *) EXTRA_SHLIB_EXTENSION= ;;
435esac
f234d5fe
NC
436
437case "$target_os" in
438 lynxos) EXTRA_SHLIB_EXTENSION=".a" ;;
439esac
440
93a6d436
JL
441if test x${EXTRA_SHLIB_EXTENSION} != x ; then
442 AC_DEFINE_UNQUOTED(EXTRA_SHLIB_EXTENSION, "$EXTRA_SHLIB_EXTENSION",
443 [Additional extension a shared object might have.])
444fi
445
31dd3154 446dnl Required by html, pdf, install-pdf and install-html
108a6f8e
CD
447AC_SUBST(datarootdir)
448AC_SUBST(docdir)
449AC_SUBST(htmldir)
31dd3154 450AC_SUBST(pdfdir)
108a6f8e 451
da594c4a
AM
452AC_CONFIG_FILES(Makefile po/Makefile.in:po/Make-in)
453AC_OUTPUT
This page took 0.764026 seconds and 4 git commands to generate.