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