Fix printf formating issues in elfxx-loongarch64.c
[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-*-aix[5-9].*)
276 changequote([,])dnl
277 AC_DEFINE(AIX_WEAK_SUPPORT, 1,
278 [Define if using AIX 5.2 value for C_WEAKEXT.])
279 ;;
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 ;;
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
304 # Other random stuff.
305
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 ;;
316 mipsisa32r2 | mipsisa32r2el)
317 mips_cpu=mips32r2
318 ;;
319 mipsisa32r3 | mipsisa32r3el)
320 mips_cpu=mips32r3
321 ;;
322 mipsisa32r5 | mipsisa32r5el)
323 mips_cpu=mips32r5
324 ;;
325 mipsisa32r6 | mipsisa32r6el)
326 mips_cpu=mips32r6
327 ;;
328 mipsisa64 | mipsisa64el)
329 mips_cpu=mips64
330 ;;
331 mipsisa64r2 | mipsisa64r2el)
332 mips_cpu=mips64r2
333 ;;
334 mipsisa64r3 | mipsisa64r3el)
335 mips_cpu=mips64r3
336 ;;
337 mipsisa64r5 | mipsisa64r5el)
338 mips_cpu=mips64r5
339 ;;
340 mipsisa64r6 | mipsisa64r6el)
341 mips_cpu=mips64r6
342 ;;
343 mipstx39 | mipstx39el)
344 mips_cpu=r3900
345 ;;
346 mips64vr | mips64vrel)
347 mips_cpu=vr4100
348 ;;
349 mipsisa32r2* | mipsisa64r2*)
350 changequote(,)dnl
351 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
352 changequote([,])dnl
353 ;;
354 mipsisa32r6* | mipsisa64r6*)
355 changequote(,)dnl
356 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r6//' -e 's/el$//'`
357 changequote([,])dnl
358 ;;
359 mips64* | mipsisa64* | mipsisa32*)
360 changequote(,)dnl
361 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
362 changequote([,])dnl
363 ;;
364 mips*)
365 changequote(,)dnl
366 mips_cpu=`echo $target_cpu | sed -e 's/^mips//' -e 's/el$//'`
367 changequote([,])dnl
368 ;;
369 *)
370 AC_MSG_ERROR($target_cpu isn't a supported MIPS CPU name)
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.
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
393 # Decide which ABI to target by default.
394 case ${target} in
395 mips*64*-linux-gnuabi64)
396 mips_default_abi=N64_ABI
397 ;;
398 mips*64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \
399 | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*)
400 mips_default_abi=N32_ABI
401 ;;
402 mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu)
403 mips_default_abi=O32_ABI
404 ;;
405 mips64*-openbsd*)
406 mips_default_abi=N64_ABI
407 ;;
408 *)
409 mips_default_abi=NO_ABI
410 ;;
411 esac
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. ])
418 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi,
419 [Choose a default ABI for MIPS targets. ])
420 ;;
421 esac
422
423 # Do we need the opcodes library?
424 case ${cpu_type} in
425 vax | tic30 | i386 | arm)
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
436 ;;
437 esac
438
439 # Any other special object files needed ?
440 case ${cpu_type} in
441
442 bfin)
443 for f in config/bfin-parse.o config/bfin-lex-wrapper.o; do
444 case " $extra_objects " in
445 *" $f "*) ;;
446 *) extra_objects="$extra_objects $f" ;;
447 esac
448 done
449 ;;
450
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 ;;
457 epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | or1k)
458 using_cgen=yes
459 ;;
460
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
474 m32c)
475 using_cgen=yes
476 ;;
477 frv)
478 using_cgen=yes
479 ;;
480 m68k)
481 f=config/m68k-parse.o
482 case " $extra_objects " in
483 *" $f "*) ;;
484 *) extra_objects="$extra_objects $f" ;;
485 esac
486 ;;
487
488 mep)
489 using_cgen=yes
490 ;;
491
492 mips)
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
499 ;;
500
501 mt)
502 using_cgen=yes
503 ;;
504
505 nds32)
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
515 # Decide BASELINE, REDUCED_REGS, FPU_DP_EXT, FPU_SP_EXT features
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
520 v2j | v2s | v2f | v2 | v3m | v3j | v3s | v3f | v3 )
521 AC_DEFINE_UNQUOTED(NDS32_DEFAULT_ARCH_NAME, "$with_arch",
522 [Define value for nds32_arch_name])
523 ;;
524 *)
525 AC_MSG_ERROR(This kind of arch name does *NOT* exist!)
526 ;;
527 esac
528 fi
529 AC_MSG_RESULT($with_arch)
530
531 # Decide features one by one.
532 AC_MSG_CHECKING(for default configuration of --enable-dx-regs)
533 if test "x${enable_dx_regs}" = xyes; then
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
542 AC_MSG_CHECKING(for default configuration of --enable-perf-ext)
543 if test "x${enable_perf_ext}" = xno; then
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
552 AC_MSG_CHECKING(for default configuration of --enable-perf-ext2)
553 if test "x${enable_perf_ext2}" = xno; then
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
562 AC_MSG_CHECKING(for default configuration of --enable-string-ext)
563 if test "x${enable_string_ext}" = xno; then
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
572 AC_MSG_CHECKING(for default configuration of --enable-audio-ext)
573 if test "x${enable_audio_ext}" = xno; then
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)
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)
601 ;;
602
603 aarch64 | i386 | s390 | sparc)
604 if test $this_target = $target ; then
605 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
606 fi
607 ;;
608
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
631 # --with-priv-spec=[1.9.1|1.10|1.11|1.12].
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
640 rl78)
641 f=config/rl78-parse.o
642 case " $extra_objects " in
643 *" $f "*) ;;
644 *) extra_objects="$extra_objects $f" ;;
645 esac
646 ;;
647
648 rx)
649 f=config/rx-parse.o
650 case " $extra_objects " in
651 *" $f "*) ;;
652 *) extra_objects="$extra_objects $f" ;;
653 esac
654 ;;
655
656 xstormy16)
657 using_cgen=yes
658 ;;
659
660 xtensa)
661 f=config/xtensa-relax.o
662 case " $extra_objects " in
663 *" $f "*) ;;
664 *) extra_objects="$extra_objects $f" ;;
665 esac
666 ;;
667
668 *)
669 ;;
670 esac
671
672 if test $using_cgen = yes ; then
673 f=cgen.o
674 case " $extra_objects " in
675 *" $f "*) ;;
676 *) extra_objects="$extra_objects $f" ;;
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
683 obj_format=$fmt
684 te_file=$em
685 fi
686
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
695
696 # From target name and format, produce a list of supported emulations.
697
698 case ${generic_target}-${fmt} in
699 mips-*-*-*) case "$endian" in
700 big) emulation="mipsbelf mipslelf mipself" ;;
701 *) emulation="mipslelf mipsbelf mipself" ;;
702 esac ;;
703 # i386-pc-pe-coff != i386-pc-coff.
704 i386-*-pe-coff) ;;
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" ;;
710 i386-*-coff) emulation="i386coff" ;;
711 i386-*-elf) emulation="i386elf" ;;
712
713 # Always all formats. The first stated emulation becomes the default.
714 cris-*-*aout*) emulation="crisaout criself" ;;
715 cris-*-*) emulation="criself crisaout" ;;
716 esac
717
718 emulations="$emulations $emulation"
719
720 done
721
722 if test ${ac_default_x86_relax_relocations} = unset; then
723 ac_default_x86_relax_relocations=1
724 fi
725 AC_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
729 if test ${ac_default_elf_stt_common} = unset; then
730 ac_default_elf_stt_common=0
731 fi
732 AC_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
737 AC_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
742 if test ${ac_default_generate_x86_used_note} = unset; then
743 ac_default_generate_x86_used_note=0
744 fi
745 AC_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
750 if test ${ac_default_generate_riscv_attr} = unset; then
751 ac_default_generate_riscv_attr=1
752 fi
753
754 AC_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
758 if test ${ac_default_mips_fix_loongson3_llsc} = unset; then
759 ac_default_mips_fix_loongson3_llsc=0
760 fi
761 AC_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
765 if test x$ac_default_compressed_debug_sections = xyes ; then
766 AC_DEFINE(DEFAULT_FLAG_COMPRESS_DEBUG, 1, [Define if you want compressed debug sections by default.])
767 fi
768
769 AC_DEFINE_UNQUOTED(DEFAULT_COMPRESSED_DEBUG_ALGORITHM, $ac_default_compressed_debug_sections_algorithm,
770 [Default compression algorithm for --enable-compressed-debug-sections.])
771
772 # Turn on all targets if possible
773 if 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 ;;
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 ;;
801 esac
802 fi
803
804 # PE code has way too many macros tweaking behaviour
805 case ${te_file} in
806 pe*) emulations="" ;;
807 esac
808
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.
812 case ${target_cpu} in
813 vax | pdp11 ) atof=vax ;;
814 *) atof=ieee ;;
815 esac
816
817 case "${obj_format}" in
818 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
819 esac
820
821 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
822 cgen_cpu_prefix=""
823 if test $using_cgen = yes ; then
824 case ${target_cpu} in
825 or1knd)
826 cgen_cpu_prefix=or1k ;;
827 *) cgen_cpu_prefix=${target_cpu} ;;
828 esac
829 AC_SUBST(cgen_cpu_prefix)
830 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
831 fi
832
833 dnl
834 dnl Make sure the desired support files exist.
835 dnl
836
837 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
838 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
839 fi
840
841 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
842 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
843 fi
844
845 # Some COFF configurations want these random other flags set.
846 case ${obj_format} in
847 coff)
848 case ${target_cpu_type} in
849 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
850 x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
851 esac
852 ;;
853 esac
854
855 # Getting this done right is going to be a bitch. Each configuration specified
856 # with --enable-targets=... should be checked for environment, format, cpu
857 # setting.
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 #
865 # For now, just always do it for MIPS ELF configurations. Sigh.
866
867 formats="${obj_format}"
868 emfiles=""
869 EMULATIONS=""
870 GAS_UNIQ(emulations)
871 for em in . $emulations ; do
872 case $em in
873 .) continue ;;
874 mipsbelf | mipslelf | mipself)
875 fmt=elf file=mipself ;;
876 *coff)
877 fmt=coff file=$em ;;
878 *aout)
879 fmt=aout file=$em ;;
880 *elf)
881 fmt=elf file=$em ;;
882 esac
883 formats="$formats $fmt"
884 emfiles="$emfiles config/e-$file.o"
885 EMULATIONS="$EMULATIONS &$em,"
886 done
887 GAS_UNIQ(formats)
888 GAS_UNIQ(emfiles)
889 if 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?]) ;;
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?]) ;;
897 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
898 esac
899 extra_objects="$extra_objects config/obj-$fmt.o"
900 done
901 obj_format=multi
902 fi
903 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
904 DEFAULT_EMULATION=`set . $emulations ; echo $2`
905 # e-mipself has more than one emulation per file, e-i386* has just one at the
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
909 multi* | *mipself*)
910 extra_objects="$extra_objects $emfiles"
911 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
912 esac
913 fi
914 AC_SUBST(extra_objects)
915 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
916 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
917 [Default emulation.])
918
919 reject_dev_configs=yes
920
921 case ${reject_dev_configs}-${dev} in
922 yes-yes) # Oops.
923 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
924 ;;
925 esac
926
927 AC_SUBST(target_cpu_type)
928 AC_SUBST(obj_format)
929 AC_SUBST(te_file)
930 AC_SUBST(install_tooldir)
931 AC_SUBST(atof)
932 dnl AC_SUBST(emulation)
933
934 # do we need the opcodes library?
935 case "${need_opcodes}" in
936 yes)
937 OPCODES_LIB=../opcodes/libopcodes.la
938 ;;
939 esac
940
941 AC_SUBST(OPCODES_LIB)
942
943 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
944 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
945 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
946 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
947 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
948
949 AC_PROG_YACC
950 AM_PROG_LEX
951
952 ALL_LINGUAS="es fi fr id ja ru rw sv tr uk zh_CN"
953 ZW_GNU_GETTEXT_SISTER_DIR
954 AM_PO_SUBDIRS
955
956 AM_MAINTAINER_MODE
957 AM_CONDITIONAL(GENINSRC_NEVER, false)
958 AC_EXEEXT
959
960 AC_CHECK_HEADERS(memory.h sys/stat.h sys/types.h unistd.h)
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.
964 AC_MSG_CHECKING(whether compiling a cross-assembler)
965 if test "${host}" = "${target}"; then
966 cross_gas=no
967 else
968 cross_gas=yes
969 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
970 fi
971 AC_MSG_RESULT($cross_gas)
972
973 AC_CHECK_FUNCS(strsignal)
974
975 AM_LC_MESSAGES
976
977 # do we need the math library?
978 case "${need_libm}" in
979 yes)
980 LT_LIB_M
981 AC_SUBST(LIBM)
982 ;;
983 esac
984
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!
988 GAS_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.
993 gas_test_headers="
994 #ifdef HAVE_MEMORY_H
995 #include <memory.h>
996 #endif
997 #include <string.h>
998 #include <stdlib.h>
999 #ifdef HAVE_UNISTD_H
1000 #include <unistd.h>
1001 #endif
1002 "
1003
1004 AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
1005 AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h,
1006 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
1007 gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)])
1008 AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h)
1009 if 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?])
1012 fi
1013
1014 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
1015 GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers)
1016
1017 AC_CHECK_DECLS([asprintf, mempcpy, stpcpy])
1018
1019 BFD_BINARY_FOPEN
1020
1021 # Link in zlib/zstd if we can. This allows us to write compressed debug sections.
1022 AM_ZLIB
1023 AC_ZSTD
1024
1025 # Support for VMS timestamps via cross compile
1026
1027 if test "$ac_cv_header_time_h" = yes; then
1028 GAS_HAVE_TIME_TYPE_MEMBER(struct tm, tm_gmtoff)
1029 fi
1030
1031 if 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)
1034 fi
1035
1036
1037 dnl Required for html, pdf, install-pdf and install-html targets.
1038 AC_SUBST(datarootdir)
1039 AC_SUBST(docdir)
1040 AC_SUBST(htmldir)
1041 AC_SUBST(pdfdir)
1042
1043 dnl This must come last.
1044
1045 dnl We used to make symlinks to files in the source directory, but now
1046 dnl we just use the right name for .c files, and create .h files in
1047 dnl the build directory which include the right .h file. Make sure
1048 dnl the old symlinks don't exist, so that a reconfigure in an existing
1049 dnl directory behaves reasonably.
1050
1051 AC_CONFIG_FILES(Makefile po/Makefile.in:po/Make-in)
1052 AC_CONFIG_COMMANDS([default],
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
1060 fi],
1061 [target_cpu_type=${target_cpu_type}
1062 cgen_cpu_prefix=${cgen_cpu_prefix}
1063 obj_format=${obj_format}
1064 te_file=${te_file}])
1065
1066 AC_OUTPUT
1067
1068 GNU_MAKE_JOBSERVER