From 86b5f88a2f39b0055b42f1a3495002bfc5e7b10a Mon Sep 17 00:00:00 2001 From: Emily Date: Tue, 19 Nov 2024 20:43:51 +0000 Subject: [PATCH] {gcc8{,Stdenv},gfortran8}: drop MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Release branch from 6½ years ago, no update in 3½ years, unsupported upstream, and unused in tree. This finally resolves the tangled conditionals in `all.nix`, albeit in a way I assume amjoseph wouldn’t have been too fond of. `default.nix` still has some gnarly stuff in there. So it goes… --- pkgs/by-name/gf/gfortran8/package.nix | 10 - pkgs/development/compilers/gcc/all.nix | 13 +- pkgs/development/compilers/gcc/default.nix | 16 +- ...thread-model-support-from-mcfgthread.patch | 306 ------------------ .../AvailabilityInternal.h-fixincludes.patch | 105 ------ .../gcc/patches/8/avr-gcc-8-darwin.patch | 16 - .../gcc/patches/8/gcc8-darwin-as-gstabs.patch | 96 ------ .../compilers/gcc/patches/default.nix | 22 +- .../libgomp-dont-force-initial-exec.patch | 40 --- .../patches/libsanitizer-no-cyclades-9.patch | 82 ----- pkgs/development/compilers/gcc/versions.nix | 2 - pkgs/top-level/aliases.nix | 3 + pkgs/top-level/all-packages.nix | 3 +- pkgs/top-level/release.nix | 2 - 14 files changed, 13 insertions(+), 703 deletions(-) delete mode 100644 pkgs/by-name/gf/gfortran8/package.nix delete mode 100644 pkgs/development/compilers/gcc/patches/8/Added-mcf-thread-model-support-from-mcfgthread.patch delete mode 100644 pkgs/development/compilers/gcc/patches/8/AvailabilityInternal.h-fixincludes.patch delete mode 100644 pkgs/development/compilers/gcc/patches/8/avr-gcc-8-darwin.patch delete mode 100644 pkgs/development/compilers/gcc/patches/8/gcc8-darwin-as-gstabs.patch delete mode 100644 pkgs/development/compilers/gcc/patches/libgomp-dont-force-initial-exec.patch delete mode 100644 pkgs/development/compilers/gcc/patches/libsanitizer-no-cyclades-9.patch diff --git a/pkgs/by-name/gf/gfortran8/package.nix b/pkgs/by-name/gf/gfortran8/package.nix deleted file mode 100644 index 0d0e03c7bb0b..000000000000 --- a/pkgs/by-name/gf/gfortran8/package.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ wrapCC, gcc8 }: -wrapCC ( - gcc8.cc.override { - name = "gfortran"; - langFortran = true; - langCC = false; - langC = false; - profiledCompiler = false; - } -) diff --git a/pkgs/development/compilers/gcc/all.nix b/pkgs/development/compilers/gcc/all.nix index 659df14f13f7..7eba6bad2dcb 100644 --- a/pkgs/development/compilers/gcc/all.nix +++ b/pkgs/development/compilers/gcc/all.nix @@ -3,7 +3,7 @@ , gccStdenv , gcc9Stdenv , callPackage -, isl_0_17, isl_0_20 +, isl_0_20 , libcCross , threadsCross , noSysDirs @@ -17,20 +17,15 @@ let let atLeast = lib.versionAtLeast majorMinorVersion; attrName = "gcc${lib.replaceStrings ["."] [""] majorMinorVersion}"; - pkg = lowPrio (wrapCC (callPackage ./default.nix ({ + pkg = lowPrio (wrapCC (callPackage ./default.nix { inherit noSysDirs; inherit majorMinorVersion; reproducibleBuild = true; profiledCompiler = false; libcCross = if stdenv.targetPlatform != stdenv.buildPlatform then args.libcCross else null; threadsCross = if stdenv.targetPlatform != stdenv.buildPlatform then threadsCross else { }; - isl = if stdenv.hostPlatform.isDarwin then null - else if atLeast "9" then isl_0_20 - else /* atLeast "8" */ isl_0_17; - } // lib.optionalAttrs (!(atLeast "9")) { - # gcc 10 is too strict to cross compile gcc <= 8 - stdenv = if (stdenv.targetPlatform != stdenv.buildPlatform) && stdenv.cc.isGNU then gcc9Stdenv else stdenv; - }))); + isl = if stdenv.hostPlatform.isDarwin then null else isl_0_20; + })); in lib.nameValuePair attrName pkg; in diff --git a/pkgs/development/compilers/gcc/default.nix b/pkgs/development/compilers/gcc/default.nix index 9a405186a8bf..5e35a660785c 100644 --- a/pkgs/development/compilers/gcc/default.nix +++ b/pkgs/development/compilers/gcc/default.nix @@ -67,14 +67,12 @@ let atLeast12 = versionAtLeast version "12"; atLeast11 = versionAtLeast version "11"; atLeast10 = versionAtLeast version "10"; - atLeast9 = versionAtLeast version "9"; is14 = majorVersion == "14"; is13 = majorVersion == "13"; is12 = majorVersion == "12"; is11 = majorVersion == "11"; is10 = majorVersion == "10"; is9 = majorVersion == "9"; - is8 = majorVersion == "8"; disableBootstrap = atLeast11 && !stdenv.hostPlatform.isDarwin && (atLeast12 -> !profiledCompiler); @@ -164,7 +162,7 @@ assert stdenv.buildPlatform.isDarwin -> gnused != null; # The go frontend is written in c++ assert langGo -> langCC; -assert (!is8) -> (langAda -> gnat-bootstrap != null); +assert langAda -> gnat-bootstrap != null; # TODO: fixup D bootstapping, probably by using gdc11 (and maybe other changes). # error: GDC is required to build d @@ -323,17 +321,14 @@ pipe ((callFile ./common/builder.nix {}) ({ inherit langC langCC langObjC langObjCpp langAda langFortran langGo langD version; isGNU = true; hardeningUnsupportedFlags = - optional ( - targetPlatform.isAarch64 && !atLeast9 - ) "stackclashprotection" - ++ optional (!atLeast11) "zerocallusedregs" + optional (!atLeast11) "zerocallusedregs" ++ optionals (!atLeast12) [ "fortify3" "trivialautovarinit" ] ++ optional (!( targetPlatform.isLinux && targetPlatform.isx86_64 && targetPlatform.libc == "glibc" )) "shadowstack" - ++ optional (!(atLeast9 && targetPlatform.isLinux && targetPlatform.isAarch64)) "pacret" + ++ optional (!(targetPlatform.isLinux && targetPlatform.isAarch64)) "pacret" ++ optionals (langFortran) [ "fortify" "format" ]; }; @@ -350,10 +345,7 @@ pipe ((callFile ./common/builder.nix {}) ({ maintainers ; } // optionalAttrs (!atLeast11) { - badPlatforms = - # avr-gcc8 is maintained for the `qmk` package - if (is8 && targetPlatform.isAvr) then [] - else [ "aarch64-darwin" ]; + badPlatforms = [ "aarch64-darwin" ]; } // optionalAttrs is10 { badPlatforms = if targetPlatform != hostPlatform then [ "aarch64-darwin" ] else [ ]; }; diff --git a/pkgs/development/compilers/gcc/patches/8/Added-mcf-thread-model-support-from-mcfgthread.patch b/pkgs/development/compilers/gcc/patches/8/Added-mcf-thread-model-support-from-mcfgthread.patch deleted file mode 100644 index d9809e828f10..000000000000 --- a/pkgs/development/compilers/gcc/patches/8/Added-mcf-thread-model-support-from-mcfgthread.patch +++ /dev/null @@ -1,306 +0,0 @@ -From 86f2f767ddffd9f7c6f1470b987ae7b0d251b988 Mon Sep 17 00:00:00 2001 -From: Liu Hao -Date: Wed, 25 Apr 2018 21:54:19 +0800 -Subject: [PATCH] Added 'mcf' thread model support from mcfgthread. - -Signed-off-by: Liu Hao ---- - config/gthr.m4 | 1 + - gcc/config.gcc | 3 +++ - gcc/config/i386/mingw-mcfgthread.h | 1 + - gcc/config/i386/mingw-w64.h | 2 +- - gcc/config/i386/mingw32.h | 11 ++++++++++- - gcc/configure | 2 +- - gcc/configure.ac | 2 +- - libatomic/configure.tgt | 2 +- - libgcc/config.host | 6 ++++++ - libgcc/config/i386/gthr-mcf.h | 1 + - libgcc/config/i386/t-mingw-mcfgthread | 2 ++ - libgcc/configure | 1 + - libstdc++-v3/configure | 1 + - libstdc++-v3/libsupc++/atexit_thread.cc | 18 ++++++++++++++++++ - libstdc++-v3/libsupc++/guard.cc | 23 +++++++++++++++++++++++ - libstdc++-v3/src/c++11/thread.cc | 9 +++++++++ - 16 files changed, 80 insertions(+), 5 deletions(-) - create mode 100644 gcc/config/i386/mingw-mcfgthread.h - create mode 100644 libgcc/config/i386/gthr-mcf.h - create mode 100644 libgcc/config/i386/t-mingw-mcfgthread - -diff --git a/config/gthr.m4 b/config/gthr.m4 -index 7b29f1f3327..82e21fe1709 100644 ---- a/config/gthr.m4 -+++ b/config/gthr.m4 -@@ -21,6 +21,7 @@ case $1 in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - AC_SUBST(thread_header) - ]) -diff --git a/gcc/config.gcc b/gcc/config.gcc -index 46a9029acec..112c24e95a3 100644 ---- a/gcc/config.gcc -+++ b/gcc/config.gcc -@@ -1758,6 +1758,9 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) - if test x$enable_threads = xposix ; then - tm_file="${tm_file} i386/mingw-pthread.h" - fi -+ if test x$enable_threads = xmcf ; then -+ tm_file="${tm_file} i386/mingw-mcfgthread.h" -+ fi - tm_file="${tm_file} i386/mingw32.h" - # This makes the logic if mingw's or the w64 feature set has to be used - case ${target} in -diff --git a/gcc/config/i386/mingw-mcfgthread.h b/gcc/config/i386/mingw-mcfgthread.h -new file mode 100644 -index 00000000000..ec381a7798f ---- /dev/null -+++ b/gcc/config/i386/mingw-mcfgthread.h -@@ -0,0 +1 @@ -+#define TARGET_USE_MCFGTHREAD 1 -diff --git a/gcc/config/i386/mingw-w64.h b/gcc/config/i386/mingw-w64.h -index 484dc7a9e9f..a15bbeea500 100644 ---- a/gcc/config/i386/mingw-w64.h -+++ b/gcc/config/i386/mingw-w64.h -@@ -48,7 +48,7 @@ along with GCC; see the file COPYING3. If not see - "%{mwindows:-lgdi32 -lcomdlg32} " \ - "%{fvtable-verify=preinit:-lvtv -lpsapi; \ - fvtable-verify=std:-lvtv -lpsapi} " \ -- "-ladvapi32 -lshell32 -luser32 -lkernel32" -+ LIB_MCFGTHREAD "-ladvapi32 -lshell32 -luser32 -lkernel32" - - #undef SPEC_32 - #undef SPEC_64 -diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h -index 0612b87199a..76cea94f3b7 100644 ---- a/gcc/config/i386/mingw32.h -+++ b/gcc/config/i386/mingw32.h -@@ -32,6 +32,14 @@ along with GCC; see the file COPYING3. If not see - | MASK_STACK_PROBE | MASK_ALIGN_DOUBLE \ - | MASK_MS_BITFIELD_LAYOUT) - -+#ifndef TARGET_USE_MCFGTHREAD -+#define CPP_MCFGTHREAD() ((void)0) -+#define LIB_MCFGTHREAD "" -+#else -+#define CPP_MCFGTHREAD() (builtin_define("__USING_MCFGTHREAD__")) -+#define LIB_MCFGTHREAD " -lmcfgthread " -+#endif -+ - /* See i386/crtdll.h for an alternative definition. _INTEGRAL_MAX_BITS - is for compatibility with native compiler. */ - #define EXTRA_OS_CPP_BUILTINS() \ -@@ -50,6 +58,7 @@ along with GCC; see the file COPYING3. If not see - builtin_define_std ("WIN64"); \ - builtin_define ("_WIN64"); \ - } \ -+ CPP_MCFGTHREAD(); \ - } \ - while (0) - -@@ -93,7 +102,7 @@ along with GCC; see the file COPYING3. If not see - "%{mwindows:-lgdi32 -lcomdlg32} " \ - "%{fvtable-verify=preinit:-lvtv -lpsapi; \ - fvtable-verify=std:-lvtv -lpsapi} " \ -- "-ladvapi32 -lshell32 -luser32 -lkernel32" -+ LIB_MCFGTHREAD "-ladvapi32 -lshell32 -luser32 -lkernel32" - - /* Weak symbols do not get resolved if using a Windows dll import lib. - Make the unwind registration references strong undefs. */ -diff --git a/gcc/configure b/gcc/configure -index 6121e163259..52f0e00efe6 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -11693,7 +11693,7 @@ case ${enable_threads} in - target_thread_file='single' - ;; - aix | dce | lynx | mipssde | posix | rtems | \ -- single | tpf | vxworks | win32) -+ single | tpf | vxworks | win32 | mcf) - target_thread_file=${enable_threads} - ;; - *) -diff --git a/gcc/configure.ac b/gcc/configure.ac -index b066cc609e1..4ecdba88de7 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1612,7 +1612,7 @@ case ${enable_threads} in - target_thread_file='single' - ;; - aix | dce | lynx | mipssde | posix | rtems | \ -- single | tpf | vxworks | win32) -+ single | tpf | vxworks | win32 | mcf) - target_thread_file=${enable_threads} - ;; - *) -diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt -index ea8c34f8c71..23134ad7363 100644 ---- a/libatomic/configure.tgt -+++ b/libatomic/configure.tgt -@@ -145,7 +145,7 @@ case "${target}" in - *-*-mingw*) - # OS support for atomic primitives. - case ${target_thread_file} in -- win32) -+ win32 | mcf) - config_path="${config_path} mingw" - ;; - posix) -diff --git a/libgcc/config.host b/libgcc/config.host -index 11b4acaff55..9fbd38650bd 100644 ---- a/libgcc/config.host -+++ b/libgcc/config.host -@@ -737,6 +737,9 @@ i[34567]86-*-mingw*) - posix) - tmake_file="i386/t-mingw-pthread $tmake_file" - ;; -+ mcf) -+ tmake_file="i386/t-mingw-mcfgthread $tmake_file" -+ ;; - esac - # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h - if test x$ac_cv_sjlj_exceptions = xyes; then -@@ -761,6 +764,9 @@ x86_64-*-mingw*) - posix) - tmake_file="i386/t-mingw-pthread $tmake_file" - ;; -+ mcf) -+ tmake_file="i386/t-mingw-mcfgthread $tmake_file" -+ ;; - esac - # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h - if test x$ac_cv_sjlj_exceptions = xyes; then -diff --git a/libgcc/config/i386/gthr-mcf.h b/libgcc/config/i386/gthr-mcf.h -new file mode 100644 -index 00000000000..5ea2908361f ---- /dev/null -+++ b/libgcc/config/i386/gthr-mcf.h -@@ -0,0 +1 @@ -+#include -diff --git a/libgcc/config/i386/t-mingw-mcfgthread b/libgcc/config/i386/t-mingw-mcfgthread -new file mode 100644 -index 00000000000..4b9b10e32d6 ---- /dev/null -+++ b/libgcc/config/i386/t-mingw-mcfgthread -@@ -0,0 +1,2 @@ -+SHLIB_PTHREAD_CFLAG = -+SHLIB_PTHREAD_LDFLAG = -lmcfgthread -diff --git a/libgcc/configure b/libgcc/configure -index b2f3f870844..eff889dc3b3 100644 ---- a/libgcc/configure -+++ b/libgcc/configure -@@ -5451,6 +5451,7 @@ case $target_thread_file in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - - -diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure -index ba094be6f15..979a5ab9ace 100755 ---- a/libstdc++-v3/configure -+++ b/libstdc++-v3/configure -@@ -15187,6 +15187,7 @@ case $target_thread_file in - tpf) thread_header=config/s390/gthr-tpf.h ;; - vxworks) thread_header=config/gthr-vxworks.h ;; - win32) thread_header=config/i386/gthr-win32.h ;; -+ mcf) thread_header=config/i386/gthr-mcf.h ;; - esac - - -diff --git a/libstdc++-v3/libsupc++/atexit_thread.cc b/libstdc++-v3/libsupc++/atexit_thread.cc -index de920d714c6..665fb74bd6b 100644 ---- a/libstdc++-v3/libsupc++/atexit_thread.cc -+++ b/libstdc++-v3/libsupc++/atexit_thread.cc -@@ -25,6 +25,22 @@ - #include - #include - #include "bits/gthr.h" -+ -+#ifdef __USING_MCFGTHREAD__ -+ -+#include -+ -+extern "C" int -+__cxxabiv1::__cxa_thread_atexit (void (*dtor)(void *), -+ void *obj, void *dso_handle) -+ _GLIBCXX_NOTHROW -+{ -+ return ::_MCFCRT_AtThreadExit((void (*)(_MCFCRT_STD intptr_t))dtor, (_MCFCRT_STD intptr_t)obj) ? 0 : -1; -+ (void)dso_handle; -+} -+ -+#else // __USING_MCFGTHREAD__ -+ - #ifdef _GLIBCXX_THREAD_ATEXIT_WIN32 - #define WIN32_LEAN_AND_MEAN - #include -@@ -167,3 +183,5 @@ __cxxabiv1::__cxa_thread_atexit (void (*dtor)(void *), void *obj, void */*dso_ha - } - - #endif /* _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL */ -+ -+#endif // __USING_MCFGTHREAD__ -diff --git a/libstdc++-v3/libsupc++/guard.cc b/libstdc++-v3/libsupc++/guard.cc -index 3a2ec3ad0d6..8b4cc96199b 100644 ---- a/libstdc++-v3/libsupc++/guard.cc -+++ b/libstdc++-v3/libsupc++/guard.cc -@@ -28,6 +28,27 @@ - #include - #include - #include -+ -+#ifdef __USING_MCFGTHREAD__ -+ -+#include -+ -+namespace __cxxabiv1 { -+ -+extern "C" int __cxa_guard_acquire(__guard *g){ -+ return ::_MCFCRT_WaitForOnceFlagForever((::_MCFCRT_OnceFlag *)g) == ::_MCFCRT_kOnceResultInitial; -+} -+extern "C" void __cxa_guard_abort(__guard *g) throw() { -+ ::_MCFCRT_SignalOnceFlagAsAborted((::_MCFCRT_OnceFlag *)g); -+} -+extern "C" void __cxa_guard_release(__guard *g) throw() { -+ ::_MCFCRT_SignalOnceFlagAsFinished((::_MCFCRT_OnceFlag *)g); -+} -+ -+} -+ -+#else // __USING_MCFGTHREAD__ -+ - #include - #include - #include -@@ -425,3 +446,5 @@ namespace __cxxabiv1 - #endif - } - } -+ -+#endif -diff --git a/libstdc++-v3/src/c++11/thread.cc b/libstdc++-v3/src/c++11/thread.cc -index 8238817c2e9..0c6a1f85f6f 100644 ---- a/libstdc++-v3/src/c++11/thread.cc -+++ b/libstdc++-v3/src/c++11/thread.cc -@@ -55,6 +55,15 @@ static inline int get_nprocs() - #elif defined(_GLIBCXX_USE_SC_NPROC_ONLN) - # include - # define _GLIBCXX_NPROCS sysconf(_SC_NPROC_ONLN) -+#elif defined(_WIN32) -+# include -+static inline int get_nprocs() -+{ -+ SYSTEM_INFO sysinfo; -+ GetSystemInfo(&sysinfo); -+ return (int)sysinfo.dwNumberOfProcessors; -+} -+# define _GLIBCXX_NPROCS get_nprocs() - #else - # define _GLIBCXX_NPROCS 0 - #endif --- -2.17.0 - diff --git a/pkgs/development/compilers/gcc/patches/8/AvailabilityInternal.h-fixincludes.patch b/pkgs/development/compilers/gcc/patches/8/AvailabilityInternal.h-fixincludes.patch deleted file mode 100644 index 0a4f46bce066..000000000000 --- a/pkgs/development/compilers/gcc/patches/8/AvailabilityInternal.h-fixincludes.patch +++ /dev/null @@ -1,105 +0,0 @@ -diff --git a/fixincludes/fixincl.x b/fixincludes/fixincl.x -index 9578c99ab7b..e0ae73496c6 100644 ---- a/fixincludes/fixincl.x -+++ b/fixincludes/fixincl.x -@@ -3428,6 +3428,43 @@ static const char* apzDarwin_Ucred__AtomicPatch[] = { - #endif\n", - (char*)NULL }; - -+/* * * * * * * * * * * * * * * * * * * * * * * * * * -+ * -+ * Description of Darwin_Nix_Sdk_Availabilityinternal fix -+ */ -+tSCC zDarwin_Nix_Sdk_AvailabilityinternalName[] = -+ "darwin_nix_sdk_availabilityinternal"; -+ -+/* -+ * File name selection pattern -+ */ -+tSCC zDarwin_Nix_Sdk_AvailabilityinternalList[] = -+ "AvailabilityInternal.h\0"; -+/* -+ * Machine/OS name selection pattern -+ */ -+tSCC* apzDarwin_Nix_Sdk_AvailabilityinternalMachs[] = { -+ "*-*-darwin*", -+ (const char*)NULL }; -+ -+/* -+ * content selection pattern - do fix if pattern found -+ */ -+tSCC zDarwin_Nix_Sdk_AvailabilityinternalSelect0[] = -+ "(.*)__has_builtin\\(__is_target_os\\)(.*)"; -+ -+#define DARWIN_NIX_SDK_AVAILABILITYINTERNAL_TEST_CT 1 -+static tTestDesc aDarwin_Nix_Sdk_AvailabilityinternalTests[] = { -+ { TT_EGREP, zDarwin_Nix_Sdk_AvailabilityinternalSelect0, (regex_t*)NULL }, }; -+ -+/* -+ * Fix Command Arguments for Darwin_Nix_Sdk_Availabilityinternal -+ */ -+static const char* apzDarwin_Nix_Sdk_AvailabilityinternalPatch[] = { -+ "format", -+ "%10%2", -+ (char*)NULL }; -+ - /* * * * * * * * * * * * * * * * * * * * * * * * * * - * - * Description of Dec_Intern_Asm fix -@@ -10356,9 +10393,9 @@ static const char* apzX11_SprintfPatch[] = { - * - * List of all fixes - */ --#define REGEX_COUNT 294 -+#define REGEX_COUNT 295 - #define MACH_LIST_SIZE_LIMIT 187 --#define FIX_COUNT 255 -+#define FIX_COUNT 256 - - /* - * Enumerate the fixes -@@ -10445,6 +10482,7 @@ typedef enum { - DARWIN_STDINT_6_FIXIDX, - DARWIN_STDINT_7_FIXIDX, - DARWIN_UCRED__ATOMIC_FIXIDX, -+ DARWIN_NIX_SDK_AVAILABILITYINTERNAL_FIXIDX, - DEC_INTERN_ASM_FIXIDX, - DJGPP_WCHAR_H_FIXIDX, - ECD_CURSOR_FIXIDX, -@@ -11027,6 +11065,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = { - DARWIN_UCRED__ATOMIC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aDarwin_Ucred__AtomicTests, apzDarwin_Ucred__AtomicPatch, 0 }, - -+ { zDarwin_Nix_Sdk_AvailabilityinternalName, zDarwin_Nix_Sdk_AvailabilityinternalList, -+ apzDarwin_Nix_Sdk_AvailabilityinternalMachs, -+ DARWIN_NIX_SDK_AVAILABILITYINTERNAL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, -+ aDarwin_Nix_Sdk_AvailabilityinternalTests, apzDarwin_Nix_Sdk_AvailabilityinternalPatch, 0 }, -+ - { zDec_Intern_AsmName, zDec_Intern_AsmList, - apzDec_Intern_AsmMachs, - DEC_INTERN_ASM_TEST_CT, FD_MACH_ONLY, -diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def -index 948ea1d9183..5eb403ac841 100644 ---- a/fixincludes/inclhack.def -+++ b/fixincludes/inclhack.def -@@ -1697,6 +1697,20 @@ fix = { - test_text = ""; /* Don't provide this for wrap fixes. */ - }; - -+/* -+ * Newer versions of AvailabilityInternal.h use `__has_builtin`, -+ * which is not implemented in or compatible with GCC. -+ */ -+fix = { -+ hackname = darwin_nix_sdk_availabilityinternal; -+ mach = "*-*-darwin*"; -+ files = AvailabilityInternal.h; -+ c_fix = format; -+ c_fix_arg = "%10%2"; -+ select = "(.*)__has_builtin\\(__is_target_os\\)(.*)"; -+ test_text = "__has_builtin(__is_target_os)"; -+}; -+ - /* - * Fix on Digital UNIX V4.0: - * It contains a prototype for a DEC C internal asm() function, diff --git a/pkgs/development/compilers/gcc/patches/8/avr-gcc-8-darwin.patch b/pkgs/development/compilers/gcc/patches/8/avr-gcc-8-darwin.patch deleted file mode 100644 index 3705ed99c49a..000000000000 --- a/pkgs/development/compilers/gcc/patches/8/avr-gcc-8-darwin.patch +++ /dev/null @@ -1,16 +0,0 @@ -From https://gist.githubusercontent.com/DavidEGrayson/88bceb3f4e62f45725ecbb9248366300/raw/c1f515475aff1e1e3985569d9b715edb0f317648/gcc-11-arm-darwin.patch - -diff -ur a/gcc/config/host-darwin.c b/gcc/config/host-darwin.c ---- a/gcc/config/host-darwin.c 2021-04-27 03:00:13.000000000 -0700 -+++ b/gcc/config/host-darwin.c 2021-06-11 14:49:13.754000000 -0700 -@@ -22,6 +22,10 @@ - #include "coretypes.h" - #include "diagnostic-core.h" - #include "config/host-darwin.h" -+#include "hosthooks.h" -+#include "hosthooks-def.h" -+ -+const struct host_hooks host_hooks = HOST_HOOKS_INITIALIZER; - - /* Yes, this is really supposed to work. */ - /* This allows for a pagesize of 16384, which we have on Darwin20, but should \ No newline at end of file diff --git a/pkgs/development/compilers/gcc/patches/8/gcc8-darwin-as-gstabs.patch b/pkgs/development/compilers/gcc/patches/8/gcc8-darwin-as-gstabs.patch deleted file mode 100644 index 1ac870e57298..000000000000 --- a/pkgs/development/compilers/gcc/patches/8/gcc8-darwin-as-gstabs.patch +++ /dev/null @@ -1,96 +0,0 @@ -Backported from https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=b2cee5e1e89c8f939bc36fe9756befcb93d96982 - -diff -ur a/gcc/config/darwin.h b/gcc/config/darwin.h ---- a/gcc/config/darwin.h 2021-05-14 04:42:08.000000000 -0400 -+++ b/gcc/config/darwin.h 2023-11-06 08:53:27.629155053 -0500 -@@ -233,12 +233,18 @@ - - #define DSYMUTIL "\ndsymutil" - -+/* Spec that controls whether the debug linker is run automatically for -+ a link step. This needs to be done if there is a source file on the -+ command line which will result in a temporary object (and debug is -+ enabled). */ -+ - #define DSYMUTIL_SPEC \ - "%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\ - %{v} \ -- %{gdwarf-2:%{!gstabs*:%{%:debug-level-gt(0): -idsym}}}\ -- %{.c|.cc|.C|.cpp|.cp|.c++|.cxx|.CPP|.m|.mm: \ -- %{gdwarf-2:%{!gstabs*:%{%:debug-level-gt(0): -dsym}}}}}}}}}}}" -+ %{g*:%{!gstabs*:%{%:debug-level-gt(0): -idsym}}}\ -+ %{.c|.cc|.C|.cpp|.cp|.c++|.cxx|.CPP|.m|.mm|.s|.f|.f90|\ -+ .f95|.f03|.f77|.for|.F|.F90|.F95|.F03: \ -+ %{g*:%{!gstabs*:%{%:debug-level-gt(0): -dsym}}}}}}}}}}}" - - #define LINK_COMMAND_SPEC LINK_COMMAND_SPEC_A DSYMUTIL_SPEC - -@@ -469,18 +475,31 @@ - /* Default ASM_DEBUG_SPEC. Darwin's as cannot currently produce dwarf - debugging data. */ - -+#ifdef HAS_AS_STABS_DIRECTIVE -+/* We only pass a debug option to the assembler if that supports stabs, since -+ dwarf is not uniformly supported in the assemblers. */ - #define ASM_DEBUG_SPEC "%{g*:%{%:debug-level-gt(0):%{!gdwarf*:--gstabs}}}" -+#else -+#define ASM_DEBUG_SPEC "" -+#endif -+ -+#undef ASM_DEBUG_OPTION_SPEC -+#define ASM_DEBUG_OPTION_SPEC "" -+ - #define ASM_FINAL_SPEC \ - "%{gsplit-dwarf:%ngsplit-dwarf is not supported on this platform } %. */ - --/* Prefer DWARF2. */ --#undef PREFERRED_DEBUGGING_TYPE --#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG --#define DARWIN_PREFER_DWARF -- --/* Since DWARF2 is default, conditions for running dsymutil are different. */ --#undef DSYMUTIL_SPEC --#define DSYMUTIL_SPEC \ -- "%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\ -- %{v} \ -- %{g*:%{!gstabs*:%{%:debug-level-gt(0): -idsym}}}\ -- %{.c|.cc|.C|.cpp|.cp|.c++|.cxx|.CPP|.m|.mm|.s|.f|.f90|.f95|.f03|.f77|.for|.F|.F90|.F95|.F03: \ -- %{g*:%{!gstabs*:%{%:debug-level-gt(0): -dsym}}}}}}}}}}}" -- --/* Tell collect2 to run dsymutil for us as necessary. */ --#define COLLECT_RUN_DSYMUTIL 1 -- --/* Only ask as for debug data if the debug style is stabs (since as doesn't -- yet generate dwarf.) */ -- --#undef ASM_DEBUG_SPEC --#define ASM_DEBUG_SPEC "%{g*:%{%:debug-level-gt(0):%{gstabs:--gstabs}}}" -- - #undef ASM_OUTPUT_ALIGNED_COMMON - #define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \ - do { \ diff --git a/pkgs/development/compilers/gcc/patches/default.nix b/pkgs/development/compilers/gcc/patches/default.nix index 66d5c1746c04..c9989f4c1e0b 100644 --- a/pkgs/development/compilers/gcc/patches/default.nix +++ b/pkgs/development/compilers/gcc/patches/default.nix @@ -30,14 +30,12 @@ let atLeast12 = lib.versionAtLeast version "12"; atLeast11 = lib.versionAtLeast version "11"; atLeast10 = lib.versionAtLeast version "10"; - atLeast9 = lib.versionAtLeast version "9"; is14 = majorVersion == "14"; is13 = majorVersion == "13"; is12 = majorVersion == "12"; is11 = majorVersion == "11"; is10 = majorVersion == "10"; is9 = majorVersion == "9"; - is8 = majorVersion == "8"; inherit (lib) optionals optional; in @@ -68,7 +66,7 @@ in ++ optional (atLeast12 && langAda) ./gnat-cflags-11.patch ++ optional langFortran (if atLeast12 then ./gcc-12-gfortran-driving.patch else ./gfortran-driving.patch) ++ [ ./ppc-musl.patch ] -++ optional (atLeast9 && langD) ./libphobos.patch +++ optional langD ./libphobos.patch @@ -170,7 +168,6 @@ in # Work around newer AvailabilityInternal.h when building older versions of GCC. ++ optionals (stdenv.hostPlatform.isDarwin) ({ "9" = [ ../patches/9/AvailabilityInternal.h-fixincludes.patch ]; - "8" = [ ../patches/8/AvailabilityInternal.h-fixincludes.patch ]; }.${majorVersion} or []) @@ -223,20 +220,3 @@ in # Make Darwin bootstrap respect whether the assembler supports `--gstabs`, # which is not supported by the clang integrated assembler used by default on Darwin. ++ optional (is9 && hostPlatform.isDarwin) ./9/gcc9-darwin-as-gstabs.patch - - -## gcc 8.0 and older ############################################################################## - -++ optional (!atLeast9) ./libsanitizer-no-cyclades-9.patch -++ optional is8 ./9/fix-struct-redefinition-on-glibc-2.36.patch - -# Make Darwin bootstrap respect whether the assembler supports `--gstabs`, -# which is not supported by the clang integrated assembler used by default on Darwin. -++ optional (is8 && hostPlatform.isDarwin) ./8/gcc8-darwin-as-gstabs.patch - -# Make avr-gcc8 build on aarch64-darwin -# avr-gcc8 is maintained for the `qmk` package -# https://github.com/osx-cross/homebrew-avr/blob/main/Formula/avr-gcc%408.rb#L69 -++ optional (is8 && targetPlatform.isAvr && hostPlatform.isDarwin && hostPlatform.isAarch64) ./8/avr-gcc-8-darwin.patch - -++ optional (is8 && !atLeast9 && targetPlatform.libc == "musl") ./libgomp-dont-force-initial-exec.patch diff --git a/pkgs/development/compilers/gcc/patches/libgomp-dont-force-initial-exec.patch b/pkgs/development/compilers/gcc/patches/libgomp-dont-force-initial-exec.patch deleted file mode 100644 index afd1f7456d32..000000000000 --- a/pkgs/development/compilers/gcc/patches/libgomp-dont-force-initial-exec.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 01c433f4788441c0963005b9d3fad5b2865e6651 Mon Sep 17 00:00:00 2001 -From: Will Dietz -Date: Mon, 24 Sep 2018 19:57:50 -0500 -Subject: [PATCH] libgomp/configure.tgt: don't force initial-exec tls-model - ---- - libgomp/configure.tgt | 17 ----------------- - 1 file changed, 17 deletions(-) - -diff --git a/libgomp/configure.tgt b/libgomp/configure.tgt -index 74d95a570c7..b608c55f0c1 100644 ---- a/libgomp/configure.tgt -+++ b/libgomp/configure.tgt -@@ -10,23 +10,6 @@ - # XCFLAGS Add extra compile flags to use. - # XLDFLAGS Add extra link flags to use. - --# Optimize TLS usage by avoiding the overhead of dynamic allocation. --if test $gcc_cv_have_tls = yes ; then -- case "${target}" in -- -- *-*-k*bsd*-gnu*) -- ;; -- -- *-*-linux* | *-*-gnu*) -- XCFLAGS="${XCFLAGS} -ftls-model=initial-exec" -- ;; -- -- *-*-rtems*) -- XCFLAGS="${XCFLAGS} -ftls-model=local-exec" -- ;; -- esac --fi -- - # Since we require POSIX threads, assume a POSIX system by default. - config_path="posix" - --- -2.19.0 - diff --git a/pkgs/development/compilers/gcc/patches/libsanitizer-no-cyclades-9.patch b/pkgs/development/compilers/gcc/patches/libsanitizer-no-cyclades-9.patch deleted file mode 100644 index 072403d1495f..000000000000 --- a/pkgs/development/compilers/gcc/patches/libsanitizer-no-cyclades-9.patch +++ /dev/null @@ -1,82 +0,0 @@ -https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=2b40941d23b1570cdd90083b58fa0f66aa58c86e -https://gcc.gnu.org/PR100379 ---- a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc -+++ b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc -@@ -365,15 +365,6 @@ static void ioctl_table_fill() { - - #if SANITIZER_LINUX && !SANITIZER_ANDROID - // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE -- _(CYGETDEFTHRESH, WRITE, sizeof(int)); -- _(CYGETDEFTIMEOUT, WRITE, sizeof(int)); -- _(CYGETMON, WRITE, struct_cyclades_monitor_sz); -- _(CYGETTHRESH, WRITE, sizeof(int)); -- _(CYGETTIMEOUT, WRITE, sizeof(int)); -- _(CYSETDEFTHRESH, NONE, 0); -- _(CYSETDEFTIMEOUT, NONE, 0); -- _(CYSETTHRESH, NONE, 0); -- _(CYSETTIMEOUT, NONE, 0); - _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz); - _(EQL_ENSLAVE, WRITE, struct_ifreq_sz); - _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz); ---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc -+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc -@@ -157,7 +157,6 @@ typedef struct user_fpregs elf_fpregset_t; - # include - #endif - #include --#include - #include - #include - #include -@@ -466,7 +465,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); - - #if SANITIZER_LINUX && !SANITIZER_ANDROID - unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct); -- unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor); - #if EV_VERSION > (0x010000) - unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry); - #else -@@ -833,15 +831,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); - #endif // SANITIZER_LINUX || SANITIZER_FREEBSD - - #if SANITIZER_LINUX && !SANITIZER_ANDROID -- unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH; -- unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT; -- unsigned IOCTL_CYGETMON = CYGETMON; -- unsigned IOCTL_CYGETTHRESH = CYGETTHRESH; -- unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT; -- unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH; -- unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT; -- unsigned IOCTL_CYSETTHRESH = CYSETTHRESH; -- unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT; - unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE; - unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE; - unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG; ---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h -+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h -@@ -1040,7 +1040,6 @@ struct __sanitizer_cookie_io_functions_t { - - #if SANITIZER_LINUX && !SANITIZER_ANDROID - extern unsigned struct_ax25_parms_struct_sz; -- extern unsigned struct_cyclades_monitor_sz; - extern unsigned struct_input_keymap_entry_sz; - extern unsigned struct_ipx_config_data_sz; - extern unsigned struct_kbdiacrs_sz; -@@ -1385,15 +1384,6 @@ struct __sanitizer_cookie_io_functions_t { - #endif // SANITIZER_LINUX || SANITIZER_FREEBSD - - #if SANITIZER_LINUX && !SANITIZER_ANDROID -- extern unsigned IOCTL_CYGETDEFTHRESH; -- extern unsigned IOCTL_CYGETDEFTIMEOUT; -- extern unsigned IOCTL_CYGETMON; -- extern unsigned IOCTL_CYGETTHRESH; -- extern unsigned IOCTL_CYGETTIMEOUT; -- extern unsigned IOCTL_CYSETDEFTHRESH; -- extern unsigned IOCTL_CYSETDEFTIMEOUT; -- extern unsigned IOCTL_CYSETTHRESH; -- extern unsigned IOCTL_CYSETTIMEOUT; - extern unsigned IOCTL_EQL_EMANCIPATE; - extern unsigned IOCTL_EQL_ENSLAVE; - extern unsigned IOCTL_EQL_GETMASTRCFG; --- -2.27.0 diff --git a/pkgs/development/compilers/gcc/versions.nix b/pkgs/development/compilers/gcc/versions.nix index 26badb46ed7a..87ebf0681299 100644 --- a/pkgs/development/compilers/gcc/versions.nix +++ b/pkgs/development/compilers/gcc/versions.nix @@ -6,7 +6,6 @@ let "11" = "11.5.0"; "10" = "10.5.0"; "9" = "9.5.0"; - "8" = "8.5.0"; }; fromMajorMinor = majorMinorVersion: @@ -20,7 +19,6 @@ let "11.5.0" = "sha256-puIYaOrVRc+H8MAfhCduS1KB1nIJhZHByJYkHwk2NHg="; "10.5.0" = "sha256-JRCVQ/30bzl8NHtdi3osflaUpaUczkucbh6opxyjB8E="; "9.5.0" = "13ygjmd938m0wmy946pxdhz9i1wq7z4w10l6pvidak0xxxj9yxi7"; - "8.5.0" = "0l7d4m9jx124xsk6xardchgy2k5j5l2b15q322k31f0va4d8826k"; }."${version}"; in { diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 63c9bbe9277c..9c42ec793cff 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -414,6 +414,8 @@ mapAliases { gcc6Stdenv = throw "gcc6Stdenv has been removed from Nixpkgs, as it is unmaintained and obsolete"; # Added 2024-09-13 gcc7 = throw "gcc7 has been removed from Nixpkgs, as it is unmaintained and obsolete"; # Added 2024-11-20 gcc7Stdenv = throw "gcc7Stdenv has been removed from Nixpkgs, as it is unmaintained and obsolete"; # Added 2024-11-20 + gcc8 = throw "gcc8 has been removed from Nixpkgs, as it is unmaintained and obsolete"; # Added 2024-11-20 + gcc8Stdenv = throw "gcc8Stdenv has been removed from Nixpkgs, as it is unmaintained and obsolete"; # Added 2024-11-20 gcc10StdenvCompat = if stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "11" then gcc10Stdenv else stdenv; # Added 2024-03-21 gcj = gcj6; # Added 2024-09-13 gcj6 = throw "gcj6 has been removed from Nixpkgs, as it is unmaintained and obsolete"; # Added 2024-09-13 @@ -421,6 +423,7 @@ mapAliases { gfortran48 = throw "'gfortran48' has been removed from nixpkgs"; # Added 2024-09-10 gfortran49 = throw "'gfortran49' has been removed from nixpkgs"; # Added 2024-09-11 gfortran7 = throw "gfortran7 has been removed from Nixpkgs, as it is unmaintained and obsolete"; # Added 2024-11-20 + gfortran8 = throw "gfortran8 has been removed from Nixpkgs, as it is unmaintained and obsolete"; # Added 2024-11-20 ghostwriter = libsForQt5.kdeGear.ghostwriter; # Added 2023-03-18 gmp5 = throw "'gmp5' has been removed as it is unmaintained. Consider using 'gmp' instead"; # Added 2024-10-28 gmpc = throw "'gmpc' has been removed due to lack of maintenance upstream. Consider using 'plattenalbum' instead"; # Added 2024-09-14 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6cf689de8f21..f6bc8a1e79e9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6152,7 +6152,6 @@ with pkgs; extraBuildInputs = lib.optional stdenv.hostPlatform.isDarwin clang.cc; }; - gcc8Stdenv = overrideCC gccStdenv buildPackages.gcc8; gcc9Stdenv = overrideCC gccStdenv buildPackages.gcc9; gcc10Stdenv = overrideCC gccStdenv buildPackages.gcc10; gcc11Stdenv = overrideCC gccStdenv buildPackages.gcc11; @@ -6244,7 +6243,7 @@ with pkgs; }; inherit (callPackage ../development/compilers/gcc/all.nix { inherit noSysDirs; }) - gcc8 gcc9 gcc10 gcc11 gcc12 gcc13 gcc14; + gcc9 gcc10 gcc11 gcc12 gcc13 gcc14; gcc_latest = gcc14; diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index 024e2360a99c..24683706ab8d 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -215,7 +215,6 @@ let TODO: re-add tests; context: https://github.com/NixOS/nixpkgs/commit/36587a587ab191eddd868179d63c82cdd5dee21b jobs.tests.cc-wrapper.default.x86_64-linux - jobs.tests.cc-wrapper.gcc8Stdenv.x86_64-linux # broken see issue #40038 @@ -247,7 +246,6 @@ let jobs.darwin.linux-builder.x86_64-darwin /* jobs.tests.cc-wrapper.default.x86_64-darwin - jobs.tests.cc-wrapper.gcc8Stdenv.x86_64-darwin jobs.tests.cc-wrapper.llvmPackages.clang.x86_64-darwin jobs.tests.cc-wrapper.llvmPackages.libcxx.x86_64-darwin jobs.tests.stdenv-inputs.x86_64-darwin