On Aug 5, 2026, 3:18 AM, Zhongteng Gui <[email protected]> wrote:
> [...]
> diff --git a/gcc/config.gcc b/gcc/config.gcc
> index 8fe99616f82..55339363c6c 100644
> --- a/gcc/config.gcc
> +++ b/gcc/config.gcc
> @@ -1331,7 +1331,6 @@ aarch64-*-mingw*)
>       tm_file="${tm_file} mingw/winnt-dll.h"
>       tmake_file="${tmake_file} aarch64/t-aarch64"
>       tmake_file="${tmake_file} aarch64/t-aarch64-mingw"
> -        native_system_header_dir=/mingw/include
>       target_gtfiles="$target_gtfiles \$(srcdir)/config/mingw/winnt.cc"
>       target_gtfiles="$target_gtfiles \$(srcdir)/config/mingw/winnt-dll.cc"
>       extra_options="${extra_options} mingw/cygming.opt mingw/mingw.opt"
> @@ -2339,7 +2338,6 @@ i[34567]86-*-mingw* | x86_64-*-mingw*)
>                       tmake_file="${tmake_file} i386/t-mingw-w32"
>                       ;;
>       esac
> -        native_system_header_dir=/mingw/include
>       target_gtfiles="$target_gtfiles \$(srcdir)/config/mingw/winnt.cc"
>       target_gtfiles="$target_gtfiles \$(srcdir)/config/mingw/winnt-dll.cc"
>       extra_options="${extra_options} mingw/cygming.opt mingw/mingw.opt"
> [...]
> diff --git a/gcc/config/mingw/mingw32.h b/gcc/config/mingw/mingw32.h
> index 1d319b77bf8..3afbee65974 100644
> --- a/gcc/config/mingw/mingw32.h
> +++ b/gcc/config/mingw/mingw32.h
> @@ -231,17 +231,9 @@ along with GCC; see the file COPYING3.  If not see
>    crtend.o%s"
>
>  /* Override startfile prefix defaults.  */
> -#ifndef STANDARD_STARTFILE_PREFIX_1
> -#define STANDARD_STARTFILE_PREFIX_1 "/mingw/lib/"
> +#if !defined(STANDARD_STARTFILE_PREFIX_2) && 
> !defined(CROSS_DIRECTORY_STRUCTURE)
> +#define STANDARD_STARTFILE_PREFIX_2 "" /* MSYS2 doesn't use /usr/lib for 
> MINGW */
>  #endif
> -#ifndef STANDARD_STARTFILE_PREFIX_2
> -#define STANDARD_STARTFILE_PREFIX_2 ""
> -#endif
> -
> -/* For native mingw-version we need to take care that 
> NATIVE_SYSTEM_HEADER_DIR
> -   macro contains POSIX-style path.  See bug 52947.  */
> -#undef NATIVE_SYSTEM_HEADER_DIR
> -#define NATIVE_SYSTEM_HEADER_DIR "/mingw/include"
>
>  /* Output STRING, a string representing a filename, to FILE.
>     We canonicalize it to be in Unix format (backslashes are replaced

For what it's worth, I have been using the two similar but slightly
different patches and have been able to bootstrap on Windows
successfully, it doesn't work without them. I don't know enough about
how these paths work to know what's best, though.

They're also on my branch at [1]. Disregard the patches changing output,
that's an unsuccessful attempt to resolve [2].

[1]: 
https://github.com/gcc-mirror/gcc/compare/master...tgross35:gcc:patch-win-build
[2]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121943

---

 From 750152814459ad56eeaac7de569378905cc0d24b Mon Sep 17 00:00:00 2001
From: Trevor Gross <[email protected]>
Date: Sat, 30 Aug 2025 16:09:38 -0400
Subject: [PATCH] Fix the MinGW system prefix (send this upstream)

The current directory doesn't seem to exist, see [1].

[1]: 
https://github.com/msys2/MINGW-packages/blob/5a23c744b85e58a624b3bc3ba0ba70669aebd305/mingw-w64-gcc/PKGBUILD#L192-L195
---
  gcc/config/mingw/mingw32.h | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gcc/config/mingw/mingw32.h b/gcc/config/mingw/mingw32.h
index 1d319b77bf832..1b5e59399fdc9 100644
--- a/gcc/config/mingw/mingw32.h
+++ b/gcc/config/mingw/mingw32.h
@@ -232,7 +232,7 @@ along with GCC; see the file COPYING3.  If not see

  /* Override startfile prefix defaults.  */
  #ifndef STANDARD_STARTFILE_PREFIX_1
-#define STANDARD_STARTFILE_PREFIX_1 "/mingw/lib/"
+#define STANDARD_STARTFILE_PREFIX_1 "C:/msys64/ucrt64/lib/"
  #endif
  #ifndef STANDARD_STARTFILE_PREFIX_2
  #define STANDARD_STARTFILE_PREFIX_2 ""
@@ -241,7 +241,7 @@ along with GCC; see the file COPYING3.  If not see
  /* For native mingw-version we need to take care that NATIVE_SYSTEM_HEADER_DIR
     macro contains POSIX-style path.  See bug 52947.  */
  #undef NATIVE_SYSTEM_HEADER_DIR
-#define NATIVE_SYSTEM_HEADER_DIR "/mingw/include"
+#define NATIVE_SYSTEM_HEADER_DIR "C:/msys64/ucrt64/include"

  /* Output STRING, a string representing a filename, to FILE.
     We canonicalize it to be in Unix format (backslashes are replaced

---

 From 4c1ef30f26281168292cb5c8a45b5901fa2e9736 Mon Sep 17 00:00:00 2001
From: Ray Donnelly <[email protected]>
Date: Wed, 5 Aug 2015 23:36:11 +0100
Subject: [PATCH] Windows: Don't ignore native system header dir

---
  gcc/config.gcc | 5 ++++-
  1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gcc/config.gcc b/gcc/config.gcc
index 036baa714d704..3224a052d36c7 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -2339,7 +2339,10 @@ i[34567]86-*-mingw* | x86_64-*-mingw*)
                        tmake_file="${tmake_file} i386/t-mingw-w32"
                        ;;
        esac
-        native_system_header_dir=/mingw/include
+       # Don't ignore values passed in to configure via 
--native-system-header-dir
+       if test x$native_system_header_dir = x ; then
+               native_system_header_dir=/mingw/include
+       fi
        target_gtfiles="$target_gtfiles \$(srcdir)/config/mingw/winnt.cc"
        target_gtfiles="$target_gtfiles \$(srcdir)/config/mingw/winnt-dll.cc"
        extra_options="${extra_options} mingw/cygming.opt mingw/mingw.opt"

Reply via email to