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