Gentle ping^2. This have been tested for all Windows platforms at https://github.com/dragon-archer/gcc-for-windows/pull/13
On 2026/08/25 12:33, Zhongteng Gui wrote: > Gentle ping. This has been merged into MSYS2 at > https://github.com/msys2/MINGW-packages/commit/fc4afbaccc4fc855b2c96a881cc1a5bc81ab41d2, > and no regression till now. > > On 2026/08/08 01:19, Zhongteng Gui wrote: >> When --with-build-sysroot is used, most target compiler invocations >> receive SYSROOT_CFLAGS_FOR_TARGET through XGCC_FLAGS_FOR_TARGET. >> GCC_FOR_TARGET and the post-stage1 C++ compiler are assembled >> separately, however, and therefore miss the configured sysroot. >> gnattools similarly constructs its native and rebuild CC and CXX >> commands directly. >> >> Without these flags, configure tests performed in later bootstrap >> stages can fail to find the target headers or startup files, reporting >> that the C++ compiler cannot create executables. Native gnattools can >> also invoke xg++ without the build sysroot when linking its programs, >> causing the target linker to fail to find crt2.o and >> default-manifest.o. >> >> Add SYSROOT_CFLAGS_FOR_TARGET to GCC_FOR_TARGET and the post-stage1 C++ >> compiler. Pass XGCC_FLAGS_FOR_TARGET to the compiler commands used by >> native and rebuilt gnattools. >> >> ChangeLog: >> >> PR bootstrap/126722 >> * Makefile.tpl (POSTSTAGE1_CXX_EXPORT): Add >> SYSROOT_CFLAGS_FOR_TARGET. >> (GCC_FOR_TARGET): Likewise. >> * Makefile.in: Regenerate. >> >> gnattools/ChangeLog: >> >> PR bootstrap/126722 >> * Makefile.in (TOOLS_FLAGS_TO_PASS_NATIVE): Add >> XGCC_FLAGS_FOR_TARGET to CC and CXX. >> (TOOLS_FLAGS_TO_PASS_RE): Likewise. >> >> Signed-off-by: Zhongteng Gui <[email protected]> >> --- >> Makefile.in | 3 ++- >> Makefile.tpl | 3 ++- >> gnattools/Makefile.in | 8 ++++---- >> 3 files changed, 8 insertions(+), 6 deletions(-) >> >> diff --git a/Makefile.in b/Makefile.in >> index 110fa63c10c..74055159008 100644 >> --- a/Makefile.in >> +++ b/Makefile.in >> @@ -266,6 +266,7 @@ POSTSTAGE1_CXX_EXPORT = \ >> `if $(LEAN); then echo ' -isystem '; else echo ' -I'; >> fi`$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/include/$(TARGET_SUBDIR) \ >> `if $(LEAN); then echo ' -isystem '; else echo ' -I'; >> fi`$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/include \ >> `if $(LEAN); then echo ' -isystem '; else echo ' -I'; >> fi`$$s/libstdc++-v3/libsupc++ \ >> + $(SYSROOT_CFLAGS_FOR_TARGET) \ >> -L$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/src/.libs \ >> -L$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs"; \ >> export CXX; \ >> @@ -715,7 +716,7 @@ CC_FOR_TARGET=$(STAGE_CC_WRAPPER) @CC_FOR_TARGET@ >> # variable is passed down to the gcc Makefile, where it is used to >> # build libgcc2.a. We define it here so that it can itself be >> # overridden on the command line. >> -GCC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GCC_FOR_TARGET@ >> +GCC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GCC_FOR_TARGET@ >> $(SYSROOT_CFLAGS_FOR_TARGET) >> CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @CXX_FOR_TARGET@ >> RAW_CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @RAW_CXX_FOR_TARGET@ >> GFORTRAN_FOR_TARGET=$(STAGE_CC_WRAPPER) @GFORTRAN_FOR_TARGET@ >> diff --git a/Makefile.tpl b/Makefile.tpl >> index a5ff44e3dbc..8d2131846b8 100644 >> --- a/Makefile.tpl >> +++ b/Makefile.tpl >> @@ -269,6 +269,7 @@ POSTSTAGE1_CXX_EXPORT = \ >> `if $(LEAN); then echo ' -isystem '; else echo ' -I'; >> fi`$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/include/$(TARGET_SUBDIR) \ >> `if $(LEAN); then echo ' -isystem '; else echo ' -I'; >> fi`$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/include \ >> `if $(LEAN); then echo ' -isystem '; else echo ' -I'; >> fi`$$s/libstdc++-v3/libsupc++ \ >> + $(SYSROOT_CFLAGS_FOR_TARGET) \ >> -L$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/src/.libs \ >> -L$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs"; \ >> export CXX; \ >> @@ -622,7 +623,7 @@ CC_FOR_TARGET=$(STAGE_CC_WRAPPER) @CC_FOR_TARGET@ >> # variable is passed down to the gcc Makefile, where it is used to >> # build libgcc2.a. We define it here so that it can itself be >> # overridden on the command line. >> -GCC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GCC_FOR_TARGET@ >> +GCC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GCC_FOR_TARGET@ >> $(SYSROOT_CFLAGS_FOR_TARGET) >> CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @CXX_FOR_TARGET@ >> RAW_CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @RAW_CXX_FOR_TARGET@ >> GFORTRAN_FOR_TARGET=$(STAGE_CC_WRAPPER) @GFORTRAN_FOR_TARGET@ >> diff --git a/gnattools/Makefile.in b/gnattools/Makefile.in >> index 98f1f75bdcc..14c74ea6c53 100644 >> --- a/gnattools/Makefile.in >> +++ b/gnattools/Makefile.in >> @@ -81,8 +81,8 @@ CXX_LFLAGS = \ >> >> # Variables for gnattools, native >> TOOLS_FLAGS_TO_PASS_NATIVE= \ >> - "CC=../../xgcc -B../../" \ >> - "CXX=../../xg++ -B../../ $(CXX_LFLAGS)" \ >> + "CC=../../xgcc -B../../ $(XGCC_FLAGS_FOR_TARGET)" \ >> + "CXX=../../xg++ -B../../ $(CXX_LFLAGS) $(XGCC_FLAGS_FOR_TARGET)" \ >> "CFLAGS=$(CFLAGS) $(WARN_CFLAGS) $(PICFLAG)" \ >> "LDFLAGS=$(LDFLAGS) $(LD_PICFLAG)" \ >> "ADAFLAGS=$(ADAFLAGS)" \ >> @@ -99,8 +99,8 @@ TOOLS_FLAGS_TO_PASS_NATIVE= \ >> >> # Variables for regnattools >> TOOLS_FLAGS_TO_PASS_RE= \ >> - "CC=../../xgcc -B../../" \ >> - "CXX=../../xg++ -B../../ $(CXX_LFLAGS)" \ >> + "CC=../../xgcc -B../../ $(XGCC_FLAGS_FOR_TARGET)" \ >> + "CXX=../../xg++ -B../../ $(CXX_LFLAGS) $(XGCC_FLAGS_FOR_TARGET)" \ >> "CFLAGS=$(CFLAGS) $(WARN_CFLAGS) $(PICFLAG)" \ >> "LDFLAGS=$(LDFLAGS) $(LD_PICFLAG)" \ >> "ADAFLAGS=$(ADAFLAGS)" \ >
