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