]> git.ipfire.org Git - thirdparty/gcc.git/blob - configure.ac
configure, Darwin: Correct a pasto in host-shared processing.
[thirdparty/gcc.git] / configure.ac
1 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2 # 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012,
3 # 2014, 2015, 2016, 2019, 2022 Free Software Foundation, Inc.
4 #
5 # This file is free software; you can redistribute it and/or modify it
6 # under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 3 of the License, or
8 # (at your option) any later version.
9 #
10 # This program is distributed in the hope that it will be useful, but
11 # WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 # General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with this program; see the file COPYING3. If not see
17 # <http://www.gnu.org/licenses/>.
18
19 ##############################################################################
20 ### WARNING: this file contains embedded tabs. Do not run untabify on this file.
21
22 m4_include(config/acx.m4)
23 m4_include(config/override.m4)
24 m4_include(config/proginstall.m4)
25 m4_include(config/elf.m4)
26 m4_include(config/ax_cxx_compile_stdcxx.m4)
27 m4_include([libtool.m4])
28 m4_include([ltoptions.m4])
29 m4_include([ltsugar.m4])
30 m4_include([ltversion.m4])
31 m4_include([lt~obsolete.m4])
32 m4_include([config/isl.m4])
33
34 AC_INIT(move-if-change)
35 AC_DISABLE_OPTION_CHECKING
36
37 progname=$0
38 # if PWD already has a value, it is probably wrong.
39 if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi
40
41 # Export original configure arguments for use by sub-configures.
42 # Quote arguments with shell meta charatcers.
43 TOPLEVEL_CONFIGURE_ARGUMENTS=
44 set -- "$progname" "$@"
45 for ac_arg
46 do
47 case "$ac_arg" in
48 *" "*|*" "*|*[[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\']]*)
49 ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"`
50 # if the argument is of the form -foo=baz, quote the baz part only
51 ac_arg=`echo "'$ac_arg'" | sed "s/^'\([[-a-zA-Z0-9]]*=\)/\\1'/"` ;;
52 *) ;;
53 esac
54 # Add the quoted argument to the list.
55 TOPLEVEL_CONFIGURE_ARGUMENTS="$TOPLEVEL_CONFIGURE_ARGUMENTS $ac_arg"
56 done
57 if test "$silent" = yes; then
58 TOPLEVEL_CONFIGURE_ARGUMENTS="$TOPLEVEL_CONFIGURE_ARGUMENTS --silent"
59 fi
60 # Remove the initial space we just introduced and, as these will be
61 # expanded by make, quote '$'.
62 TOPLEVEL_CONFIGURE_ARGUMENTS=`echo "x$TOPLEVEL_CONFIGURE_ARGUMENTS" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
63 AC_SUBST(TOPLEVEL_CONFIGURE_ARGUMENTS)
64
65 # Find the build, host, and target systems.
66 ACX_NONCANONICAL_BUILD
67 ACX_NONCANONICAL_HOST
68 ACX_NONCANONICAL_TARGET
69
70 dnl Autoconf 2.5x and later will set a default program prefix if
71 dnl --target was used, even if it was the same as --host. Disable
72 dnl that behavior. This must be done before AC_CANONICAL_SYSTEM
73 dnl to take effect.
74 test "$host_noncanonical" = "$target_noncanonical" &&
75 test "$program_prefix$program_suffix$program_transform_name" = \
76 NONENONEs,x,x, &&
77 program_transform_name=s,y,y,
78
79 AC_CANONICAL_SYSTEM
80 AC_ARG_PROGRAM
81
82 m4_pattern_allow([^AS_FOR_TARGET$])dnl
83 m4_pattern_allow([^AS_FOR_BUILD$])dnl
84
85 # Get 'install' or 'install-sh' and its variants.
86 AC_PROG_INSTALL
87 ACX_PROG_LN
88 AC_PROG_LN_S
89 AC_PROG_SED
90 AC_PROG_AWK
91
92 srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}`
93
94 # We pass INSTALL explicitly to sub-makes. Make sure that it is not
95 # a relative path.
96 if test "$INSTALL" = "${srcdir}/install-sh -c"; then
97 INSTALL="${srcpwd}/install-sh -c"
98 fi
99
100 # Set srcdir to "." if that's what it is.
101 # This is important for multilib support.
102 pwd=`${PWDCMD-pwd}`
103 if test "${pwd}" = "${srcpwd}" ; then
104 srcdir=.
105 fi
106
107 topsrcdir=$srcpwd
108
109 extra_host_args=
110
111 ### To add a new directory to the tree, first choose whether it is a target
112 ### or a host dependent tool. Then put it into the appropriate list
113 ### (library or tools, host or target), doing a dependency sort.
114
115 # Subdirs will be configured in the order listed in build_configdirs,
116 # configdirs, or target_configdirs; see the serialization section below.
117
118 # Dependency sorting is only needed when *configuration* must be done in
119 # a particular order. In all cases a dependency should be specified in
120 # the Makefile, whether or not it's implicitly specified here.
121
122 # Double entries in build_configdirs, configdirs, or target_configdirs may
123 # cause circular dependencies and break everything horribly.
124
125 # these library is used by various programs built for the build
126 # environment
127 #
128 build_libs="build-libiberty build-libcpp"
129
130 # these tools are built for the build environment
131 build_tools="build-texinfo build-flex build-bison build-m4 build-fixincludes"
132
133 # these libraries are used by various programs built for the host environment
134 #f
135 host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktrace libcpp libcody libdecnumber gmp mpfr mpc isl libelf libiconv libctf"
136
137 # these tools are built for the host environment
138 # Note, the powerpc-eabi build depends on sim occurring before gdb in order to
139 # know that we are building the simulator.
140 # binutils, gas and ld appear in that order because it makes sense to run
141 # "make check" in that particular order.
142 # If --enable-gold is used, "gold" may replace "ld".
143 host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gdbserver gprof etc expect dejagnu m4 utils guile fastjar gnattools libcc1 gotools c++tools"
144
145 # these libraries are built for the target environment, and are built after
146 # the host libraries and the host tools (which may be a cross compiler)
147 # Note that libiberty is not a target library.
148 target_libraries="target-libgcc \
149 target-libbacktrace \
150 target-libgloss \
151 target-newlib \
152 target-libgomp \
153 target-liboffloadmic \
154 target-libatomic \
155 target-libitm \
156 target-libstdc++-v3 \
157 target-libsanitizer \
158 target-libvtv \
159 target-libssp \
160 target-libquadmath \
161 target-libgfortran \
162 target-libffi \
163 target-libobjc \
164 target-libada \
165 target-libgo \
166 target-libphobos \
167 target-zlib"
168
169 # these tools are built using the target libraries, and are intended to
170 # run only in the target environment
171 #
172 # note: any program that *uses* libraries that are in the "target_libraries"
173 # list belongs in this list.
174 #
175 target_tools="target-rda"
176
177 ################################################################################
178
179 ## All tools belong in one of the four categories, and are assigned above
180 ## We assign ${configdirs} this way to remove all embedded newlines. This
181 ## is important because configure will choke if they ever get through.
182 ## ${configdirs} is directories we build using the host tools.
183 ## ${target_configdirs} is directories we build using the target tools.
184 configdirs=`echo ${host_libs} ${host_tools}`
185 target_configdirs=`echo ${target_libraries} ${target_tools}`
186 build_configdirs=`echo ${build_libs} ${build_tools}`
187
188 m4_divert_text([PARSE_ARGS],
189 [case $srcdir in
190 *" "*)
191 m4_pushdef([AS_MESSAGE_LOG_FD], [])dnl
192 AC_MSG_ERROR([path to source, $srcdir, contains spaces])
193 m4_popdef([AS_MESSAGE_LOG_FD])dnl
194 ;;
195 esac
196 ac_subdirs_all=`cd $srcdir && echo */configure | sed 's,/configure,,g'`
197 ])
198
199 ################################################################################
200
201 srcname="gnu development package"
202
203 # This gets set non-empty for some net releases of packages.
204 appdirs=""
205
206 # Define is_cross_compiler to save on calls to 'test'.
207 is_cross_compiler=
208 if test x"${host}" = x"${target}" ; then
209 is_cross_compiler=no
210 else
211 is_cross_compiler=yes
212 fi
213
214 # Find the build and target subdir names.
215 GCC_TOPLEV_SUBDIRS
216 # Be sure to cover against remnants of an in-tree build.
217 if test $srcdir != . && test -d $srcdir/host-${host_noncanonical}; then
218 AC_MSG_ERROR([building out of tree but $srcdir contains host-${host_noncanonical}.
219 Use a pristine source tree when building in a separate tree])
220 fi
221
222 # Skipdirs are removed silently.
223 skipdirs=
224 # Noconfigdirs are removed loudly.
225 noconfigdirs=""
226
227 use_gnu_ld=
228 # Make sure we don't let GNU ld be added if we didn't want it.
229 if test x$with_gnu_ld = xno ; then
230 use_gnu_ld=no
231 noconfigdirs="$noconfigdirs ld gold"
232 fi
233
234 use_gnu_as=
235 # Make sure we don't let GNU as be added if we didn't want it.
236 if test x$with_gnu_as = xno ; then
237 use_gnu_as=no
238 noconfigdirs="$noconfigdirs gas"
239 fi
240
241 use_included_zlib=
242 AC_ARG_WITH(system-zlib,
243 [AS_HELP_STRING([--with-system-zlib], [use installed libz])])
244 # Make sure we don't let ZLIB be added if we didn't want it.
245 if test x$with_system_zlib = xyes ; then
246 use_included_zlib=no
247 noconfigdirs="$noconfigdirs zlib"
248 fi
249
250 # some tools are so dependent upon X11 that if we're not building with X,
251 # it's not even worth trying to configure, much less build, that tool.
252
253 case ${with_x} in
254 yes | "") ;; # the default value for this tree is that X11 is available
255 no)
256 skipdirs="${skipdirs} tk itcl libgui"
257 # We won't be able to build gdbtk without X.
258 enable_gdbtk=no
259 ;;
260 *) echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2 ;;
261 esac
262
263 # Some are only suitable for cross toolchains.
264 # Remove these if host=target.
265 cross_only="target-libgloss target-newlib target-opcodes"
266
267 case $is_cross_compiler in
268 no) skipdirs="${skipdirs} ${cross_only}" ;;
269 esac
270
271 # If both --with-headers and --with-libs are specified, default to
272 # --without-newlib.
273 if test x"${with_headers}" != x && test x"${with_headers}" != xno \
274 && test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
275 if test x"${with_newlib}" = x ; then
276 with_newlib=no
277 fi
278 fi
279
280 # Recognize --with-newlib/--without-newlib.
281 case ${with_newlib} in
282 no) skipdirs="${skipdirs} target-newlib" ;;
283 yes) skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` ;;
284 esac
285
286 AC_ARG_ENABLE(as-accelerator-for,
287 [AS_HELP_STRING([--enable-as-accelerator-for=ARG],
288 [build as offload target compiler.
289 Specify offload host triple by ARG])])
290
291 AC_ARG_ENABLE(offload-targets,
292 [AS_HELP_STRING([--enable-offload-targets=LIST],
293 [enable offloading to devices from comma-separated LIST of
294 TARGET[=DIR]. Use optional path to find offload target compiler
295 during the build])],
296 [
297 if test x"$enable_offload_targets" = x; then
298 AC_MSG_ERROR([no offload targets specified])
299 fi
300 ], [enable_offload_targets=])
301
302 AC_ARG_ENABLE(offload-defaulted,
303 [AS_HELP_STRING([--enable-offload-defaulted]
304 [If enabled, configured but not installed offload compilers and
305 libgomp plugins are silently ignored. Useful for distribution
306 compilers where those are in separate optional packages.])],
307 [enable_offload_defaulted=$enableval],
308 [enable_offload_defaulted=])
309
310 # Handle --enable-gold, --enable-ld.
311 # --disable-gold [--enable-ld]
312 # Build only ld. Default option.
313 # --enable-gold [--enable-ld]
314 # Build both gold and ld. Install gold as "ld.gold", install ld
315 # as "ld.bfd" and "ld".
316 # --enable-gold=default [--enable-ld]
317 # Build both gold and ld. Install gold as "ld.gold" and "ld",
318 # install ld as "ld.bfd".
319 # --enable-gold[=default] --disable-ld
320 # Build only gold, which is then installed as both "ld.gold" and "ld".
321 # --enable-gold --enable-ld=default
322 # Build both gold (installed as "ld.gold") and ld (installed as "ld"
323 # and ld.bfd).
324 # In other words, ld is default
325 # --enable-gold=default --enable-ld=default
326 # Error.
327
328 default_ld=
329 AC_ARG_ENABLE(gold,
330 [AS_HELP_STRING([[--enable-gold[=ARG]]],
331 [build gold @<:@ARG={default,yes,no}@:>@])],
332 ENABLE_GOLD=$enableval,
333 ENABLE_GOLD=no)
334 case "${ENABLE_GOLD}" in
335 yes|default)
336 # Check for ELF target.
337 is_elf=no
338 case "${target}" in
339 *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \
340 | *-*-linux* | *-*-gnu* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \
341 | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* \
342 | *-*-solaris2* | *-*-nto* | *-*-nacl*)
343 case "${target}" in
344 *-*-linux*aout* | *-*-linux*oldld*)
345 ;;
346 *)
347 is_elf=yes
348 ;;
349 esac
350 esac
351
352 if test "$is_elf" = "yes"; then
353 # Check for target supported by gold.
354 case "${target}" in
355 i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-* \
356 | aarch64*-*-* | mips*-*-* | s390*-*-* | loongarch*-*-*)
357 configdirs="$configdirs gold"
358 if test x${ENABLE_GOLD} = xdefault; then
359 default_ld=gold
360 fi
361 ENABLE_GOLD=yes
362 ;;
363 esac
364 fi
365 ;;
366 no)
367 ;;
368 *)
369 AC_MSG_ERROR([invalid --enable-gold argument])
370 ;;
371 esac
372
373 AC_ARG_ENABLE(ld,
374 [AS_HELP_STRING([[--enable-ld[=ARG]]],
375 [build ld @<:@ARG={default,yes,no}@:>@])],
376 ENABLE_LD=$enableval,
377 ENABLE_LD=yes)
378
379 case "${ENABLE_LD}" in
380 default)
381 if test x${default_ld} != x; then
382 AC_MSG_ERROR([either gold or ld can be the default ld])
383 fi
384 ;;
385 yes)
386 ;;
387 no)
388 if test x${ENABLE_GOLD} != xyes; then
389 AC_MSG_WARN([neither ld nor gold are enabled])
390 fi
391 configdirs=`echo " ${configdirs} " | sed -e 's/ ld / /'`
392 ;;
393 *)
394 AC_MSG_ERROR([invalid --enable-ld argument])
395 ;;
396 esac
397
398 # PR gas/19109
399 # Decide the default method for compressing debug sections.
400 # Provide a configure time option to override our default.
401 AC_ARG_ENABLE(compressed_debug_sections,
402 [AS_HELP_STRING([--enable-compressed-debug-sections={all,gas,gold,ld,none}],
403 [Enable compressed debug sections for gas, gold or ld by
404 default])],
405 [
406 if test x"$enable_compressed_debug_sections" = xyes; then
407 AC_MSG_ERROR([no program with compressed debug sections specified])
408 fi
409 ], [enable_compressed_debug_sections=])
410
411 # Configure extra directories which are host specific
412
413 case "${host}" in
414 *-cygwin*)
415 configdirs="$configdirs libtermcap" ;;
416 esac
417
418 # A target can indicate whether a language isn't supported for some reason.
419 # Only spaces may be used in this macro; not newlines or tabs.
420 unsupported_languages=
421
422 # Remove more programs from consideration, based on the host or
423 # target this usually means that a port of the program doesn't
424 # exist yet.
425
426 case "${host}" in
427 i[[3456789]]86-*-msdosdjgpp*)
428 noconfigdirs="$noconfigdirs tcl tk itcl"
429 ;;
430 esac
431
432
433 AC_ARG_ENABLE(libquadmath,
434 AS_HELP_STRING([--disable-libquadmath],
435 [do not build libquadmath directory]),
436 ENABLE_LIBQUADMATH=$enableval,
437 ENABLE_LIBQUADMATH=yes)
438 if test "${ENABLE_LIBQUADMATH}" = "no" ; then
439 noconfigdirs="$noconfigdirs target-libquadmath"
440 fi
441
442
443 AC_ARG_ENABLE(libquadmath-support,
444 AS_HELP_STRING([--disable-libquadmath-support],
445 [disable libquadmath support for Fortran]),
446 ENABLE_LIBQUADMATH_SUPPORT=$enableval,
447 ENABLE_LIBQUADMATH_SUPPORT=yes)
448 enable_libquadmath_support=
449 if test "${ENABLE_LIBQUADMATH_SUPPORT}" = "no" ; then
450 enable_libquadmath_support=no
451 fi
452
453
454 AC_ARG_ENABLE(libada,
455 [AS_HELP_STRING([--enable-libada], [build libada directory])],
456 ENABLE_LIBADA=$enableval,
457 ENABLE_LIBADA=yes)
458 if test "${ENABLE_LIBADA}" != "yes" ; then
459 noconfigdirs="$noconfigdirs gnattools"
460 fi
461
462 AC_ARG_ENABLE(libssp,
463 [AS_HELP_STRING([--enable-libssp], [build libssp directory])],
464 ENABLE_LIBSSP=$enableval,
465 ENABLE_LIBSSP=yes)
466
467 AC_ARG_ENABLE(libstdcxx,
468 AS_HELP_STRING([--disable-libstdcxx],
469 [do not build libstdc++-v3 directory]),
470 ENABLE_LIBSTDCXX=$enableval,
471 ENABLE_LIBSTDCXX=default)
472 [if test "${ENABLE_LIBSTDCXX}" = "no" ; then
473 noconfigdirs="$noconfigdirs target-libstdc++-v3"
474 fi]
475
476 # If this is accelerator compiler and its target is intelmic we enable
477 # target liboffloadmic by default. If this is compiler with offloading
478 # for intelmic we enable host liboffloadmic by default. Otherwise
479 # liboffloadmic is disabled by default.
480 AC_ARG_ENABLE([liboffloadmic],
481 AC_HELP_STRING([[--enable-liboffloadmic[=ARG]]],
482 [build liboffloadmic @<:@ARG={no,host,target}@:>@]),
483 [case "$enableval" in
484 no | host | target)
485 enable_liboffloadmic=$enableval ;;
486 *)
487 AC_MSG_ERROR([--enable-liboffloadmic=no/host/target]) ;;
488 esac],
489 [if test x"$enable_as_accelerator_for" != x; then
490 case "${target}" in
491 *-intelmic-* | *-intelmicemul-*)
492 enable_liboffloadmic=target
493 extra_liboffloadmic_configure_flags="--enable-liboffloadmic=target"
494 ;;
495 *)
496 enable_liboffloadmic=no
497 ;;
498 esac
499 else
500 case "${enable_offload_targets}" in
501 *-intelmic-* | *-intelmicemul-*)
502 enable_liboffloadmic=host
503 extra_liboffloadmic_configure_flags="--enable-liboffloadmic=host"
504 ;;
505 *)
506 enable_liboffloadmic=no
507 ;;
508 esac
509 fi])
510 AC_SUBST(extra_liboffloadmic_configure_flags)
511
512 # Enable libgomp by default on hosted POSIX systems, and a few others.
513 if test x$enable_libgomp = x ; then
514 case "${target}" in
515 *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
516 ;;
517 *-*-netbsd* | *-*-freebsd* | *-*-openbsd* | *-*-dragonfly*)
518 ;;
519 *-*-solaris2* | *-*-hpux11*)
520 ;;
521 *-*-darwin* | *-*-aix*)
522 ;;
523 nvptx*-*-* | amdgcn*-*-*)
524 ;;
525 *)
526 noconfigdirs="$noconfigdirs target-libgomp"
527 ;;
528 esac
529 fi
530
531 # Disable libatomic on unsupported systems.
532 if test -d ${srcdir}/libatomic; then
533 if test x$enable_libatomic = x; then
534 AC_MSG_CHECKING([for libatomic support])
535 if (srcdir=${srcdir}/libatomic; \
536 . ${srcdir}/configure.tgt; \
537 test -n "$UNSUPPORTED")
538 then
539 AC_MSG_RESULT([no])
540 noconfigdirs="$noconfigdirs target-libatomic"
541 else
542 AC_MSG_RESULT([yes])
543 fi
544 fi
545 fi
546
547 # Disable liboffloadmic on unsupported systems.
548 if test -d ${srcdir}/liboffloadmic; then
549 if test x$enable_liboffloadmic != xno; then
550 AC_MSG_CHECKING([for liboffloadmic support])
551 if (srcdir=${srcdir}/liboffloadmic; \
552 . ${srcdir}/configure.tgt; \
553 test -n "$UNSUPPORTED")
554 then
555 AC_MSG_RESULT([no])
556 noconfigdirs="$noconfigdirs target-liboffloadmic"
557 else
558 AC_MSG_RESULT([yes])
559 fi
560 fi
561 fi
562
563 # Disable libitm on unsupported systems.
564 if test -d ${srcdir}/libitm; then
565 if test x$enable_libitm = x; then
566 AC_MSG_CHECKING([for libitm support])
567 if (srcdir=${srcdir}/libitm; \
568 . ${srcdir}/configure.tgt; \
569 test -n "$UNSUPPORTED")
570 then
571 AC_MSG_RESULT([no])
572 noconfigdirs="$noconfigdirs target-libitm"
573 else
574 AC_MSG_RESULT([yes])
575 fi
576 fi
577 fi
578
579 # Disable libsanitizer on unsupported systems.
580 if test -d ${srcdir}/libsanitizer; then
581 if test x$enable_libsanitizer = x; then
582 AC_MSG_CHECKING([for libsanitizer support])
583 if (srcdir=${srcdir}/libsanitizer; \
584 . ${srcdir}/configure.tgt; \
585 test -n "$UNSUPPORTED")
586 then
587 AC_MSG_RESULT([no])
588 noconfigdirs="$noconfigdirs target-libsanitizer"
589 else
590 AC_MSG_RESULT([yes])
591 fi
592 fi
593 fi
594
595 # Disable libvtv on unsupported systems.
596 if test -d ${srcdir}/libvtv; then
597 if test x$enable_libvtv = x; then
598 AC_MSG_CHECKING([for libvtv support])
599 if (srcdir=${srcdir}/libvtv; \
600 . ${srcdir}/configure.tgt; \
601 test "$VTV_SUPPORTED" != "yes")
602 then
603 AC_MSG_RESULT([no])
604 noconfigdirs="$noconfigdirs target-libvtv"
605 else
606 AC_MSG_RESULT([yes])
607 fi
608 fi
609 fi
610
611 # Disable libquadmath for some systems.
612 case "${target}" in
613 avr-*-*)
614 noconfigdirs="$noconfigdirs target-libquadmath"
615 ;;
616 # libquadmath is unused on AIX and libquadmath build process use of
617 # LD_LIBRARY_PATH can break AIX bootstrap.
618 powerpc-*-aix* | rs6000-*-aix*)
619 noconfigdirs="$noconfigdirs target-libquadmath"
620 ;;
621 esac
622
623 # Disable libssp for some systems.
624 case "${target}" in
625 avr-*-*)
626 # No hosted I/O support.
627 noconfigdirs="$noconfigdirs target-libssp"
628 ;;
629 bpf-*-*)
630 noconfigdirs="$noconfigdirs target-libssp"
631 ;;
632 powerpc-*-aix* | rs6000-*-aix*)
633 noconfigdirs="$noconfigdirs target-libssp"
634 ;;
635 pru-*-*)
636 # No hosted I/O support.
637 noconfigdirs="$noconfigdirs target-libssp"
638 ;;
639 rl78-*-*)
640 # libssp uses a misaligned load to trigger a fault, but the RL78
641 # doesn't fault for those - instead, it gives a build-time error
642 # for explicit misaligned loads.
643 noconfigdirs="$noconfigdirs target-libssp"
644 ;;
645 visium-*-*)
646 # No hosted I/O support.
647 noconfigdirs="$noconfigdirs target-libssp"
648 ;;
649 esac
650
651 # Disable libstdc++-v3 for some systems.
652 # Allow user to override this if they pass --enable-libstdcxx
653 if test "${ENABLE_LIBSTDCXX}" = "default" ; then
654 case "${target}" in
655 *-*-vxworks*)
656 # VxWorks uses the Dinkumware C++ library.
657 noconfigdirs="$noconfigdirs target-libstdc++-v3"
658 ;;
659 amdgcn*-*-*)
660 # Not ported/fails to build when using newlib.
661 noconfigdirs="$noconfigdirs target-libstdc++-v3"
662 ;;
663 arm*-wince-pe*)
664 # the C++ libraries don't build on top of CE's C libraries
665 noconfigdirs="$noconfigdirs target-libstdc++-v3"
666 ;;
667 avr-*-*)
668 noconfigdirs="$noconfigdirs target-libstdc++-v3"
669 ;;
670 bpf-*-*)
671 noconfigdirs="$noconfigdirs target-libstdc++-v3"
672 ;;
673 ft32-*-*)
674 noconfigdirs="$noconfigdirs target-libstdc++-v3"
675 ;;
676 esac
677 fi
678
679 # Disable C++ on systems where it is known to not work.
680 # For testing, you can override this with --enable-languages=c++.
681 case ,${enable_languages}, in
682 *,c++,*)
683 ;;
684 *)
685 case "${target}" in
686 bpf-*-*)
687 unsupported_languages="$unsupported_languages c++"
688 ;;
689 esac
690 ;;
691 esac
692
693 # Disable Objc on systems where it is known to not work.
694 # For testing, you can override this with --enable-languages=objc.
695 case ,${enable_languages}, in
696 *,objc,*)
697 ;;
698 *)
699 case "${target}" in
700 bpf-*-*)
701 unsupported_languages="$unsupported_languages objc"
702 ;;
703 esac
704 ;;
705 esac
706
707 # Disable D on systems where it is known to not work.
708 # For testing, you can override this with --enable-languages=d.
709 case ,${enable_languages}, in
710 *,d,*)
711 ;;
712 *)
713 case "${target}" in
714 bpf-*-*)
715 unsupported_languages="$unsupported_languages d"
716 ;;
717 esac
718 ;;
719 esac
720
721 # Disable libphobos on unsupported systems.
722 # For testing, you can override this with --enable-libphobos.
723 if test -d ${srcdir}/libphobos; then
724 if test x$enable_libphobos = x; then
725 AC_MSG_CHECKING([for libphobos support])
726 if (srcdir=${srcdir}/libphobos; \
727 . ${srcdir}/configure.tgt; \
728 test "$LIBPHOBOS_SUPPORTED" != "yes")
729 then
730 AC_MSG_RESULT([no])
731 noconfigdirs="$noconfigdirs target-libphobos"
732 else
733 AC_MSG_RESULT([yes])
734 fi
735 fi
736 fi
737
738 # Disable Fortran for some systems.
739 case "${target}" in
740 mmix-*-*)
741 # See <http://gcc.gnu.org/ml/gcc-patches/2004-11/msg00572.html>.
742 unsupported_languages="$unsupported_languages fortran"
743 ;;
744 bpf-*-*)
745 unsupported_languages="$unsupported_languages fortran"
746 ;;
747 esac
748
749 # Disable libffi for some systems.
750 case "${target}" in
751 powerpc-*-darwin*)
752 ;;
753 i[[3456789]]86-*-darwin*)
754 ;;
755 x86_64-*-darwin[[912]]*)
756 ;;
757 *-*-darwin*)
758 noconfigdirs="$noconfigdirs target-libffi"
759 ;;
760 *-*-netware*)
761 noconfigdirs="$noconfigdirs target-libffi"
762 ;;
763 *-*-phoenix*)
764 noconfigdirs="$noconfigdirs target-libffi"
765 ;;
766 *-*-rtems*)
767 noconfigdirs="$noconfigdirs target-libffi"
768 ;;
769 *-*-tpf*)
770 noconfigdirs="$noconfigdirs target-libffi"
771 ;;
772 *-*-uclinux*)
773 noconfigdirs="$noconfigdirs target-libffi"
774 ;;
775 *-*-vxworks*)
776 noconfigdirs="$noconfigdirs target-libffi"
777 ;;
778 aarch64*-*-freebsd*)
779 noconfigdirs="$noconfigdirs target-libffi"
780 ;;
781 alpha*-*-*vms*)
782 noconfigdirs="$noconfigdirs target-libffi"
783 ;;
784 arm*-*-freebsd*)
785 noconfigdirs="$noconfigdirs target-libffi"
786 ;;
787 arm-wince-pe)
788 noconfigdirs="$noconfigdirs target-libffi"
789 ;;
790 arm*-*-symbianelf*)
791 noconfigdirs="$noconfigdirs target-libffi"
792 ;;
793 bpf-*-*)
794 noconfigdirs="$noconfigdirs target-libffi"
795 ;;
796 cris-*-* | crisv32-*-*)
797 case "${target}" in
798 *-*-linux*)
799 ;;
800 *) # See PR46792 regarding target-libffi.
801 noconfigdirs="$noconfigdirs target-libffi";;
802 esac
803 ;;
804 hppa*64*-*-hpux*)
805 noconfigdirs="$noconfigdirs target-libffi"
806 ;;
807 hppa*-hp-hpux11*)
808 ;;
809 hppa*-*-hpux*)
810 noconfigdirs="$noconfigdirs target-libffi"
811 ;;
812 ia64*-*-*vms*)
813 noconfigdirs="$noconfigdirs target-libffi"
814 ;;
815 i[[3456789]]86-w64-mingw*)
816 noconfigdirs="$noconfigdirs target-libffi"
817 ;;
818 i[[3456789]]86-*-mingw*)
819 noconfigdirs="$noconfigdirs target-libffi"
820 ;;
821 x86_64-*-mingw*)
822 noconfigdirs="$noconfigdirs target-libffi"
823 ;;
824 mmix-*-*)
825 noconfigdirs="$noconfigdirs target-libffi"
826 ;;
827 powerpc-*-aix*)
828 ;;
829 rs6000-*-aix*)
830 ;;
831 ft32-*-*)
832 noconfigdirs="$noconfigdirs target-libffi"
833 ;;
834 *-*-lynxos*)
835 noconfigdirs="$noconfigdirs target-libffi"
836 ;;
837 esac
838
839 # Disable the go frontend on systems where it is known to not work. Please keep
840 # this in sync with contrib/config-list.mk.
841 case "${target}" in
842 *-*-darwin* | *-*-cygwin* | *-*-mingw* | bpf-* )
843 unsupported_languages="$unsupported_languages go"
844 ;;
845 esac
846
847 # Only allow gdbserver on some systems.
848 if test -d ${srcdir}/gdbserver; then
849 if test x$enable_gdbserver = x; then
850 AC_MSG_CHECKING([for gdbserver support])
851 if (srcdir=${srcdir}/gdbserver; \
852 . ${srcdir}/configure.srv; \
853 test -n "$UNSUPPORTED")
854 then
855 AC_MSG_RESULT([no])
856 noconfigdirs="$noconfigdirs gdbserver"
857 else
858 AC_MSG_RESULT([yes])
859 fi
860 fi
861 fi
862
863 # Disable libgo for some systems where it is known to not work.
864 # For testing, you can easily override this with --enable-libgo.
865 if test x$enable_libgo = x; then
866 case "${target}" in
867 *-*-darwin*)
868 # PR 46986
869 noconfigdirs="$noconfigdirs target-libgo"
870 ;;
871 *-*-cygwin* | *-*-mingw*)
872 noconfigdirs="$noconfigdirs target-libgo"
873 ;;
874 bpf-*-*)
875 noconfigdirs="$noconfigdirs target-libgo"
876 ;;
877 esac
878 fi
879
880 # Default libgloss CPU subdirectory.
881 libgloss_dir="$target_cpu"
882
883 case "${target}" in
884 sh*-*-pe|mips*-*-pe|*arm-wince-pe)
885 libgloss_dir=wince
886 ;;
887 aarch64*-*-* )
888 libgloss_dir=aarch64
889 ;;
890 arm*-*-*)
891 libgloss_dir=arm
892 ;;
893 cris-*-* | crisv32-*-*)
894 libgloss_dir=cris
895 ;;
896 hppa*-*-*)
897 libgloss_dir=pa
898 ;;
899 i[[3456789]]86-*-*)
900 libgloss_dir=i386
901 ;;
902 loongarch*-*-*)
903 libgloss_dir=loongarch
904 ;;
905 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
906 libgloss_dir=m68hc11
907 ;;
908 m68*-*-* | fido-*-*)
909 libgloss_dir=m68k
910 ;;
911 mips*-*-*)
912 libgloss_dir=mips
913 ;;
914 powerpc*-*-*)
915 libgloss_dir=rs6000
916 ;;
917 pru-*-*)
918 libgloss_dir=pru
919 ;;
920 sparc*-*-*)
921 libgloss_dir=sparc
922 ;;
923 esac
924
925 # Disable newlib and libgloss for various target OSes.
926 case "${target}" in
927 alpha*-dec-osf*)
928 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
929 ;;
930 i[[3456789]]86-*-linux*)
931 # This section makes it possible to build newlib natively on linux.
932 # If we are using a cross compiler then don't configure newlib.
933 if test x${is_cross_compiler} != xno ; then
934 noconfigdirs="$noconfigdirs target-newlib"
935 fi
936 noconfigdirs="$noconfigdirs target-libgloss"
937 # If we are not using a cross compiler, do configure newlib.
938 # Note however, that newlib will only be configured in this situation
939 # if the --with-newlib option has been given, because otherwise
940 # 'target-newlib' will appear in skipdirs.
941 ;;
942 i[[3456789]]86-*-rdos*)
943 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
944 ;;
945 sh*-*-pe|mips*-*-pe|arm-wince-pe)
946 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
947 ;;
948 sparc-*-sunos4*)
949 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
950 ;;
951 bpf-*-*)
952 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
953 ;;
954 *-*-aix*)
955 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
956 ;;
957 *-*-beos*)
958 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
959 ;;
960 *-*-chorusos)
961 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
962 ;;
963 *-*-dragonfly*)
964 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
965 ;;
966 *-*-freebsd*)
967 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
968 ;;
969 *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
970 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
971 ;;
972 *-*-lynxos*)
973 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
974 ;;
975 *-*-mingw*)
976 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
977 ;;
978 *-*-netbsd*)
979 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
980 ;;
981 *-*-netware*)
982 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
983 ;;
984 *-*-tpf*)
985 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
986 ;;
987 *-*-uclinux*)
988 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
989 ;;
990 *-*-vxworks*)
991 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
992 ;;
993 esac
994
995 case "${target}" in
996 *-*-chorusos)
997 ;;
998 aarch64-*-darwin*)
999 noconfigdirs="$noconfigdirs ld gas gdb gprof"
1000 noconfigdirs="$noconfigdirs sim target-rda"
1001 ;;
1002 amdgcn*-*-*)
1003 ;;
1004 arm-*-darwin*)
1005 noconfigdirs="$noconfigdirs ld gas gdb gprof"
1006 noconfigdirs="$noconfigdirs sim target-rda"
1007 ;;
1008 powerpc-*-darwin*)
1009 noconfigdirs="$noconfigdirs ld gas gdb gprof"
1010 noconfigdirs="$noconfigdirs sim target-rda"
1011 ;;
1012 i[[3456789]]86-*-darwin*)
1013 noconfigdirs="$noconfigdirs ld gprof"
1014 noconfigdirs="$noconfigdirs sim target-rda"
1015 ;;
1016 x86_64-*-darwin[[912]]*)
1017 noconfigdirs="$noconfigdirs ld gas gprof"
1018 noconfigdirs="$noconfigdirs sim target-rda"
1019 ;;
1020 *-*-darwin*)
1021 noconfigdirs="$noconfigdirs ld gas gdb gprof"
1022 noconfigdirs="$noconfigdirs sim target-rda"
1023 ;;
1024 *-*-dragonfly*)
1025 ;;
1026 *-*-freebsd*)
1027 if test "x$with_gmp" = x \
1028 && ! test -d ${srcdir}/gmp \
1029 && test -f /usr/local/include/gmp.h; then
1030 with_gmp=/usr/local
1031 fi
1032 ;;
1033 *-*-kaos*)
1034 # Remove unsupported stuff on all kaOS configurations.
1035 noconfigdirs="$noconfigdirs target-libgloss"
1036 ;;
1037 *-*-netbsd*)
1038 ;;
1039 *-*-netware*)
1040 ;;
1041 *-*-phoenix*)
1042 noconfigdirs="$noconfigdirs target-libgloss"
1043 ;;
1044 *-*-rtems*)
1045 noconfigdirs="$noconfigdirs target-libgloss"
1046 ;;
1047 # The tpf target doesn't support gdb yet.
1048 *-*-tpf*)
1049 noconfigdirs="$noconfigdirs gdb tcl tk libgui itcl"
1050 ;;
1051 *-*-uclinux*)
1052 noconfigdirs="$noconfigdirs target-rda"
1053 ;;
1054 *-*-vxworks*)
1055 ;;
1056 alpha*-dec-osf*)
1057 # ld works, but does not support shared libraries.
1058 # gas doesn't generate exception information.
1059 noconfigdirs="$noconfigdirs gas ld"
1060 ;;
1061 alpha*-*-*vms*)
1062 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
1063 ;;
1064 alpha*-*-*)
1065 # newlib is not 64 bit ready
1066 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
1067 ;;
1068 bpf-*-*)
1069 noconfigdirs="$noconfigdirs target-libobjc target-libbacktrace"
1070 ;;
1071 sh*-*-pe|mips*-*-pe|*arm-wince-pe)
1072 noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
1073 ;;
1074 arc*-*-*)
1075 noconfigdirs="$noconfigdirs sim"
1076 ;;
1077 arm-*-pe*)
1078 noconfigdirs="$noconfigdirs target-libgloss"
1079 ;;
1080 arm-*-riscix*)
1081 noconfigdirs="$noconfigdirs ld target-libgloss"
1082 ;;
1083 avr-*-*)
1084 if test x${with_avrlibc} != xno; then
1085 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
1086 fi
1087 ;;
1088 c4x-*-* | tic4x-*-*)
1089 noconfigdirs="$noconfigdirs target-libgloss"
1090 ;;
1091 tic54x-*-*)
1092 noconfigdirs="$noconfigdirs target-libgloss gdb"
1093 ;;
1094 d10v-*-*)
1095 noconfigdirs="$noconfigdirs target-libgloss"
1096 ;;
1097 d30v-*-*)
1098 noconfigdirs="$noconfigdirs gdb"
1099 ;;
1100 fr30-*-elf*)
1101 noconfigdirs="$noconfigdirs gdb"
1102 ;;
1103 ft32-*-*)
1104 noconfigdirs="$noconfigdirs target-rda gprof"
1105 ;;
1106 moxie-*-*)
1107 noconfigdirs="$noconfigdirs"
1108 ;;
1109 h8300*-*-*)
1110 noconfigdirs="$noconfigdirs target-libgloss"
1111 ;;
1112 h8500-*-*)
1113 noconfigdirs="$noconfigdirs target-libgloss"
1114 ;;
1115 hppa1.1-*-osf* | hppa1.1-*-bsd* )
1116 ;;
1117 hppa*64*-*-hpux*)
1118 noconfigdirs="$noconfigdirs gdb"
1119 ;;
1120 hppa*-*-hpux11*)
1121 noconfigdirs="$noconfigdirs gdb ld"
1122 ;;
1123 hppa*64*-*-linux*)
1124 ;;
1125 hppa*-*-linux*)
1126 ;;
1127 hppa*-*-*elf* | \
1128 hppa*-*-lites* | \
1129 hppa*-*-openbsd* | \
1130 hppa*64*-*-*)
1131 ;;
1132 hppa*-*-pro*)
1133 ;;
1134 hppa*-*-*)
1135 noconfigdirs="$noconfigdirs ld"
1136 ;;
1137 i960-*-*)
1138 noconfigdirs="$noconfigdirs gdb"
1139 ;;
1140 ia64*-*-elf*)
1141 # No gdb support yet.
1142 noconfigdirs="$noconfigdirs readline libgui itcl gdb"
1143 ;;
1144 ia64*-**-hpux*)
1145 # No ld support yet.
1146 noconfigdirs="$noconfigdirs gdb libgui itcl ld"
1147 ;;
1148 ia64*-*-*vms*)
1149 # No ld support yet.
1150 noconfigdirs="$noconfigdirs libgui itcl ld"
1151 ;;
1152 i[[3456789]]86-w64-mingw*)
1153 ;;
1154 i[[3456789]]86-*-mingw*)
1155 target_configdirs="$target_configdirs target-winsup"
1156 ;;
1157 *-*-cygwin*)
1158 target_configdirs="$target_configdirs target-libtermcap target-winsup"
1159 noconfigdirs="$noconfigdirs target-libgloss"
1160 # always build newlib if winsup directory is present.
1161 if test -d "$srcdir/winsup/cygwin"; then
1162 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
1163 elif test -d "$srcdir/newlib"; then
1164 echo "Warning: winsup/cygwin is missing so newlib can't be built."
1165 fi
1166 ;;
1167 i[[3456789]]86-*-pe)
1168 noconfigdirs="$noconfigdirs target-libgloss"
1169 ;;
1170 i[[3456789]]86-*-sco3.2v5*)
1171 # The linker does not yet know about weak symbols in COFF,
1172 # and is not configured to handle mixed ELF and COFF.
1173 noconfigdirs="$noconfigdirs ld target-libgloss"
1174 ;;
1175 i[[3456789]]86-*-sco*)
1176 noconfigdirs="$noconfigdirs gprof target-libgloss"
1177 ;;
1178 i[[3456789]]86-*-solaris2* | x86_64-*-solaris2.1[[0-9]]*)
1179 noconfigdirs="$noconfigdirs target-libgloss"
1180 ;;
1181 i[[3456789]]86-*-sysv4*)
1182 noconfigdirs="$noconfigdirs target-libgloss"
1183 ;;
1184 i[[3456789]]86-*-beos*)
1185 noconfigdirs="$noconfigdirs gdb"
1186 ;;
1187 i[[3456789]]86-*-rdos*)
1188 noconfigdirs="$noconfigdirs gdb"
1189 ;;
1190 mmix-*-*)
1191 noconfigdirs="$noconfigdirs gdb"
1192 ;;
1193 mt-*-*)
1194 noconfigdirs="$noconfigdirs sim"
1195 ;;
1196 nfp-*-*)
1197 noconfigdirs="$noconfigdirs ld gas gdb gprof sim"
1198 noconfigdirs="$noconfigdirs $target_libraries"
1199 ;;
1200 pdp11-*-*)
1201 noconfigdirs="$noconfigdirs gdb gprof"
1202 ;;
1203 powerpc-*-aix*)
1204 # copied from rs6000-*-* entry
1205 noconfigdirs="$noconfigdirs gprof"
1206 ;;
1207 powerpc*-*-winnt* | powerpc*-*-pe*)
1208 target_configdirs="$target_configdirs target-winsup"
1209 noconfigdirs="$noconfigdirs gdb tcl tk target-libgloss itcl"
1210 # always build newlib.
1211 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
1212 ;;
1213 # This is temporary until we can link against shared libraries
1214 powerpcle-*-solaris*)
1215 noconfigdirs="$noconfigdirs gdb sim tcl tk itcl"
1216 ;;
1217 powerpc-*-beos*)
1218 noconfigdirs="$noconfigdirs gdb"
1219 ;;
1220 rs6000-*-lynxos*)
1221 noconfigdirs="$noconfigdirs gprof"
1222 ;;
1223 rs6000-*-aix*)
1224 noconfigdirs="$noconfigdirs gprof"
1225 ;;
1226 rs6000-*-*)
1227 noconfigdirs="$noconfigdirs gprof"
1228 ;;
1229 m68k-apollo-*)
1230 noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss"
1231 ;;
1232 microblaze*)
1233 noconfigdirs="$noconfigdirs gprof"
1234 ;;
1235 mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
1236 if test x$with_newlib = xyes; then
1237 noconfigdirs="$noconfigdirs gprof"
1238 fi
1239 ;;
1240 mips*-*-irix5*)
1241 noconfigdirs="$noconfigdirs gprof target-libgloss"
1242 ;;
1243 mips*-*-irix6*)
1244 noconfigdirs="$noconfigdirs gprof target-libgloss"
1245 ;;
1246 mips*-*-bsd*)
1247 noconfigdirs="$noconfigdirs ld gas gprof target-libgloss"
1248 ;;
1249 mips*-*-linux*)
1250 ;;
1251 mips*-*-ultrix* | mips*-*-osf* | mips*-*-ecoff* | mips*-*-pe* \
1252 | mips*-*-irix* | mips*-*-lnews* | mips*-*-riscos*)
1253 noconfigdirs="$noconfigdirs ld gas gprof"
1254 ;;
1255 mips*-*-*)
1256 noconfigdirs="$noconfigdirs gprof"
1257 ;;
1258 nvptx*-*-*)
1259 noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
1260 ;;
1261 sh-*-*)
1262 case "${target}" in
1263 sh*-*-elf)
1264 ;;
1265 *)
1266 noconfigdirs="$noconfigdirs target-libgloss" ;;
1267 esac
1268 ;;
1269 sparc-*-sunos4*)
1270 if test x${is_cross_compiler} = xno ; then
1271 use_gnu_ld=no
1272 fi
1273 ;;
1274 tic6x-*-*)
1275 noconfigdirs="$noconfigdirs sim"
1276 ;;
1277 v810-*-*)
1278 noconfigdirs="$noconfigdirs bfd binutils gas gdb ld opcodes target-libgloss"
1279 ;;
1280 vax-*-*)
1281 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
1282 ;;
1283 wasm32-*-*)
1284 noconfigdirs="$noconfigdirs ld"
1285 ;;
1286 loongarch*-*-linux*)
1287 ;;
1288 loongarch*-*-*)
1289 noconfigdirs="$noconfigdirs gprof"
1290 ;;
1291 esac
1292
1293 # If we aren't building newlib, then don't build libgloss, since libgloss
1294 # depends upon some newlib header files.
1295 case "${noconfigdirs}" in
1296 *target-libgloss*) ;;
1297 *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
1298 esac
1299
1300 # Work in distributions that contain no compiler tools, like Autoconf.
1301 host_makefile_frag=/dev/null
1302 if test -d ${srcdir}/config ; then
1303 case "${host}" in
1304 i[[3456789]]86-*-msdosdjgpp*)
1305 host_makefile_frag="config/mh-djgpp"
1306 ;;
1307 *-cygwin*)
1308 ACX_CHECK_CYGWIN_CAT_WORKS
1309 host_makefile_frag="config/mh-cygwin"
1310 ;;
1311 *-mingw*)
1312 host_makefile_frag="config/mh-mingw"
1313 ;;
1314 alpha*-linux*)
1315 host_makefile_frag="config/mh-alpha-linux"
1316 ;;
1317 hppa*-hp-hpux10*)
1318 host_makefile_frag="config/mh-pa-hpux10"
1319 ;;
1320 hppa*-hp-hpux*)
1321 host_makefile_frag="config/mh-pa"
1322 ;;
1323 hppa*-*)
1324 host_makefile_frag="config/mh-pa"
1325 ;;
1326 i?86-*-darwin[[89]]* | i?86-*-darwin1[[0-7]]* | powerpc*-*-darwin*)
1327 host_makefile_frag="config/mh-darwin"
1328 ;;
1329 powerpc-*-aix*)
1330 host_makefile_frag="config/mh-ppc-aix"
1331 ;;
1332 rs6000-*-aix*)
1333 host_makefile_frag="config/mh-ppc-aix"
1334 ;;
1335 esac
1336 fi
1337
1338 if test "${build}" != "${host}" ; then
1339 AR_FOR_BUILD=${AR_FOR_BUILD-ar}
1340 AS_FOR_BUILD=${AS_FOR_BUILD-as}
1341 CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
1342 CPP_FOR_BUILD="${CPP_FOR_BUILD-\$(CC_FOR_BUILD) -E}"
1343 CXX_FOR_BUILD=${CXX_FOR_BUILD-g++}
1344 DSYMUTIL_FOR_BUILD=${DSYMUTIL_FOR_BUILD-dsymutil}
1345 GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran}
1346 GOC_FOR_BUILD=${GOC_FOR_BUILD-gccgo}
1347 GDC_FOR_BUILD=${GDC_FOR_BUILD-gdc}
1348 DLLTOOL_FOR_BUILD=${DLLTOOL_FOR_BUILD-dlltool}
1349 LD_FOR_BUILD=${LD_FOR_BUILD-ld}
1350 NM_FOR_BUILD=${NM_FOR_BUILD-nm}
1351 RANLIB_FOR_BUILD=${RANLIB_FOR_BUILD-ranlib}
1352 WINDRES_FOR_BUILD=${WINDRES_FOR_BUILD-windres}
1353 WINDMC_FOR_BUILD=${WINDMC_FOR_BUILD-windmc}
1354 else
1355 AR_FOR_BUILD="\$(AR)"
1356 AS_FOR_BUILD="\$(AS)"
1357 CC_FOR_BUILD="\$(CC)"
1358 CXX_FOR_BUILD="\$(CXX)"
1359 DSYMUTIL_FOR_BUILD="\$(DSYMUTIL)"
1360 GFORTRAN_FOR_BUILD="\$(GFORTRAN)"
1361 GOC_FOR_BUILD="\$(GOC)"
1362 GDC_FOR_BUILD="\$(GDC)"
1363 DLLTOOL_FOR_BUILD="\$(DLLTOOL)"
1364 LD_FOR_BUILD="\$(LD)"
1365 NM_FOR_BUILD="\$(NM)"
1366 RANLIB_FOR_BUILD="\$(RANLIB)"
1367 WINDRES_FOR_BUILD="\$(WINDRES)"
1368 WINDMC_FOR_BUILD="\$(WINDMC)"
1369 fi
1370
1371 AC_PROG_CC_C99
1372 AC_PROG_CXX
1373
1374 # We must set the default linker to the linker used by gcc for the correct
1375 # operation of libtool. If LD is not defined and we are using gcc, try to
1376 # set the LD default to the ld used by gcc.
1377 if test -z "$LD"; then
1378 if test "$GCC" = yes; then
1379 case $build in
1380 *-*-mingw*)
1381 gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;;
1382 *)
1383 gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;;
1384 esac
1385 case $gcc_prog_ld in
1386 # Accept absolute paths.
1387 [[\\/]* | [A-Za-z]:[\\/]*)]
1388 LD="$gcc_prog_ld" ;;
1389 esac
1390 fi
1391 fi
1392
1393 # Check whether -static-libstdc++ -static-libgcc is supported.
1394 have_static_libs=no
1395 if test "$GCC" = yes; then
1396 saved_LDFLAGS="$LDFLAGS"
1397
1398 LDFLAGS="$LDFLAGS -static-libstdc++ -static-libgcc"
1399 AC_MSG_CHECKING([whether g++ accepts -static-libstdc++ -static-libgcc])
1400 AC_LANG_PUSH(C++)
1401 AC_LINK_IFELSE([AC_LANG_SOURCE([
1402 #if (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
1403 #error -static-libstdc++ not implemented
1404 #endif
1405 int main() {}])],
1406 [AC_MSG_RESULT([yes]); have_static_libs=yes],
1407 [AC_MSG_RESULT([no])])
1408 AC_LANG_POP(C++)
1409
1410 LDFLAGS="$saved_LDFLAGS"
1411 fi
1412
1413 ACX_PROG_GNAT
1414 ACX_PROG_GDC
1415 ACX_PROG_CMP_IGNORE_INITIAL
1416
1417 AC_ARG_ENABLE([bootstrap],
1418 [AS_HELP_STRING([--enable-bootstrap],
1419 [enable bootstrapping @<:@yes if native build@:>@])],,
1420 enable_bootstrap=default)
1421
1422 # Issue errors and warnings for invalid/strange bootstrap combinations.
1423 if test -r $srcdir/gcc/configure; then
1424 have_compiler=yes
1425 else
1426 have_compiler=no
1427 fi
1428
1429 case "$have_compiler:$host:$target:$enable_bootstrap" in
1430 *:*:*:no) ;;
1431
1432 # Default behavior. Enable bootstrap if we have a compiler
1433 # and we are in a native configuration.
1434 yes:$build:$build:default)
1435 enable_bootstrap=yes ;;
1436
1437 *:*:*:default)
1438 enable_bootstrap=no ;;
1439
1440 # We have a compiler and we are in a native configuration, bootstrap is ok
1441 yes:$build:$build:yes)
1442 ;;
1443
1444 # Other configurations, but we have a compiler. Assume the user knows
1445 # what he's doing.
1446 yes:*:*:yes)
1447 AC_MSG_WARN([trying to bootstrap a cross compiler])
1448 ;;
1449
1450 # No compiler: if they passed --enable-bootstrap explicitly, fail
1451 no:*:*:yes)
1452 AC_MSG_ERROR([cannot bootstrap without a compiler]) ;;
1453
1454 # Fail if wrong command line
1455 *)
1456 AC_MSG_ERROR([invalid option for --enable-bootstrap])
1457 ;;
1458 esac
1459
1460 # When bootstrapping with GCC, build stage 1 in C++11 mode to ensure that a
1461 # C++11 compiler can still start the bootstrap. Otherwise, if building GCC,
1462 # require C++11 (or higher).
1463 if test "$enable_bootstrap:$GXX" = "yes:yes"; then
1464 CXX="$CXX -std=c++11"
1465 elif test "$have_compiler" = yes; then
1466 AX_CXX_COMPILE_STDCXX(11)
1467
1468 if test "${build}" != "${host}"; then
1469 AX_CXX_COMPILE_STDCXX(11, [], [], [_FOR_BUILD])
1470 fi
1471 fi
1472
1473 AC_ARG_ENABLE([pgo-build],
1474 [AS_HELP_STRING([--enable-pgo-build[[=lto]]],
1475 [enable the PGO build])],
1476 [enable_pgo_build=$enableval],
1477 [enable_pgo_build=no])
1478
1479 # Issue errors and warnings for invalid/strange PGO build combinations.
1480 case "$have_compiler:$host:$target:$enable_pgo_build" in
1481 *:*:*:no) ;;
1482
1483 # Allow the PGO build only if we aren't building a compiler and
1484 # we are in a native configuration.
1485 no:$build:$build:yes | no:$build:$build:lto) ;;
1486
1487 # Disallow the PGO bootstrap if we are building a compiler.
1488 yes:*:*:yes | yes:*:*:lto)
1489 AC_MSG_ERROR([cannot perform the PGO bootstrap when building a compiler]) ;;
1490
1491 *)
1492 AC_MSG_ERROR([invalid option for --enable-pgo-build])
1493 ;;
1494 esac
1495
1496 if test "$enable_pgo_build" != "no"; then
1497 AC_MSG_CHECKING([whether the compiler supports -fprofile-generate])
1498 old_CFLAGS="$CFLAGS"
1499 PGO_BUILD_GEN_CFLAGS="-fprofile-generate"
1500 CFLAGS="$CFLAGS $PGO_BUILD_CFLAGS"
1501 AC_COMPILE_IFELSE([AC_LANG_SOURCE([int foo;])],,
1502 [PGO_BUILD_GEN_CFLAGS=])
1503 CFLAGS="$old_CFLAGS"
1504 if test -n "$PGO_BUILD_GEN_CFLAGS"; then
1505 AC_MSG_RESULT([yes])
1506 PGO_BUILD_USE_CFLAGS="-fprofile-use"
1507 else
1508 AC_MSG_RESULT([no])
1509 AC_MSG_ERROR([cannot perform the PGO build without -fprofile-generate])
1510 fi
1511
1512 if test "$enable_pgo_build" = "lto"; then
1513 AC_MSG_CHECKING([whether the compiler supports -flto=jobserver -ffat-lto-objects])
1514 old_CFLAGS="$CFLAGS"
1515 PGO_BUILD_LTO_CFLAGS="-flto=jobserver -ffat-lto-objects"
1516 CFLAGS="$CFLAGS $PGO_BUILD_LTO_CFLAGS"
1517 AC_COMPILE_IFELSE([AC_LANG_SOURCE([int foo;])],,
1518 [PGO_BUILD_LTO_CFLAGS=])
1519 CFLAGS="$old_CFLAGS"
1520 if test -n "$PGO_BUILD_LTO_CFLAGS"; then
1521 AC_MSG_RESULT([yes])
1522 else
1523 AC_MSG_RESULT([no])
1524 AC_MSG_WARN([LTO is disabled for the PGO build])
1525 fi
1526 fi
1527 fi
1528 AC_SUBST(PGO_BUILD_GEN_CFLAGS)
1529 AC_SUBST(PGO_BUILD_USE_CFLAGS)
1530 AC_SUBST(PGO_BUILD_LTO_CFLAGS)
1531
1532 # Used for setting $lt_cv_objdir
1533 _LT_CHECK_OBJDIR
1534
1535 # Check for GMP, MPFR and MPC
1536 gmplibs="-lmpc -lmpfr -lgmp"
1537 gmpinc=
1538 have_gmp=no
1539
1540 # Specify a location for mpc
1541 # check for this first so it ends up on the link line before mpfr.
1542 AC_ARG_WITH(mpc,
1543 [AS_HELP_STRING([--with-mpc=PATH],
1544 [specify prefix directory for installed MPC package.
1545 Equivalent to --with-mpc-include=PATH/include
1546 plus --with-mpc-lib=PATH/lib])])
1547 AC_ARG_WITH(mpc-include,
1548 [AS_HELP_STRING([--with-mpc-include=PATH],
1549 [specify directory for installed MPC include files])])
1550 AC_ARG_WITH(mpc-lib,
1551 [AS_HELP_STRING([--with-mpc-lib=PATH],
1552 [specify directory for the installed MPC library])])
1553
1554 if test "x$with_mpc" != x; then
1555 gmplibs="-L$with_mpc/lib $gmplibs"
1556 gmpinc="-I$with_mpc/include $gmpinc"
1557 fi
1558 if test "x$with_mpc_include" != x; then
1559 gmpinc="-I$with_mpc_include $gmpinc"
1560 fi
1561 if test "x$with_mpc_lib" != x; then
1562 gmplibs="-L$with_mpc_lib $gmplibs"
1563 fi
1564 if test "x$with_mpc$with_mpc_include$with_mpc_lib" = x && test -d ${srcdir}/mpc; then
1565 gmplibs='-L$$r/$(HOST_SUBDIR)/mpc/src/'"$lt_cv_objdir $gmplibs"
1566 gmpinc='-I$$s/mpc/src '"$gmpinc"
1567 # Do not test the mpc version. Assume that it is sufficient, since
1568 # it is in the source tree, and the library has not been built yet
1569 # but it would be included on the link line in the version check below
1570 # hence making the test fail.
1571 have_gmp=yes
1572 fi
1573
1574 # Specify a location for mpfr
1575 # check for this first so it ends up on the link line before gmp.
1576 AC_ARG_WITH(mpfr,
1577 [AS_HELP_STRING([--with-mpfr=PATH],
1578 [specify prefix directory for installed MPFR package.
1579 Equivalent to --with-mpfr-include=PATH/include
1580 plus --with-mpfr-lib=PATH/lib])])
1581 AC_ARG_WITH(mpfr-include,
1582 [AS_HELP_STRING([--with-mpfr-include=PATH],
1583 [specify directory for installed MPFR include files])])
1584 AC_ARG_WITH(mpfr-lib,
1585 [AS_HELP_STRING([--with-mpfr-lib=PATH],
1586 [specify directory for the installed MPFR library])])
1587
1588 if test "x$with_mpfr" != x; then
1589 gmplibs="-L$with_mpfr/lib $gmplibs"
1590 gmpinc="-I$with_mpfr/include $gmpinc"
1591 fi
1592 if test "x$with_mpfr_include" != x; then
1593 gmpinc="-I$with_mpfr_include $gmpinc"
1594 fi
1595 if test "x$with_mpfr_lib" != x; then
1596 gmplibs="-L$with_mpfr_lib $gmplibs"
1597 fi
1598 if test "x$with_mpfr$with_mpfr_include$with_mpfr_lib" = x && test -d ${srcdir}/mpfr; then
1599 # MPFR v3.1.0 moved the sources into a src sub-directory.
1600 if ! test -d ${srcdir}/mpfr/src; then
1601 AC_MSG_ERROR([dnl
1602 Building GCC with MPFR in the source tree is only handled for MPFR 3.1.0+.])
1603 fi
1604 gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/src/'"$lt_cv_objdir $gmplibs"
1605 gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr/src -I$$s/mpfr/src '"$gmpinc"
1606 extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr/src --with-mpfr-lib=$$r/$(HOST_SUBDIR)/mpfr/src/'"$lt_cv_objdir"
1607 # Do not test the mpfr version. Assume that it is sufficient, since
1608 # it is in the source tree, and the library has not been built yet
1609 # but it would be included on the link line in the version check below
1610 # hence making the test fail.
1611 have_gmp=yes
1612 fi
1613
1614 # Specify a location for gmp
1615 AC_ARG_WITH(gmp,
1616 [AS_HELP_STRING([--with-gmp=PATH],
1617 [specify prefix directory for the installed GMP package.
1618 Equivalent to --with-gmp-include=PATH/include
1619 plus --with-gmp-lib=PATH/lib])])
1620 AC_ARG_WITH(gmp-include,
1621 [AS_HELP_STRING([--with-gmp-include=PATH],
1622 [specify directory for installed GMP include files])])
1623 AC_ARG_WITH(gmp-lib,
1624 [AS_HELP_STRING([--with-gmp-lib=PATH],
1625 [specify directory for the installed GMP library])])
1626
1627
1628 if test "x$with_gmp" != x; then
1629 gmplibs="-L$with_gmp/lib $gmplibs"
1630 gmpinc="-I$with_gmp/include $gmpinc"
1631 fi
1632 if test "x$with_gmp_include" != x; then
1633 gmpinc="-I$with_gmp_include $gmpinc"
1634 fi
1635 if test "x$with_gmp_lib" != x; then
1636 gmplibs="-L$with_gmp_lib $gmplibs"
1637 fi
1638 if test "x$with_gmp$with_gmp_include$with_gmp_lib" = x && test -d ${srcdir}/gmp; then
1639 gmplibs='-L$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir $gmplibs"
1640 gmpinc='-I$$r/$(HOST_SUBDIR)/gmp -I$$s/gmp '"$gmpinc"
1641 extra_mpfr_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-gmp-lib=$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir"
1642 extra_mpc_gmp_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-gmp-lib=$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir"
1643 extra_isl_gmp_configure_flags='--with-gmp-builddir=$$r/$(HOST_SUBDIR)/gmp'
1644 # Do not test the gmp version. Assume that it is sufficient, since
1645 # it is in the source tree, and the library has not been built yet
1646 # but it would be included on the link line in the version check below
1647 # hence making the test fail.
1648 have_gmp=yes
1649 fi
1650
1651 if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then
1652 have_gmp=yes
1653 saved_CFLAGS="$CFLAGS"
1654 CFLAGS="$CFLAGS $gmpinc"
1655 # Check for the recommended and required versions of GMP.
1656 AC_MSG_CHECKING([for the correct version of gmp.h])
1657 AC_TRY_COMPILE([#include "gmp.h"],[
1658 #define GCC_GMP_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
1659 #define GCC_GMP_VERSION GCC_GMP_VERSION_NUM(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL)
1660 #if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,2,3)
1661 choke me
1662 #endif
1663 ], [AC_TRY_COMPILE([#include <gmp.h>],[
1664 #define GCC_GMP_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
1665 #define GCC_GMP_VERSION GCC_GMP_VERSION_NUM(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL)
1666 #if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,3,2)
1667 choke me
1668 #endif
1669 ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
1670 [AC_MSG_RESULT([no]); have_gmp=no])
1671
1672 # If we have GMP, check the MPFR version.
1673 if test x"$have_gmp" = xyes; then
1674 # Check for the recommended and required versions of MPFR.
1675 AC_MSG_CHECKING([for the correct version of mpfr.h])
1676 AC_TRY_COMPILE([#include <gmp.h>
1677 #include <mpfr.h>],[
1678 #if MPFR_VERSION < MPFR_VERSION_NUM(3,1,0)
1679 choke me
1680 #endif
1681 ], [AC_TRY_COMPILE([#include <gmp.h>
1682 #include <mpfr.h>],[
1683 #if MPFR_VERSION < MPFR_VERSION_NUM(3,1,6)
1684 choke me
1685 #endif
1686 ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
1687 [AC_MSG_RESULT([no]); have_gmp=no])
1688 fi
1689
1690 # Check for the MPC header version.
1691 if test x"$have_gmp" = xyes ; then
1692 # Check for the recommended and required versions of MPC.
1693 AC_MSG_CHECKING([for the correct version of mpc.h])
1694 AC_TRY_COMPILE([#include <mpc.h>],[
1695 #if MPC_VERSION < MPC_VERSION_NUM(0,8,0)
1696 choke me
1697 #endif
1698 ], [AC_TRY_COMPILE([#include <mpc.h>],[
1699 #if MPC_VERSION < MPC_VERSION_NUM(0,8,1)
1700 choke me
1701 #endif
1702 ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
1703 [AC_MSG_RESULT([no]); have_gmp=no])
1704 fi
1705
1706 # Now check the MPFR library.
1707 if test x"$have_gmp" = xyes; then
1708 saved_LIBS="$LIBS"
1709 LIBS="$LIBS $gmplibs"
1710 AC_MSG_CHECKING([for the correct version of the gmp/mpfr/mpc libraries])
1711 AC_TRY_LINK([#include <mpc.h>],[
1712 mpfr_t n;
1713 mpfr_t x;
1714 mpc_t c;
1715 int t;
1716 mpfr_init (n);
1717 mpfr_init (x);
1718 mpfr_atan2 (n, n, x, MPFR_RNDN);
1719 mpfr_erfc (n, x, MPFR_RNDN);
1720 mpfr_subnormalize (x, t, MPFR_RNDN);
1721 mpfr_clear(n);
1722 mpfr_clear(x);
1723 mpc_init2 (c, 53);
1724 mpc_set_ui_ui (c, 1, 1, MPC_RNDNN);
1725 mpc_cosh (c, c, MPC_RNDNN);
1726 mpc_pow (c, c, c, MPC_RNDNN);
1727 mpc_acosh (c, c, MPC_RNDNN);
1728 mpc_clear (c);
1729 ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); have_gmp=no])
1730 LIBS="$saved_LIBS"
1731 fi
1732
1733 CFLAGS="$saved_CFLAGS"
1734
1735 # The library versions listed in the error message below should match
1736 # the HARD-minimums enforced above.
1737 if test x$have_gmp != xyes; then
1738 AC_MSG_ERROR([Building GCC requires GMP 4.2+, MPFR 3.1.0+ and MPC 0.8.0+.
1739 Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
1740 their locations. Source code for these libraries can be found at
1741 their respective hosting sites as well as at
1742 https://gcc.gnu.org/pub/gcc/infrastructure/. See also
1743 http://gcc.gnu.org/install/prerequisites.html for additional info. If
1744 you obtained GMP, MPFR and/or MPC from a vendor distribution package,
1745 make sure that you have installed both the libraries and the header
1746 files. They may be located in separate packages.])
1747 fi
1748 fi
1749
1750 # Flags needed for both GMP, MPFR and/or MPC.
1751 AC_SUBST(gmplibs)
1752 AC_SUBST(gmpinc)
1753 AC_SUBST(extra_mpfr_configure_flags)
1754 AC_SUBST(extra_mpc_gmp_configure_flags)
1755 AC_SUBST(extra_mpc_mpfr_configure_flags)
1756 AC_SUBST(extra_isl_gmp_configure_flags)
1757
1758 # Libraries to use for stage1 or when not bootstrapping.
1759 AC_ARG_WITH(stage1-libs,
1760 [AS_HELP_STRING([--with-stage1-libs=LIBS], [libraries for stage1])],
1761 [if test "$withval" = "no" -o "$withval" = "yes"; then
1762 stage1_libs=
1763 else
1764 stage1_libs=$withval
1765 fi],
1766 [stage1_libs=])
1767 AC_SUBST(stage1_libs)
1768
1769 # Whether or not to use -static-libstdc++ and -static-libgcc. The
1770 # default is yes if gcc is being built; no otherwise. The reason for
1771 # this default is that gdb is sometimes linked against GNU Source
1772 # Highlight, which is a shared library that uses C++ exceptions. In
1773 # this case, -static-libstdc++ will cause crashes.
1774 AC_ARG_WITH(static-standard-libraries,
1775 [AS_HELP_STRING([--with-static-standard-libraries],
1776 [use -static-libstdc++ and -static-libgcc (default=auto)])],
1777 [], [with_static_standard_libraries=auto])
1778 if test "$with_static_standard_libraries" = auto; then
1779 with_static_standard_libraries=$have_compiler
1780 fi
1781
1782 # Linker flags to use for stage1 or when not bootstrapping.
1783 AC_ARG_WITH(stage1-ldflags,
1784 [AS_HELP_STRING([--with-stage1-ldflags=FLAGS], [linker flags for stage1])],
1785 [if test "$withval" = "no" -o "$withval" = "yes"; then
1786 stage1_ldflags=
1787 else
1788 stage1_ldflags=$withval
1789 fi],
1790 [stage1_ldflags=
1791 # In stage 1, default to linking libstdc++ and libgcc statically with GCC
1792 # if supported. But if the user explicitly specified the libraries to use,
1793 # trust that they are doing what they want.
1794 if test "$with_static_standard_libraries" = yes -a "$stage1_libs" = "" \
1795 -a "$have_static_libs" = yes; then
1796 stage1_ldflags="-static-libstdc++ -static-libgcc"
1797 fi])
1798 AC_SUBST(stage1_ldflags)
1799
1800 # Libraries to use for stage2 and later builds.
1801 AC_ARG_WITH(boot-libs,
1802 [AS_HELP_STRING([--with-boot-libs=LIBS], [libraries for stage2 and later])],
1803 [if test "$withval" = "no" -o "$withval" = "yes"; then
1804 poststage1_libs=
1805 else
1806 poststage1_libs=$withval
1807 fi],
1808 [poststage1_libs=])
1809 AC_SUBST(poststage1_libs)
1810
1811 # Linker flags to use for stage2 and later builds.
1812 AC_ARG_WITH(boot-ldflags,
1813 [AS_HELP_STRING([--with-boot-ldflags=FLAGS],
1814 [linker flags for stage2 and later])],
1815 [if test "$withval" = "no" -o "$withval" = "yes"; then
1816 poststage1_ldflags=
1817 else
1818 poststage1_ldflags=$withval
1819 fi],
1820 [poststage1_ldflags=
1821 # In stages 2 and 3, default to linking libstdc++ and libgcc
1822 # statically. But if the user explicitly specified the libraries to
1823 # use, trust that they are doing what they want.
1824 if test "$poststage1_libs" = ""; then
1825 poststage1_ldflags="-static-libstdc++ -static-libgcc"
1826 fi])
1827 AC_SUBST(poststage1_ldflags)
1828
1829 # GCC GRAPHITE dependency isl.
1830 # Basic setup is inlined here, actual checks are in config/isl.m4
1831
1832 AC_ARG_WITH(isl,
1833 [AS_HELP_STRING(
1834 [--with-isl=PATH],
1835 [Specify prefix directory for the installed isl package.
1836 Equivalent to --with-isl-include=PATH/include
1837 plus --with-isl-lib=PATH/lib])])
1838
1839 # Treat --without-isl as a request to disable
1840 # GRAPHITE support and skip all following checks.
1841 if test "x$with_isl" != "xno"; then
1842 # Check for isl
1843 dnl Provide configure switches and initialize islinc & isllibs
1844 dnl with user input.
1845 ISL_INIT_FLAGS
1846 dnl The versions of isl that work for Graphite
1847 ISL_CHECK_VERSION()
1848 dnl Only execute fail-action, if isl has been requested.
1849 ISL_IF_FAILED([
1850 AC_MSG_ERROR([Unable to find a usable isl. See config.log for details.])])
1851 fi
1852
1853 # If the isl check failed, disable builds of in-tree variant of isl
1854 if test "x$with_isl" = xno ||
1855 test "x$gcc_cv_isl" = xno; then
1856 noconfigdirs="$noconfigdirs isl"
1857 islinc=
1858 fi
1859
1860 AC_SUBST(isllibs)
1861 AC_SUBST(islinc)
1862
1863 # Check for LTO support.
1864 AC_ARG_ENABLE(lto,
1865 [AS_HELP_STRING([--enable-lto], [enable link time optimization support])],
1866 enable_lto=$enableval,
1867 enable_lto=yes; default_enable_lto=yes)
1868
1869 ACX_ELF_TARGET_IFELSE([# ELF platforms build the lto-plugin always.
1870 build_lto_plugin=yes
1871 ],[if test x"$default_enable_lto" = x"yes" ; then
1872 case $target in
1873 *-apple-darwin[[912]]* | *-cygwin* | *-mingw* | *djgpp*) ;;
1874 # On other non-ELF platforms, LTO has yet to be validated.
1875 *) enable_lto=no ;;
1876 esac
1877 else
1878 # Apart from ELF platforms, only Windows and Darwin support LTO so far.
1879 # It would also be nice to check the binutils support, but we don't
1880 # have gcc_GAS_CHECK_FEATURE available here. For now, we'll just
1881 # warn during gcc/ subconfigure; unless you're bootstrapping with
1882 # -flto it won't be needed until after installation anyway.
1883 case $target in
1884 *-cygwin* | *-mingw* | *-apple-darwin* | *djgpp*) ;;
1885 *) if test x"$enable_lto" = x"yes"; then
1886 AC_MSG_ERROR([LTO support is not enabled for this target.])
1887 fi
1888 ;;
1889 esac
1890 fi
1891 # Among non-ELF, only Windows platforms support the lto-plugin so far.
1892 # Build it unless LTO was explicitly disabled.
1893 case $target in
1894 *-cygwin* | *-mingw*) build_lto_plugin=$enable_lto ;;
1895 *) ;;
1896 esac
1897 ])
1898
1899 AC_ARG_ENABLE(linker-plugin-configure-flags,
1900 [AS_HELP_STRING([[--enable-linker-plugin-configure-flags=FLAGS]],
1901 [additional flags for configuring linker plugins @<:@none@:>@])],
1902 extra_linker_plugin_configure_flags=$enableval,
1903 extra_linker_plugin_configure_flags=)
1904 AC_SUBST(extra_linker_plugin_configure_flags)
1905 AC_ARG_ENABLE(linker-plugin-flags,
1906 [AS_HELP_STRING([[--enable-linker-plugin-flags=FLAGS]],
1907 [additional flags for configuring and building linker plugins @<:@none@:>@])],
1908 extra_linker_plugin_flags=$enableval,
1909 extra_linker_plugin_flags=)
1910 AC_SUBST(extra_linker_plugin_flags)
1911
1912 # Enable --enable-host-shared.
1913 # Checked early to determine whether jit is an 'all' language
1914 AC_ARG_ENABLE(host-shared,
1915 [AS_HELP_STRING([--enable-host-shared],
1916 [build host code as shared libraries])],
1917 [host_shared=$enableval
1918 case $host in
1919 x86_64-*-darwin* | aarch64-*-darwin*)
1920 if test x$host_shared != xyes ; then
1921 # PIC is the default, and actually cannot be switched off.
1922 echo configure.ac: warning: PIC code is required for the configured target, host-shared setting ignored. 1>&2
1923 host_shared=yes
1924 fi ;;
1925 *) ;;
1926 esac],
1927 [case $host in
1928 x86_64-*-darwin* | aarch64-*-darwin*) host_shared=yes ;;
1929 *) host_shared=no ;;
1930 esac])
1931 AC_SUBST(host_shared)
1932
1933 # By default, C and C++ are the only stage 1 languages.
1934 stage1_languages=,c,
1935
1936 # Target libraries that we bootstrap.
1937 bootstrap_target_libs=,target-libgcc,
1938
1939 # Figure out what language subdirectories are present.
1940 # Look if the user specified --enable-languages="..."; if not, use
1941 # the environment variable $LANGUAGES if defined. $LANGUAGES might
1942 # go away some day.
1943 # NB: embedded tabs in this IF block -- do not untabify
1944 if test -d ${srcdir}/gcc; then
1945 if test x"${enable_languages+set}" != xset; then
1946 if test x"${LANGUAGES+set}" = xset; then
1947 enable_languages="${LANGUAGES}"
1948 echo configure.ac: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2
1949 else
1950 enable_languages=default
1951 fi
1952 else
1953 if test x"${enable_languages}" = x ||
1954 test x"${enable_languages}" = xyes;
1955 then
1956 echo configure.ac: --enable-languages needs at least one language argument 1>&2
1957 exit 1
1958 fi
1959 fi
1960 enable_languages=`echo "${enable_languages}" | sed -e 's/[[ ,]][[ ,]]*/,/g' -e 's/,$//'`
1961
1962 # 'f95' is the old name for the 'fortran' language. We issue a warning
1963 # and make the substitution.
1964 case ,${enable_languages}, in
1965 *,f95,*)
1966 echo configure.ac: warning: 'f95' as language name is deprecated, use 'fortran' instead 1>&2
1967 enable_languages=`echo "${enable_languages}" | sed -e 's/f95/fortran/g'`
1968 ;;
1969 esac
1970
1971 # If bootstrapping, C++ must be enabled.
1972 case ",$enable_languages,:$enable_bootstrap" in
1973 *,c++,*:*) ;;
1974 *:yes)
1975 if test -f ${srcdir}/gcc/cp/config-lang.in; then
1976 enable_languages="${enable_languages},c++"
1977 else
1978 AC_MSG_ERROR([bootstrapping requires c++ sources])
1979 fi
1980 ;;
1981 esac
1982
1983 # First scan to see if an enabled language requires some other language.
1984 # We assume that a given config-lang.in will list all the language
1985 # front ends it requires, even if some are required indirectly.
1986 for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1987 case ${lang_frag} in
1988 ..) ;;
1989 # The odd quoting in the next line works around
1990 # an apparent bug in bash 1.12 on linux.
1991 ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1992 *)
1993 # From the config-lang.in, get $language, $lang_requires, and
1994 # $lang_requires_boot_languages.
1995 language=
1996 lang_requires=
1997 lang_requires_boot_languages=
1998 # set srcdir during sourcing lang_frag to the gcc dir.
1999 # Sadly overriding srcdir on the . line doesn't work in plain sh as it
2000 # polutes this shell
2001 saved_srcdir=${srcdir}
2002 srcdir=${srcdir}/gcc . ${lang_frag}
2003 srcdir=${saved_srcdir}
2004 for other in ${lang_requires} ${lang_requires_boot_languages}; do
2005 case ,${enable_languages}, in
2006 *,$other,*) ;;
2007 *,default,*) ;;
2008 *,all,*) ;;
2009 *,$language,*)
2010 echo " \`$other' language required by \`$language'; enabling" 1>&2
2011 enable_languages="${enable_languages},${other}"
2012 ;;
2013 esac
2014 done
2015 for other in ${lang_requires_boot_languages} ; do
2016 if test "$other" != "c"; then
2017 case ,${enable_stage1_languages}, in
2018 *,$other,*) ;;
2019 *,default,*) ;;
2020 *,all,*) ;;
2021 *)
2022 case ,${enable_languages}, in
2023 *,$language,*)
2024 echo " '$other' language required by '$language' in stage 1; enabling" 1>&2
2025 enable_stage1_languages="$enable_stage1_languages,${other}"
2026 ;;
2027 esac
2028 ;;
2029 esac
2030 fi
2031 done
2032 ;;
2033 esac
2034 done
2035
2036 new_enable_languages=,c,
2037
2038 # If LTO is enabled, add the LTO front end.
2039 if test "$enable_lto" = "yes" ; then
2040 case ,${enable_languages}, in
2041 *,lto,*) ;;
2042 *) enable_languages="${enable_languages},lto" ;;
2043 esac
2044 if test "${build_lto_plugin}" = "yes" ; then
2045 configdirs="$configdirs lto-plugin"
2046 fi
2047 fi
2048
2049 # If we're building an offloading compiler, add the LTO front end.
2050 if test x"$enable_as_accelerator_for" != x ; then
2051 case ,${enable_languages}, in
2052 *,lto,*) ;;
2053 *) enable_languages="${enable_languages},lto" ;;
2054 esac
2055 fi
2056
2057 missing_languages=`echo ",$enable_languages," | sed -e s/,default,/,/ -e s/,all,/,/ -e s/,c,/,/ `
2058 potential_languages=,c,
2059
2060 enabled_target_libs=
2061 disabled_target_libs=
2062
2063 for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
2064 case ${lang_frag} in
2065 ..) ;;
2066 # The odd quoting in the next line works around
2067 # an apparent bug in bash 1.12 on linux.
2068 ${srcdir}/gcc/[[*]]/config-lang.in) ;;
2069 *)
2070 # From the config-lang.in, get $language, $target_libs,
2071 # $lang_dirs, $boot_language, and $build_by_default
2072 language=
2073 target_libs=
2074 lang_dirs=
2075 subdir_requires=
2076 boot_language=no
2077 build_by_default=yes
2078 # set srcdir during sourcing. See above about save & restore
2079 saved_srcdir=${srcdir}
2080 srcdir=${srcdir}/gcc . ${lang_frag}
2081 srcdir=${saved_srcdir}
2082 if test x${language} = x; then
2083 echo "${lang_frag} doesn't set \$language." 1>&2
2084 exit 1
2085 fi
2086
2087 if test "$language" = "c++"; then
2088 boot_language=yes
2089 fi
2090
2091 add_this_lang=no
2092 # C is always enabled, so no need to add it again
2093 if test "$language" != "c"; then
2094 case ,${enable_languages}, in
2095 *,${language},*)
2096 # Language was explicitly selected; include it
2097 add_this_lang=yes
2098 ;;
2099 *,all,*)
2100 # All languages are enabled
2101 add_this_lang=all
2102 ;;
2103 *,default,*)
2104 # 'default' was selected, select it if it is a default language
2105 add_this_lang=${build_by_default}
2106 ;;
2107 esac
2108 fi
2109
2110 # Disable languages that need other directories if these aren't available.
2111 for i in $subdir_requires; do
2112 test -f "$srcdir/gcc/$i/config-lang.in" && continue
2113 case ${add_this_lang} in
2114 yes)
2115 # Specifically requested language; tell them.
2116 AC_MSG_ERROR([The gcc/$i directory contains parts of $language but is missing])
2117 ;;
2118 all)
2119 AC_MSG_WARN([The gcc/$i directory contains parts of $language but is missing])
2120 add_this_lang=unsupported
2121 ;;
2122 *)
2123 # Silently disable.
2124 add_this_lang=unsupported
2125 ;;
2126 esac
2127 done
2128
2129 # Disable Ada if no preexisting GNAT is available.
2130 case ${add_this_lang}:${language}:${have_gnat} in
2131 yes:ada:no)
2132 # Specifically requested language; tell them.
2133 AC_MSG_ERROR([GNAT is required to build $language])
2134 ;;
2135 all:ada:no)
2136 AC_MSG_WARN([GNAT is required to build $language])
2137 add_this_lang=unsupported
2138 ;;
2139 *:ada:no)
2140 # Silently disable.
2141 add_this_lang=unsupported
2142 ;;
2143 esac
2144
2145 # Disable D if no preexisting GDC is available.
2146 case ${add_this_lang}:${language}:${have_gdc} in
2147 yes:d:no)
2148 # Specifically requested language; tell them.
2149 AC_MSG_ERROR([GDC is required to build $language])
2150 ;;
2151 all:d:no)
2152 AC_MSG_WARN([GDC is required to build $language])
2153 add_this_lang=unsupported
2154 ;;
2155 *:d:no)
2156 # Silently disable.
2157 add_this_lang=unsupported
2158 ;;
2159 esac
2160
2161 # Disable jit if -enable-host-shared not specified
2162 # but not if building for Mingw. All code in Windows
2163 # is position independent code (PIC).
2164 case $target in
2165 *mingw*) ;;
2166 *)
2167 case ${add_this_lang}:${language}:${host_shared} in
2168 yes:jit:no)
2169 # PR jit/64780: explicitly specify --enable-host-shared
2170 AC_MSG_ERROR([
2171 Enabling language "jit" requires --enable-host-shared.
2172
2173 --enable-host-shared typically slows the rest of the compiler down by
2174 a few %, so you must explicitly enable it.
2175
2176 If you want to build both the jit and the regular compiler, it is often
2177 best to do this via two separate configure/builds, in separate
2178 directories, to avoid imposing the performance cost of
2179 --enable-host-shared on the regular compiler.])
2180 ;;
2181 all:jit:no)
2182 AC_MSG_WARN([--enable-host-shared required to build $language])
2183 add_this_lang=unsupported
2184 ;;
2185 *:jit:no)
2186 # Silently disable.
2187 add_this_lang=unsupported
2188 ;;
2189 esac
2190 ;;
2191 esac
2192
2193 # Disable a language that is unsupported by the target.
2194 case "${add_this_lang}: $unsupported_languages " in
2195 no:*) ;;
2196 unsupported:*) ;;
2197 *:*" $language "*)
2198 AC_MSG_WARN([${language} not supported for this target])
2199 add_this_lang=unsupported
2200 ;;
2201 esac
2202
2203 case $add_this_lang in
2204 unsupported)
2205 # Remove language-dependent dirs.
2206 disabled_target_libs="$disabled_target_libs $target_libs"
2207 noconfigdirs="$noconfigdirs $lang_dirs"
2208 ;;
2209 no)
2210 # Remove language-dependent dirs; still show language as supported.
2211 disabled_target_libs="$disabled_target_libs $target_libs"
2212 noconfigdirs="$noconfigdirs $lang_dirs"
2213 potential_languages="${potential_languages}${language},"
2214 ;;
2215 all|yes)
2216 new_enable_languages="${new_enable_languages}${language},"
2217 potential_languages="${potential_languages}${language},"
2218 missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"`
2219 enabled_target_libs="$enabled_target_libs $target_libs"
2220 case "${boot_language}:,$enable_stage1_languages," in
2221 yes:* | *:*,$language,* | *:*,yes, | *:*,all,)
2222 # Add to (comma-separated) list of stage 1 languages.
2223 case ",$stage1_languages," in
2224 *,$language,* | ,yes, | ,all,) ;;
2225 *) stage1_languages="${stage1_languages}${language}," ;;
2226 esac
2227 # We need to bootstrap any supporting libraries.
2228 bootstrap_target_libs=`echo "${bootstrap_target_libs}${target_libs}," | sed "s/ /,/g"`
2229 ;;
2230 esac
2231 ;;
2232 esac
2233 ;;
2234 esac
2235 done
2236
2237 # Add target libraries which are only needed for disabled languages
2238 # to noconfigdirs.
2239 if test -n "$disabled_target_libs"; then
2240 for dir in $disabled_target_libs; do
2241 case " $enabled_target_libs " in
2242 *" ${dir} "*) ;;
2243 *) noconfigdirs="$noconfigdirs $dir" ;;
2244 esac
2245 done
2246 fi
2247
2248 AC_ARG_ENABLE(stage1-languages,
2249 [AS_HELP_STRING([[--enable-stage1-languages[=all]]],
2250 [choose additional languages to build during
2251 stage1. Mostly useful for compiler development])],
2252 [case ,${enable_stage1_languages}, in
2253 ,no,|,,)
2254 # Set it to something that will have no effect in the loop below
2255 enable_stage1_languages=c ;;
2256 ,yes,)
2257 enable_stage1_languages=`echo $new_enable_languages | \
2258 sed -e "s/^,//" -e "s/,$//" ` ;;
2259 *,all,*)
2260 enable_stage1_languages=`echo ,$enable_stage1_languages, | \
2261 sed -e "s/,all,/$new_enable_languages/" -e "s/^,//" -e "s/,$//" ` ;;
2262 esac
2263
2264 # Add "good" languages from enable_stage1_languages to stage1_languages,
2265 # while "bad" languages go in missing_languages. Leave no duplicates.
2266 for i in `echo $enable_stage1_languages | sed 's/,/ /g' `; do
2267 case $potential_languages in
2268 *,$i,*)
2269 case $stage1_languages in
2270 *,$i,*) ;;
2271 *) stage1_languages="$stage1_languages$i," ;;
2272 esac ;;
2273 *)
2274 case $missing_languages in
2275 *,$i,*) ;;
2276 *) missing_languages="$missing_languages$i," ;;
2277 esac ;;
2278 esac
2279 done])
2280
2281 # Remove leading/trailing commas that were added for simplicity
2282 potential_languages=`echo "$potential_languages" | sed -e "s/^,//" -e "s/,$//"`
2283 missing_languages=`echo "$missing_languages" | sed -e "s/^,//" -e "s/,$//"`
2284 stage1_languages=`echo "$stage1_languages" | sed -e "s/^,//" -e "s/,$//"`
2285 new_enable_languages=`echo "$new_enable_languages" | sed -e "s/^,//" -e "s/,$//"`
2286
2287 if test "x$missing_languages" != x; then
2288 AC_MSG_ERROR([
2289 The following requested languages could not be built: ${missing_languages}
2290 Supported languages are: ${potential_languages}])
2291 fi
2292 if test "x$new_enable_languages" != "x$enable_languages"; then
2293 echo The following languages will be built: ${new_enable_languages}
2294 enable_languages="$new_enable_languages"
2295 fi
2296
2297 AC_SUBST(stage1_languages)
2298 ac_configure_args=`echo " $ac_configure_args" | sed -e "s/ '--enable-languages=[[^ ]]*'//g" -e "s/$/ '--enable-languages="$enable_languages"'/" `
2299 fi
2300
2301 # Handle --disable-<component> generically.
2302 for dir in $configdirs $build_configdirs $target_configdirs ; do
2303 dirname=`echo $dir | sed -e s/target-//g -e s/build-//g -e s/-/_/g`
2304 varname=`echo $dirname | sed -e s/+/_/g`
2305 if eval test x\${enable_${varname}} "=" xno ; then
2306 noconfigdirs="$noconfigdirs $dir"
2307 fi
2308 done
2309
2310 # Check for Boehm's garbage collector
2311 AC_ARG_ENABLE(objc-gc,
2312 [AS_HELP_STRING([--enable-objc-gc],
2313 [enable use of Boehm's garbage collector with the
2314 GNU Objective-C runtime])])
2315 AC_ARG_WITH([target-bdw-gc],
2316 [AS_HELP_STRING([--with-target-bdw-gc=PATHLIST],
2317 [specify prefix directory for installed bdw-gc package.
2318 Equivalent to --with-target-bdw-gc-include=PATH/include
2319 plus --with-target-bdw-gc-lib=PATH/lib])])
2320 AC_ARG_WITH([target-bdw-gc-include],
2321 [AS_HELP_STRING([--with-target-bdw-gc-include=PATHLIST],
2322 [specify directories for installed bdw-gc include files])])
2323 AC_ARG_WITH([target-bdw-gc-lib],
2324 [AS_HELP_STRING([--with-target-bdw-gc-lib=PATHLIST],
2325 [specify directories for installed bdw-gc library])])
2326
2327 case ,${enable_languages},:${enable_objc_gc} in *,objc,*:yes|*,objc,*:auto)
2328 AC_MSG_CHECKING([for bdw garbage collector])
2329 if test "x$with_target_bdw_gc$with_target_bdw_gc_include$with_target_bdw_gc_lib" = x; then
2330 dnl no bdw-gw options, assume default locations
2331 AC_MSG_RESULT([using bdw-gc in default locations])
2332 else
2333 dnl bdw-gw options, first error checking, complete checking in libobjc
2334 if test "x$with_target_bdw_gc_include" = x && test "x$with_target_bdw_gc_lib" != x; then
2335 AC_MSG_ERROR([found --with-target-bdw-gc-lib but --with-target-bdw-gc-include missing])
2336 elif test "x$with_target_bdw_gc_include" != x && test "x$with_target_bdw_gc_lib" = x; then
2337 AC_MSG_ERROR([found --with-target-bdw-gc-include but --with-target-bdw-gc-lib missing])
2338 else
2339 AC_MSG_RESULT([using paths configured with --with-target-bdw-gc options])
2340 fi
2341 fi
2342 esac
2343
2344 # Disable libitm, libsanitizer, libvtv, liboffloadmic if we're not building C++
2345 case ,${enable_languages}, in
2346 *,c++,*)
2347 # Disable libitm, libsanitizer if we're not building libstdc++
2348 case "${noconfigdirs}" in
2349 *target-libstdc++-v3*)
2350 noconfigdirs="$noconfigdirs target-libitm target-libsanitizer"
2351 ;;
2352 *) ;;
2353 esac
2354 ;;
2355 *)
2356 noconfigdirs="$noconfigdirs target-liboffloadmic target-libitm target-libsanitizer target-libvtv"
2357 ;;
2358 esac
2359
2360 # If gcc/ is not in the source tree then we'll not be building a
2361 # target compiler, assume in that case we don't want to build any
2362 # target libraries or tools.
2363 #
2364 # This was added primarily for the benefit for binutils-gdb who reuse
2365 # this configure script, but don't always have target tools available.
2366 if test ! -d ${srcdir}/gcc; then
2367 skipdirs="${skipdirs} ${target_configdirs}"
2368 fi
2369
2370 # Remove the entries in $skipdirs and $noconfigdirs from $configdirs,
2371 # $build_configdirs and $target_configdirs.
2372 # If we have the source for $noconfigdirs entries, add them to $notsupp.
2373
2374 notsupp=""
2375 for dir in . $skipdirs $noconfigdirs ; do
2376 dirname=`echo $dir | sed -e s/target-//g -e s/build-//g`
2377 if test $dir != . && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2378 configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
2379 if test -r $srcdir/$dirname/configure ; then
2380 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2381 true
2382 else
2383 notsupp="$notsupp $dir"
2384 fi
2385 fi
2386 fi
2387 if test $dir != . && echo " ${build_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2388 build_configdirs=`echo " ${build_configdirs} " | sed -e "s/ ${dir} / /"`
2389 if test -r $srcdir/$dirname/configure ; then
2390 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2391 true
2392 else
2393 notsupp="$notsupp $dir"
2394 fi
2395 fi
2396 fi
2397 if test $dir != . && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2398 target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
2399 if test -r $srcdir/$dirname/configure ; then
2400 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2401 true
2402 else
2403 notsupp="$notsupp $dir"
2404 fi
2405 fi
2406 fi
2407 done
2408
2409 # Quietly strip out all directories which aren't configurable in this tree.
2410 # This relies on all configurable subdirectories being autoconfiscated, which
2411 # is now the case.
2412 build_configdirs_all="$build_configdirs"
2413 build_configdirs=
2414 for i in ${build_configdirs_all} ; do
2415 j=`echo $i | sed -e s/build-//g`
2416 if test -f ${srcdir}/$j/configure ; then
2417 build_configdirs="${build_configdirs} $i"
2418 fi
2419 done
2420
2421 configdirs_all="$configdirs"
2422 configdirs=
2423 for i in ${configdirs_all} ; do
2424 if test -f ${srcdir}/$i/configure ; then
2425 configdirs="${configdirs} $i"
2426 fi
2427 done
2428
2429 target_configdirs_all="$target_configdirs"
2430 target_configdirs=
2431 for i in ${target_configdirs_all} ; do
2432 j=`echo $i | sed -e s/target-//g`
2433 if test -f ${srcdir}/$j/configure ; then
2434 target_configdirs="${target_configdirs} $i"
2435 fi
2436 done
2437
2438 # libiberty-linker-plugin is special: it doesn't have its own source directory,
2439 # so we have to add it after the preceding checks.
2440 if test x"$extra_linker_plugin_flags$extra_linker_plugin_configure_flags" != x
2441 then
2442 case " $configdirs " in
2443 *" libiberty "*)
2444 # If we can build libiberty, we can also build libiberty-linker-plugin.
2445 configdirs="$configdirs libiberty-linker-plugin"
2446 extra_linker_plugin_configure_flags="$extra_linker_plugin_configure_flags \
2447 --with-libiberty=../libiberty-linker-plugin";;
2448 *)
2449 AC_MSG_ERROR([libiberty missing]);;
2450 esac
2451 fi
2452
2453 # Sometimes we have special requirements for the host libiberty.
2454 extra_host_libiberty_configure_flags=
2455 extra_host_zlib_configure_flags=
2456 case " $configdirs " in
2457 *" lto-plugin "* | *" libcc1 "*)
2458 # When these are to be built as shared libraries, the same applies to
2459 # libiberty.
2460 extra_host_libiberty_configure_flags=--enable-shared
2461 ;;
2462 *" bfd "*)
2463 # When bfd is to be built as a shared library, the same applies to
2464 # zlib.
2465 if test "$enable_shared" = "yes"; then
2466 extra_host_zlib_configure_flags=--enable-host-shared
2467 fi
2468 ;;
2469 esac
2470 AC_SUBST(extra_host_libiberty_configure_flags)
2471 AC_SUBST(extra_host_zlib_configure_flags)
2472
2473 # Produce a warning message for the subdirs we can't configure.
2474 # This isn't especially interesting in the Cygnus tree, but in the individual
2475 # FSF releases, it's important to let people know when their machine isn't
2476 # supported by the one or two programs in a package.
2477
2478 if test -n "${notsupp}" && test -z "${norecursion}" ; then
2479 # If $appdirs is non-empty, at least one of those directories must still
2480 # be configured, or we error out. (E.g., if the gas release supports a
2481 # specified target in some subdirs but not the gas subdir, we shouldn't
2482 # pretend that all is well.)
2483 if test -n "$appdirs" ; then
2484 for dir in $appdirs ; do
2485 if test -r $dir/Makefile.in ; then
2486 if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2487 appdirs=""
2488 break
2489 fi
2490 if echo " ${target_configdirs} " | grep " target-${dir} " >/dev/null 2>&1; then
2491 appdirs=""
2492 break
2493 fi
2494 fi
2495 done
2496 if test -n "$appdirs" ; then
2497 echo "*** This configuration is not supported by this package." 1>&2
2498 exit 1
2499 fi
2500 fi
2501 # Okay, some application will build, or we don't care to check. Still
2502 # notify of subdirs not getting built.
2503 echo "*** This configuration is not supported in the following subdirectories:" 1>&2
2504 echo " ${notsupp}" 1>&2
2505 echo " (Any other directories should still work fine.)" 1>&2
2506 fi
2507
2508 case "$host" in
2509 *msdosdjgpp*)
2510 enable_gdbtk=no ;;
2511 esac
2512
2513 # To find our prefix, in gcc_cv_tool_prefix.
2514 ACX_TOOL_DIRS
2515
2516 copy_dirs=
2517
2518 AC_ARG_WITH([build-sysroot],
2519 [AS_HELP_STRING([--with-build-sysroot=SYSROOT],
2520 [use sysroot as the system root during the build])],
2521 [if test x"$withval" != x ; then
2522 SYSROOT_CFLAGS_FOR_TARGET="--sysroot=$withval"
2523 fi],
2524 [SYSROOT_CFLAGS_FOR_TARGET=])
2525 AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET)
2526
2527 AC_ARG_WITH([debug-prefix-map],
2528 [AS_HELP_STRING([--with-debug-prefix-map='A=B C=D ...'],
2529 [map A to B, C to D ... in debug information])],
2530 [if test x"$withval" != x; then
2531 DEBUG_PREFIX_CFLAGS_FOR_TARGET=
2532 for debug_map in $withval; do
2533 DEBUG_PREFIX_CFLAGS_FOR_TARGET="$DEBUG_PREFIX_CFLAGS_FOR_TARGET -fdebug-prefix-map=$debug_map"
2534 done
2535 fi],
2536 [DEBUG_PREFIX_CFLAGS_FOR_TARGET=])
2537 AC_SUBST(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
2538
2539 # During gcc bootstrap, if we use some random cc for stage1 then CFLAGS
2540 # might be empty or "-g". We don't require a C++ compiler, so CXXFLAGS
2541 # might also be empty (or "-g", if a non-GCC C++ compiler is in the path).
2542 # We want to ensure that TARGET libraries (which we know are built with
2543 # gcc) are built with "-O2 -g", so include those options when setting
2544 # CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET.
2545 if test "x$CFLAGS_FOR_TARGET" = x; then
2546 if test "x${is_cross_compiler}" = xyes; then
2547 CFLAGS_FOR_TARGET="-g -O2"
2548 else
2549 CFLAGS_FOR_TARGET=$CFLAGS
2550 case " $CFLAGS " in
2551 *" -O2 "*) ;;
2552 *) CFLAGS_FOR_TARGET="-O2 $CFLAGS_FOR_TARGET" ;;
2553 esac
2554 case " $CFLAGS " in
2555 *" -g "* | *" -g3 "*) ;;
2556 *) CFLAGS_FOR_TARGET="-g $CFLAGS_FOR_TARGET" ;;
2557 esac
2558 fi
2559 fi
2560 AC_SUBST(CFLAGS_FOR_TARGET)
2561
2562 if test "x$CXXFLAGS_FOR_TARGET" = x; then
2563 if test "x${is_cross_compiler}" = xyes; then
2564 CXXFLAGS_FOR_TARGET="-g -O2"
2565 else
2566 CXXFLAGS_FOR_TARGET=$CXXFLAGS
2567 case " $CXXFLAGS " in
2568 *" -O2 "*) ;;
2569 *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS_FOR_TARGET" ;;
2570 esac
2571 case " $CXXFLAGS " in
2572 *" -g "* | *" -g3 "*) ;;
2573 *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS_FOR_TARGET" ;;
2574 esac
2575 fi
2576 fi
2577 AC_SUBST(CXXFLAGS_FOR_TARGET)
2578
2579 AC_SUBST(LDFLAGS_FOR_TARGET)
2580
2581 # Handle --with-headers=XXX. If the value is not "yes", the contents of
2582 # the named directory are copied to $(tooldir)/sys-include.
2583 if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
2584 if test x${is_cross_compiler} = xno ; then
2585 echo 1>&2 '***' --with-headers is only supported when cross compiling
2586 exit 1
2587 fi
2588 if test x"${with_headers}" != xyes ; then
2589 x=${gcc_cv_tool_prefix}
2590 copy_dirs="${copy_dirs} ${with_headers} $x/${target_noncanonical}/sys-include"
2591 fi
2592 fi
2593
2594 # Handle --with-libs=XXX. If the value is not "yes", the contents of
2595 # the name directories are copied to $(tooldir)/lib. Multiple directories
2596 # are permitted.
2597 if test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
2598 if test x${is_cross_compiler} = xno ; then
2599 echo 1>&2 '***' --with-libs is only supported when cross compiling
2600 exit 1
2601 fi
2602 if test x"${with_libs}" != xyes ; then
2603 # Copy the libraries in reverse order, so that files in the first named
2604 # library override files in subsequent libraries.
2605 x=${gcc_cv_tool_prefix}
2606 for l in ${with_libs}; do
2607 copy_dirs="$l $x/${target_noncanonical}/lib ${copy_dirs}"
2608 done
2609 fi
2610 fi
2611
2612 # Set with_gnu_as, with_gnu_ld, and with_system_zlib as appropriate.
2613 #
2614 # This is done by determining whether or not the appropriate directory
2615 # is available, and by checking whether or not specific configurations
2616 # have requested that this magic not happen.
2617 #
2618 # The command line options always override the explicit settings in
2619 # configure.ac, and the settings in configure.ac override this magic.
2620 #
2621 # If the default for a toolchain is to use GNU as and ld, and you don't
2622 # want to do that, then you should use the --without-gnu-as and
2623 # --without-gnu-ld options for the configure script. Similarly, if
2624 # the default is to use the included zlib and you don't want to do that,
2625 # you should use the --with-system-zlib option for the configure script.
2626
2627 if test x${use_gnu_as} = x &&
2628 echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then
2629 with_gnu_as=yes
2630 extra_host_args="$extra_host_args --with-gnu-as"
2631 fi
2632
2633 if test x${use_gnu_ld} = x &&
2634 echo " ${configdirs} " | egrep " (go)?ld " > /dev/null 2>&1 ; then
2635 with_gnu_ld=yes
2636 extra_host_args="$extra_host_args --with-gnu-ld"
2637 fi
2638
2639 if test x${use_included_zlib} = x &&
2640 echo " ${configdirs} " | grep " zlib " > /dev/null 2>&1 ; then
2641 :
2642 else
2643 with_system_zlib=yes
2644 extra_host_args="$extra_host_args --with-system-zlib"
2645 fi
2646
2647 # If using newlib, add --with-newlib to the extra_host_args so that gcc/configure
2648 # can detect this case.
2649
2650 if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then
2651 with_newlib=yes
2652 extra_host_args="$extra_host_args --with-newlib"
2653 fi
2654
2655 # Handle ${copy_dirs}
2656 set fnord ${copy_dirs}
2657 shift
2658 while test $# != 0 ; do
2659 if test -f $2/COPIED && test x"`cat $2/COPIED`" = x"$1" ; then
2660 :
2661 else
2662 echo Copying $1 to $2
2663
2664 # Use the install script to create the directory and all required
2665 # parent directories.
2666 if test -d $2 ; then
2667 :
2668 else
2669 echo >config.temp
2670 ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
2671 fi
2672
2673 # Copy the directory, assuming we have tar.
2674 # FIXME: Should we use B in the second tar? Not all systems support it.
2675 (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
2676
2677 # It is the responsibility of the user to correctly adjust all
2678 # symlinks. If somebody can figure out how to handle them correctly
2679 # here, feel free to add the code.
2680
2681 echo $1 > $2/COPIED
2682 fi
2683 shift; shift
2684 done
2685
2686 # Determine a target-dependent exec_prefix that the installed
2687 # gcc will search in. Keep this list sorted by triplet, with
2688 # the *-*-osname triplets last.
2689 md_exec_prefix=
2690 case "${target}" in
2691 i[[34567]]86-pc-msdosdjgpp*)
2692 md_exec_prefix=/dev/env/DJDIR/bin
2693 ;;
2694 *-*-hpux* | \
2695 *-*-nto-qnx* | \
2696 *-*-solaris2*)
2697 md_exec_prefix=/usr/ccs/bin
2698 ;;
2699 esac
2700
2701 extra_arflags_for_target=
2702 extra_nmflags_for_target=
2703 extra_ranlibflags_for_target=
2704 target_makefile_frag=/dev/null
2705 case "${target}" in
2706 spu-*-*)
2707 target_makefile_frag="config/mt-spu"
2708 ;;
2709 mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
2710 target_makefile_frag="config/mt-sde"
2711 ;;
2712 mipsisa*-*-elfoabi*)
2713 target_makefile_frag="config/mt-mips-elfoabi"
2714 ;;
2715 mips*-*-*linux* | mips*-*-gnu*)
2716 target_makefile_frag="config/mt-mips-gnu"
2717 ;;
2718 nios2-*-elf*)
2719 target_makefile_frag="config/mt-nios2-elf"
2720 ;;
2721 *-*-linux-android*)
2722 target_makefile_frag="config/mt-android"
2723 ;;
2724 *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
2725 target_makefile_frag="config/mt-gnu"
2726 ;;
2727 *-*-aix4.[[3456789]]* | *-*-aix[[56789]].*)
2728 # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm
2729 # commands to handle both 32-bit and 64-bit objects. These flags are
2730 # harmless if we're using GNU nm or ar.
2731 extra_arflags_for_target=" -X32_64"
2732 extra_nmflags_for_target=" -B -X32_64"
2733 ;;
2734 esac
2735
2736 alphaieee_frag=/dev/null
2737 case $target in
2738 alpha*-*-*)
2739 # This just makes sure to use the -mieee option to build target libs.
2740 # This should probably be set individually by each library.
2741 alphaieee_frag="config/mt-alphaieee"
2742 ;;
2743 esac
2744
2745 # If --enable-target-optspace always use -Os instead of -O2 to build
2746 # the target libraries, similarly if it is not specified, use -Os
2747 # on selected platforms.
2748 ospace_frag=/dev/null
2749 case "${enable_target_optspace}:${target}" in
2750 yes:*)
2751 ospace_frag="config/mt-ospace"
2752 ;;
2753 :d30v-*)
2754 ospace_frag="config/mt-d30v"
2755 ;;
2756 :m32r-* | :d10v-* | :fr30-* | :i?86*-*-elfiamcu)
2757 ospace_frag="config/mt-ospace"
2758 ;;
2759 no:* | :*)
2760 ;;
2761 *)
2762 echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2
2763 ;;
2764 esac
2765
2766 # Some systems (e.g., one of the i386-aix systems the gas testers are
2767 # using) don't handle "\$" correctly, so don't use it here.
2768 tooldir='${exec_prefix}'/${target_noncanonical}
2769 build_tooldir=${tooldir}
2770
2771 # Create a .gdbinit file which runs the one in srcdir
2772 # and tells GDB to look there for source files.
2773
2774 if test -r ${srcdir}/.gdbinit ; then
2775 case ${srcdir} in
2776 .) ;;
2777 *) cat > ./.gdbinit <<EOF
2778 # ${NO_EDIT}
2779 dir ${srcdir}
2780 dir .
2781 source ${srcdir}/.gdbinit
2782 EOF
2783 ;;
2784 esac
2785 fi
2786
2787 # Make sure that the compiler is able to generate an executable. If it
2788 # can't, we are probably in trouble. We don't care whether we can run the
2789 # executable--we might be using a cross compiler--we only care whether it
2790 # can be created. At this point the main configure script has set CC.
2791 we_are_ok=no
2792 echo "int main () { return 0; }" > conftest.c
2793 ${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
2794 if test $? = 0 ; then
2795 if test -s conftest || test -s conftest.exe ; then
2796 we_are_ok=yes
2797 fi
2798 fi
2799 case $we_are_ok in
2800 no)
2801 echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
2802 echo 1>&2 "*** You must set the environment variable CC to a working compiler."
2803 rm -f conftest*
2804 exit 1
2805 ;;
2806 esac
2807 rm -f conftest*
2808
2809 # Decide which environment variable is used to find dynamic libraries.
2810 case "${host}" in
2811 *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;;
2812 *-*-darwin*) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;;
2813 *-*-mingw* | *-*-cygwin ) RPATH_ENVVAR=PATH ;;
2814 *) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
2815 esac
2816
2817 # On systems where the dynamic library environment variable is PATH,
2818 # gcc/ will put dynamic libraries into a subdirectory to avoid adding
2819 # built executables to PATH.
2820 if test "$RPATH_ENVVAR" = PATH; then
2821 GCC_SHLIB_SUBDIR=/shlib
2822 else
2823 GCC_SHLIB_SUBDIR=
2824 fi
2825
2826 # Adjust the toplevel makefile according to whether bootstrap was selected.
2827 case $enable_bootstrap in
2828 yes)
2829 bootstrap_suffix=bootstrap
2830 BUILD_CONFIG=bootstrap-debug
2831 ;;
2832 no)
2833 bootstrap_suffix=no-bootstrap
2834 BUILD_CONFIG=
2835 ;;
2836 esac
2837
2838 AC_MSG_CHECKING(for default BUILD_CONFIG)
2839
2840 AC_ARG_WITH([build-config],
2841 [AS_HELP_STRING([--with-build-config='NAME NAME2...'],
2842 [use config/NAME.mk build configuration])],
2843 [case $with_build_config in
2844 yes) with_build_config= ;;
2845 no) with_build_config= BUILD_CONFIG= ;;
2846 esac])
2847
2848 if test "x${with_build_config}" != x; then
2849 BUILD_CONFIG=$with_build_config
2850 else
2851 case $BUILD_CONFIG in
2852 bootstrap-debug)
2853 if echo "int f (void) { return 0; }" > conftest.c &&
2854 ${CC} -c conftest.c &&
2855 mv conftest.o conftest.o.g0 &&
2856 ${CC} -c -g conftest.c &&
2857 mv conftest.o conftest.o.g &&
2858 ${srcdir}/contrib/compare-debug conftest.o.g0 conftest.o.g > /dev/null 2>&1; then
2859 :
2860 else
2861 BUILD_CONFIG=
2862 fi
2863 rm -f conftest.c conftest.o conftest.o.g0 conftest.o.g
2864 ;;
2865 esac
2866 fi
2867 AC_MSG_RESULT($BUILD_CONFIG)
2868 AC_SUBST(BUILD_CONFIG)
2869
2870 # Use same top-level configure hooks in libgcc/libstdc++/libvtv.
2871 AC_MSG_CHECKING([for --enable-vtable-verify])
2872 AC_ARG_ENABLE(vtable-verify,
2873 [AS_HELP_STRING([--enable-vtable-verify],
2874 [Enable vtable verification feature])],
2875 [case "$enableval" in
2876 yes) enable_vtable_verify=yes ;;
2877 no) enable_vtable_verify=no ;;
2878 *) enable_vtable_verify=no;;
2879 esac],
2880 [enable_vtable_verify=no])
2881 AC_MSG_RESULT($enable_vtable_verify)
2882
2883 # Record target_configdirs and the configure arguments for target and
2884 # build configuration in Makefile.
2885 target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
2886 build_configdirs=`echo "${build_configdirs}" | sed -e 's/build-//g'`
2887 bootstrap_fixincludes=no
2888
2889 # If we are building libgomp, bootstrap it.
2890 if echo " ${target_configdirs} " | grep " libgomp " > /dev/null 2>&1 ; then
2891 bootstrap_target_libs=${bootstrap_target_libs}target-libgomp,
2892 fi
2893
2894 # If we are building libsanitizer and $BUILD_CONFIG contains bootstrap-asan
2895 # or bootstrap-ubsan, bootstrap it.
2896 if echo " ${target_configdirs} " | grep " libsanitizer " > /dev/null 2>&1; then
2897 case "$BUILD_CONFIG" in
2898 *bootstrap-hwasan* | *bootstrap-asan* | *bootstrap-ubsan* )
2899 bootstrap_target_libs=${bootstrap_target_libs}target-libsanitizer,
2900 bootstrap_fixincludes=yes
2901 ;;
2902 esac
2903 fi
2904
2905 # If we are building libvtv and --enable-vtable-verify, bootstrap it.
2906 if echo " ${target_configdirs} " | grep " libvtv " > /dev/null 2>&1 &&
2907 test "$enable_vtable_verify" != no; then
2908 bootstrap_target_libs=${bootstrap_target_libs}target-libvtv,
2909 fi
2910
2911 # If we are building libatomic and the list of enabled languages includes the
2912 # D frontend, bootstrap it.
2913 if echo " ${target_configdirs} " | grep " libatomic " > /dev/null 2>&1; then
2914 case ,${enable_languages}, in
2915 *,d,*)
2916 bootstrap_target_libs=${bootstrap_target_libs}target-libatomic,
2917 ;;
2918 esac
2919 fi
2920
2921 # Determine whether gdb needs tk/tcl or not.
2922 # Use 'maybe' since enable_gdbtk might be true even if tk isn't available
2923 # and in that case we want gdb to be built without tk. Ugh!
2924 # In fact I believe gdb is the *only* package directly dependent on tk,
2925 # so we should be able to put the 'maybe's in unconditionally and
2926 # leave out the maybe dependencies when enable_gdbtk is false. I'm not
2927 # 100% sure that that's safe though.
2928
2929 gdb_tk="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-libgui"
2930 case "$enable_gdbtk" in
2931 no)
2932 GDB_TK="" ;;
2933 yes)
2934 GDB_TK="${gdb_tk}" ;;
2935 *)
2936 # Only add the dependency on gdbtk when GDBtk is part of the gdb
2937 # distro. Eventually someone will fix this and move Insight, nee
2938 # gdbtk to a separate directory.
2939 if test -d ${srcdir}/gdb/gdbtk ; then
2940 GDB_TK="${gdb_tk}"
2941 else
2942 GDB_TK=""
2943 fi
2944 ;;
2945 esac
2946 CONFIGURE_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-configure-/g`
2947 INSTALL_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-install-/g`
2948
2949 # gdb and gdbserver depend on gnulib and gdbsupport, but as nothing
2950 # else does, only include them if one of these is built. The Makefile
2951 # provides the ordering, so it's enough here to add to the list.
2952 case " ${configdirs} " in
2953 *\ gdb\ *)
2954 configdirs="${configdirs} gnulib gdbsupport"
2955 ;;
2956 *\ gdbserver\ *)
2957 configdirs="${configdirs} gnulib gdbsupport"
2958 ;;
2959 *\ sim\ *)
2960 configdirs="${configdirs} gnulib"
2961 ;;
2962 esac
2963
2964 # Strip out unwanted targets.
2965
2966 # While at that, we remove Makefiles if we were started for recursive
2967 # configuration, so that the top-level Makefile reconfigures them,
2968 # like we used to do when configure itself was recursive.
2969
2970 # Loop over modules. We used to use the "$extrasub" feature from Autoconf
2971 # but now we're fixing up the Makefile ourselves with the additional
2972 # commands passed to AC_CONFIG_FILES. Use separate variables
2973 # extrasub-{build,host,target} not because there is any reason to split
2974 # the substitutions up that way, but only to remain below the limit of
2975 # 99 commands in a script, for HP-UX sed.
2976
2977 # Do not nest @if/@endif or @unless/@endunless pairs, because
2978 # configure will not warn you at all.
2979
2980 case "$enable_bootstrap:$ENABLE_GOLD: $configdirs :,$stage1_languages," in
2981 yes:yes:*\ gold\ *:*,c++,*) ;;
2982 yes:yes:*\ gold\ *:*)
2983 AC_MSG_ERROR([in a combined tree, bootstrapping with --enable-gold requires c++ in stage1_languages])
2984 ;;
2985 esac
2986
2987 extrasub_build=
2988 for module in ${build_configdirs} ; do
2989 if test -z "${no_recursion}" \
2990 && test -f ${build_subdir}/${module}/Makefile; then
2991 echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure"
2992 rm -f ${build_subdir}/${module}/Makefile
2993 fi
2994 extrasub_build="$extrasub_build
2995 /^@if build-$module\$/d
2996 /^@endif build-$module\$/d
2997 /^@unless build-$module\$/,/^@endunless build-$module\$/d
2998 /^@if build-$module-$bootstrap_suffix\$/d
2999 /^@endif build-$module-$bootstrap_suffix\$/d
3000 /^@unless build-$module-$bootstrap_suffix\$/,/^@endunless build-$module-$bootstrap_suffix\$/d"
3001 done
3002 extrasub_host=
3003 for module in ${configdirs} ; do
3004 if test -z "${no_recursion}"; then
3005 for file in stage*-${module}/Makefile prev-${module}/Makefile ${module}/Makefile; do
3006 if test -f ${file}; then
3007 echo 1>&2 "*** removing ${file} to force reconfigure"
3008 rm -f ${file}
3009 fi
3010 done
3011 fi
3012 case ${module},${bootstrap_fixincludes} in
3013 fixincludes,no) host_bootstrap_suffix=no-bootstrap ;;
3014 *) host_bootstrap_suffix=$bootstrap_suffix ;;
3015 esac
3016 extrasub_host="$extrasub_host
3017 /^@if $module\$/d
3018 /^@endif $module\$/d
3019 /^@unless $module\$/,/^@endunless $module\$/d
3020 /^@if $module-$host_bootstrap_suffix\$/d
3021 /^@endif $module-$host_bootstrap_suffix\$/d
3022 /^@unless $module-$host_bootstrap_suffix\$/,/^@endunless $module-$host_bootstrap_suffix\$/d"
3023 done
3024 extrasub_target=
3025 for module in ${target_configdirs} ; do
3026 if test -z "${no_recursion}" \
3027 && test -f ${target_subdir}/${module}/Makefile; then
3028 echo 1>&2 "*** removing ${target_subdir}/${module}/Makefile to force reconfigure"
3029 rm -f ${target_subdir}/${module}/Makefile
3030 fi
3031
3032 # We only bootstrap target libraries listed in bootstrap_target_libs.
3033 case $bootstrap_target_libs in
3034 *,target-$module,*) target_bootstrap_suffix=$bootstrap_suffix ;;
3035 *) target_bootstrap_suffix=no-bootstrap ;;
3036 esac
3037
3038 extrasub_target="$extrasub_target
3039 /^@if target-$module\$/d
3040 /^@endif target-$module\$/d
3041 /^@unless target-$module\$/,/^@endunless target-$module\$/d
3042 /^@if target-$module-$target_bootstrap_suffix\$/d
3043 /^@endif target-$module-$target_bootstrap_suffix\$/d
3044 /^@unless target-$module-$target_bootstrap_suffix\$/,/^@endunless target-$module-$target_bootstrap_suffix\$/d"
3045 done
3046
3047 # Do the final fixup along with target modules.
3048 extrasub_target="$extrasub_target
3049 /^@if /,/^@endif /d
3050 /^@unless /d
3051 /^@endunless /d"
3052
3053 if test "$enable_pgo_build" != "no"; then
3054 extrasub_build="$extrasub_build
3055 /^@if pgo-build\$/d
3056 /^@endif pgo-build\$/d"
3057 fi
3058
3059 # Create the serialization dependencies. This uses a temporary file.
3060
3061 AC_ARG_ENABLE([serial-configure],
3062 [AS_HELP_STRING([[--enable-serial-[{host,target,build}-]configure]],
3063 [force sequential configuration of
3064 sub-packages for the host, target or build
3065 machine, or all sub-packages])])
3066
3067 case ${enable_serial_configure} in
3068 yes)
3069 enable_serial_build_configure=yes
3070 enable_serial_host_configure=yes
3071 enable_serial_target_configure=yes
3072 ;;
3073 esac
3074
3075 # These force 'configure's to be done one at a time, to avoid problems
3076 # with contention over a shared config.cache.
3077 rm -f serdep.tmp
3078 echo '# serdep.tmp' > serdep.tmp
3079 olditem=
3080 test "x${enable_serial_build_configure}" = xyes &&
3081 for item in ${build_configdirs} ; do
3082 case ${olditem} in
3083 "") ;;
3084 *) echo "configure-build-${item}: configure-build-${olditem}" >> serdep.tmp ;;
3085 esac
3086 olditem=${item}
3087 done
3088 olditem=
3089 test "x${enable_serial_host_configure}" = xyes &&
3090 for item in ${configdirs} ; do
3091 case ${olditem} in
3092 "") ;;
3093 *) echo "configure-${item}: configure-${olditem}" >> serdep.tmp ;;
3094 esac
3095 olditem=${item}
3096 done
3097 olditem=
3098 test "x${enable_serial_target_configure}" = xyes &&
3099 for item in ${target_configdirs} ; do
3100 case ${olditem} in
3101 "") ;;
3102 *) echo "configure-target-${item}: configure-target-${olditem}" >> serdep.tmp ;;
3103 esac
3104 olditem=${item}
3105 done
3106 serialization_dependencies=serdep.tmp
3107 AC_SUBST_FILE(serialization_dependencies)
3108
3109 # Base args. Strip norecursion, cache-file, srcdir, host, build,
3110 # target, nonopt, and variable assignments. These are the ones we
3111 # might not want to pass down to subconfigures. The exception being
3112 # --cache-file=/dev/null, which is used to turn off the use of cache
3113 # files altogether, and which should be passed on to subconfigures.
3114 # Also strip program-prefix, program-suffix, and program-transform-name,
3115 # so that we can pass down a consistent program-transform-name.
3116 baseargs=
3117 tbaseargs=
3118 keep_next=no
3119 skip_next=no
3120 eval "set -- $ac_configure_args"
3121 for ac_arg
3122 do
3123 if test X"$skip_next" = X"yes"; then
3124 skip_next=no
3125 continue
3126 fi
3127 if test X"$keep_next" = X"yes"; then
3128 case $ac_arg in
3129 *\'*)
3130 ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
3131 esac
3132 baseargs="$baseargs '$ac_arg'"
3133 tbaseargs="$tbaseargs '$ac_arg'"
3134 keep_next=no
3135 continue
3136 fi
3137
3138 # Handle separated arguments. Based on the logic generated by
3139 # autoconf 2.59.
3140 case $ac_arg in
3141 *=* | --config-cache | -C | -disable-* | --disable-* \
3142 | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
3143 | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
3144 | -with-* | --with-* | -without-* | --without-* | --x)
3145 separate_arg=no
3146 ;;
3147 -*)
3148 separate_arg=yes
3149 ;;
3150 *)
3151 separate_arg=no
3152 ;;
3153 esac
3154
3155 skip_targ=no
3156 case $ac_arg in
3157 changequote(,)
3158 --with-* | --without-*)
3159 libopt=`echo "$ac_arg" | sed -e 's,^--[^-_]*[-_],,' -e 's,=.*$,,'`
3160
3161 case $libopt in
3162 *[-_]include)
3163 lib=`echo "$libopt" | sed 's,[-_]include$,,'`
3164 ;;
3165 *[-_]lib)
3166 lib=`echo "$libopt" | sed 's,[-_]lib$,,'`
3167 ;;
3168 *)
3169 lib=$libopt
3170 ;;
3171 esac
3172 changequote([,])
3173
3174 case $lib in
3175 mpc | mpfr | gmp | isl)
3176 # If we're processing --with-$lib, --with-$lib-include or
3177 # --with-$lib-lib, for one of the libs above, and target is
3178 # different from host, don't pass the current argument to any
3179 # target library's configure.
3180 if test x$is_cross_compiler = xyes; then
3181 skip_targ=yes
3182 fi
3183 ;;
3184 esac
3185 ;;
3186 esac
3187
3188 case "$ac_arg" in
3189 --cache-file=/dev/null | \
3190 -cache-file=/dev/null )
3191 # Handled here to avoid the test to skip args below.
3192 baseargs="$baseargs '$ac_arg'"
3193 tbaseargs="$tbaseargs '$ac_arg'"
3194 # Assert: $separate_arg should always be no.
3195 keep_next=$separate_arg
3196 ;;
3197 --no*)
3198 continue
3199 ;;
3200 --c* | \
3201 --sr* | \
3202 --ho* | \
3203 --bu* | \
3204 --t* | \
3205 --program-* | \
3206 -cache_file* | \
3207 -srcdir* | \
3208 -host* | \
3209 -build* | \
3210 -target* | \
3211 -program-prefix* | \
3212 -program-suffix* | \
3213 -program-transform-name* )
3214 skip_next=$separate_arg
3215 continue
3216 ;;
3217 -*)
3218 # An option. Add it.
3219 case $ac_arg in
3220 *\'*)
3221 ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
3222 esac
3223 baseargs="$baseargs '$ac_arg'"
3224 if test X"$skip_targ" = Xno; then
3225 tbaseargs="$tbaseargs '$ac_arg'"
3226 fi
3227 keep_next=$separate_arg
3228 ;;
3229 *)
3230 # Either a variable assignment, or a nonopt (triplet). Don't
3231 # pass it down; let the Makefile handle this.
3232 continue
3233 ;;
3234 esac
3235 done
3236 # Remove the initial space we just introduced and, as these will be
3237 # expanded by make, quote '$'.
3238 baseargs=`echo "x$baseargs" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
3239
3240 # Add in --program-transform-name, after --program-prefix and
3241 # --program-suffix have been applied to it. Autoconf has already
3242 # doubled dollar signs and backslashes in program_transform_name; we want
3243 # the backslashes un-doubled, and then the entire thing wrapped in single
3244 # quotes, because this will be expanded first by make and then by the shell.
3245 # Also, because we want to override the logic in subdir configure scripts to
3246 # choose program_transform_name, replace any s,x,x, with s,y,y,.
3247 sed -e "s,\\\\\\\\,\\\\,g; s,','\\\\'',g; s/s,x,x,/s,y,y,/" <<EOF_SED > conftestsed.out
3248 ${program_transform_name}
3249 EOF_SED
3250 gcc_transform_name=`cat conftestsed.out`
3251 rm -f conftestsed.out
3252 baseargs="$baseargs --program-transform-name='${gcc_transform_name}'"
3253 tbaseargs="$tbaseargs --program-transform-name='${gcc_transform_name}'"
3254 if test "$silent" = yes; then
3255 baseargs="$baseargs --silent"
3256 tbaseargs="$tbaseargs --silent"
3257 fi
3258 baseargs="$baseargs --disable-option-checking"
3259 tbaseargs="$tbaseargs --disable-option-checking"
3260
3261 # Record and document user additions to sub configure arguments.
3262 AC_ARG_VAR([build_configargs],
3263 [additional configure arguments for build directories])
3264 AC_ARG_VAR([host_configargs],
3265 [additional configure arguments for host directories])
3266 AC_ARG_VAR([target_configargs],
3267 [additional configure arguments for target directories])
3268
3269 # For the build-side libraries, we just need to pretend we're native,
3270 # and not use the same cache file. Multilibs are neither needed nor
3271 # desired. We can't even use the same cache file for all build-side
3272 # libraries, as they're compiled differently; some with C, some with
3273 # C++ or with different feature-enabling options.
3274 build_configargs="$build_configargs --cache-file=./config.cache ${baseargs}"
3275
3276 # For host modules, accept cache file option, or specification as blank.
3277 case "${cache_file}" in
3278 "") # empty
3279 cache_file_option="" ;;
3280 /* | [[A-Za-z]]:[[\\/]]* ) # absolute path
3281 cache_file_option="--cache-file=${cache_file}" ;;
3282 *) # relative path
3283 cache_file_option="--cache-file=../${cache_file}" ;;
3284 esac
3285
3286 # Host dirs don't like to share a cache file either, horribly enough.
3287 # This seems to be due to autoconf 2.5x stupidity.
3288 host_configargs="$host_configargs --cache-file=./config.cache ${extra_host_args} ${baseargs}"
3289
3290 target_configargs="$target_configargs ${tbaseargs}"
3291
3292 # Passing a --with-cross-host argument lets the target libraries know
3293 # whether they are being built with a cross-compiler or being built
3294 # native. However, it would be better to use other mechanisms to make the
3295 # sorts of decisions they want to make on this basis. Please consider
3296 # this option to be deprecated. FIXME.
3297 if test x${is_cross_compiler} = xyes ; then
3298 target_configargs="--with-cross-host=${host_noncanonical} ${target_configargs}"
3299 fi
3300
3301 # Special user-friendly check for native x86_64-linux build, if
3302 # multilib is not explicitly enabled.
3303 case "$target:$have_compiler:$host:$target:$enable_multilib" in
3304 x86_64-*linux*:yes:$build:$build:)
3305 # Make sure we have a development environment that handles 32-bit
3306 dev64=no
3307 echo "int main () { return 0; }" > conftest.c
3308 ${CC} -m32 -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
3309 if test $? = 0 ; then
3310 if test -s conftest || test -s conftest.exe ; then
3311 dev64=yes
3312 fi
3313 fi
3314 rm -f conftest*
3315 if test x${dev64} != xyes ; then
3316 AC_MSG_ERROR([I suspect your system does not have 32-bit development libraries (libc and headers). If you have them, rerun configure with --enable-multilib. If you do not have them, and want to build a 64-bit-only compiler, rerun configure with --disable-multilib.])
3317 fi
3318 ;;
3319 esac
3320
3321 # Default to --enable-multilib.
3322 if test x${enable_multilib} = x ; then
3323 target_configargs="--enable-multilib ${target_configargs}"
3324 fi
3325
3326 # Pass --with-newlib if appropriate. Note that target_configdirs has
3327 # changed from the earlier setting of with_newlib.
3328 if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then
3329 target_configargs="--with-newlib ${target_configargs}"
3330 fi
3331
3332 # Different target subdirs use different values of certain variables
3333 # (notably CXX). Worse, multilibs use *lots* of different values.
3334 # Worse yet, autoconf 2.5x makes some of these 'precious', meaning that
3335 # it doesn't automatically accept command-line overrides of them.
3336 # This means it's not safe for target subdirs to share a cache file,
3337 # which is disgusting, but there you have it. Hopefully this can be
3338 # fixed in future. It's still worthwhile to use a cache file for each
3339 # directory. I think.
3340
3341 # Pass the appropriate --build, --host, --target and --cache-file arguments.
3342 # We need to pass --target, as newer autoconf's requires consistency
3343 # for target_alias and gcc doesn't manage it consistently.
3344 target_configargs="--cache-file=./config.cache ${target_configargs}"
3345
3346 FLAGS_FOR_TARGET=
3347 case " $target_configdirs " in
3348 *" newlib "*)
3349 case " $target_configargs " in
3350 *" --with-newlib "*)
3351 case "$target" in
3352 *-cygwin*)
3353 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup/cygwin -isystem $$s/winsup/cygwin/include'
3354 ;;
3355 esac
3356
3357 # If we're not building GCC, don't discard standard headers.
3358 if test -d ${srcdir}/gcc; then
3359 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -nostdinc'
3360
3361 if test "${build}" != "${host}"; then
3362 # On Canadian crosses, CC_FOR_TARGET will have already been set
3363 # by `configure', so we won't have an opportunity to add -Bgcc/
3364 # to it. This is right: we don't want to search that directory
3365 # for binaries, but we want the header files in there, so add
3366 # them explicitly.
3367 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/$(HOST_SUBDIR)/gcc/include -isystem $$r/$(HOST_SUBDIR)/gcc/include-fixed'
3368
3369 # Someone might think of using the pre-installed headers on
3370 # Canadian crosses, in case the installed compiler is not fully
3371 # compatible with the compiler being built. In this case, it
3372 # would be better to flag an error than risking having
3373 # incompatible object files being constructed. We can't
3374 # guarantee that an error will be flagged, but let's hope the
3375 # compiler will do it, when presented with incompatible header
3376 # files.
3377 fi
3378 fi
3379
3380 case "${target}-${is_cross_compiler}" in
3381 i[[3456789]]86-*-linux*-no)
3382 # Here host == target, so we don't need to build gcc,
3383 # so we don't want to discard standard headers.
3384 FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'`
3385 ;;
3386 *)
3387 # If we're building newlib, use its generic headers last, but search
3388 # for any libc-related directories first (so make it the last -B
3389 # switch).
3390 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
3391
3392 # If we're building libgloss, find the startup file, simulator library
3393 # and linker script.
3394 case " $target_configdirs " in
3395 *" libgloss "*)
3396 # Look for startup file, simulator library and maybe linker script.
3397 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/libgloss/'"$libgloss_dir"
3398 # Look for libnosys.a in case the target needs it.
3399 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/libgloss/libnosys'
3400 # Most targets have the linker script in the source directory.
3401 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$s/libgloss/'"$libgloss_dir"
3402 ;;
3403 esac
3404 ;;
3405 esac
3406 ;;
3407 esac
3408 ;;
3409 esac
3410
3411 case "$target" in
3412 x86_64-*mingw* | *-w64-mingw*)
3413 # MinGW-w64 does not use newlib, nor does it use winsup. It may,
3414 # however, use a symlink named 'mingw' in ${prefix} .
3415 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L${prefix}/${target}/lib -L${prefix}/mingw/lib -isystem ${prefix}/${target}/include -isystem ${prefix}/mingw/include'
3416 ;;
3417 *-mingw*)
3418 # MinGW can't be handled as Cygwin above since it does not use newlib.
3419 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup/mingw -L$$r/$(TARGET_SUBDIR)/winsup/w32api/lib -isystem $$s/winsup/mingw/include -isystem $$s/winsup/w32api/include'
3420 ;;
3421 esac
3422
3423 # Allow the user to override the flags for
3424 # our build compiler if desired.
3425 if test x"${build}" = x"${host}" ; then
3426 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}}
3427 CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-${CPPFLAGS}}
3428 CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-${CXXFLAGS}}
3429 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
3430 fi
3431
3432 # On Canadian crosses, we'll be searching the right directories for
3433 # the previously-installed cross compiler, so don't bother to add
3434 # flags for directories within the install tree of the compiler
3435 # being built; programs in there won't even run.
3436 if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then
3437 # Search for pre-installed headers if nothing else fits.
3438 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
3439 fi
3440
3441 if test "x${use_gnu_ld}" = x &&
3442 echo " ${configdirs} " | grep " ld " > /dev/null ; then
3443 # Arrange for us to find uninstalled linker scripts.
3444 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(HOST_SUBDIR)/ld'
3445 fi
3446
3447 # Search for other target-specific linker scripts and such.
3448 case "${target}" in
3449 mep*)
3450 FLAGS_FOR_TARGET="$FLAGS_FOR_TARGET -mlibrary"
3451 ;;
3452 esac
3453
3454 # Makefile fragments.
3455 for frag in host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag;
3456 do
3457 eval fragval=\$$frag
3458 if test $fragval != /dev/null; then
3459 eval $frag=${srcdir}/$fragval
3460 fi
3461 done
3462 AC_SUBST_FILE(host_makefile_frag)
3463 AC_SUBST_FILE(target_makefile_frag)
3464 AC_SUBST_FILE(alphaieee_frag)
3465 AC_SUBST_FILE(ospace_frag)
3466
3467 # Miscellanea: directories, flags, etc.
3468 AC_SUBST(RPATH_ENVVAR)
3469 AC_SUBST(GCC_SHLIB_SUBDIR)
3470 AC_SUBST(tooldir)
3471 AC_SUBST(build_tooldir)
3472 AC_SUBST(CONFIGURE_GDB_TK)
3473 AC_SUBST(GDB_TK)
3474 AC_SUBST(INSTALL_GDB_TK)
3475
3476 # Build module lists & subconfigure args.
3477 AC_SUBST(build_configargs)
3478 AC_SUBST(build_configdirs)
3479
3480 # Host module lists & subconfigure args.
3481 AC_SUBST(host_configargs)
3482 AC_SUBST(configdirs)
3483 AC_SUBST(target_configdirs)
3484
3485 # Target module lists & subconfigure args.
3486 AC_SUBST(target_configargs)
3487
3488
3489 # Build tools.
3490 AC_SUBST(AR_FOR_BUILD)
3491 AC_SUBST(AS_FOR_BUILD)
3492 AC_SUBST(CC_FOR_BUILD)
3493 AC_SUBST(CFLAGS_FOR_BUILD)
3494 AC_SUBST(CPP_FOR_BUILD)
3495 AC_SUBST(CPPFLAGS_FOR_BUILD)
3496 AC_SUBST(CXXFLAGS_FOR_BUILD)
3497 AC_SUBST(CXX_FOR_BUILD)
3498 AC_SUBST(DLLTOOL_FOR_BUILD)
3499 AC_SUBST(DSYMUTIL_FOR_BUILD)
3500 AC_SUBST(GFORTRAN_FOR_BUILD)
3501 AC_SUBST(GOC_FOR_BUILD)
3502 AC_SUBST(GDC_FOR_BUILD)
3503 AC_SUBST(LDFLAGS_FOR_BUILD)
3504 AC_SUBST(LD_FOR_BUILD)
3505 AC_SUBST(NM_FOR_BUILD)
3506 AC_SUBST(RANLIB_FOR_BUILD)
3507 AC_SUBST(WINDMC_FOR_BUILD)
3508 AC_SUBST(WINDRES_FOR_BUILD)
3509
3510 # Generate default definitions for YACC, M4, LEX and other programs that run
3511 # on the build machine. These are used if the Makefile can't locate these
3512 # programs in objdir.
3513 MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing
3514
3515 AC_CHECK_PROGS([YACC], ['bison -y' byacc yacc], [$MISSING bison -y])
3516 case " $build_configdirs " in
3517 *" bison "*) YACC='$$r/$(BUILD_SUBDIR)/bison/tests/bison -y' ;;
3518 esac
3519
3520 AC_CHECK_PROGS([BISON], [bison], [$MISSING bison])
3521 case " $build_configdirs " in
3522 *" bison "*) BISON='$$r/$(BUILD_SUBDIR)/bison/tests/bison' ;;
3523 esac
3524
3525 AC_CHECK_PROGS([M4], [gm4 gnum4 m4], [$MISSING m4])
3526 case " $build_configdirs " in
3527 *" m4 "*) M4='$$r/$(BUILD_SUBDIR)/m4/m4' ;;
3528 esac
3529
3530 AC_CHECK_PROGS([LEX], [flex lex], [$MISSING flex])
3531 case " $build_configdirs " in
3532 *" flex "*) LEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
3533 *" lex "*) LEX='$$r/$(BUILD_SUBDIR)/lex/lex' ;;
3534 esac
3535
3536 AC_CHECK_PROGS([FLEX], [flex], [$MISSING flex])
3537 case " $build_configdirs " in
3538 *" flex "*) FLEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
3539 esac
3540
3541 AC_CHECK_PROGS([MAKEINFO], makeinfo, [$MISSING makeinfo])
3542 case " $build_configdirs " in
3543 *" texinfo "*) MAKEINFO='$$r/$(BUILD_SUBDIR)/texinfo/makeinfo/makeinfo' ;;
3544 *)
3545 changequote(,)
3546 # For an installed makeinfo, we require it to be from texinfo 4.7 or
3547 # higher, else we use the "missing" dummy.
3548 if ${MAKEINFO} --version \
3549 | egrep 'texinfo[^0-9]*(4\.([7-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
3550 :
3551 else
3552 MAKEINFO="$MISSING makeinfo"
3553 fi
3554 ;;
3555 changequote([,])
3556 esac
3557
3558 # FIXME: expect and dejagnu may become build tools?
3559
3560 AC_CHECK_PROGS(EXPECT, expect, expect)
3561 case " $configdirs " in
3562 *" expect "*)
3563 test $host = $build && EXPECT='$$r/$(HOST_SUBDIR)/expect/expect'
3564 ;;
3565 esac
3566
3567 AC_CHECK_PROGS(RUNTEST, runtest, runtest)
3568 case " $configdirs " in
3569 *" dejagnu "*)
3570 test $host = $build && RUNTEST='$$s/$(HOST_SUBDIR)/dejagnu/runtest'
3571 ;;
3572 esac
3573
3574
3575 # Host tools.
3576 NCN_STRICT_CHECK_TOOLS(AR, ar)
3577 NCN_STRICT_CHECK_TOOLS(AS, as)
3578 NCN_STRICT_CHECK_TOOLS(DLLTOOL, dlltool)
3579 NCN_STRICT_CHECK_TOOLS(DSYMUTIL, dsymutil)
3580 NCN_STRICT_CHECK_TOOLS(LD, ld)
3581 NCN_STRICT_CHECK_TOOLS(LIPO, lipo)
3582 NCN_STRICT_CHECK_TOOLS(NM, nm)
3583 NCN_STRICT_CHECK_TOOLS(RANLIB, ranlib, true)
3584 NCN_STRICT_CHECK_TOOLS(STRIP, strip, true)
3585 NCN_STRICT_CHECK_TOOLS(WINDRES, windres)
3586 NCN_STRICT_CHECK_TOOLS(WINDMC, windmc)
3587 NCN_STRICT_CHECK_TOOLS(OBJCOPY, objcopy)
3588 NCN_STRICT_CHECK_TOOLS(OBJDUMP, objdump)
3589 NCN_STRICT_CHECK_TOOLS(OTOOL, otool)
3590 NCN_STRICT_CHECK_TOOLS(READELF, readelf)
3591 AC_SUBST(CC)
3592 AC_SUBST(CXX)
3593 AC_SUBST(CFLAGS)
3594 AC_SUBST(CXXFLAGS)
3595 AC_SUBST(GDC)
3596 AC_SUBST(GDCFLAGS)
3597
3598 # Target tools.
3599 AC_ARG_WITH([build-time-tools],
3600 [AS_HELP_STRING([--with-build-time-tools=PATH],
3601 [use given path to find target tools during the build])],
3602 [case x"$withval" in
3603 x/*) ;;
3604 *)
3605 with_build_time_tools=
3606 AC_MSG_WARN([argument to --with-build-time-tools must be an absolute path])
3607 ;;
3608 esac],
3609 [with_build_time_tools=])
3610
3611 NCN_STRICT_CHECK_TARGET_TOOLS(CC_FOR_TARGET, cc gcc)
3612 NCN_STRICT_CHECK_TARGET_TOOLS(CXX_FOR_TARGET, c++ g++ cxx gxx)
3613 NCN_STRICT_CHECK_TARGET_TOOLS(GCC_FOR_TARGET, gcc, ${CC_FOR_TARGET})
3614 NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran)
3615 NCN_STRICT_CHECK_TARGET_TOOLS(GOC_FOR_TARGET, gccgo)
3616 NCN_STRICT_CHECK_TARGET_TOOLS(GDC_FOR_TARGET, gdc)
3617
3618 ACX_CHECK_INSTALLED_TARGET_TOOL(AR_FOR_TARGET, ar)
3619 ACX_CHECK_INSTALLED_TARGET_TOOL(AS_FOR_TARGET, as)
3620 ACX_CHECK_INSTALLED_TARGET_TOOL(DLLTOOL_FOR_TARGET, dlltool)
3621 ACX_CHECK_INSTALLED_TARGET_TOOL(DSYMUTIL_FOR_TARGET, dsymutil)
3622 ACX_CHECK_INSTALLED_TARGET_TOOL(LD_FOR_TARGET, ld)
3623 ACX_CHECK_INSTALLED_TARGET_TOOL(LIPO_FOR_TARGET, lipo)
3624 ACX_CHECK_INSTALLED_TARGET_TOOL(NM_FOR_TARGET, nm)
3625 ACX_CHECK_INSTALLED_TARGET_TOOL(OBJCOPY_FOR_TARGET, objcopy)
3626 ACX_CHECK_INSTALLED_TARGET_TOOL(OBJDUMP_FOR_TARGET, objdump)
3627 ACX_CHECK_INSTALLED_TARGET_TOOL(OTOOL_FOR_TARGET, otool)
3628 ACX_CHECK_INSTALLED_TARGET_TOOL(RANLIB_FOR_TARGET, ranlib)
3629 ACX_CHECK_INSTALLED_TARGET_TOOL(READELF_FOR_TARGET, readelf)
3630 ACX_CHECK_INSTALLED_TARGET_TOOL(STRIP_FOR_TARGET, strip)
3631 ACX_CHECK_INSTALLED_TARGET_TOOL(WINDRES_FOR_TARGET, windres)
3632 ACX_CHECK_INSTALLED_TARGET_TOOL(WINDMC_FOR_TARGET, windmc)
3633
3634 RAW_CXX_FOR_TARGET="$CXX_FOR_TARGET"
3635
3636 GCC_TARGET_TOOL(ar, AR_FOR_TARGET, AR, [binutils/ar])
3637 GCC_TARGET_TOOL(as, AS_FOR_TARGET, AS, [gas/as-new])
3638 GCC_TARGET_TOOL(cc, CC_FOR_TARGET, CC, [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
3639 dnl see comments for CXX_FOR_TARGET_FLAG_TO_PASS
3640 GCC_TARGET_TOOL(c++, CXX_FOR_TARGET, CXX,
3641 [gcc/xg++ -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ `if test -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags; then $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes; else echo -funconfigured-libstdc++-v3 ; fi` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs],
3642 c++)
3643 GCC_TARGET_TOOL(c++ for libstdc++, RAW_CXX_FOR_TARGET, CXX,
3644 [gcc/xgcc -shared-libgcc -B$$r/$(HOST_SUBDIR)/gcc -nostdinc++ -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs],
3645 c++)
3646 GCC_TARGET_TOOL(dlltool, DLLTOOL_FOR_TARGET, DLLTOOL, [binutils/dlltool])
3647 GCC_TARGET_TOOL(dsymutil, DSYMUTIL_FOR_TARGET, DSYMUTIL)
3648 GCC_TARGET_TOOL(gcc, GCC_FOR_TARGET, , [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
3649 GCC_TARGET_TOOL(gfortran, GFORTRAN_FOR_TARGET, GFORTRAN,
3650 [gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/], fortran)
3651 GCC_TARGET_TOOL(gccgo, GOC_FOR_TARGET, GOC,
3652 [gcc/gccgo -B$$r/$(HOST_SUBDIR)/gcc/], go)
3653 GCC_TARGET_TOOL(gdc, GDC_FOR_TARGET, GDC,
3654 [gcc/gdc -B$$r/$(HOST_SUBDIR)/gcc/], d)
3655 GCC_TARGET_TOOL(ld, LD_FOR_TARGET, LD, [ld/ld-new])
3656 GCC_TARGET_TOOL(lipo, LIPO_FOR_TARGET, LIPO)
3657 GCC_TARGET_TOOL(nm, NM_FOR_TARGET, NM, [binutils/nm-new])
3658 GCC_TARGET_TOOL(objcopy, OBJCOPY_FOR_TARGET, OBJCOPY, [binutils/objcopy])
3659 GCC_TARGET_TOOL(objdump, OBJDUMP_FOR_TARGET, OBJDUMP, [binutils/objdump])
3660 GCC_TARGET_TOOL(otool, OTOOL_FOR_TARGET, OTOOL)
3661 GCC_TARGET_TOOL(ranlib, RANLIB_FOR_TARGET, RANLIB, [binutils/ranlib])
3662 GCC_TARGET_TOOL(readelf, READELF_FOR_TARGET, READELF, [binutils/readelf])
3663 GCC_TARGET_TOOL(strip, STRIP_FOR_TARGET, STRIP, [binutils/strip-new])
3664 GCC_TARGET_TOOL(windres, WINDRES_FOR_TARGET, WINDRES, [binutils/windres])
3665 GCC_TARGET_TOOL(windmc, WINDMC_FOR_TARGET, WINDMC, [binutils/windmc])
3666
3667 AC_SUBST(FLAGS_FOR_TARGET)
3668 AC_SUBST(RAW_CXX_FOR_TARGET)
3669
3670 # Certain tools may need extra flags.
3671 AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target}
3672 RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
3673 NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
3674
3675 # When building target libraries, except in a Canadian cross, we use
3676 # the same toolchain as the compiler we just built.
3677 COMPILER_AS_FOR_TARGET='$(AS_FOR_TARGET)'
3678 COMPILER_LD_FOR_TARGET='$(LD_FOR_TARGET)'
3679 COMPILER_NM_FOR_TARGET='$(NM_FOR_TARGET)'
3680 if test $host = $build; then
3681 case " $configdirs " in
3682 *" gcc "*)
3683 COMPILER_AS_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/as'
3684 COMPILER_LD_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/collect-ld'
3685 COMPILER_NM_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/nm'${extra_nmflags_for_target}
3686 ;;
3687 esac
3688 fi
3689
3690 AC_SUBST(COMPILER_AS_FOR_TARGET)
3691 AC_SUBST(COMPILER_LD_FOR_TARGET)
3692 AC_SUBST(COMPILER_NM_FOR_TARGET)
3693
3694 AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
3695 AC_ARG_ENABLE(maintainer-mode,
3696 [AS_HELP_STRING([--enable-maintainer-mode],
3697 [enable make rules and dependencies not useful
3698 (and sometimes confusing) to the casual installer])],
3699 USE_MAINTAINER_MODE=$enableval,
3700 USE_MAINTAINER_MODE=no)
3701 AC_MSG_RESULT($USE_MAINTAINER_MODE)
3702 AC_SUBST(MAINTAINER_MODE_TRUE)
3703 AC_SUBST(MAINTAINER_MODE_FALSE)
3704 if test "$USE_MAINTAINER_MODE" = yes; then
3705 MAINTAINER_MODE_TRUE=
3706 MAINTAINER_MODE_FALSE='#'
3707 else
3708 MAINTAINER_MODE_TRUE='#'
3709 MAINTAINER_MODE_FALSE=
3710 fi
3711 MAINT=$MAINTAINER_MODE_TRUE
3712 AC_SUBST(MAINT)dnl
3713
3714 # ---------------------
3715 # GCC bootstrap support
3716 # ---------------------
3717
3718 # Stage specific cflags for build.
3719 stage1_cflags="-g"
3720 case $build in
3721 vax-*-*)
3722 case ${GCC} in
3723 yes) stage1_cflags="-g -Wa,-J" ;;
3724 *) stage1_cflags="-g -J" ;;
3725 esac ;;
3726 esac
3727
3728 AC_SUBST(stage1_cflags)
3729
3730 # Enable --enable-checking in stage1 of the compiler.
3731 AC_ARG_ENABLE(stage1-checking,
3732 [AS_HELP_STRING([[--enable-stage1-checking[=all]]],
3733 [choose additional checking for stage1 of the compiler])],
3734 [stage1_checking=--enable-checking=${enable_stage1_checking}],
3735 [if test "x$enable_checking" = xno || test "x$enable_checking" = x; then
3736 # For --disable-checking or implicit --enable-checking=release, avoid
3737 # setting --enable-checking=gc in the default stage1 checking for LTO
3738 # bootstraps. See PR62077.
3739 case $BUILD_CONFIG in
3740 *lto*)
3741 stage1_checking=--enable-checking=release,misc,gimple,rtlflag,tree,types;;
3742 *)
3743 stage1_checking=--enable-checking=yes,types;;
3744 esac
3745 if test "x$enable_checking" = x && \
3746 test -d ${srcdir}/gcc && \
3747 test x"`cat ${srcdir}/gcc/DEV-PHASE`" = xexperimental; then
3748 stage1_checking=--enable-checking=yes,types,extra
3749 fi
3750 else
3751 stage1_checking=--enable-checking=$enable_checking,types
3752 fi])
3753 AC_SUBST(stage1_checking)
3754
3755 # Enable -Werror in bootstrap stage2 and later.
3756 AC_ARG_ENABLE(werror,
3757 [AS_HELP_STRING([--enable-werror],
3758 [enable -Werror in bootstrap stage2 and later])],
3759 [
3760 case ${enable_werror} in
3761 yes) stage2_werror_flag="--enable-werror-always" ;;
3762 *) stage2_werror_flag="" ;;
3763 esac
3764 ],
3765 [
3766 if test -d ${srcdir}/gcc && test x"`cat $srcdir/gcc/DEV-PHASE`" = xexperimental; then
3767 case $BUILD_CONFIG in
3768 bootstrap-debug)
3769 stage2_werror_flag="--enable-werror-always" ;;
3770 "")
3771 stage2_werror_flag="--enable-werror-always" ;;
3772 esac
3773 fi
3774 ])
3775
3776 AC_SUBST(stage2_werror_flag)
3777
3778 # Specify what files to not compare during bootstrap.
3779
3780 compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/*"
3781 case "$target" in
3782 hppa*64*-*-hpux*) ;;
3783 hppa*-*-hpux*) compare_exclusions="$compare_exclusions | */libgcc/lib2funcs* | gcc/function-tests.o" ;;
3784 powerpc*-ibm-aix*) compare_exclusions="$compare_exclusions | *libgomp*\$(objext)" ;;
3785 esac
3786 AC_SUBST(compare_exclusions)
3787
3788 AC_CONFIG_FILES([Makefile],
3789 [sed "$extrasub_build" Makefile |
3790 sed "$extrasub_host" |
3791 sed "$extrasub_target" > mf$$
3792 mv -f mf$$ Makefile],
3793 [extrasub_build="$extrasub_build"
3794 extrasub_host="$extrasub_host"
3795 extrasub_target="$extrasub_target"])
3796 AC_OUTPUT