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