From c9911aa227736faf8a787a6cc99fb4fbd659966e Mon Sep 17 00:00:00 2001
From: Kyle Schwarz <zeranoe@gmail.com>
Date: Sun, 29 Jan 2023 20:35:59 -0500
Subject: Consolidate path variables

---
 mingw-w64-build | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/mingw-w64-build b/mingw-w64-build
index cc0f6f5..3bf1e5b 100755
--- a/mingw-w64-build
+++ b/mingw-w64-build
@@ -372,12 +372,6 @@ while :; do
     shift
 done
 
-SRC_PATH="$ROOT_PATH/src"
-BLD_PATH="$ROOT_PATH/bld"
-LOG_FILE="$ROOT_PATH/build.log"
-I686_PREFIX="$ROOT_PATH/i686"
-X86_64_PREFIX="$ROOT_PATH/x86_64"
-
 if [ ! "$BUILD_I686" ] && [ ! "$BUILD_X86_64" ]; then
     arg_error "no ARCH was specified"
 fi
@@ -417,9 +411,16 @@ fi
 
 TOTAL_STEPS=$((TOTAL_STEPS + THREADS_STEPS + BUILD_STEPS))
 
+SRC_PATH="$ROOT_PATH/src"
+BLD_PATH="$ROOT_PATH/bld"
+LOG_FILE="$ROOT_PATH/build.log"
+
 if [ "$PREFIX" ]; then
     I686_PREFIX="$PREFIX"
     X86_64_PREFIX="$PREFIX"
+else
+    I686_PREFIX="$ROOT_PATH/i686"
+    X86_64_PREFIX="$ROOT_PATH/x86_64"
 fi
 
 CURRENT_STEP=1
-- 
cgit v1.2.3


From 648c3da5a9ade40a32b21290b2889c670d01380b Mon Sep 17 00:00:00 2001
From: Kyle Schwarz <zeranoe@gmail.com>
Date: Sun, 29 Jan 2023 21:09:31 -0500
Subject: Avoid realpath for macOS

Closes #27
---
 mingw-w64-build | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/mingw-w64-build b/mingw-w64-build
index 3bf1e5b..e9ebda2 100755
--- a/mingw-w64-build
+++ b/mingw-w64-build
@@ -272,14 +272,14 @@ while :; do
             ;;
         -r|--root)
             if [ "$2" ]; then
-                ROOT_PATH=$(realpath "$2")
+                ROOT_PATH_ARG="$2"
                 shift
             else
                 arg_error "'--root' requires a non-empty option argument"
             fi
             ;;
         --root=?*)
-            ROOT_PATH=$(realpath "${1#*=}")
+            ROOT_PATH_ARG="${1#*=}"
             ;;
         --root=)
             arg_error "'--root' requires a non-empty option argument"
@@ -411,6 +411,10 @@ fi
 
 TOTAL_STEPS=$((TOTAL_STEPS + THREADS_STEPS + BUILD_STEPS))
 
+if [ "$ROOT_PATH_ARG" ]; then
+    ROOT_PATH=$(mkdir -p "$ROOT_PATH_ARG" && cd "$ROOT_PATH_ARG" && pwd)
+fi
+
 SRC_PATH="$ROOT_PATH/src"
 BLD_PATH="$ROOT_PATH/bld"
 LOG_FILE="$ROOT_PATH/build.log"
-- 
cgit v1.2.3


From 27de94ed0622423dea087002846d7a6f6994e22d Mon Sep 17 00:00:00 2001
From: Kyle Schwarz <zeranoe@gmail.com>
Date: Sun, 29 Jan 2023 21:10:57 -0500
Subject: Update copyright year

---
 mingw-w64-build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mingw-w64-build b/mingw-w64-build
index e9ebda2..bff82aa 100755
--- a/mingw-w64-build
+++ b/mingw-w64-build
@@ -1,6 +1,6 @@
 #!/bin/bash
 #
-# Copyright (C) 2022 Kyle Schwarz <zeranoe@gmail.com>
+# Copyright (C) 2023 Kyle Schwarz <zeranoe@gmail.com>
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-- 
cgit v1.2.3


From d0e3b943e1bbaef84a6efb61d8ececf88ed6839d Mon Sep 17 00:00:00 2001
From: Kyle Schwarz <zeranoe@gmail.com>
Date: Sun, 29 Jan 2023 22:00:46 -0500
Subject: Update binutils to binutils-2_40-branch

