@@ -47,7 +47,8 @@ host_modules= { module= fixincludes; bootstrap=true;
host_modules= { module= flex; no_check_cross= true; };
host_modules= { module= gas; bootstrap=true; };
host_modules= { module= gcc; bootstrap=true;
- extra_make_flags="$(EXTRA_GCC_FLAGS)"; };
+ extra_make_flags="$(EXTRA_GCC_FLAGS)";
+ extra_configure_flags="@configure_host_pch_support@"; };
host_modules= { module= gmp; lib_path=.libs; bootstrap=true;
// Work around in-tree gmp configure bug with missing flex.
extra_configure_flags='--disable-shared LEX="touch lex.yy.c"';
@@ -81,7 +82,8 @@ host_modules= { module= tcl;
host_modules= { module= itcl; };
host_modules= { module= ld; bootstrap=true; };
host_modules= { module= libbacktrace; bootstrap=true; };
-host_modules= { module= libcpp; bootstrap=true; };
+host_modules= { module= libcpp; bootstrap=true;
+ extra_configure_flags="@configure_host_pch_support@"; };
// As with libiconv, don't install any of libcody
host_modules= { module= libcody; bootstrap=true;
no_install= true;
@@ -152,7 +154,8 @@ host_modules= { module= libctf; bootstrap=true; };
target_modules = { module= libstdc++-v3;
bootstrap=true;
lib_path=src/.libs;
- raw_cxx=true; };
+ raw_cxx=true;
+ extra_configure_flags="@configure_host_pch_support@"; };
target_modules = { module= libsanitizer;
bootstrap=true;
lib_path=.libs;
@@ -408,6 +408,41 @@ AC_ARG_ENABLE(compressed_debug_sections,
fi
], [enable_compressed_debug_sections=])
+# Add a configure option to control whether the host will support pre-compiled
+# headers (PCH) for the c-family compilers. At present, the default is 'yes'
+# for most platforms but this can be adjusted below for any that are unable to
+# support it. 'configure_host_pch_support' is passed as an additional config
+# arg to the configures for host and target modules that depend on the support
+# where this is not specified explicitly.
+configure_host_pch_support=
+AC_ARG_ENABLE(host_pch_support,
+[AS_HELP_STRING([--disable-host-pch-support],
+ [Disable support for C-family precompiled headers])],
+[
+ ENABLE_HOST_PCH=$enableval
+ case "${host}" in
+ aarch64-*-darwin* | arm64*-*-darwin*)
+ if test "x${ENABLE_HOST_PCH}" = xyes; then
+ AC_MSG_ERROR([PCH is not supported on aarch64/arm64 Darwin hosts])
+ fi
+ ;;
+ *)
+ ;;
+ esac
+],[
+ # The configure line does not specify, so set appropriate values to pass to
+ # module configures that depend on this.
+ case "${host}" in
+ aarch64-*-darwin* | arm64*-*-darwin*)
+ configure_host_pch_support='--enable-host-pch-support=no'
+ ;;
+ *)
+ configure_host_pch_support='--enable-host-pch-support=yes'
+ ;;
+ esac
+])
+AC_SUBST(configure_host_pch_support)
+
# Configure extra directories which are host specific
case "${host}" in
@@ -1015,6 +1015,12 @@ This option is required when building the libgccjit.so library.
Contrast with @option{--enable-shared}, which affects @emph{target}
libraries.
+@item --disable-host-pch-support
+Specify that the c-family compilers should be built without support for
+Pre-Compiled-Headers (PCH). The compilers will generate stub pch files
+(to avoid breaking build scripts), but ignore these (or any existing PCH
+files) when searching for headers.
+
@item @anchor{with-gnu-as}--with-gnu-as
Specify that the compiler should assume that the
assembler it finds is the GNU assembler. However, this does not modify
This provides a --disable-host-pch-support configure flag that is passed down to libcpp, gcc and libstdc++ where the support for PCH is enacted. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> ChangeLog: * Makefile.def: Pass host PCH support configuration to libcpp, gcc and libstdc++. * Makefile.in: Regenerate. * configure: Regenerate. * configure.ac: Add --disable-host-pch-support flag. * doc/install.texi: Document the option. --- Makefile.def | 9 +++-- Makefile.in | 87 +++++++++++++++++++++++++++++--------------- configure | 42 +++++++++++++++++++++ configure.ac | 35 ++++++++++++++++++ gcc/doc/install.texi | 6 +++ 5 files changed, 146 insertions(+), 33 deletions(-)