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