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