]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gas/configure.ac
Revert "MIPS: default r6 if vendor is img"
[thirdparty/binutils-gdb.git] / gas / configure.ac
CommitLineData
252b5132
RH
1dnl Process this file with autoconf to produce a configure script.
2dnl
3dnl And be careful when changing it! If you must add tests with square
4dnl brackets, be sure changequote invocations surround it.
5dnl
d87bef3a 6dnl Copyright (C) 2012-2023 Free Software Foundation, Inc.
5bf135a7
NC
7dnl
8dnl This file is free software; you can redistribute it and/or modify
9dnl it under the terms of the GNU General Public License as published by
10dnl the Free Software Foundation; either version 3 of the License, or
11dnl (at your option) any later version.
3739860c 12dnl
5bf135a7
NC
13dnl This program is distributed in the hope that it will be useful,
14dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
15dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16dnl GNU General Public License for more details.
3739860c 17dnl
5bf135a7
NC
18dnl You should have received a copy of the GNU General Public License
19dnl along with this program; see the file COPYING3. If not see
20dnl <http://www.gnu.org/licenses/>.
252b5132
RH
21dnl
22dnl v2.5 needed for --bindir et al
2e98a7bd
AM
23m4_include([../bfd/version.m4])
24AC_INIT([gas], BFD_VERSION)
da594c4a 25AC_CONFIG_SRCDIR(as.h)
252b5132 26
13b2be9c
DJ
27dnl Autoconf 2.57 will find the aux dir without this. However, unless
28dnl we specify this explicitly, automake-1.7 will assume that ylwrap is in
29dnl gas/ instead of gas/../.
30AC_CONFIG_AUX_DIR(..)
da594c4a 31AC_CANONICAL_TARGET
252b5132 32
2e98a7bd 33AM_INIT_AUTOMAKE
3b4d5621 34AM_SILENT_RULES([yes])
252b5132 35
ce2cded5
L
36AC_PROG_CC
37AC_GNU_SOURCE
7357c5b6 38AC_USE_SYSTEM_EXTENSIONS
ce2cded5 39
da594c4a 40LT_INIT
b879806f 41ACX_LARGEFILE
2d7f2507 42ACX_PROG_CMP_IGNORE_INITIAL
252b5132 43
252b5132 44AC_ARG_ENABLE(targets,
241a6c40 45[ --enable-targets alternative target configurations besides the primary],
252b5132 46[case "${enableval}" in
da594c4a 47 yes | "") AC_MSG_ERROR(enable-targets option must specify target names or 'all')
252b5132
RH
48 ;;
49 no) enable_targets= ;;
50 *) enable_targets=$enableval ;;
51esac])dnl
c43a438d 52
e044973b
AM
53ac_checking=
54. ${srcdir}/../bfd/development.sh
55test "$development" = true && ac_checking=yes
c43a438d
AM
56AC_ARG_ENABLE(checking,
57[ --enable-checking enable run-time checks],
58[case "${enableval}" in
59 no|none) ac_checking= ;;
60 *) ac_checking=yes ;;
61esac])dnl
62if test x$ac_checking != x ; then
63 AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.])
64fi
65
6c3bc0f8
NC
66# PR gas/19109
67# Decide the default method for compressing debug sections.
68ac_default_compressed_debug_sections=unset
69# Provide a configure time option to override our default.
70AC_ARG_ENABLE(compressed_debug_sections,
4894d80b 71 AS_HELP_STRING([--enable-compressed-debug-sections={all,gas,none}],
27ba7c94 72 [compress debug sections by default]),
4894d80b 73[case ,"${enableval}", in
9b4c123c 74 ,yes, | ,all, | *,gas,*) ac_default_compressed_debug_sections=yes ;;
4894d80b 75 ,no, | ,none,) ac_default_compressed_debug_sections=no ;;
6c3bc0f8
NC
76 *) ac_default_compressed_debug_sections=unset ;;
77esac])dnl
78
b0c295e1
ML
79# Select default compression algorithm.
80ac_default_compressed_debug_sections_algorithm=COMPRESS_DEBUG_GABI_ZLIB
81AC_ARG_ENABLE(default_compressed_debug_sections_algorithm,
82 AS_HELP_STRING([--enable-default-compressed-debug-sections-algorithm={zlib,zstd}],
83 [Default compression algorithm for --enable-compressed-debug-sections.]),
84[case "${enableval}" in
85 zstd) ac_default_compressed_debug_sections_algorithm=COMPRESS_DEBUG_ZSTD ;;
86esac])dnl
87
0cb4071e
L
88# PR gas/19520
89# Decide if x86 assembler should generate relax relocations.
90ac_default_x86_relax_relocations=unset
91# Provide a configure time option to override our default.
92AC_ARG_ENABLE(x86_relax_relocations,
93 AS_HELP_STRING([--enable-x86-relax-relocations],
94 [generate x86 relax relocations by default]),
95[case "${enableval}" in
96 no) ac_default_x86_relax_relocations=0 ;;
97esac])dnl
98
b8871f35
L
99# Decide if ELF assembler should generate common symbols with the
100# STT_COMMON type.
101ac_default_elf_stt_common=unset
102# Provide a configure time option to override our default.
103AC_ARG_ENABLE(elf_stt_common,
104 AS_HELP_STRING([--enable-elf-stt-common],
105 [generate ELF common symbols with STT_COMMON type by default]),
106[case "${enableval}" in
107 yes) ac_default_elf_stt_common=1 ;;
108esac])dnl
109
0df8ad28
NC
110
111# Decide if the ELF assembler should default to generating
112# GNU Build notes if none are provided by the input.
113ac_default_generate_build_notes=0
114# Provide a configuration option to override the default.
115AC_ARG_ENABLE(generate_build_notes,
116 AS_HELP_STRING([--enable-generate-build-notes],
117 [generate GNU Build notes if none are provided by the input]),
118[case "${enableval}" in
119 yes) ac_default_generate_build_notes=1 ;;
120 no) ac_default_generate_build_notes=0 ;;
121esac])dnl
122
6f2117ba
PH
123# Decide if the MIPS assembler should default to enable MIPS fix Loongson3
124# LLSC errata.
125ac_default_mips_fix_loongson3_llsc=unset
126# Provide a configuration option to override the default.
127AC_ARG_ENABLE(mips-fix-loongson3-llsc,
128 AS_HELP_STRING([--enable-mips-fix-loongson3-llsc],
129 [enable MIPS fix Loongson3 LLSC errata]),
130[case "${enableval}" in
131 yes) ac_default_mips_fix_loongson3_llsc=1 ;;
132 no) ac_default_mips_fix_loongson3_llsc=0 ;;
133esac])dnl
0df8ad28 134
b4a3a7b4
L
135# Decide if the x86 ELF assembler should default to generating GNU x86
136# used ISA and feature properties.
137ac_default_generate_x86_used_note=unset
138# Provide a configuration option to override the default.
139AC_ARG_ENABLE(x86-used-note,
140 AS_HELP_STRING([--enable-x86-used-note],
141 [generate GNU x86 used ISA and feature properties]),
142[case "${enableval}" in
143 yes) ac_default_generate_x86_used_note=1 ;;
144 no) ac_default_generate_x86_used_note=0 ;;
145esac])dnl
146
2dc8dd17
JW
147# Decide if the RISC-V ELF assembler should default to generating attribute.
148ac_default_generate_riscv_attr=unset
149# Provide a configuration option to override the default.
150AC_ARG_ENABLE(default-riscv-attribute,
151 AS_HELP_STRING([--enable-default-riscv-attribute],
152 [generate RISC-V arch attribute by default]),
153[case "${enableval}" in
154 yes) ac_default_generate_riscv_attr=1 ;;
155 no) ac_default_generate_riscv_attr=0 ;;
156esac])dnl
b4a3a7b4 157
252b5132
RH
158using_cgen=no
159
9e9b66a9 160AM_BINUTILS_WARNINGS
a2d91340 161
252b5132 162# Generate a header file
da594c4a 163AC_CONFIG_HEADERS(config.h:config.in)
252b5132 164
9004b6bd
AB
165dnl Option --with-cpu=TYPE allows configure type control of the default
166dnl cpu type within the assembler. Currently only the ARC target
167dnl supports this feature, but others may be added in the future.
168AC_ARG_WITH(cpu,
169 AS_HELP_STRING([--with-cpu=CPU],
170 [default cpu variant is CPU (currently only supported on ARC)]),
171 [AC_DEFINE_UNQUOTED(TARGET_WITH_CPU,
172 "${with_cpu}",
173 [Target specific CPU.])],
174 [])
175
df7b86aa
NC
176# PR 14072
177AH_VERBATIM([00_CONFIG_H_CHECK],
178[/* Check that config.h is #included before system headers
179 (this works only for glibc, but that should be enough). */
d17dce55 180#if defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__CONFIG_H__)
df7b86aa
NC
181# error config.h must be #included before system headers
182#endif
183#define __CONFIG_H__ 1])
184
76a27922
ILT
185# If we are on a DOS filesystem, we must use gdb.ini rather than
186# .gdbinit.
76a27922 187case "${host}" in
591d4689 188 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-windows*)
76a27922 189 GDBINIT="gdb.ini"
13b2be9c
DJ
190 AC_CONFIG_FILES(gdb.ini:gdbinit.in)
191 ;;
192 *)
193 GDBINIT=".gdbinit"
194 AC_CONFIG_FILES(.gdbinit:gdbinit.in)
76a27922
ILT
195 ;;
196esac
197AC_SUBST(GDBINIT)
198
a8eb42a8 199#We need this for the host.
44f2f9d2
AM
200AC_C_BIGENDIAN
201
252b5132
RH
202te_file=generic
203
204# Makefile target for installing gas in $(tooldir)/bin.
205install_tooldir=install-exec-tooldir
206
207canon_targets=""
15886821 208all_targets=no
252b5132
RH
209if test -n "$enable_targets" ; then
210 for t in `echo $enable_targets | sed 's/,/ /g'`; do
15886821
L
211 if test $t = "all"; then
212 all_targets=yes
213 continue
214 fi
6d83c84b 215 result=`$ac_config_sub $t 2>/dev/null`
252b5132
RH
216 if test -n "$result" ; then
217 canon_targets="$canon_targets $result"
218# else
219# # Permit "all", etc. We don't support it yet though.
220# canon_targets="$canon_targets $t"
221 fi
222 done
223 GAS_UNIQ(canon_targets)
224fi
225
226emulations=""
227
228for this_target in $target $canon_targets ; do
229
14ee9f48
ILT
230 targ=${this_target}
231 . ${srcdir}/configure.tgt
232
233 case ${target_cpu} in
234 crisv32)
235 AC_DEFINE_UNQUOTED(DEFAULT_CRIS_ARCH, $arch,
236 [Default CRIS architecture.])
237 ;;
252b5132
RH
238 esac
239
240 if test ${this_target} = $target ; then
241 target_cpu_type=${cpu_type}
242 elif test ${target_cpu_type} != ${cpu_type} ; then
243 continue
244 fi
245
14ee9f48 246 generic_target=${cpu_type}-${target_vendor}-${target_os}
252b5132 247 case ${generic_target} in
79500683 248 i386-*-msdosdjgpp* \
3002e78a 249 | i386-*-go32*)
14ee9f48
ILT
250 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
251 ;;
79500683 252
939b95c7
L
253 i386-*-linux-* | x86_64-*-linux-*)
254 if test ${this_target} = $target \
255 && test ${ac_default_generate_x86_used_note} = unset; then
256 ac_default_generate_x86_used_note=1
257 fi
258 ;;
259
0cb4071e
L
260 i386-*-solaris2 \
261 | x86_64-*-solaris2 \
262 | i386-*-solaris2.[[0-9]] \
263 | i386-*-solaris2.1[[01]] \
264 | x86_64-*-solaris2.1[[01]])
265 if test ${this_target} = $target \
266 && test ${ac_default_x86_relax_relocations} = unset; then
267 ac_default_x86_relax_relocations=0
268 fi
269 ;;
270
7ba29e2a
NC
271 microblaze*)
272 ;;
273
e5231592
RS
274changequote(,)dnl
275 ppc-*-aix[5-9].*)
276changequote([,])dnl
14ee9f48 277 AC_DEFINE(AIX_WEAK_SUPPORT, 1,
f8fc3443 278 [Define if using AIX 5.2 value for C_WEAKEXT.])
14ee9f48 279 ;;
14ee9f48
ILT
280 ppc-*-solaris*)
281 if test ${this_target} = $target; then
282 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
283 [Define if default target is PowerPC Solaris.])
284 fi
285 if test x${endian} = xbig; then
286 AC_MSG_ERROR(Solaris must be configured little endian)
287 fi
288 ;;
252b5132
RH
289 esac
290
291 if test ${this_target} = $target ; then
292 endian_def=
293 if test x${endian} = xbig; then
294 endian_def=1
295 elif test x${endian} = xlittle; then
296 endian_def=0
297 fi
298 if test x${endian_def} != x; then
299 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
300 [Define as 1 if big endian.])
301 fi
302 fi
303
252b5132
RH
304# Other random stuff.
305
316f5878
RS
306 case ${cpu_type} in
307 mips)
308 # Set mips_cpu to the name of the default CPU.
309 case ${target_cpu} in
310 mips | mipsbe | mipseb | mipsle | mipsel | mips64 | mips64el)
311 mips_cpu=from-abi
312 ;;
313 mipsisa32 | mipsisa32el)
314 mips_cpu=mips32
315 ;;
af7ee8bf
CD
316 mipsisa32r2 | mipsisa32r2el)
317 mips_cpu=mips32r2
318 ;;
ae52f483
AB
319 mipsisa32r3 | mipsisa32r3el)
320 mips_cpu=mips32r3
321 ;;
322 mipsisa32r5 | mipsisa32r5el)
323 mips_cpu=mips32r5
324 ;;
7361da2c
AB
325 mipsisa32r6 | mipsisa32r6el)
326 mips_cpu=mips32r6
327 ;;
316f5878
RS
328 mipsisa64 | mipsisa64el)
329 mips_cpu=mips64
330 ;;
5f74bc13
CD
331 mipsisa64r2 | mipsisa64r2el)
332 mips_cpu=mips64r2
333 ;;
ae52f483
AB
334 mipsisa64r3 | mipsisa64r3el)
335 mips_cpu=mips64r3
336 ;;
337 mipsisa64r5 | mipsisa64r5el)
338 mips_cpu=mips64r5
339 ;;
7361da2c
AB
340 mipsisa64r6 | mipsisa64r6el)
341 mips_cpu=mips64r6
342 ;;
316f5878
RS
343 mipstx39 | mipstx39el)
344 mips_cpu=r3900
345 ;;
8f6847cb
RS
346 mips64vr | mips64vrel)
347 mips_cpu=vr4100
348 ;;
5f74bc13 349 mipsisa32r2* | mipsisa64r2*)
af7ee8bf
CD
350changequote(,)dnl
351 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
7361da2c
AB
352changequote([,])dnl
353 ;;
354 mipsisa32r6* | mipsisa64r6*)
355changequote(,)dnl
356 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r6//' -e 's/el$//'`
af7ee8bf
CD
357changequote([,])dnl
358 ;;
316f5878
RS
359 mips64* | mipsisa64* | mipsisa32*)
360changequote(,)dnl
361 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
e407c74b
NC
362changequote([,])dnl
363 ;;
364 mips*)
365changequote(,)dnl
366 mips_cpu=`echo $target_cpu | sed -e 's/^mips//' -e 's/el$//'`
316f5878
RS
367changequote([,])dnl
368 ;;
369 *)
da594c4a 370 AC_MSG_ERROR($target_cpu isn't a supported MIPS CPU name)
316f5878
RS
371 ;;
372 esac
373 # See whether it's appropriate to set E_MIPS_ABI_O32 for o32
374 # binaries. It's a GNU extension that some OSes don't understand.
316f5878
RS
375 case ${target} in
376 *-*-irix*)
377 use_e_mips_abi_o32=0
378 ;;
379 *)
380 use_e_mips_abi_o32=1
381 ;;
382 esac
383 # Decide whether to generate 32-bit or 64-bit code by default.
384 # Used to resolve -march=from-abi when an embedded ABI is selected.
385 case ${target} in
386 mips64*-*-* | mipsisa64*-*-*)
387 mips_default_64bit=1
388 ;;
389 *)
390 mips_default_64bit=0
391 ;;
392 esac
cac012d6
AO
393 # Decide which ABI to target by default.
394 case ${target} in
32f1c803
YS
395 mips*64*-linux-gnuabi64)
396 mips_default_abi=N64_ABI
397 ;;
398 mips*64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \
0984958b 399 | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*)
cac012d6
AO
400 mips_default_abi=N32_ABI
401 ;;
dbad6904 402 mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu)
cac012d6
AO
403 mips_default_abi=O32_ABI
404 ;;
26eebcf5
MK
405 mips64*-openbsd*)
406 mips_default_abi=N64_ABI
407 ;;
cac012d6
AO
408 *)
409 mips_default_abi=NO_ABI
410 ;;
411 esac
316f5878
RS
412 AC_DEFINE_UNQUOTED(MIPS_CPU_STRING_DEFAULT, "$mips_cpu",
413 [Default CPU for MIPS targets. ])
414 AC_DEFINE_UNQUOTED(USE_E_MIPS_ABI_O32, $use_e_mips_abi_o32,
415 [Allow use of E_MIPS_ABI_O32 on MIPS targets. ])
416 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_64BIT, $mips_default_64bit,
417 [Generate 64-bit code by default on MIPS targets. ])
cac012d6
AO
418 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi,
419 [Choose a default ABI for MIPS targets. ])
316f5878
RS
420 ;;
421 esac
422
252b5132
RH
423 # Do we need the opcodes library?
424 case ${cpu_type} in
8e0eb7c6 425 vax | tic30 | i386 | arm)
252b5132
RH
426 ;;
427
428 *)
429 need_opcodes=yes
430
431 case "${enable_shared}" in
432 yes) shared_opcodes=true ;;
433 *opcodes*) shared_opcodes=true ;;
434 *) shared_opcodes=false ;;
435 esac
252b5132
RH
436 ;;
437 esac
438
439 # Any other special object files needed ?
440 case ${cpu_type} in
07c1b327
CM
441
442 bfin)
55add51e 443 for f in config/bfin-parse.o config/bfin-lex-wrapper.o; do
e11078da
AM
444 case " $extra_objects " in
445 *" $f "*) ;;
446 *) extra_objects="$extra_objects $f" ;;
447 esac
448 done
449 ;;
07c1b327 450
f8861f5d
JM
451 bpf)
452 if test $this_target = $target ; then
453 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
454 fi
455 using_cgen=yes
456 ;;
73589c9d 457 epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | or1k)
252b5132
RH
458 using_cgen=yes
459 ;;
460
4462d7c4 461 loongarch)
462 for f in config/loongarch-parse.o config/loongarch-lex-wrapper.o; do
463 case " $extra_objects " in
464 *" $f "*) ;;
465 *) extra_objects="$extra_objects $f" ;;
466 esac
467 done
468 # --target=loongarch[32|64]-*-*. */
469 if test $this_target = $target ; then
470 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
471 fi
472 ;;
473
49f58d10
JB
474 m32c)
475 using_cgen=yes
476 ;;
0ebb9a87
DB
477 frv)
478 using_cgen=yes
479 ;;
252b5132 480 m68k)
55add51e 481 f=config/m68k-parse.o
e11078da
AM
482 case " $extra_objects " in
483 *" $f "*) ;;
484 *) extra_objects="$extra_objects $f" ;;
252b5132
RH
485 esac
486 ;;
487
280d71bf
DB
488 mep)
489 using_cgen=yes
490 ;;
491
252b5132 492 mips)
e11078da
AM
493 for f in itbl-parse.o itbl-lex-wrapper.o itbl-ops.o; do
494 case " $extra_objects " in
495 *" $f "*) ;;
496 *) extra_objects="$extra_objects $f" ;;
497 esac
498 done
252b5132
RH
499 ;;
500
4970f871 501 mt)
e11078da 502 using_cgen=yes
047af9ef
AH
503 ;;
504
35c08157 505 nds32)
fbaf61ad
NC
506 # setup NDS32_LINUX_TOOLCHAIN definition
507 if test "linux" = $em; then
508 AC_DEFINE(NDS32_LINUX_TOOLCHAIN, 1,
509 [Define value for nds32_linux_toolchain])
510 else
511 AC_DEFINE(NDS32_LINUX_TOOLCHAIN, 0,
512 [Define default value for nds32_linux_toolchain])
513 fi
514
e11078da 515 # Decide BASELINE, REDUCED_REGS, FPU_DP_EXT, FPU_SP_EXT features
35c08157
KLC
516 # based on arch_name.
517 AC_MSG_CHECKING(for default configuration of --with-arch)
518 if test "x${with_arch}" != x; then
519 case ${with_arch} in
e11078da 520 v2j | v2s | v2f | v2 | v3m | v3j | v3s | v3f | v3 )
35c08157
KLC
521 AC_DEFINE_UNQUOTED(NDS32_DEFAULT_ARCH_NAME, "$with_arch",
522 [Define value for nds32_arch_name])
e11078da 523 ;;
35c08157
KLC
524 *)
525 AC_MSG_ERROR(This kind of arch name does *NOT* exist!)
526 ;;
e11078da 527 esac
35c08157
KLC
528 fi
529 AC_MSG_RESULT($with_arch)
530
e11078da
AM
531 # Decide features one by one.
532 AC_MSG_CHECKING(for default configuration of --enable-dx-regs)
6cd8405e 533 if test "x${enable_dx_regs}" = xyes; then
35c08157
KLC
534 AC_DEFINE(NDS32_DEFAULT_DX_REGS, 1,
535 [Define value for nds32_dx_regs])
536 else
537 AC_DEFINE(NDS32_DEFAULT_DX_REGS, 0,
538 [Define default value for nds32_dx_regs])
539 fi
540 AC_MSG_RESULT($enable_dx_regs)
541
e11078da 542 AC_MSG_CHECKING(for default configuration of --enable-perf-ext)
6cd8405e 543 if test "x${enable_perf_ext}" = xno; then
35c08157
KLC
544 AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 0,
545 [Define value for nds32_perf_ext])
546 else
547 AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 1,
548 [Define default value for nds32_perf_ext])
549 fi
550 AC_MSG_RESULT($enable_perf_ext)
551
e11078da 552 AC_MSG_CHECKING(for default configuration of --enable-perf-ext2)
6cd8405e 553 if test "x${enable_perf_ext2}" = xno; then
35c08157
KLC
554 AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 0,
555 [Define value for nds32_perf_ext2])
556 else
557 AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 1,
558 [Define default value for nds32_perf_ext2])
559 fi
560 AC_MSG_RESULT($enable_perf_ext2)
561
e11078da 562 AC_MSG_CHECKING(for default configuration of --enable-string-ext)
6cd8405e 563 if test "x${enable_string_ext}" = xno; then
35c08157
KLC
564 AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 0,
565 [Define value for nds32_string_ext])
566 else
567 AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 1,
568 [Define default value for nds32_string_ext])
569 fi
570 AC_MSG_RESULT($enable_string_ext)
571
e11078da 572 AC_MSG_CHECKING(for default configuration of --enable-audio-ext)
6cd8405e 573 if test "x${enable_audio_ext}" = xno; then
35c08157
KLC
574 AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 0,
575 [Define value for nds32_audio_ext])
576 else
577 AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 1,
578 [Define default value for nds32_audio_ext])
579 fi
580 AC_MSG_RESULT($enable_audio_ext)
fbaf61ad
NC
581
582 AC_MSG_CHECKING(for default configuration of --enable-dsp-ext)
583 if test "x${enable_dsp_ext}" = xno; then
584 AC_DEFINE(NDS32_DEFAULT_DSP_EXT, 0,
585 [Define value for nds32_dsp_ext])
586 else
587 AC_DEFINE(NDS32_DEFAULT_DSP_EXT, 1,
588 [Define default value for nds32_dsp_ext])
589 fi
590 AC_MSG_RESULT($enable_dsp_ext)
591
592 AC_MSG_CHECKING(for default configuration of --enable-zol-ext)
593 if test "x${enable_zol_ext}" = xno; then
594 AC_DEFINE(NDS32_DEFAULT_ZOL_EXT, 0,
595 [Define value for nds32_zol_ext])
596 else
597 AC_DEFINE(NDS32_DEFAULT_ZOL_EXT, 1,
598 [Define default value for nds32_zol_ext])
599 fi
600 AC_MSG_RESULT($enable_zol_ext)
35c08157
KLC
601 ;;
602
8f595e9b 603 aarch64 | i386 | s390 | sparc)
252b5132
RH
604 if test $this_target = $target ; then
605 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
606 fi
607 ;;
93fbbb04 608
8f595e9b
NC
609 riscv)
610 # --target=riscv[32|64]-*-*. */
611 if test $this_target = $target ; then
612 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
613 fi
614
615 # --with-arch=<value>. The syntax of <value> is same as Gas option -march.
616 AC_MSG_CHECKING(for default configuration of --with-arch)
617 if test "x${with_arch}" != x; then
618 AC_DEFINE_UNQUOTED(DEFAULT_RISCV_ARCH_WITH_EXT, "$with_arch",
619 [Define default value for RISC-V -march.])
620 fi
621 AC_MSG_RESULT($with_arch)
622
623 # --with-isa-spec=[2.2|20190608|20191213].
624 AC_MSG_CHECKING(for default configuration of --with-isa-spec)
625 if test "x${with_isa_spec}" != x; then
626 AC_DEFINE_UNQUOTED(DEFAULT_RISCV_ISA_SPEC, "$with_isa_spec",
627 [Define default value for RISC-V -misa-spec.])
628 fi
629 AC_MSG_RESULT($with_isa_spec)
630
9fba0721 631 # --with-priv-spec=[1.9.1|1.10|1.11|1.12].
8f595e9b
NC
632 AC_MSG_CHECKING(for default configuration of --with-priv-spec)
633 if test "x${with_priv_spec}" != x; then
634 AC_DEFINE_UNQUOTED(DEFAULT_RISCV_PRIV_SPEC, "$with_priv_spec",
635 [Define default value for RISC-V -mpriv-spec])
636 fi
637 AC_MSG_RESULT($with_priv_spec)
638 ;;
639
99c513f6 640 rl78)
55add51e 641 f=config/rl78-parse.o
e11078da
AM
642 case " $extra_objects " in
643 *" $f "*) ;;
644 *) extra_objects="$extra_objects $f" ;;
645 esac
99c513f6
DD
646 ;;
647
c7927a3c 648 rx)
55add51e 649 f=config/rx-parse.o
e11078da
AM
650 case " $extra_objects " in
651 *" $f "*) ;;
652 *) extra_objects="$extra_objects $f" ;;
653 esac
c7927a3c
NC
654 ;;
655
93fbbb04
GK
656 xstormy16)
657 using_cgen=yes
658 ;;
659
e0001a05 660 xtensa)
e11078da
AM
661 f=config/xtensa-relax.o
662 case " $extra_objects " in
663 *" $f "*) ;;
664 *) extra_objects="$extra_objects $f" ;;
665 esac
e0001a05
NC
666 ;;
667
252b5132
RH
668 *)
669 ;;
670 esac
671
672 if test $using_cgen = yes ; then
e11078da
AM
673 f=cgen.o
674 case " $extra_objects " in
675 *" $f "*) ;;
676 *) extra_objects="$extra_objects $f" ;;
252b5132
RH
677 esac
678 fi
679
680# See if we really can support this configuration with the emulation code.
681
682 if test $this_target = $target ; then
252b5132
RH
683 obj_format=$fmt
684 te_file=$em
252b5132
RH
685 fi
686
e11078da
AM
687 case ${te_file} in
688 vms)
689 f=config/te-vms.o
690 case " $extra_objects " in
691 *" $f "*) ;;
692 *) extra_objects="$extra_objects $f" ;;
693 esac ;;
694 esac
58797674 695
252b5132
RH
696# From target name and format, produce a list of supported emulations.
697
698 case ${generic_target}-${fmt} in
e8044f35 699 mips-*-*-*) case "$endian" in
252b5132
RH
700 big) emulation="mipsbelf mipslelf mipself" ;;
701 *) emulation="mipslelf mipsbelf mipself" ;;
252b5132 702 esac ;;
119caedd
L
703 # i386-pc-pe-coff != i386-pc-coff.
704 i386-*-pe-coff) ;;
4c63da97
AM
705 # Uncommenting the next line will turn on support for i386 AOUT
706 # for the default linux configuration
707 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
708 #
709 i386-*-aout) emulation="i386aout" ;;
4ca72d38 710 i386-*-coff) emulation="i386coff" ;;
4c63da97 711 i386-*-elf) emulation="i386elf" ;;
3bcbcc3d 712
f9c19112
HPN
713 # Always all formats. The first stated emulation becomes the default.
714 cris-*-*aout*) emulation="crisaout criself" ;;
715 cris-*-*) emulation="criself crisaout" ;;
252b5132
RH
716 esac
717
718 emulations="$emulations $emulation"
719
720done
721
0cb4071e
L
722if test ${ac_default_x86_relax_relocations} = unset; then
723 ac_default_x86_relax_relocations=1
724fi
725AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_X86_RELAX_RELOCATIONS,
726 $ac_default_x86_relax_relocations,
727 [Define to 1 if you want to generate x86 relax relocations by default.])
728
b8871f35
L
729if test ${ac_default_elf_stt_common} = unset; then
730 ac_default_elf_stt_common=0
731fi
732AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_ELF_STT_COMMON,
733 $ac_default_elf_stt_common,
734 [Define to 1 if you want to generate ELF common symbols with the
735 STT_COMMON type by default.])
736
0df8ad28
NC
737AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_BUILD_NOTES,
738 $ac_default_generate_build_notes,
739 [Define to 1 if you want to generate GNU Build attribute notes
740 by default, if none are contained in the input.])
741
b4a3a7b4
L
742if test ${ac_default_generate_x86_used_note} = unset; then
743 ac_default_generate_x86_used_note=0
744fi
745AC_DEFINE_UNQUOTED(DEFAULT_X86_USED_NOTE,
746 $ac_default_generate_x86_used_note,
747 [Define to 1 if you want to generate GNU x86 used ISA and feature
748 properties by default.])
749
2dc8dd17 750if test ${ac_default_generate_riscv_attr} = unset; then
aa0587b2 751 ac_default_generate_riscv_attr=1
2dc8dd17
JW
752fi
753
754AC_DEFINE_UNQUOTED(DEFAULT_RISCV_ATTR,
755 $ac_default_generate_riscv_attr,
756 [Define to 1 if you want to generate RISC-V arch attribute by default.])
757
6f2117ba
PH
758if test ${ac_default_mips_fix_loongson3_llsc} = unset; then
759 ac_default_mips_fix_loongson3_llsc=0
760fi
761AC_DEFINE_UNQUOTED(DEFAULT_MIPS_FIX_LOONGSON3_LLSC,
762 $ac_default_mips_fix_loongson3_llsc,
763 [Define to 1 if you want to fix Loongson3 LLSC Errata by default.])
764
348ef89a 765if test x$ac_default_compressed_debug_sections = xyes ; then
6c3bc0f8
NC
766 AC_DEFINE(DEFAULT_FLAG_COMPRESS_DEBUG, 1, [Define if you want compressed debug sections by default.])
767fi
e12fe555 768
b0c295e1
ML
769AC_DEFINE_UNQUOTED(DEFAULT_COMPRESSED_DEBUG_ALGORITHM, $ac_default_compressed_debug_sections_algorithm,
770 [Default compression algorithm for --enable-compressed-debug-sections.])
771
15886821
L
772# Turn on all targets if possible
773if test ${all_targets} = "yes"; then
774 case ${target_cpu_type} in
775 i386)
776 case ${obj_format} in
777 aout)
778 emulations="$emulations i386coff i386elf"
779 ;;
780 coff)
781 emulations="$emulations i386aout i386elf"
782 ;;
783 elf)
784 emulations="$emulations i386aout i386coff"
785 ;;
786 esac
787 ;;
99ad8390
NC
788 x86_64)
789 case ${obj_format} in
790 aout)
791 emulations="$emulations i386coff i386elf"
792 ;;
793 coff)
794 emulations="$emulations i386aout i386elf"
795 ;;
796 elf)
797 emulations="$emulations i386aout i386coff"
798 ;;
799 esac
800 ;;
15886821
L
801 esac
802fi
803
39871c07
AM
804# PE code has way too many macros tweaking behaviour
805case ${te_file} in
806 pe*) emulations="" ;;
807esac
808
252b5132
RH
809# Assign floating point type. Most processors with FP support
810# IEEE FP. On those that don't support FP at all, usually IEEE
811# is emulated.
812case ${target_cpu} in
12e64c2c 813 vax | pdp11 ) atof=vax ;;
252b5132
RH
814 *) atof=ieee ;;
815esac
816
817case "${obj_format}" in
818 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
819esac
820
821# Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
822cgen_cpu_prefix=""
823if test $using_cgen = yes ; then
824 case ${target_cpu} in
73589c9d
CS
825 or1knd)
826 cgen_cpu_prefix=or1k ;;
252b5132
RH
827 *) cgen_cpu_prefix=${target_cpu} ;;
828 esac
829 AC_SUBST(cgen_cpu_prefix)
830 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
831fi
832
833dnl
834dnl Make sure the desired support files exist.
835dnl
836
837if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
838 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
839fi
840
841if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
842 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
843fi
844
252b5132
RH
845# Some COFF configurations want these random other flags set.
846case ${obj_format} in
847 coff)
848 case ${target_cpu_type} in
849 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
99ad8390 850 x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
252b5132
RH
851 esac
852 ;;
853esac
854
855# Getting this done right is going to be a bitch. Each configuration specified
7be1c489
AM
856# with --enable-targets=... should be checked for environment, format, cpu
857# setting.
252b5132
RH
858#
859# For each configuration, the necessary object file support code must be linked
860# in. This might be only one, it might be up to four. The necessary emulation
861# code needs to be provided, too.
862#
863# And then there's "--enable-targets=all"....
864#
e8044f35 865# For now, just always do it for MIPS ELF configurations. Sigh.
252b5132
RH
866
867formats="${obj_format}"
868emfiles=""
869EMULATIONS=""
870GAS_UNIQ(emulations)
871for em in . $emulations ; do
872 case $em in
873 .) continue ;;
97238fbd 874 mipsbelf | mipslelf | mipself)
252b5132 875 fmt=elf file=mipself ;;
0aa5d426
HPN
876 *coff)
877 fmt=coff file=$em ;;
878 *aout)
879 fmt=aout file=$em ;;
880 *elf)
881 fmt=elf file=$em ;;
252b5132
RH
882 esac
883 formats="$formats $fmt"
d0ac1c44 884 emfiles="$emfiles config/e-$file.o"
252b5132
RH
885 EMULATIONS="$EMULATIONS &$em,"
886done
887GAS_UNIQ(formats)
888GAS_UNIQ(emfiles)
889if test `set . $formats ; shift ; echo $#` -gt 1 ; then
890 for fmt in $formats ; do
891 case $fmt in
892 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
252b5132
RH
893 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
894 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
895 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
896 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
252b5132 897 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
252b5132 898 esac
d0ac1c44 899 extra_objects="$extra_objects config/obj-$fmt.o"
252b5132
RH
900 done
901 obj_format=multi
902fi
903if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
252b5132 904 DEFAULT_EMULATION=`set . $emulations ; echo $2`
e8044f35 905 # e-mipself has more than one emulation per file, e-i386* has just one at the
4ca72d38
AM
906 # moment. If only one emulation is specified, then don't define
907 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
908 case "${obj_format}${emfiles}" in
e8044f35 909 multi* | *mipself*)
4ca72d38
AM
910 extra_objects="$extra_objects $emfiles"
911 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
912 esac
252b5132
RH
913fi
914AC_SUBST(extra_objects)
915AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
916AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
917 [Default emulation.])
918
252b5132
RH
919reject_dev_configs=yes
920
921case ${reject_dev_configs}-${dev} in
922 yes-yes) # Oops.
923 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
924 ;;
925esac
926
927AC_SUBST(target_cpu_type)
928AC_SUBST(obj_format)
929AC_SUBST(te_file)
930AC_SUBST(install_tooldir)
931AC_SUBST(atof)
932dnl AC_SUBST(emulation)
933
252b5132
RH
934# do we need the opcodes library?
935case "${need_opcodes}" in
936yes)
937 OPCODES_LIB=../opcodes/libopcodes.la
938 ;;
939esac
940
252b5132
RH
941AC_SUBST(OPCODES_LIB)
942
252b5132
RH
943AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
944AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
945AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
946AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
947AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
948
252b5132
RH
949AC_PROG_YACC
950AM_PROG_LEX
951
e184813f 952ALL_LINGUAS="es fi fr id ja ru rw sv tr uk zh_CN"
20e95c23
DJ
953ZW_GNU_GETTEXT_SISTER_DIR
954AM_PO_SUBDIRS
252b5132
RH
955
956AM_MAINTAINER_MODE
d5fbea21 957AM_CONDITIONAL(GENINSRC_NEVER, false)
252b5132
RH
958AC_EXEEXT
959
23d61380 960AC_CHECK_HEADERS(memory.h sys/stat.h sys/types.h unistd.h)
252b5132
RH
961
962# Put this here so that autoconf's "cross-compiling" message doesn't confuse
963# people who are not cross-compiling but are compiling cross-assemblers.
964AC_MSG_CHECKING(whether compiling a cross-assembler)
965if test "${host}" = "${target}"; then
966 cross_gas=no
967else
968 cross_gas=yes
969 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
970fi
971AC_MSG_RESULT($cross_gas)
972
1ec4b9f2 973AC_CHECK_FUNCS(strsignal)
252b5132 974
44350750
NC
975AM_LC_MESSAGES
976
39bec121
TW
977# do we need the math library?
978case "${need_libm}" in
12e64c2c 979yes)
da594c4a 980 LT_LIB_M
39bec121
TW
981 AC_SUBST(LIBM)
982 ;;
983esac
984
252b5132
RH
985# Some non-ANSI preprocessors botch requoting inside strings. That's bad
986# enough, but on some of those systems, the assert macro relies on requoting
987# working properly!
988GAS_WORKING_ASSERT
989
990# On some systems, the system header files may not declare malloc, realloc,
991# and free. There are places where gas needs these functions to have been
992# declared -- such as when taking their addresses.
993gas_test_headers="
994#ifdef HAVE_MEMORY_H
995#include <memory.h>
996#endif
252b5132 997#include <string.h>
252b5132 998#include <stdlib.h>
252b5132
RH
999#ifdef HAVE_UNISTD_H
1000#include <unistd.h>
1001#endif
1002"
252b5132 1003
56f36663
NC
1004AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
1005AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h,
da594c4a 1006[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
56f36663
NC
1007gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)])
1008AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h)
1009if test $gas_cv_decl_getopt_unistd_h = yes; then
1010 AC_DEFINE([HAVE_DECL_GETOPT], 1,
1011 [Is the prototype for getopt in <unistd.h> in the expected format?])
1012fi
1013
e8a38df5
AL
1014GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
1015GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers)
e8a38df5 1016
23d61380 1017AC_CHECK_DECLS([asprintf, mempcpy, stpcpy])
6d74f28b 1018
c973bc5c
NC
1019BFD_BINARY_FOPEN
1020
2cac01e3 1021# Link in zlib/zstd if we can. This allows us to write compressed debug sections.
543b7933 1022AM_ZLIB
2cac01e3 1023AC_ZSTD
0acf065b 1024
b11d79f2
TG
1025# Support for VMS timestamps via cross compile
1026
1027if test "$ac_cv_header_time_h" = yes; then
1028 GAS_HAVE_TIME_TYPE_MEMBER(struct tm, tm_gmtoff)
1029fi
1030
1031if test "$ac_cv_header_sys_stat_h" = yes; then
1032 GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_sec)
1033 GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_nsec)
1034fi
1035
1036
31dd3154 1037dnl Required for html, pdf, install-pdf and install-html targets.
108a6f8e
CD
1038AC_SUBST(datarootdir)
1039AC_SUBST(docdir)
1040AC_SUBST(htmldir)
31dd3154 1041AC_SUBST(pdfdir)
108a6f8e 1042
252b5132
RH
1043dnl This must come last.
1044
1045dnl We used to make symlinks to files in the source directory, but now
1046dnl we just use the right name for .c files, and create .h files in
1047dnl the build directory which include the right .h file. Make sure
1048dnl the old symlinks don't exist, so that a reconfigure in an existing
1049dnl directory behaves reasonably.
1050
bde299e0 1051AC_CONFIG_FILES(Makefile po/Makefile.in:po/Make-in)
13b2be9c 1052AC_CONFIG_COMMANDS([default],
252b5132
RH
1053[rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
1054 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
1055 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
1056 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
1057 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
1058 if test "x$cgen_cpu_prefix" != x ; then
1059 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
20e95c23 1060 fi],
252b5132
RH
1061[target_cpu_type=${target_cpu_type}
1062 cgen_cpu_prefix=${cgen_cpu_prefix}
1063 obj_format=${obj_format}
1064 te_file=${te_file}])
13b2be9c
DJ
1065
1066AC_OUTPUT
d546b610
L
1067
1068GNU_MAKE_JOBSERVER