]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gas/configure.ac
LoongArch gas support
[thirdparty/binutils-gdb.git] / gas / configure.ac
1 dnl Process this file with autoconf to produce a configure script.
2 dnl
3 dnl And be careful when changing it! If you must add tests with square
4 dnl brackets, be sure changequote invocations surround it.
5 dnl
6 dnl Copyright (C) 2012-2021 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
35 AC_PROG_CC
36 AC_GNU_SOURCE
37 AC_USE_SYSTEM_EXTENSIONS
38
39 LT_INIT
40 ACX_LARGEFILE
41 ACX_PROG_CMP_IGNORE_INITIAL
42
43 AC_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 ;;
50 esac])dnl
51
52 ac_checking=
53 . ${srcdir}/../bfd/development.sh
54 test "$development" = true && ac_checking=yes
55 AC_ARG_ENABLE(checking,
56 [ --enable-checking enable run-time checks],
57 [case "${enableval}" in
58 no|none) ac_checking= ;;
59 *) ac_checking=yes ;;
60 esac])dnl
61 if test x$ac_checking != x ; then
62 AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.])
63 fi
64
65 # PR gas/19109
66 # Decide the default method for compressing debug sections.
67 ac_default_compressed_debug_sections=unset
68 # Provide a configure time option to override our default.
69 AC_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 ;;
76 esac])dnl
77
78 # PR gas/19520
79 # Decide if x86 assembler should generate relax relocations.
80 ac_default_x86_relax_relocations=unset
81 # Provide a configure time option to override our default.
82 AC_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 ;;
87 esac])dnl
88
89 # Decide if ELF assembler should generate common symbols with the
90 # STT_COMMON type.
91 ac_default_elf_stt_common=unset
92 # Provide a configure time option to override our default.
93 AC_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 ;;
98 esac])dnl
99
100
101 # Decide if the ELF assembler should default to generating
102 # GNU Build notes if none are provided by the input.
103 ac_default_generate_build_notes=0
104 # Provide a configuration option to override the default.
105 AC_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 ;;
111 esac])dnl
112
113 # Decide if the MIPS assembler should default to enable MIPS fix Loongson3
114 # LLSC errata.
115 ac_default_mips_fix_loongson3_llsc=unset
116 # Provide a configuration option to override the default.
117 AC_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 ;;
123 esac])dnl
124
125 # Decide if the x86 ELF assembler should default to generating GNU x86
126 # used ISA and feature properties.
127 ac_default_generate_x86_used_note=unset
128 # Provide a configuration option to override the default.
129 AC_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 ;;
135 esac])dnl
136
137 # Decide if the RISC-V ELF assembler should default to generating attribute.
138 ac_default_generate_riscv_attr=unset
139 # Provide a configuration option to override the default.
140 AC_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 ;;
146 esac])dnl
147
148 using_cgen=no
149
150 AM_BINUTILS_WARNINGS
151
152 # Generate a header file
153 AC_CONFIG_HEADERS(config.h:config.in)
154
155 dnl Option --with-cpu=TYPE allows configure type control of the default
156 dnl cpu type within the assembler. Currently only the ARC target
157 dnl supports this feature, but others may be added in the future.
158 AC_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
167 AH_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.
177 case "${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 ;;
186 esac
187 AC_SUBST(GDBINIT)
188
189 #We need this for the host.
190 AC_C_BIGENDIAN
191
192 te_file=generic
193
194 # Makefile target for installing gas in $(tooldir)/bin.
195 install_tooldir=install-exec-tooldir
196
197 canon_targets=""
198 all_targets=no
199 if 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)
214 fi
215
216 emulations=""
217
218 for 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
265 changequote(,)dnl
266 ppc-*-aix[5-9].*)
267 changequote([,])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*)
341 changequote(,)dnl
342 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
343 changequote([,])dnl
344 ;;
345 mipsisa32r6* | mipsisa64r6*)
346 changequote(,)dnl
347 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r6//' -e 's/el$//'`
348 changequote([,])dnl
349 ;;
350 mips64* | mipsisa64* | mipsisa32*)
351 changequote(,)dnl
352 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
353 changequote([,])dnl
354 ;;
355 mips*)
356 changequote(,)dnl
357 mips_cpu=`echo $target_cpu | sed -e 's/^mips//' -e 's/el$//'`
358 changequote([,])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 loongarch)
450 for f in config/loongarch-parse.o config/loongarch-lex-wrapper.o; do
451 case " $extra_objects " in
452 *" $f "*) ;;
453 *) extra_objects="$extra_objects $f" ;;
454 esac
455 done
456 # --target=loongarch[32|64]-*-*. */
457 if test $this_target = $target ; then
458 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
459 fi
460 ;;
461
462 m32c)
463 using_cgen=yes
464 ;;
465 frv)
466 using_cgen=yes
467 ;;
468 m68k)
469 f=config/m68k-parse.o
470 case " $extra_objects " in
471 *" $f "*) ;;
472 *) extra_objects="$extra_objects $f" ;;
473 esac
474 ;;
475
476 mep)
477 using_cgen=yes
478 ;;
479
480 mips)
481 for f in itbl-parse.o itbl-lex-wrapper.o itbl-ops.o; do
482 case " $extra_objects " in
483 *" $f "*) ;;
484 *) extra_objects="$extra_objects $f" ;;
485 esac
486 done
487 ;;
488
489 mt)
490 using_cgen=yes
491 ;;
492
493 nds32)
494 # setup NDS32_LINUX_TOOLCHAIN definition
495 if test "linux" = $em; then
496 AC_DEFINE(NDS32_LINUX_TOOLCHAIN, 1,
497 [Define value for nds32_linux_toolchain])
498 else
499 AC_DEFINE(NDS32_LINUX_TOOLCHAIN, 0,
500 [Define default value for nds32_linux_toolchain])
501 fi
502
503 # Decide BASELINE, REDUCED_REGS, FPU_DP_EXT, FPU_SP_EXT features
504 # based on arch_name.
505 AC_MSG_CHECKING(for default configuration of --with-arch)
506 if test "x${with_arch}" != x; then
507 case ${with_arch} in
508 v2j | v2s | v2f | v2 | v3m | v3j | v3s | v3f | v3 )
509 AC_DEFINE_UNQUOTED(NDS32_DEFAULT_ARCH_NAME, "$with_arch",
510 [Define value for nds32_arch_name])
511 ;;
512 *)
513 AC_MSG_ERROR(This kind of arch name does *NOT* exist!)
514 ;;
515 esac
516 fi
517 AC_MSG_RESULT($with_arch)
518
519 # Decide features one by one.
520 AC_MSG_CHECKING(for default configuration of --enable-dx-regs)
521 if test "x${enable_dx_regs}" = xyes; then
522 AC_DEFINE(NDS32_DEFAULT_DX_REGS, 1,
523 [Define value for nds32_dx_regs])
524 else
525 AC_DEFINE(NDS32_DEFAULT_DX_REGS, 0,
526 [Define default value for nds32_dx_regs])
527 fi
528 AC_MSG_RESULT($enable_dx_regs)
529
530 AC_MSG_CHECKING(for default configuration of --enable-perf-ext)
531 if test "x${enable_perf_ext}" = xno; then
532 AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 0,
533 [Define value for nds32_perf_ext])
534 else
535 AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 1,
536 [Define default value for nds32_perf_ext])
537 fi
538 AC_MSG_RESULT($enable_perf_ext)
539
540 AC_MSG_CHECKING(for default configuration of --enable-perf-ext2)
541 if test "x${enable_perf_ext2}" = xno; then
542 AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 0,
543 [Define value for nds32_perf_ext2])
544 else
545 AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 1,
546 [Define default value for nds32_perf_ext2])
547 fi
548 AC_MSG_RESULT($enable_perf_ext2)
549
550 AC_MSG_CHECKING(for default configuration of --enable-string-ext)
551 if test "x${enable_string_ext}" = xno; then
552 AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 0,
553 [Define value for nds32_string_ext])
554 else
555 AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 1,
556 [Define default value for nds32_string_ext])
557 fi
558 AC_MSG_RESULT($enable_string_ext)
559
560 AC_MSG_CHECKING(for default configuration of --enable-audio-ext)
561 if test "x${enable_audio_ext}" = xno; then
562 AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 0,
563 [Define value for nds32_audio_ext])
564 else
565 AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 1,
566 [Define default value for nds32_audio_ext])
567 fi
568 AC_MSG_RESULT($enable_audio_ext)
569
570 AC_MSG_CHECKING(for default configuration of --enable-dsp-ext)
571 if test "x${enable_dsp_ext}" = xno; then
572 AC_DEFINE(NDS32_DEFAULT_DSP_EXT, 0,
573 [Define value for nds32_dsp_ext])
574 else
575 AC_DEFINE(NDS32_DEFAULT_DSP_EXT, 1,
576 [Define default value for nds32_dsp_ext])
577 fi
578 AC_MSG_RESULT($enable_dsp_ext)
579
580 AC_MSG_CHECKING(for default configuration of --enable-zol-ext)
581 if test "x${enable_zol_ext}" = xno; then
582 AC_DEFINE(NDS32_DEFAULT_ZOL_EXT, 0,
583 [Define value for nds32_zol_ext])
584 else
585 AC_DEFINE(NDS32_DEFAULT_ZOL_EXT, 1,
586 [Define default value for nds32_zol_ext])
587 fi
588 AC_MSG_RESULT($enable_zol_ext)
589 ;;
590
591 aarch64 | i386 | s390 | sparc)
592 if test $this_target = $target ; then
593 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
594 fi
595 ;;
596
597 riscv)
598 # --target=riscv[32|64]-*-*. */
599 if test $this_target = $target ; then
600 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
601 fi
602
603 # --with-arch=<value>. The syntax of <value> is same as Gas option -march.
604 AC_MSG_CHECKING(for default configuration of --with-arch)
605 if test "x${with_arch}" != x; then
606 AC_DEFINE_UNQUOTED(DEFAULT_RISCV_ARCH_WITH_EXT, "$with_arch",
607 [Define default value for RISC-V -march.])
608 fi
609 AC_MSG_RESULT($with_arch)
610
611 # --with-isa-spec=[2.2|20190608|20191213].
612 AC_MSG_CHECKING(for default configuration of --with-isa-spec)
613 if test "x${with_isa_spec}" != x; then
614 AC_DEFINE_UNQUOTED(DEFAULT_RISCV_ISA_SPEC, "$with_isa_spec",
615 [Define default value for RISC-V -misa-spec.])
616 fi
617 AC_MSG_RESULT($with_isa_spec)
618
619 # --with-priv-spec=[1.9|1.9.1|1.10|1.11].
620 AC_MSG_CHECKING(for default configuration of --with-priv-spec)
621 if test "x${with_priv_spec}" != x; then
622 AC_DEFINE_UNQUOTED(DEFAULT_RISCV_PRIV_SPEC, "$with_priv_spec",
623 [Define default value for RISC-V -mpriv-spec])
624 fi
625 AC_MSG_RESULT($with_priv_spec)
626 ;;
627
628 rl78)
629 f=config/rl78-parse.o
630 case " $extra_objects " in
631 *" $f "*) ;;
632 *) extra_objects="$extra_objects $f" ;;
633 esac
634 ;;
635
636 rx)
637 f=config/rx-parse.o
638 case " $extra_objects " in
639 *" $f "*) ;;
640 *) extra_objects="$extra_objects $f" ;;
641 esac
642 ;;
643
644 xstormy16)
645 using_cgen=yes
646 ;;
647
648 xc16x)
649 using_cgen=yes
650 ;;
651
652 xtensa)
653 f=config/xtensa-relax.o
654 case " $extra_objects " in
655 *" $f "*) ;;
656 *) extra_objects="$extra_objects $f" ;;
657 esac
658 ;;
659
660 *)
661 ;;
662 esac
663
664 if test $using_cgen = yes ; then
665 f=cgen.o
666 case " $extra_objects " in
667 *" $f "*) ;;
668 *) extra_objects="$extra_objects $f" ;;
669 esac
670 fi
671
672 # See if we really can support this configuration with the emulation code.
673
674 if test $this_target = $target ; then
675 obj_format=$fmt
676 te_file=$em
677 fi
678
679 case ${te_file} in
680 vms)
681 f=config/te-vms.o
682 case " $extra_objects " in
683 *" $f "*) ;;
684 *) extra_objects="$extra_objects $f" ;;
685 esac ;;
686 esac
687
688 # From target name and format, produce a list of supported emulations.
689
690 case ${generic_target}-${fmt} in
691 mips-*-*-*) case "$endian" in
692 big) emulation="mipsbelf mipslelf mipself" ;;
693 *) emulation="mipslelf mipsbelf mipself" ;;
694 esac ;;
695 # i386-pc-pe-coff != i386-pc-coff.
696 i386-*-pe-coff) ;;
697 # Uncommenting the next line will turn on support for i386 AOUT
698 # for the default linux configuration
699 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
700 #
701 i386-*-aout) emulation="i386aout" ;;
702 i386-*-coff) emulation="i386coff" ;;
703 i386-*-elf) emulation="i386elf" ;;
704
705 # Always all formats. The first stated emulation becomes the default.
706 cris-*-*aout*) emulation="crisaout criself" ;;
707 cris-*-*) emulation="criself crisaout" ;;
708 esac
709
710 emulations="$emulations $emulation"
711
712 done
713
714 if test ${ac_default_x86_relax_relocations} = unset; then
715 ac_default_x86_relax_relocations=1
716 fi
717 AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_X86_RELAX_RELOCATIONS,
718 $ac_default_x86_relax_relocations,
719 [Define to 1 if you want to generate x86 relax relocations by default.])
720
721 if test ${ac_default_elf_stt_common} = unset; then
722 ac_default_elf_stt_common=0
723 fi
724 AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_ELF_STT_COMMON,
725 $ac_default_elf_stt_common,
726 [Define to 1 if you want to generate ELF common symbols with the
727 STT_COMMON type by default.])
728
729 AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_BUILD_NOTES,
730 $ac_default_generate_build_notes,
731 [Define to 1 if you want to generate GNU Build attribute notes
732 by default, if none are contained in the input.])
733
734 if test ${ac_default_generate_x86_used_note} = unset; then
735 ac_default_generate_x86_used_note=0
736 fi
737 AC_DEFINE_UNQUOTED(DEFAULT_X86_USED_NOTE,
738 $ac_default_generate_x86_used_note,
739 [Define to 1 if you want to generate GNU x86 used ISA and feature
740 properties by default.])
741
742 if test ${ac_default_generate_riscv_attr} = unset; then
743 ac_default_generate_riscv_attr=1
744 fi
745
746 AC_DEFINE_UNQUOTED(DEFAULT_RISCV_ATTR,
747 $ac_default_generate_riscv_attr,
748 [Define to 1 if you want to generate RISC-V arch attribute by default.])
749
750 if test ${ac_default_mips_fix_loongson3_llsc} = unset; then
751 ac_default_mips_fix_loongson3_llsc=0
752 fi
753 AC_DEFINE_UNQUOTED(DEFAULT_MIPS_FIX_LOONGSON3_LLSC,
754 $ac_default_mips_fix_loongson3_llsc,
755 [Define to 1 if you want to fix Loongson3 LLSC Errata by default.])
756
757 if test x$ac_default_compressed_debug_sections = xyes ; then
758 AC_DEFINE(DEFAULT_FLAG_COMPRESS_DEBUG, 1, [Define if you want compressed debug sections by default.])
759 fi
760
761 # Turn on all targets if possible
762 if test ${all_targets} = "yes"; then
763 case ${target_cpu_type} in
764 i386)
765 case ${obj_format} in
766 aout)
767 emulations="$emulations i386coff i386elf"
768 ;;
769 coff)
770 emulations="$emulations i386aout i386elf"
771 ;;
772 elf)
773 emulations="$emulations i386aout i386coff"
774 ;;
775 esac
776 ;;
777 x86_64)
778 case ${obj_format} in
779 aout)
780 emulations="$emulations i386coff i386elf"
781 ;;
782 coff)
783 emulations="$emulations i386aout i386elf"
784 ;;
785 elf)
786 emulations="$emulations i386aout i386coff"
787 ;;
788 esac
789 ;;
790 esac
791 fi
792
793 # PE code has way too many macros tweaking behaviour
794 case ${te_file} in
795 pe*) emulations="" ;;
796 esac
797
798 # Assign floating point type. Most processors with FP support
799 # IEEE FP. On those that don't support FP at all, usually IEEE
800 # is emulated.
801 case ${target_cpu} in
802 vax | pdp11 ) atof=vax ;;
803 *) atof=ieee ;;
804 esac
805
806 case "${obj_format}" in
807 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
808 esac
809
810 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
811 cgen_cpu_prefix=""
812 if test $using_cgen = yes ; then
813 case ${target_cpu} in
814 or1knd)
815 cgen_cpu_prefix=or1k ;;
816 *) cgen_cpu_prefix=${target_cpu} ;;
817 esac
818 AC_SUBST(cgen_cpu_prefix)
819 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
820 fi
821
822 dnl
823 dnl Make sure the desired support files exist.
824 dnl
825
826 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
827 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
828 fi
829
830 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
831 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
832 fi
833
834 # Some COFF configurations want these random other flags set.
835 case ${obj_format} in
836 coff)
837 case ${target_cpu_type} in
838 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
839 x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
840 esac
841 ;;
842 esac
843
844 # Getting this done right is going to be a bitch. Each configuration specified
845 # with --enable-targets=... should be checked for environment, format, cpu
846 # setting.
847 #
848 # For each configuration, the necessary object file support code must be linked
849 # in. This might be only one, it might be up to four. The necessary emulation
850 # code needs to be provided, too.
851 #
852 # And then there's "--enable-targets=all"....
853 #
854 # For now, just always do it for MIPS ELF configurations. Sigh.
855
856 formats="${obj_format}"
857 emfiles=""
858 EMULATIONS=""
859 GAS_UNIQ(emulations)
860 for em in . $emulations ; do
861 case $em in
862 .) continue ;;
863 mipsbelf | mipslelf | mipself)
864 fmt=elf file=mipself ;;
865 *coff)
866 fmt=coff file=$em ;;
867 *aout)
868 fmt=aout file=$em ;;
869 *elf)
870 fmt=elf file=$em ;;
871 esac
872 formats="$formats $fmt"
873 emfiles="$emfiles config/e-$file.o"
874 EMULATIONS="$EMULATIONS &$em,"
875 done
876 GAS_UNIQ(formats)
877 GAS_UNIQ(emfiles)
878 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
879 for fmt in $formats ; do
880 case $fmt in
881 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
882 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
883 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
884 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
885 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
886 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
887 esac
888 extra_objects="$extra_objects config/obj-$fmt.o"
889 done
890 obj_format=multi
891 fi
892 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
893 DEFAULT_EMULATION=`set . $emulations ; echo $2`
894 # e-mipself has more than one emulation per file, e-i386* has just one at the
895 # moment. If only one emulation is specified, then don't define
896 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
897 case "${obj_format}${emfiles}" in
898 multi* | *mipself*)
899 extra_objects="$extra_objects $emfiles"
900 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
901 esac
902 fi
903 AC_SUBST(extra_objects)
904 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
905 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
906 [Default emulation.])
907
908 reject_dev_configs=yes
909
910 case ${reject_dev_configs}-${dev} in
911 yes-yes) # Oops.
912 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
913 ;;
914 esac
915
916 AC_SUBST(target_cpu_type)
917 AC_SUBST(obj_format)
918 AC_SUBST(te_file)
919 AC_SUBST(install_tooldir)
920 AC_SUBST(atof)
921 dnl AC_SUBST(emulation)
922
923 # do we need the opcodes library?
924 case "${need_opcodes}" in
925 yes)
926 OPCODES_LIB=../opcodes/libopcodes.la
927 ;;
928 esac
929
930 AC_SUBST(OPCODES_LIB)
931
932 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
933 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
934 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
935 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
936 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
937
938 AC_PROG_YACC
939 AM_PROG_LEX
940
941 ALL_LINGUAS="es fi fr id ja ru rw sv tr uk zh_CN"
942 ZW_GNU_GETTEXT_SISTER_DIR
943 AM_PO_SUBDIRS
944
945 AM_MAINTAINER_MODE
946 AM_CONDITIONAL(GENINSRC_NEVER, false)
947 AC_EXEEXT
948
949 AC_CHECK_HEADERS(memory.h sys/stat.h sys/types.h unistd.h)
950
951 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
952 # people who are not cross-compiling but are compiling cross-assemblers.
953 AC_MSG_CHECKING(whether compiling a cross-assembler)
954 if test "${host}" = "${target}"; then
955 cross_gas=no
956 else
957 cross_gas=yes
958 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
959 fi
960 AC_MSG_RESULT($cross_gas)
961
962 AC_CHECK_FUNCS(strsignal)
963
964 AM_LC_MESSAGES
965
966 # do we need the math library?
967 case "${need_libm}" in
968 yes)
969 LT_LIB_M
970 AC_SUBST(LIBM)
971 ;;
972 esac
973
974 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
975 # enough, but on some of those systems, the assert macro relies on requoting
976 # working properly!
977 GAS_WORKING_ASSERT
978
979 # On some systems, the system header files may not declare malloc, realloc,
980 # and free. There are places where gas needs these functions to have been
981 # declared -- such as when taking their addresses.
982 gas_test_headers="
983 #ifdef HAVE_MEMORY_H
984 #include <memory.h>
985 #endif
986 #include <string.h>
987 #include <stdlib.h>
988 #ifdef HAVE_UNISTD_H
989 #include <unistd.h>
990 #endif
991 "
992
993 AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
994 AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h,
995 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
996 gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)])
997 AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h)
998 if test $gas_cv_decl_getopt_unistd_h = yes; then
999 AC_DEFINE([HAVE_DECL_GETOPT], 1,
1000 [Is the prototype for getopt in <unistd.h> in the expected format?])
1001 fi
1002
1003 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
1004 GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers)
1005
1006 AC_CHECK_DECLS([asprintf, mempcpy, stpcpy])
1007
1008 BFD_BINARY_FOPEN
1009
1010 # Link in zlib if we can. This allows us to write compressed debug sections.
1011 AM_ZLIB
1012
1013 # Support for VMS timestamps via cross compile
1014
1015 if test "$ac_cv_header_time_h" = yes; then
1016 GAS_HAVE_TIME_TYPE_MEMBER(struct tm, tm_gmtoff)
1017 fi
1018
1019 if test "$ac_cv_header_sys_stat_h" = yes; then
1020 GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_sec)
1021 GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_nsec)
1022 fi
1023
1024
1025 dnl Required for html, pdf, install-pdf and install-html targets.
1026 AC_SUBST(datarootdir)
1027 AC_SUBST(docdir)
1028 AC_SUBST(htmldir)
1029 AC_SUBST(pdfdir)
1030
1031 dnl This must come last.
1032
1033 dnl We used to make symlinks to files in the source directory, but now
1034 dnl we just use the right name for .c files, and create .h files in
1035 dnl the build directory which include the right .h file. Make sure
1036 dnl the old symlinks don't exist, so that a reconfigure in an existing
1037 dnl directory behaves reasonably.
1038
1039 AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
1040 AC_CONFIG_COMMANDS([default],
1041 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
1042 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
1043 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
1044 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
1045 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
1046 if test "x$cgen_cpu_prefix" != x ; then
1047 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
1048 fi],
1049 [target_cpu_type=${target_cpu_type}
1050 cgen_cpu_prefix=${cgen_cpu_prefix}
1051 obj_format=${obj_format}
1052 te_file=${te_file}])
1053
1054 AC_OUTPUT
1055
1056 GNU_MAKE_JOBSERVER