diff options
author | Alyssa Ross <hi@alyssa.is> | 2021-08-04 10:43:07 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2021-08-04 10:43:07 +0000 |
commit | 62614cbef7da005c1eda8c9400160f6bcd6546b8 (patch) | |
tree | c2630f69080637987b68acb1ee8676d2681fe304 /pkgs/development/compilers/gcc/10 | |
parent | d9c82ed3044c72cecf01c6ea042489d30914577c (diff) | |
parent | e24069138dfec3ef94f211f1da005bb5395adc11 (diff) | |
download | nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.gz nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.bz2 nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.lz nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.xz nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.zst nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.zip |
Merge branch 'nixpkgs-update' into master
Diffstat (limited to 'pkgs/development/compilers/gcc/10')
-rw-r--r-- | pkgs/development/compilers/gcc/10/Added-mcf-thread-model-support-from-mcfgthread.patch | 306 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/10/default.nix | 100 |
2 files changed, 360 insertions, 46 deletions
diff --git a/pkgs/development/compilers/gcc/10/Added-mcf-thread-model-support-from-mcfgthread.patch b/pkgs/development/compilers/gcc/10/Added-mcf-thread-model-support-from-mcfgthread.patch new file mode 100644 index 00000000000..d9809e828f1 --- /dev/null +++ b/pkgs/development/compilers/gcc/10/Added-mcf-thread-model-support-from-mcfgthread.patch @@ -0,0 +1,306 @@ +From 86f2f767ddffd9f7c6f1470b987ae7b0d251b988 Mon Sep 17 00:00:00 2001 +From: Liu Hao <lh_mouse@126.com> +Date: Wed, 25 Apr 2018 21:54:19 +0800 +Subject: [PATCH] Added 'mcf' thread model support from mcfgthread. + +Signed-off-by: Liu Hao <lh_mouse@126.com> +--- + 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 <mcfgthread/gthread.h> +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 <cstdlib> + #include <new> + #include "bits/gthr.h" ++ ++#ifdef __USING_MCFGTHREAD__ ++ ++#include <mcfgthread/gthread.h> ++ ++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 <windows.h> +@@ -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 <cxxabi.h> + #include <exception> + #include <new> ++ ++#ifdef __USING_MCFGTHREAD__ ++ ++#include <mcfgthread/gthread.h> ++ ++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 <ext/atomicity.h> + #include <ext/concurrence.h> + #include <bits/atomic_lockfree_defines.h> +@@ -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 <unistd.h> + # define _GLIBCXX_NPROCS sysconf(_SC_NPROC_ONLN) ++#elif defined(_WIN32) ++# include <windows.h> ++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/10/default.nix b/pkgs/development/compilers/gcc/10/default.nix index ae723a14531..143681c2a5b 100644 --- a/pkgs/development/compilers/gcc/10/default.nix +++ b/pkgs/development/compilers/gcc/10/default.nix @@ -1,17 +1,23 @@ -{ stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs +{ lib, stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs , langC ? true, langCC ? true, langFortran ? false , langAda ? false , langObjC ? stdenv.targetPlatform.isDarwin , langObjCpp ? stdenv.targetPlatform.isDarwin , langGo ? false +, reproducibleBuild ? true , profiledCompiler ? false , langJit ? false , staticCompiler ? false -, enableShared ? true +, # N.B. the defult is intentionally not from an `isStatic`. See + # https://gcc.gnu.org/install/configure.html - this is about target + # platform libraries not host platform ones unlike normal. But since + # we can't rebuild those without also rebuilding the compiler itself, + # we opt to always build everything unlike our usual policy. + enableShared ? true , enableLTO ? true , texinfo ? null , perl ? null # optional, for texi2pod (then pod2man) -, gmp, mpfr, libmpc, gettext, which +, gmp, mpfr, libmpc, gettext, which, patchelf , libelf # optional, for link-time optimizations (LTO) , isl ? null # optional, for the Graphite optimization framework. , zlib ? null @@ -23,8 +29,8 @@ , threadsCross ? null # for MinGW , crossStageStatic ? false , # Strip kills static libs of other archs (hence no cross) - stripped ? stdenv.hostPlatform == stdenv.buildPlatform - && stdenv.targetPlatform == stdenv.hostPlatform + stripped ? stdenv.hostPlatform.system == stdenv.buildPlatform.system + && stdenv.targetPlatform.system == stdenv.hostPlatform.system , gnused ? null , cloog # unused; just for compat with gcc4, as we override the parameter on some places , buildPackages @@ -43,11 +49,15 @@ assert langAda -> gnatboot != null; # threadsCross is just for MinGW assert threadsCross != null -> stdenv.targetPlatform.isWindows; -with stdenv.lib; +# profiledCompiler builds inject non-determinism in one of the compilation stages. +# If turned on, we can't provide reproducible builds anymore +assert reproducibleBuild -> profiledCompiler == false; + +with lib; with builtins; let majorVersion = "10"; - version = "${majorVersion}.1.0"; + version = "${majorVersion}.3.0"; inherit (stdenv) buildPlatform hostPlatform targetPlatform; @@ -61,10 +71,9 @@ let majorVersion = "10"; ++ optional langAda ../gnat-cflags.patch ++ optional langFortran ../gfortran-driving.patch ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch - ++ optional (!crossStageStatic && targetPlatform.isMinGW) (fetchpatch { - url = "https://raw.githubusercontent.com/lhmouse/MINGW-packages/${import ../common/mfcgthreads-patches-repo.nix}/mingw-w64-gcc-git/9000-gcc-${majorVersion}-branch-Added-mcf-thread-model-support-from-mcfgthread.patch"; - sha256 = "1in5kvcknlpi9z1vvjw6jfmwy8k12zvbqlqfnq84qpm99r0rh00a"; - }); + + # Obtain latest patch with ../update-mcfgthread-patches.sh + ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch; /* Cross-gcc settings (build == host != target) */ crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt"; @@ -81,12 +90,12 @@ stdenv.mkDerivation ({ src = fetchurl { url = "mirror://gcc/releases/gcc-${version}/gcc-${version}.tar.xz"; - sha256 = "b6898a23844b656f1b68691c5c012036c2e694ac4b53a8918d4712ad876e7ea2"; + sha256 = "0i6378ig6h397zkhd7m4ccwjx5alvzrf2hm27p1pzwjhlv0h9x34"; }; inherit patches; - outputs = [ "out" "man" "info" ] ++ stdenv.lib.optional (!langJit) "lib"; + outputs = [ "out" "man" "info" ] ++ lib.optional (!langJit) "lib"; setOutputFlags = false; NIX_NO_SELF_RPATH = true; @@ -94,9 +103,15 @@ stdenv.mkDerivation ({ hardeningDisable = [ "format" "pie" ]; + postPatch = '' + configureScripts=$(find . -name configure) + for configureScript in $configureScripts; do + patchShebangs $configureScript + done + '' # This should kill all the stdinc frameworks that gcc and friends like to # insert into default search paths. - prePatch = stdenv.lib.optionalString hostPlatform.isDarwin '' + + lib.optionalString hostPlatform.isDarwin '' substituteInPlace gcc/config/darwin-c.c \ --replace 'if (stdinc)' 'if (0)' @@ -105,14 +120,8 @@ stdenv.mkDerivation ({ substituteInPlace libgfortran/configure \ --replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname" - ''; - - postPatch = '' - configureScripts=$(find . -name configure) - for configureScript in $configureScripts; do - patchShebangs $configureScript - done - '' + ( + '' + + ( if targetPlatform != hostPlatform || stdenv.cc.libc != null then # On NixOS, use the right path to the dynamic linker instead of # `/lib/ld*.so'. @@ -130,17 +139,17 @@ stdenv.mkDerivation ({ -e 's|define[[:blank:]]*MUSL_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define MUSL_DYNAMIC_LINKER\1 "${libc.out}\2"|g' done '' - + stdenv.lib.optionalString (targetPlatform.libc == "musl") + + lib.optionalString (targetPlatform.libc == "musl") '' sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR' '' ) else "") - + stdenv.lib.optionalString targetPlatform.isAvr '' - makeFlagsArray+=( - 'LIMITS_H_TEST=false' - ) - ''; + + lib.optionalString targetPlatform.isAvr '' + makeFlagsArray+=( + 'LIMITS_H_TEST=false' + ) + ''; inherit noSysDirs staticCompiler crossStageStatic libcCross crossMingw; @@ -151,11 +160,14 @@ stdenv.mkDerivation ({ # For building runtime libs depsBuildTarget = - if hostPlatform == buildPlatform then [ - targetPackages.stdenv.cc.bintools # newly-built gcc will be used - ] else assert targetPlatform == hostPlatform; [ # build != host == target - stdenv.cc - ]; + ( + if hostPlatform == buildPlatform then [ + targetPackages.stdenv.cc.bintools # newly-built gcc will be used + ] else assert targetPlatform == hostPlatform; [ # build != host == target + stdenv.cc + ] + ) + ++ optional targetPlatform.isLinux patchelf; buildInputs = [ gmp mpfr libmpc libelf @@ -170,20 +182,20 @@ stdenv.mkDerivation ({ depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross; - NIX_LDFLAGS = stdenv.lib.optionalString hostPlatform.isSunOS "-lm -ldl"; + NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl"; preConfigure = import ../common/pre-configure.nix { - inherit (stdenv) lib; - inherit version hostPlatform gnatboot langAda langGo; + inherit lib; + inherit version targetPlatform hostPlatform gnatboot langAda langGo langJit; }; dontDisableStatic = true; - # TODO(@Ericson2314): Always pass "--target" and always prefix. - configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target"; + configurePlatforms = [ "build" "host" "target" ]; configureFlags = import ../common/configure-flags.nix { inherit + lib stdenv targetPackages crossStageStatic libcCross @@ -237,7 +249,7 @@ stdenv.mkDerivation ({ inherit (import ../common/extra-target-flags.nix { - inherit stdenv crossStageStatic libcCross threadsCross; + inherit lib stdenv crossStageStatic libcCross threadsCross; }) EXTRA_FLAGS_FOR_TARGET EXTRA_LDFLAGS_FOR_TARGET @@ -255,7 +267,7 @@ stdenv.mkDerivation ({ meta = { homepage = "https://gcc.gnu.org/"; - license = stdenv.lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+ + license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+ description = "GNU Compiler Collection, version ${version}" + (if stripped then "" else " (with debugging info)"); @@ -268,13 +280,9 @@ stdenv.mkDerivation ({ compiler used in the GNU system including the GNU/Linux variant. ''; - maintainers = with stdenv.lib.maintainers; [ synthetica ]; + maintainers = lib.teams.gcc.members; - platforms = - stdenv.lib.platforms.linux ++ - stdenv.lib.platforms.freebsd ++ - stdenv.lib.platforms.illumos ++ - stdenv.lib.platforms.darwin; + platforms = lib.platforms.unix; }; } |