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)" \
