# HG changeset patch # User John Donoghue # Date 1650637468 14400 # Node ID 71151d858e487eebc5e156aa4c26eff490f9cf5c # Parent 78c1edaa77bed4e761a2ba00c25d7795179f959a remove natice-gcc patch * dist-files.mk: remove ref to deleted file * src/native-gcc-1-canadian-cross.patch: deleted diff -r 78c1edaa77be -r 71151d858e48 dist-files.mk --- a/dist-files.mk Thu Apr 21 13:50:48 2022 -0400 +++ b/dist-files.mk Fri Apr 22 10:24:28 2022 -0400 @@ -447,7 +447,6 @@ mxml-test.c \ mxml.mk \ native-binutils.mk \ - native-gcc-1-canadian-cross.patch \ native-gcc.mk \ ncurses-1-gcc-5-fix.patch \ ncurses.mk \ diff -r 78c1edaa77be -r 71151d858e48 src/native-gcc-1-canadian-cross.patch --- a/src/native-gcc-1-canadian-cross.patch Thu Apr 21 13:50:48 2022 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,81 +0,0 @@ -From 01a70ccd723eb9a479186fe37c972b0d0f8676cf Mon Sep 17 00:00:00 2001 -From: Jonathan Wakely -Date: Fri, 7 Jan 2022 15:21:03 +0000 -Subject: [PATCH 1/1] libstdc++: Add -nostdinc++ for c++17 sources [PR100017] - -When building a build!=host compiler, the just-built gcc can't be used -to build the target libstdc++ (because it is built for the host triplet, -not the build triplet). The top-level configure.ac sets up the build -flags for libstdc++ (and other "raw_cxx" libs) like this: - -GCC_TARGET_TOOL(c++ for libstdc++, RAW_CXX_FOR_TARGET, CXX, - [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], - c++) - -The -nostdinc++ flag is only used for the IN-TREE-TOOL, i.e. when using -the just-built gcc/xgcc compiler. This means that the cross-compiler -used to build libstdc++ will add its own libstdc++ headers to the -include path. That results in the #include in -src/c++17/floating_to_chars.cc and src/c++17/floating_from_chars.cc -doing #include_next and finding the libstdc++ fenv.h wrapper -from the host compiler. Because that has the same include guard as the - in the libstdc++ we're trying to build, we never reach the -underlying from libc. That results in several errors of the -form: - -error: 'fenv_t' has not been declared in '::' - -The most correct fix would be to add -nostdinc++ to the -RAW_CXX_FOR_TARGET variable in configure.ac, or the -RAW_CXX_TARGET_EXPORTS variable in Makefile.tpl. - -Another solution would be to make the libstdc++ wrapper use -_GLIBCXX_INCLUDE_NEXT_C_HEADERS like our and other C header -wrappers. - -For now though, the simplest and safest solution is to just add --nostdinc++ to the CXXFLAGS used for src/c++17/*.cc, which is what this -does. - -libstdc++-v3/ChangeLog: - - PR libstdc++/100017 - * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++. - * src/c++17/Makefile.in: Regenerate. - -(cherry picked from commit 4fde88e5dd152fe866a97b12e0f8229970d15cb3) ---- - libstdc++-v3/src/c++17/Makefile.am | 2 +- - libstdc++-v3/src/c++17/Makefile.in | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/libstdc++-v3/src/c++17/Makefile.am b/libstdc++-v3/src/c++17/Makefile.am -index cb94aff5f1a..2aebc6d5251 100644 ---- a/libstdc++-v3/src/c++17/Makefile.am -+++ b/libstdc++-v3/src/c++17/Makefile.am -@@ -79,7 +79,7 @@ endif - # OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden - # as the occasion calls for it. - AM_CXXFLAGS = \ -- -std=gnu++17 \ -+ -std=gnu++17 -nostdinc++ \ - $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \ - $(XTEMPLATE_FLAGS) $(VTV_CXXFLAGS) \ - $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) \ -diff --git a/libstdc++-v3/src/c++17/Makefile.in b/libstdc++-v3/src/c++17/Makefile.in -index 63984ecd52a..8c02be6514f 100644 ---- a/libstdc++-v3/src/c++17/Makefile.in -+++ b/libstdc++-v3/src/c++17/Makefile.in -@@ -455,7 +455,7 @@ libc__17convenience_la_SOURCES = $(sources) $(inst_sources) - # OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden - # as the occasion calls for it. - AM_CXXFLAGS = \ -- -std=gnu++17 \ -+ -std=gnu++17 -nostdinc++ \ - $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \ - $(XTEMPLATE_FLAGS) $(VTV_CXXFLAGS) \ - $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) \ --- -2.27.0 - -