---
 README.md       | 2 +-
 mingw-w64-build | 6 +++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index ab13bd2..12323e8 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@ files.
 
 ## Default Branches
 * [MinGW-w64](https://mingw-w64.org) v9.x
-* [Binutils](https://www.gnu.org/software/binutils/) binutils-2_39-branch
+* [Binutils](https://www.gnu.org/software/binutils/) binutils-2_40-branch
 * [GCC](https://gcc.gnu.org/) releases/gcc-12
 
 ## Default Prefix
diff --git a/mingw-w64-build b/mingw-w64-build
index bff82aa..eaf62e9 100755
--- a/mingw-w64-build
+++ b/mingw-w64-build
@@ -19,7 +19,7 @@
 ROOT_PATH="$HOME/.zeranoe/mingw-w64"
 
 MINGW_W64_BRANCH="v9.x"
-BINUTILS_BRANCH="binutils-2_39-branch"
+BINUTILS_BRANCH="binutils-2_40-branch"
 GCC_BRANCH="releases/gcc-12"
 
 ENABLE_THREADS="--enable-threads=posix"
@@ -445,6 +445,10 @@ change_dir "$SRC_PATH/gcc"
 execute "" "failed to download GCC dependencies" \
     ./contrib/download_prerequisites
 
+for i in mpc isl mpfr gmp; do
+    ln -s "$SRC_PATH/gcc/$i" "$SRC_PATH/binutils/$i"
+done
+
 export CFLAGS="-g0"
 export CXXFLAGS="-g0"
 export LDFLAGS="-s"
-- 
cgit v1.2.3


From 4aad2e83aed7692c0d6d7941597a6a71ea7abb3d Mon Sep 17 00:00:00 2001
From: Kyle Schwarz <zeranoe@gmail.com>
Date: Sun, 29 Jan 2023 22:01:22 -0500
Subject: Switch to master for MinGW-w64

---
 README.md       | 2 +-
 mingw-w64-build | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 12323e8..5ed13b4 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@ toolchain that can compile Windows executables that don't depend on any GCC dll
 files.
 
 ## Default Branches
-* [MinGW-w64](https://mingw-w64.org) v9.x
+* [MinGW-w64](https://mingw-w64.org) master
 * [Binutils](https://www.gnu.org/software/binutils/) binutils-2_40-branch
 * [GCC](https://gcc.gnu.org/) releases/gcc-12
 
diff --git a/mingw-w64-build b/mingw-w64-build
index eaf62e9..300d5d3 100755
--- a/mingw-w64-build
+++ b/mingw-w64-build
@@ -18,7 +18,7 @@
 
 ROOT_PATH="$HOME/.zeranoe/mingw-w64"
 
-MINGW_W64_BRANCH="v9.x"
+MINGW_W64_BRANCH="master"
 BINUTILS_BRANCH="binutils-2_40-branch"
 GCC_BRANCH="releases/gcc-12"
 
-- 
cgit v1.2.3


From 8372642cb5f7c460e448334b3082720f32926c31 Mon Sep 17 00:00:00 2001
From: Thomas Perl <m@thp.io>
Date: Thu, 2 Feb 2023 08:18:26 +0100
Subject: Fix shell quoting for $@ to prevent word-splitting

---
 mingw-w64-build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mingw-w64-build b/mingw-w64-build
index 300d5d3..bc8139e 100755
--- a/mingw-w64-build
+++ b/mingw-w64-build
@@ -88,7 +88,7 @@ execute()
         printf "(%d/%d): %s\n" "$CURRENT_STEP" "$TOTAL_STEPS" "$info_msg"
         CURRENT_STEP=$((CURRENT_STEP + 1))
     fi
-    $@ >>"$LOG_FILE" 2>&1 || error_exit "$error_msg, check $LOG_FILE for details"
+    "$@" >>"$LOG_FILE" 2>&1 || error_exit "$error_msg, check $LOG_FILE for details"
 }
 
 create_dir()
-- 
cgit v1.2.3


From e8709bd544b58b0b5aedc47e709cfb5999a5f484 Mon Sep 17 00:00:00 2001
From: Thomas Perl <m@thp.io>
Date: Thu, 2 Feb 2023 08:21:18 +0100
Subject: Use bash arrays for the list of paths

---
 mingw-w64-build | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/mingw-w64-build b/mingw-w64-build
index bc8139e..4db49c7 100755
--- a/mingw-w64-build
+++ b/mingw-w64-build
@@ -453,29 +453,27 @@ export CFLAGS="-g0"
 export CXXFLAGS="-g0"
 export LDFLAGS="-s"
 
-COMPLETE_MSG="complete, to use MinGW-w64 everywhere add"
+ADD_TO_PATH=()
 
 if [ "$BUILD_I686" ]; then
     build i686 "$I686_PREFIX"
-    COMPLETE_MSG="$COMPLETE_MSG '$I686_PREFIX/bin'"
+    ADD_TO_PATH+=("'$I686_PREFIX/bin'")
 fi
 
 if [ "$BUILD_X86_64" ]; then
     build x86_64 "$X86_64_PREFIX"
-    if [ "$BUILD_I686" ]; then
-        COMPLETE_MSG="$COMPLETE_MSG and "
-    fi
-    COMPLETE_MSG="$COMPLETE_MSG '$X86_64_PREFIX/bin'"
+    ADD_TO_PATH+=("'$X86_64_PREFIX/bin'")
 fi
 
-COMPLETE_MSG="$COMPLETE_MSG to PATH."
-
 if [ ! "$KEEP_ARTIFACTS" ]; then
     remove_path "$SRC_PATH"
     remove_path "$BLD_PATH"
     remove_path "$LOG_FILE"
 fi
 
-printf "%s\n" "$COMPLETE_MSG"
+echo "complete, to use MinGW-w64 everywhere add these to your \$PATH:"
+for add_to_path in "${ADD_TO_PATH[@]}"; do
+    printf "\t%s\n" "$add_to_path"
+done
 
 exit 0
-- 
cgit v1.2.3


From 3a43e408f90fadb2ed5b8084e1bedd4ae6774125 Mon Sep 17 00:00:00 2001
From: Thomas Perl <m@thp.io>
Date: Thu, 2 Feb 2023 08:22:52 +0100
Subject: Calculate number of builds using arithmetic

---
 mingw-w64-build | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/mingw-w64-build b/mingw-w64-build
index 4db49c7..36495dd 100755
--- a/mingw-w64-build
+++ b/mingw-w64-build
@@ -26,6 +26,9 @@ ENABLE_THREADS="--enable-threads=posix"
 
 JOB_COUNT=$(($(getconf _NPROCESSORS_ONLN) + 2))
 
+BUILD_I686=0
+BUILD_X86_64=0
+
 LINKED_RUNTIME="msvcrt"
 
 show_help()
@@ -372,7 +375,8 @@ while :; do
     shift
 done
 
-if [ ! "$BUILD_I686" ] && [ ! "$BUILD_X86_64" ]; then
+NUM_BUILDS=$((BUILD_I686 + BUILD_X86_64))
+if [ "$NUM_BUILDS" -eq 0 ]; then
     arg_error "no ARCH was specified"
 fi
 
@@ -402,12 +406,8 @@ else
     THREADS_STEPS=0
 fi
 
-if [ "$BUILD_I686" ] && [ "$BUILD_X86_64" ]; then
-    THREADS_STEPS=$((THREADS_STEPS * 2))
-    BUILD_STEPS=26
-else
-    BUILD_STEPS=13
-fi
+THREADS_STEPS=$((THREADS_STEPS * NUM_BUILDS))
+BUILD_STEPS=$((13 * NUM_BUILDS))
 
 TOTAL_STEPS=$((TOTAL_STEPS + THREADS_STEPS + BUILD_STEPS))
 
-- 
cgit v1.2.3


From 4925ef65d873165c9f5a8e94e6527883a73c1c98 Mon Sep 17 00:00:00 2001
From: Thomas Perl <m@thp.io>
Date: Thu, 2 Feb 2023 08:24:12 +0100
Subject: Add support for i586 builds

---
 mingw-w64-build | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/mingw-w64-build b/mingw-w64-build
index 36495dd..55a5315 100755
--- a/mingw-w64-build
+++ b/mingw-w64-build
@@ -26,6 +26,7 @@ ENABLE_THREADS="--enable-threads=posix"
 
 JOB_COUNT=$(($(getconf _NPROCESSORS_ONLN) + 2))
 
+BUILD_I586=0
 BUILD_I686=0
 BUILD_X86_64=0
 
@@ -38,7 +39,8 @@ Usage:
   $0 [options] <arch>...
 
 Archs:
-  i686    Windows 32-bit
+  i586    Windows 32-bit for old CPUs (Intel Pentium (MMX), AMD K5, K6, K6-2, K6-III)
+  i686    Windows 32-bit (Intel P6 [Pentium Pro], AMD K7 and newer)
   x86_64  Windows 64-bit
 
 Options:
@@ -161,10 +163,11 @@ build()
         remove_path "$prefix"
     fi
 
-    if [ "$arch" = "i686" ]; then
-        local i686_dwarf2="--disable-sjlj-exceptions --with-dwarf2"
+    if [ "$arch" = "i586" ] || [ "$arch" = "i686" ]; then
+        local x86_dwarf2="--disable-sjlj-exceptions --with-dwarf2"
         local crt_lib="--enable-lib32 --disable-lib64"
     else
+        local x86_dwarf2=""
         local crt_lib="--enable-lib64 --disable-lib32"
     fi
 
@@ -200,7 +203,7 @@ build()
         "$SRC_PATH/gcc/configure" --target="$host" --disable-shared \
             --enable-static --disable-multilib --prefix="$prefix" \
             --enable-languages=c,c++ --disable-nls $ENABLE_THREADS \
-            $i686_dwarf2
+            $x86_dwarf2
 
     execute "($arch): building GCC (all-gcc)" "" \
         make -j $JOB_COUNT all-gcc
@@ -352,6 +355,9 @@ while :; do
         --mingw-w64-branch=)
             arg_error "'--mingw-w64-branch' requires a non-empty option argument"
             ;;
+        i586)
+            BUILD_I586=1
+            ;;
         i686)
             BUILD_I686=1
             ;;
@@ -375,7 +381,7 @@ while :; do
     shift
 done
 
-NUM_BUILDS=$((BUILD_I686 + BUILD_X86_64))
+NUM_BUILDS=$((BUILD_I586 + BUILD_I686 + BUILD_X86_64))
 if [ "$NUM_BUILDS" -eq 0 ]; then
     arg_error "no ARCH was specified"
 fi
@@ -420,9 +426,11 @@ BLD_PATH="$ROOT_PATH/bld"
 LOG_FILE="$ROOT_PATH/build.log"
 
 if [ "$PREFIX" ]; then
+    I586_PREFIX="$PREFIX"
     I686_PREFIX="$PREFIX"
     X86_64_PREFIX="$PREFIX"
 else
+    I586_PREFIX="$ROOT_PATH/i586"
     I686_PREFIX="$ROOT_PATH/i686"
     X86_64_PREFIX="$ROOT_PATH/x86_64"
 fi
@@ -455,6 +463,11 @@ export LDFLAGS="-s"
 
 ADD_TO_PATH=()
 
+if [ "$BUILD_I586" ]; then
+    build i586 "$I586_PREFIX"
+    ADD_TO_PATH+=("'$I586_PREFIX/bin'")
+fi
+
 if [ "$BUILD_I686" ]; then
     build i686 "$I686_PREFIX"
     ADD_TO_PATH+=("'$I686_PREFIX/bin'")
-- 
cgit v1.2.3


From 08fc3efcac9f727076782ff6cea0d9ba4d8a31bf Mon Sep 17 00:00:00 2001
From: Thomas Perl <m@thp.io>
Date: Thu, 9 Mar 2023 14:24:55 +0100
Subject: Keep build flags uninitialized

---
 mingw-w64-build | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/mingw-w64-build b/mingw-w64-build
index 55a5315..dd7f8d9 100755
--- a/mingw-w64-build
+++ b/mingw-w64-build
@@ -26,10 +26,6 @@ ENABLE_THREADS="--enable-threads=posix"
 
 JOB_COUNT=$(($(getconf _NPROCESSORS_ONLN) + 2))
 
-BUILD_I586=0
-BUILD_I686=0
-BUILD_X86_64=0
-
 LINKED_RUNTIME="msvcrt"
 
 show_help()
-- 
cgit v1.2.3


From 1e3e34196c4f1871e5a290c620004bab33032a2c Mon Sep 17 00:00:00 2001
From: Kyle Schwarz <zeranoe@gmail.com>
Date: Sat, 25 May 2024 12:44:15 -0400
Subject: Update copyright

---
 mingw-w64-build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mingw-w64-build b/mingw-w64-build
index dd7f8d9..d14600f 100755
--- a/mingw-w64-build
+++ b/mingw-w64-build
@@ -1,6 +1,6 @@
 #!/bin/bash
 #
-# Copyright (C) 2023 Kyle Schwarz <zeranoe@gmail.com>
+# Copyright (C) 2024 Kyle Schwarz <zeranoe@gmail.com>
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-- 
cgit v1.2.3


From a7874f53851f2e5760e749070f5e7daab9139dac Mon Sep 17 00:00:00 2001
From: Kyle Schwarz <zeranoe@gmail.com>
Date: Sat, 25 May 2024 13:10:43 -0400
Subject: Update binutils to  binutils-2_42-branch

---
 mingw-w64-build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mingw-w64-build b/mingw-w64-build
index d14600f..78d21a4 100755
--- a/mingw-w64-build
+++ b/mingw-w64-build
@@ -19,7 +19,7 @@
 ROOT_PATH="$HOME/.zeranoe/mingw-w64"
 
 MINGW_W64_BRANCH="master"
-BINUTILS_BRANCH="binutils-2_40-branch"
+BINUTILS_BRANCH="binutils-2_42-branch"
 GCC_BRANCH="releases/gcc-12"
 
 ENABLE_THREADS="--enable-threads=posix"
-- 
cgit v1.2.3


From 219472d381f4f7587a0b251bf32784fcf514b971 Mon Sep 17 00:00:00 2001
From: Kyle Schwarz <zeranoe@gmail.com>
Date: Sat, 25 May 2024 13:11:17 -0400
Subject: Update gcc to releases/gcc-14

---
 mingw-w64-build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mingw-w64-build b/mingw-w64-build
index 78d21a4..d6a2799 100755
--- a/mingw-w64-build
+++ b/mingw-w64-build
@@ -20,7 +20,7 @@ ROOT_PATH="$HOME/.zeranoe/mingw-w64"
 
 MINGW_W64_BRANCH="master"
 BINUTILS_BRANCH="binutils-2_42-branch"
-GCC_BRANCH="releases/gcc-12"
+GCC_BRANCH="releases/gcc-14"
 
 ENABLE_THREADS="--enable-threads=posix"
 
-- 
cgit v1.2.3


From ebc892c9c890a12ad72d1263f62db071eb1fbd55 Mon Sep 17 00:00:00 2001
From: tokomine <tokomine.s@gmail.com>
Date: Wed, 30 Aug 2023 10:14:36 +0800
Subject: fix SRC_PATH when CACHED_SOURCES

---
 mingw-w64-build | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/mingw-w64-build b/mingw-w64-build
index d6a2799..4d0da33 100755
--- a/mingw-w64-build
+++ b/mingw-w64-build
@@ -394,11 +394,7 @@ fi
 
 TOTAL_STEPS=0
 
-if [ "$CACHED_SOURCES" ]; then
-    if [ ! -f "$SRC_PATH/config.guess" ]; then
-        arg_error "no sources found, run with --keep-artifacts first"
-    fi
-else
+if [ ! "$CACHED_SOURCES" ]; then
     TOTAL_STEPS=$((TOTAL_STEPS + 4))
 fi
 
@@ -438,10 +434,16 @@ mkdir -p "$ROOT_PATH"
 rm -f "$LOG_FILE"
 touch "$LOG_FILE"
 
+
 if [ ! "$CACHED_SOURCES" ]; then
     download_sources
+else
+    if [ ! -f "$SRC_PATH/config.guess" ]; then
+        arg_error "no sources found, run with --keep-artifacts first"
+    fi
 fi
 
+
 BUILD=$(sh "$SRC_PATH/config.guess")
 
 change_dir "$SRC_PATH/gcc"
-- 
cgit v1.2.3


From 9f9009bcb6e0bb70760d9be0a3dc346ebc311b7b Mon Sep 17 00:00:00 2001
From: Kyle Schwarz <zeranoe@gmail.com>
Date: Sat, 25 May 2024 13:24:54 -0400
Subject: Update README

---
 README.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 5ed13b4..8b0b1d7 100644
--- a/README.md
+++ b/README.md
@@ -6,8 +6,8 @@ files.
 
 ## Default Branches
 * [MinGW-w64](https://mingw-w64.org) master
-* [Binutils](https://www.gnu.org/software/binutils/) binutils-2_40-branch
-* [GCC](https://gcc.gnu.org/) releases/gcc-12
+* [Binutils](https://www.gnu.org/software/binutils/) binutils-2_42-branch
+* [GCC](https://gcc.gnu.org/) releases/gcc-14
 
 ## Default Prefix
 `$HOME/.zeranoe/mingw-w64/i686` and `$HOME/.zeranoe/mingw-w64/x86_64` are the
-- 
cgit v1.2.3