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