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