https://gcc.gnu.org/g:fb8a2387e35a92e5339df5f7dd434ad14f043d09
commit r17-5003-gfb8a2387e35a92e5339df5f7dd434ad14f043d09 Author: Zhongteng Gui <[email protected]> Date: Sun Aug 30 23:24:18 2026 +0800 mingw32crt: Remove outdated target [PR127137] This target is not used by anyone, long no maintained, and actually can't build: The last real change to gcc/config/i386/crtdll.h was in 2003 (70e5e841b8b9310716018a98acfb8e918c3b4f13), which introduced a typo of `-libmingwex` that actually should be `-lmingwex`. This typo was never found and/or fixed for 20+ years, which is a strong indication that no one is using this target. contrib/ChangeLog: PR target/127137 * config-list.mk (LIST): Remove i686-mingw32crt. contrib/header-tools/ChangeLog: PR target/127137 * README: Remove i686-mingw32crt from the list of targets. * reduce-headers: Likewise. gcc/ChangeLog: PR target/127137 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Remove handling of i386/crtdll.h. * config/i386/crtdll.h: Remove file. No longer used. * doc/install.texi: Remove mingw32crt from the list of targets. Signed-off-by: Zhongteng Gui <[email protected]> Signed-off-by: Jonathan Yong <[email protected]> Diff: --- contrib/config-list.mk | 2 +- contrib/header-tools/README | 2 +- contrib/header-tools/reduce-headers | 1 - gcc/config.gcc | 7 ------- gcc/config/i386/crtdll.h | 42 ------------------------------------- gcc/doc/install.texi | 2 +- 6 files changed, 3 insertions(+), 53 deletions(-) diff --git a/contrib/config-list.mk b/contrib/config-list.mk index c7f01da3bd2d..99fce485a486 100644 --- a/contrib/config-list.mk +++ b/contrib/config-list.mk @@ -60,7 +60,7 @@ LIST = \ i686-pc-linux-gnu i686-pc-msdosdjgpp i686-lynxos i686-nto-qnx \ i686-rtems i686-solaris2.11 i686-wrs-vxworks \ i686-wrs-vxworksae \ - i686-cygwinOPT-enable-threads=yes i686-mingw32crt ia64-elfOPT-enable-obsolete \ + i686-cygwinOPT-enable-threads=yes ia64-elfOPT-enable-obsolete \ ia64-linux ia64-hpuxOPT-enable-obsolete \ ia64-hp-vmsOPT-enable-obsolete iq2000-elf lm32-elf \ lm32-rtems lm32-uclinux \ diff --git a/contrib/header-tools/README b/contrib/header-tools/README index 906572e5059d..502693b92852 100644 --- a/contrib/header-tools/README +++ b/contrib/header-tools/README @@ -203,7 +203,7 @@ reduce-headers these targets. They are also known to the tool. When building targets it will check those targets before the rest. This coverage can be achieved by building config-list.mk with : - LIST="aarch64-linux-gnu arm-netbsdelf c6x-elf epiphany-elf i686-mingw32crt i686-pc-msdosdjgpp mipsel-elf powerpc-eabisimaltivec rs6000-ibm-aix5.1.0 sh-superh-elf sparc64-elf" + LIST="aarch64-linux-gnu arm-netbsdelf c6x-elf epiphany-elf i686-pc-msdosdjgpp mipsel-elf powerpc-eabisimaltivec rs6000-ibm-aix5.1.0 sh-superh-elf sparc64-elf" -b specifies the native bootstrapped build root directory -t specifies a target build root directory that config-list.mk was run from diff --git a/contrib/header-tools/reduce-headers b/contrib/header-tools/reduce-headers index 5826e67a3c86..d4209fbf0f7d 100755 --- a/contrib/header-tools/reduce-headers +++ b/contrib/header-tools/reduce-headers @@ -25,7 +25,6 @@ target_priority = [ "arm-netbsdelf", "c6x-elf", "epiphany-elf", - "i686-mingw32crt", "i686-pc-msdosdjgpp", "mipsel-elf", "powerpc-eabisimaltivec", diff --git a/gcc/config.gcc b/gcc/config.gcc index d651c3aae37e..328c49ac3839 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -2347,13 +2347,6 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) thread_file='posix' ;; esac - case ${target} in - *mingw32crt*) - tm_file="${tm_file} i386/crtdll.h" - ;; - *mingw32msv* | *mingw*) - ;; - esac ;; x86_64-*-fuchsia*) tmake_file="${tmake_file} i386/t-x86_64-elf" diff --git a/gcc/config/i386/crtdll.h b/gcc/config/i386/crtdll.h deleted file mode 100644 index 1fea0b20d709..000000000000 --- a/gcc/config/i386/crtdll.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Operating system specific defines to be used when targeting GCC for - hosting on Windows32, using GNU tools and the Windows32 API Library. - This variant uses CRTDLL.DLL instead of MSVCRTDLL.DLL. - Copyright (C) 1998-2026 Free Software Foundation, Inc. - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3, or (at your option) -any later version. - -GCC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GCC; see the file COPYING3. If not see -<http://www.gnu.org/licenses/>. */ - -#undef EXTRA_OS_CPP_BUILTINS -#define EXTRA_OS_CPP_BUILTINS() \ - do \ - { \ - builtin_define ("__CRTDLL__"); \ - builtin_define ("__MINGW32__"); \ - builtin_define ("_WIN32"); \ - builtin_define_std ("WIN32"); \ - builtin_define_std ("WINNT"); \ - } \ - while (0) - -#undef LIBGCC_SPEC -#define LIBGCC_SPEC \ - "%{mthreads:-lmingwthrd} -lmingw32 -lgcc -lcoldname -libmingwex -lcrtdll" - -/* Specify a different entry point when linking a DLL */ -#undef STARTFILE_SPEC -#define STARTFILE_SPEC "%{shared|mdll:dllcrt1%O%s} \ - %{!shared:%{!mdll:crt1%O%s}} %{pg:gcrt1%O%s}" - diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index f28185506617..ff42549fb080 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -886,7 +886,7 @@ aix@var{version}, amdhsa, aout, cygwin, darwin@var{version}, eabi, eabialtivec, eabisim, eabisimaltivec, elf, elf32, elfbare, elfoabi, freebsd@var{version}, gnu, hpux, hpux@var{version}, kfreebsd-gnu, kopensolaris-gnu, linux-androideabi, linux-gnu, -linux-gnu_altivec, linux-musl, linux-uclibc, lynxos, mingw32, mingw32crt, +linux-gnu_altivec, linux-musl, linux-uclibc, lynxos, mingw32, mmixware, msdosdjgpp, netbsd, netbsdelf@var{version}, nto-qnx, openbsd, rtems, solaris@var{version}, symbianelf, tpf, uclinux, uclinux_eabi, vms, vxworks, vxworksae, vxworksmils
