X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fgcc.git;a=blobdiff_plain;f=configure.ac;h=1fe97c001cc459f972b9248fbf7285a9c8cbc155;hp=f941b81af7f215e1a909210ce96dc71cc88a5d32;hb=HEAD;hpb=fc259b522c0f8b7bbca8e7adcd3da63330094a34 diff --git a/configure.ac b/configure.ac index f941b81af7f..042681c27be 100644 --- a/configure.ac +++ b/configure.ac @@ -24,6 +24,7 @@ m4_include(config/override.m4) m4_include(config/proginstall.m4) m4_include(config/elf.m4) m4_include(config/ax_cxx_compile_stdcxx.m4) +m4_include(config/gcc-plugin.m4) m4_include([libtool.m4]) m4_include([ltoptions.m4]) m4_include([ltsugar.m4]) @@ -132,7 +133,7 @@ build_tools="build-texinfo build-flex build-bison build-m4 build-fixincludes" # these libraries are used by various programs built for the host environment #f -host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktrace libcpp libcody libdecnumber gmp mpfr mpc isl libelf libiconv libctf" +host_libs="gettext libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktrace libcpp libcody libdecnumber gmp mpfr mpc isl libiconv libctf libsframe libgrust " # these tools are built for the host environment # Note, the powerpc-eabi build depends on sim occurring before gdb in order to @@ -140,7 +141,7 @@ host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktr # binutils, gas and ld appear in that order because it makes sense to run # "make check" in that particular order. # If --enable-gold is used, "gold" may replace "ld". -host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gdbserver gprof etc expect dejagnu m4 utils guile fastjar gnattools libcc1 gotools c++tools" +host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gdbserver gprof etc expect dejagnu m4 utils guile fastjar gnattools libcc1 gm2tools gotools c++tools" # these libraries are built for the target environment, and are built after # the host libraries and the host tools (which may be a cross compiler) @@ -150,7 +151,6 @@ target_libraries="target-libgcc \ target-libgloss \ target-newlib \ target-libgomp \ - target-liboffloadmic \ target-libatomic \ target-libitm \ target-libstdc++-v3 \ @@ -162,7 +162,9 @@ target_libraries="target-libgcc \ target-libffi \ target-libobjc \ target-libada \ + target-libgm2 \ target-libgo \ + target-libgrust \ target-libphobos \ target-zlib" @@ -247,6 +249,15 @@ if test x$with_system_zlib = xyes ; then noconfigdirs="$noconfigdirs zlib" fi +# Don't compile the bundled readline/libreadline.a if --with-system-readline +# is provided. +if test x$with_system_readline = xyes ; then + noconfigdirs="$noconfigdirs readline" +fi + +AC_ARG_WITH(zstd, +[AS_HELP_STRING([--with-zstd], [Support zstd compressed debug sections (default=auto)])]) + # some tools are so dependent upon X11 that if we're not building with X, # it's not even worth trying to configure, much less build, that tool. @@ -339,7 +350,7 @@ case "${ENABLE_GOLD}" in *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \ | *-*-linux* | *-*-gnu* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \ | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* \ - | *-*-solaris2* | *-*-nto* | *-*-nacl*) + | *-*-solaris2* | *-*-nto* | *-*-nacl* | *-*-haiku*) case "${target}" in *-*-linux*aout* | *-*-linux*oldld*) ;; @@ -353,7 +364,7 @@ case "${ENABLE_GOLD}" in # Check for target supported by gold. case "${target}" in i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-* \ - | aarch64*-*-* | mips*-*-* | s390*-*-* | loongarch*-*-*) + | aarch64*-*-* | tilegx*-*-* | mips*-*-* | s390*-*-*) configdirs="$configdirs gold" if test x${ENABLE_GOLD} = xdefault; then default_ld=gold @@ -395,6 +406,20 @@ case "${ENABLE_LD}" in ;; esac +AC_ARG_ENABLE(gprofng, +[AS_HELP_STRING([[--enable-gprofng[=ARG]]], + [build gprofng @<:@ARG={yes,no}@:>@])], +enable_gprofng=$enableval, +enable_gprofng=yes) +if test "$enable_gprofng" = "yes"; then + case "${target}" in + x86_64-*-linux* | i?86-*-linux* | aarch64-*-linux*) + configdirs="$configdirs gprofng" + ;; + esac +fi + + # PR gas/19109 # Decide the default method for compressing debug sections. # Provide a configure time option to override our default. @@ -408,6 +433,12 @@ AC_ARG_ENABLE(compressed_debug_sections, fi ], [enable_compressed_debug_sections=]) +# Select default compression algorithm. +AC_ARG_ENABLE(default_compressed_debug_sections_algorithm, +[AS_HELP_STRING([--enable-default-compressed-debug-sections-algorithm={zlib,zstd}], + [Default compression algorithm for --enable-compressed-debug-sections.])], +[], [default_compressed_debug_sections_algorithm=]) + # Configure extra directories which are host specific case "${host}" in @@ -429,6 +460,18 @@ case "${host}" in ;; esac +# Default to --disable-year2038 until we can handle differences between +# projects that use gnulib (which understands year 2038) and projects that +# do not (like BFD). +AC_ARG_ENABLE(year2038, +AS_HELP_STRING([--enable-year2038], + [enable support for timestamps past the year 2038]), +ENABLE_YEAR2038=$enableval, +ENABLE_YEAR2038=no) +enable_year2038= +if test "${ENABLE_YEAR2038}" = "no" ; then + enable_year2038=no +fi AC_ARG_ENABLE(libquadmath, AS_HELP_STRING([--disable-libquadmath], @@ -459,6 +502,14 @@ if test "${ENABLE_LIBADA}" != "yes" ; then noconfigdirs="$noconfigdirs gnattools" fi +AC_ARG_ENABLE(libgm2, +[AS_HELP_STRING([--enable-libgm2], [build libgm2 directory])], +ENABLE_LIBGM2=$enableval, +ENABLE_LIBGM2=no) +if test "${ENABLE_LIBGM2}" != "yes" ; then + noconfigdirs="$noconfigdirs gm2tools" +fi + AC_ARG_ENABLE(libssp, [AS_HELP_STRING([--enable-libssp], [build libssp directory])], ENABLE_LIBSSP=$enableval, @@ -473,42 +524,6 @@ ENABLE_LIBSTDCXX=default) noconfigdirs="$noconfigdirs target-libstdc++-v3" fi] -# If this is accelerator compiler and its target is intelmic we enable -# target liboffloadmic by default. If this is compiler with offloading -# for intelmic we enable host liboffloadmic by default. Otherwise -# liboffloadmic is disabled by default. -AC_ARG_ENABLE([liboffloadmic], -AC_HELP_STRING([[--enable-liboffloadmic[=ARG]]], - [build liboffloadmic @<:@ARG={no,host,target}@:>@]), -[case "$enableval" in - no | host | target) - enable_liboffloadmic=$enableval ;; - *) - AC_MSG_ERROR([--enable-liboffloadmic=no/host/target]) ;; -esac], -[if test x"$enable_as_accelerator_for" != x; then - case "${target}" in - *-intelmic-* | *-intelmicemul-*) - enable_liboffloadmic=target - extra_liboffloadmic_configure_flags="--enable-liboffloadmic=target" - ;; - *) - enable_liboffloadmic=no - ;; - esac -else - case "${enable_offload_targets}" in - *-intelmic-* | *-intelmicemul-*) - enable_liboffloadmic=host - extra_liboffloadmic_configure_flags="--enable-liboffloadmic=host" - ;; - *) - enable_liboffloadmic=no - ;; - esac -fi]) -AC_SUBST(extra_liboffloadmic_configure_flags) - # Enable libgomp by default on hosted POSIX systems, and a few others. if test x$enable_libgomp = x ; then case "${target}" in @@ -544,22 +559,6 @@ if test -d ${srcdir}/libatomic; then fi fi -# Disable liboffloadmic on unsupported systems. -if test -d ${srcdir}/liboffloadmic; then - if test x$enable_liboffloadmic != xno; then - AC_MSG_CHECKING([for liboffloadmic support]) - if (srcdir=${srcdir}/liboffloadmic; \ - . ${srcdir}/configure.tgt; \ - test -n "$UNSUPPORTED") - then - AC_MSG_RESULT([no]) - noconfigdirs="$noconfigdirs target-liboffloadmic" - else - AC_MSG_RESULT([yes]) - fi - fi -fi - # Disable libitm on unsupported systems. if test -d ${srcdir}/libitm; then if test x$enable_libitm = x; then @@ -1274,6 +1273,9 @@ case "${target}" in tic6x-*-*) noconfigdirs="$noconfigdirs sim" ;; + tilepro*-*-* | tilegx*-*-*) + noconfigdirs="$noconfigdirs sim" + ;; v810-*-*) noconfigdirs="$noconfigdirs bfd binutils gas gdb ld opcodes target-libgloss" ;; @@ -1314,9 +1316,6 @@ case "${host}" in alpha*-linux*) host_makefile_frag="config/mh-alpha-linux" ;; - hppa*-hp-hpux10*) - host_makefile_frag="config/mh-pa-hpux10" - ;; hppa*-hp-hpux*) host_makefile_frag="config/mh-pa" ;; @@ -1412,6 +1411,7 @@ fi ACX_PROG_GNAT ACX_PROG_GDC +ACX_PROG_CARGO ACX_PROG_CMP_IGNORE_INITIAL AC_ARG_ENABLE([bootstrap], @@ -1533,7 +1533,22 @@ AC_SUBST(PGO_BUILD_LTO_CFLAGS) _LT_CHECK_OBJDIR # Check for GMP, MPFR and MPC -gmplibs="-lmpc -lmpfr -lgmp" +require_gmp=no +require_mpc=no +if test -d ${srcdir}/gcc ; then + require_gmp=yes + require_mpc=yes +fi +if test -d ${srcdir}/gdb ; then + if test "x$enable_gdb" != xno; then + require_gmp=yes + fi +fi + +gmplibs="-lmpfr -lgmp" +if test x"$require_mpc" = "xyes" ; then + gmplibs="-lmpc $gmplibs" +fi gmpinc= have_gmp=no @@ -1648,7 +1663,7 @@ if test "x$with_gmp$with_gmp_include$with_gmp_lib" = x && test -d ${srcdir}/gmp; have_gmp=yes fi -if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then +if test "x$require_gmp" = xyes && test "x$have_gmp" = xno; then have_gmp=yes saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $gmpinc" @@ -1688,7 +1703,7 @@ if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then fi # Check for the MPC header version. - if test x"$have_gmp" = xyes ; then + if test "x$require_mpc" = xyes && test x"$have_gmp" = xyes ; then # Check for the recommended and required versions of MPC. AC_MSG_CHECKING([for the correct version of mpc.h]) AC_TRY_COMPILE([#include ],[ @@ -1707,11 +1722,10 @@ if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then if test x"$have_gmp" = xyes; then saved_LIBS="$LIBS" LIBS="$LIBS $gmplibs" - AC_MSG_CHECKING([for the correct version of the gmp/mpfr/mpc libraries]) - AC_TRY_LINK([#include ],[ + AC_MSG_CHECKING([for the correct version of the gmp/mpfr libraries]) + AC_TRY_LINK([#include ],[ mpfr_t n; mpfr_t x; - mpc_t c; int t; mpfr_init (n); mpfr_init (x); @@ -1720,6 +1734,17 @@ if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then mpfr_subnormalize (x, t, MPFR_RNDN); mpfr_clear(n); mpfr_clear(x); + ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); have_gmp=no]) + LIBS="$saved_LIBS" + fi + + # Now check the MPC library + if test "x$require_mpc" = xyes && test x"$have_gmp" = xyes; then + saved_LIBS="$LIBS" + LIBS="$LIBS $gmplibs" + AC_MSG_CHECKING([for the correct version of the mpc libraries]) + AC_TRY_LINK([#include ],[ + mpc_t c; mpc_init2 (c, 53); mpc_set_ui_ui (c, 1, 1, MPC_RNDNN); mpc_cosh (c, c, MPC_RNDNN); @@ -1735,7 +1760,8 @@ if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then # The library versions listed in the error message below should match # the HARD-minimums enforced above. if test x$have_gmp != xyes; then - AC_MSG_ERROR([Building GCC requires GMP 4.2+, MPFR 3.1.0+ and MPC 0.8.0+. + if test -d ${srcdir}/gcc ; then + AC_MSG_ERROR([Building GCC requires GMP 4.2+, MPFR 3.1.0+ and MPC 0.8.0+. Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify their locations. Source code for these libraries can be found at their respective hosting sites as well as at @@ -1744,6 +1770,13 @@ http://gcc.gnu.org/install/prerequisites.html for additional info. If you obtained GMP, MPFR and/or MPC from a vendor distribution package, make sure that you have installed both the libraries and the header files. They may be located in separate packages.]) + else + AC_MSG_ERROR([Building GDB requires GMP 4.2+, and MPFR 3.1.0+. +Try the --with-gmp and/or --with-mpfr options to specify +their locations. If you obtained GMP and/or MPFR from a vendor +distribution package, make sure that you have installed both the libraries +and the header files. They may be located in separate packages.]) + fi fi fi @@ -1824,6 +1857,20 @@ AC_ARG_WITH(boot-ldflags, if test "$poststage1_libs" = ""; then poststage1_ldflags="-static-libstdc++ -static-libgcc" fi]) +case $target in + *-darwin2* | *-darwin1[[56789]]*) + # For these versions, we default to using embedded rpaths. + if test "x$enable_darwin_at_rpath" != "xno"; then + poststage1_ldflags="$poststage1_ldflags -nodefaultrpaths" + fi + ;; + *-darwin*) + # For these versions, we only use embedded rpaths on demand. + if test "x$enable_darwin_at_rpath" = "xyes"; then + poststage1_ldflags="$poststage1_ldflags -nodefaultrpaths" + fi + ;; +esac AC_SUBST(poststage1_ldflags) # GCC GRAPHITE dependency isl. @@ -1909,27 +1956,96 @@ AC_ARG_ENABLE(linker-plugin-flags, extra_linker_plugin_flags=) AC_SUBST(extra_linker_plugin_flags) +# Handle --enable-host-pie +# If host PIE executables are the default (or must be forced on) for some host, +# we must pass that configuration to the gcc directory. +gcc_host_pie= +AC_ARG_ENABLE(host-pie, +[AS_HELP_STRING([--enable-host-pie], + [build position independent host executables])], +[host_pie=$enableval + case $host in + *-*-darwin2*) + if test x$host_pie != xyes ; then + # for Darwin20+ this is required. + AC_MSG_WARN([PIE executables are required for the configured host, host-pie setting ignored.]) + host_pie=yes + gcc_host_pie=--enable-host-pie + fi ;; + *) ;; + esac], +[case $host in + *-*-darwin2*) + # Default to PIE (mandatory for aarch64). + host_pie=yes + gcc_host_pie=--enable-host-pie + ;; + *) host_pie=no ;; + esac]) + +AC_SUBST(host_pie) +AC_SUBST(gcc_host_pie) + # Enable --enable-host-shared. # Checked early to determine whether jit is an 'all' language AC_ARG_ENABLE(host-shared, [AS_HELP_STRING([--enable-host-shared], [build host code as shared libraries])], [host_shared=$enableval - case $target in + case $host in x86_64-*-darwin* | aarch64-*-darwin*) if test x$host_shared != xyes ; then # PIC is the default, and actually cannot be switched off. - echo configure.ac: warning: PIC code is required for the configured target, host-shared setting ignored. 1>&2 + AC_MSG_WARN([PIC code is required for the configured host; host-shared setting ignored.]) + host_shared=yes + fi ;; + *-*-darwin*) + if test x$host_pie = xyes -a x$host_shared != xyes ; then + AC_MSG_WARN([PIC code is required for PIE host executables host-shared setting ignored.]) host_shared=yes fi ;; *) ;; esac], -[case $target in +[case $host in + # 64B x86_64 and Aarch64 Darwin default to PIC. x86_64-*-darwin* | aarch64-*-darwin*) host_shared=yes ;; - *) host_shared=no ;; + # 32B and powerpc64 Darwin must use PIC to link PIE exes. + *-*-darwin*) host_shared=$host_pie ;; + *) host_shared=no;; esac]) + AC_SUBST(host_shared) +if test x$host_shared = xyes; then + case $host in + *-*-darwin*) + # Since host shared is the default for 64b Darwin, and also enabled for + # host_pie, ensure that we present the PIE flag when host_pie is active. + if test x$host_pie = xyes; then + PICFLAG=-fPIE + fi + ;; + *) + PICFLAG=-fPIC + ;; + esac +elif test x$host_pie = xyes; then + PICFLAG=-fPIE +else + PICFLAG= +fi + +AC_SUBST(PICFLAG) + +# If we are building PIC/PIE host executables, and we are building dependent +# libs (e.g. GMP) in-tree those libs need to be configured to generate PIC +# code. +host_libs_picflag= +if test "$host_shared" = "yes" -o "$host_pie" = "yes"; then +host_libs_picflag='--with-pic' +fi +AC_SUBST(host_libs_picflag) + # By default, C and C++ are the only stage 1 languages. stage1_languages=,c, @@ -2190,6 +2306,35 @@ directories, to avoid imposing the performance cost of ;; esac + # Pre-conditions to consider whether cargo being supported. + if test x"$have_cargo" = xyes \ + && test x"$build" != x"$host"; then + # Until + # "'cargo' should build for the host system" is resolved: + AC_MSG_WARN([use of cargo not yet supported here in Canadian cross configurations]) + have_cargo=no + else + # Assume that cargo-produced object files are compatible with what + # we're going to build here. + : + fi + # Disable Rust if cargo is unavailable. + case ${add_this_lang}:${language}:${have_cargo} in + yes:rust:no) + # Specifically requested language; tell them. + AC_MSG_ERROR([cargo is required to build $language]) + ;; + all:rust:no) + AC_MSG_WARN([cargo is required to build $language]) + add_this_lang=unsupported + ;; + *:rust:no) + # Silently disable. + add_this_lang=unsupported + ;; + esac + + # Disable a language that is unsupported by the target. case "${add_this_lang}: $unsupported_languages " in no:*) ;; @@ -2341,7 +2486,7 @@ case ,${enable_languages},:${enable_objc_gc} in *,objc,*:yes|*,objc,*:auto) fi esac -# Disable libitm, libsanitizer, libvtv, liboffloadmic if we're not building C++ +# Disable libitm, libsanitizer, libvtv if we're not building C++ case ,${enable_languages}, in *,c++,*) # Disable libitm, libsanitizer if we're not building libstdc++ @@ -2353,7 +2498,18 @@ case ,${enable_languages}, in esac ;; *) - noconfigdirs="$noconfigdirs target-liboffloadmic target-libitm target-libsanitizer target-libvtv" + noconfigdirs="$noconfigdirs target-libitm target-libsanitizer target-libvtv" + ;; +esac + +case ,${enable_languages}, in + *,rust,*) + case " ${noconfigdirs} " in + *\ target-libstdc++-v3\ *) + # Disable target libgrust if we're not building target libstdc++. + noconfigdirs="$noconfigdirs target-libgrust" + ;; + esac ;; esac @@ -2452,13 +2608,18 @@ fi # Sometimes we have special requirements for the host libiberty. extra_host_libiberty_configure_flags= -extra_host_zlib_configure_flags= case " $configdirs " in - *" lto-plugin "* | *" libcc1 "*) + *" lto-plugin "* | *" libcc1 "* | *" gdbserver "*) # When these are to be built as shared libraries, the same applies to # libiberty. extra_host_libiberty_configure_flags=--enable-shared ;; +esac +AC_SUBST(extra_host_libiberty_configure_flags) + +# Sometimes we have special requirements for the host zlib. +extra_host_zlib_configure_flags= +case " $configdirs " in *" bfd "*) # When bfd is to be built as a shared library, the same applies to # zlib. @@ -2467,7 +2628,6 @@ case " $configdirs " in fi ;; esac -AC_SUBST(extra_host_libiberty_configure_flags) AC_SUBST(extra_host_zlib_configure_flags) # Produce a warning message for the subdirs we can't configure. @@ -2706,6 +2866,12 @@ case "${target}" in spu-*-*) target_makefile_frag="config/mt-spu" ;; + loongarch*-*linux* | loongarch*-*gnu*) + target_makefile_frag="config/mt-loongarch-gnu" + ;; + loongarch*-*elf*) + target_makefile_frag="config/mt-loongarch-elf" + ;; mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*) target_makefile_frag="config/mt-sde" ;; @@ -3075,7 +3241,9 @@ esac # These force 'configure's to be done one at a time, to avoid problems # with contention over a shared config.cache. rm -f serdep.tmp +if test "x${enable_serial_build_configure}" = xyes || test "x${enable_serial_host_configure}" = xyes || test "x${enable_serial_target_configure}" = xyes; then echo '# serdep.tmp' > serdep.tmp +fi olditem= test "x${enable_serial_build_configure}" = xyes && for item in ${build_configdirs} ; do @@ -3113,7 +3281,8 @@ AC_SUBST_FILE(serialization_dependencies) # files altogether, and which should be passed on to subconfigures. # Also strip program-prefix, program-suffix, and program-transform-name, # so that we can pass down a consistent program-transform-name. -baseargs= +hbaseargs= +bbaseargs= tbaseargs= keep_next=no skip_next=no @@ -3129,7 +3298,8 @@ do *\'*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac - baseargs="$baseargs '$ac_arg'" + hbaseargs="$hbaseargs '$ac_arg'" + bbaseargs="$bbaseargs '$ac_arg'" tbaseargs="$tbaseargs '$ac_arg'" keep_next=no continue @@ -3153,6 +3323,7 @@ do esac skip_targ=no + skip_barg=no case $ac_arg in changequote(,) --with-* | --without-*) @@ -3165,6 +3336,12 @@ changequote(,) *[-_]lib) lib=`echo "$libopt" | sed 's,[-_]lib$,,'` ;; + *[-_]prefix) + lib=`echo "$libopt" | sed 's,[-_]prefix$,,'` + ;; + *[-_]type) + lib=`echo "$libopt" | sed 's,[-_]type$,,'` + ;; *) lib=$libopt ;; @@ -3181,6 +3358,11 @@ changequote([,]) skip_targ=yes fi ;; + libintl | libiconv) + # We don't want libintl (and co.) in anything but the host arguments. + skip_targ=yes + skip_barg=yes + ;; esac ;; esac @@ -3189,7 +3371,8 @@ changequote([,]) --cache-file=/dev/null | \ -cache-file=/dev/null ) # Handled here to avoid the test to skip args below. - baseargs="$baseargs '$ac_arg'" + hbaseargs="$hbaseargs '$ac_arg'" + bbaseargs="$bbaseargs '$ac_arg'" tbaseargs="$tbaseargs '$ac_arg'" # Assert: $separate_arg should always be no. keep_next=$separate_arg @@ -3220,7 +3403,10 @@ changequote([,]) *\'*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac - baseargs="$baseargs '$ac_arg'" + hbaseargs="$hbaseargs '$ac_arg'" + if test X"$skip_barg" = Xno; then + bbaseargs="$bbaseargs '$ac_arg'" + fi if test X"$skip_targ" = Xno; then tbaseargs="$tbaseargs '$ac_arg'" fi @@ -3235,7 +3421,8 @@ changequote([,]) done # Remove the initial space we just introduced and, as these will be # expanded by make, quote '$'. -baseargs=`echo "x$baseargs" | sed -e 's/^x *//' -e 's,\\$,$$,g'` +hbaseargs=`echo "x$hbaseargs" | sed -e 's/^x *//' -e 's,\\$,$$,g'` +bbaseargs=`echo "x$bbaseargs" | sed -e 's/^x *//' -e 's,\\$,$$,g'` # Add in --program-transform-name, after --program-prefix and # --program-suffix have been applied to it. Autoconf has already @@ -3249,15 +3436,24 @@ ${program_transform_name} EOF_SED gcc_transform_name=`cat conftestsed.out` rm -f conftestsed.out -baseargs="$baseargs --program-transform-name='${gcc_transform_name}'" +hbaseargs="$hbaseargs --program-transform-name='${gcc_transform_name}'" +bbaseargs="$bbaseargs --program-transform-name='${gcc_transform_name}'" tbaseargs="$tbaseargs --program-transform-name='${gcc_transform_name}'" if test "$silent" = yes; then - baseargs="$baseargs --silent" + bbaseargs="$bbaseargs --silent" + hbaseargs="$hbaseargs --silent" tbaseargs="$tbaseargs --silent" fi -baseargs="$baseargs --disable-option-checking" + +bbaseargs="$bbaseargs --disable-option-checking" +hbaseargs="$hbaseargs --disable-option-checking" tbaseargs="$tbaseargs --disable-option-checking" +if test "$enable_year2038" = no; then + baseargs="$baseargs --disable-year2038" + tbaseargs="$tbaseargs --disable-year2038" +fi + # Record and document user additions to sub configure arguments. AC_ARG_VAR([build_configargs], [additional configure arguments for build directories]) @@ -3271,7 +3467,7 @@ AC_ARG_VAR([target_configargs], # desired. We can't even use the same cache file for all build-side # libraries, as they're compiled differently; some with C, some with # C++ or with different feature-enabling options. -build_configargs="$build_configargs --cache-file=./config.cache ${baseargs}" +build_configargs="$build_configargs --cache-file=./config.cache ${bbaseargs}" # For host modules, accept cache file option, or specification as blank. case "${cache_file}" in @@ -3285,7 +3481,7 @@ esac # Host dirs don't like to share a cache file either, horribly enough. # This seems to be due to autoconf 2.5x stupidity. -host_configargs="$host_configargs --cache-file=./config.cache ${extra_host_args} ${baseargs}" +host_configargs="$host_configargs --cache-file=./config.cache ${extra_host_args} ${hbaseargs}" target_configargs="$target_configargs ${tbaseargs}" @@ -3449,6 +3645,17 @@ case "${target}" in mep*) FLAGS_FOR_TARGET="$FLAGS_FOR_TARGET -mlibrary" ;; + # The VxWorks support for shared libraries is getting in + # incrementally. Make sure it doesn't get activated implicitly: + *vxworks*) + if test "${enable_shared-unset}" = unset ; then + enable_shared=no + # So the build of libraries knows ... + target_configargs="${target_configargs} --disable-shared" + # So gcc knows ... + host_configargs="${host_configargs} --disable-shared" + fi + ;; esac # Makefile fragments. @@ -3594,6 +3801,22 @@ AC_SUBST(CFLAGS) AC_SUBST(CXXFLAGS) AC_SUBST(GDC) AC_SUBST(GDCFLAGS) +GDCFLAGS=${GDCFLAGS-${CFLAGS}} +AC_SUBST(PKG_CONFIG_PATH) + +GCC_PLUGIN_OPTION(PLUGIN_OPTION) +AR_PLUGIN_OPTION= +RANLIB_PLUGIN_OPTION= +if test -n "$PLUGIN_OPTION"; then + if $AR --help 2>&1 | grep -q "\--plugin"; then + AR_PLUGIN_OPTION="$PLUGIN_OPTION" + fi + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION" + fi +fi +AC_SUBST(AR_PLUGIN_OPTION) +AC_SUBST(RANLIB_PLUGIN_OPTION) # Target tools. AC_ARG_WITH([build-time-tools], @@ -3614,6 +3837,7 @@ NCN_STRICT_CHECK_TARGET_TOOLS(GCC_FOR_TARGET, gcc, ${CC_FOR_TARGET}) NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran) NCN_STRICT_CHECK_TARGET_TOOLS(GOC_FOR_TARGET, gccgo) NCN_STRICT_CHECK_TARGET_TOOLS(GDC_FOR_TARGET, gdc) +NCN_STRICT_CHECK_TARGET_TOOLS(GM2_FOR_TARGET, gm2) ACX_CHECK_INSTALLED_TARGET_TOOL(AR_FOR_TARGET, ar) ACX_CHECK_INSTALLED_TARGET_TOOL(AS_FOR_TARGET, as) @@ -3652,6 +3876,8 @@ GCC_TARGET_TOOL(gccgo, GOC_FOR_TARGET, GOC, [gcc/gccgo -B$$r/$(HOST_SUBDIR)/gcc/], go) GCC_TARGET_TOOL(gdc, GDC_FOR_TARGET, GDC, [gcc/gdc -B$$r/$(HOST_SUBDIR)/gcc/], d) +GCC_TARGET_TOOL(gm2, GM2_FOR_TARGET, GM2, + [gcc/gm2 -B$$r/$(HOST_SUBDIR)/gcc/], m2) GCC_TARGET_TOOL(ld, LD_FOR_TARGET, LD, [ld/ld-new]) GCC_TARGET_TOOL(lipo, LIPO_FOR_TARGET, LIPO) GCC_TARGET_TOOL(nm, NM_FOR_TARGET, NM, [binutils/nm-new]) @@ -3778,9 +4004,11 @@ AC_SUBST(stage2_werror_flag) # Specify what files to not compare during bootstrap. compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/*" +compare_exclusions="$compare_exclusions | gcc/m2/gm2-compiler-boot/M2Version*" +compare_exclusions="$compare_exclusions | gcc/m2/gm2-compiler-boot/SYSTEM*" +compare_exclusions="$compare_exclusions | gcc/m2/gm2version*" case "$target" in hppa*64*-*-hpux*) ;; - hppa*-*-hpux*) compare_exclusions="$compare_exclusions | */libgcc/lib2funcs* | gcc/function-tests.o" ;; powerpc*-ibm-aix*) compare_exclusions="$compare_exclusions | *libgomp*\$(objext)" ;; esac AC_SUBST(compare_exclusions)