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