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

Reply via email to