summaryrefslogtreecommitdiff
path: root/gnu/packages/gcc.scm
AgeCommit message (Collapse)Author
2026-02-15gnu: gccgo-15: Fix build on Hurd.Yelninei
* gnu/packages/patches/gcc-hurd-split-stack.patch: New patch. * gnu/local.mk (dist_patch_DATA): Register patch. * gnu/packages/gcc.scm (gcc-15): Add patch. Change-Id: If5f3b22ffaca3bbf1343e4986cd573213a8b0d12 Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-12-18Update Nguyễn Gia Phong's new email address.Nguyễn Gia Phong
* .mailmap: New entry. Change-Id: I839ba6c7be463c5b59c7e68247ae5e46d2ceeeaf Reviewed-by: Maxim Cournoyer <maxim@guixotic.coop> Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-10-21gnu: Remove gccgo-11.Efraim Flashner
* gnu/packages/gcc.scm (gccgo-11): Delete variable. Change-Id: Idc2313a383ac5a02d3eebbe11f471a0fb862d927 Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-10-21gnu: Remove gccgo-10.Efraim Flashner
* gnu/packages/gcc.scm (gccgo-10): Delete variable. Change-Id: Ic8fb9eaaaddad88378c537815caf8468f5de5be4 Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-10-21gnu: Remove gccgo-4.9.Efraim Flashner
* gnu/packages/gcc.scm (gccgo-4.9): Delete variable. Change-Id: Ia18259e52a40009e1e88ff7f4c62d3be15f10f33 Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-18Reapply "Update Maxim's email address."Maxim Cournoyer
This reverts commit a7db92d9b389cbe565395523882c34c6eff2c21a, this time with the more careful command, to avoid a world rebuild: grep -rl --exclude-dir=build --exclude-dir=patches --exclude=ld-wrapper.in \ --exclude=sitecustomize.py --exclude=guix-emacs.el maxim.cournoyer@gmail.com | xargs sed -i 's/maxim.cournoyer@gmail.com/maxim@guixotic.coop/g' Change-Id: I0871f5cf9ace79e34e78e24154d0da6ea95a3a91
2025-09-18Revert "Update Maxim's email address."Maxim Cournoyer
This reverts commit d0d87a744d724b7e7d5ac013c586039652087bb3. Oops! This caused a world rebuild. Change-Id: I25fff644b2b61d0ee93d69b457b04c72b5b74d15
2025-09-18Update Maxim's email address.Maxim Cournoyer
The change was automated via: git grep -l maxim.cournoyer@gmail.com | xargs sed -i 's/maxim.cournoyer@gmail.com/maxim@guixotic.coop/g' * .mailmap: New entry. Change-Id: Iaa88b1e51c94159c49138fb43910badb990eb169
2025-09-08gnu: gcc-4.8: Fix supported systems list.Efraim Flashner
* gnu/packages/gcc.scm (gcc-4.8)[supported-systems]: Re-add powerpc64le-linux. Change-Id: Icf5d8ceb63f49d2429cd3c10f8eb929c68c39aff
2025-09-08gnu: gcc-4.8: Fix supported systems list.Efraim Flashner
* gnu/packages/gcc.scm (gcc-4.8)[supported-systems]: Re-add powerpc64le-linux. Change-Id: I7cb69a6320fb19b2cbc07c1099f6937f351948ff
2025-09-08gnu: gcc-5: Fix supported systems list.Efraim Flashner
This is a follow-up to 926225ec3eb990988f3b7eeeefc78c6c971d5b11. * gnu/packages/gcc.scm (gcc-5)[supported-systems]: Re-add powerpc64le-linux. Change-Id: I90ad75944605b457935f3d831181b3c96469ac54
2025-09-08gnu: gcc-4.8: Unbreak embedded builds.Efraim Flashner
* gnu/packages/gcc.scm (gcc-4.8)[arguments]: When cross-compiling don't adjust the inherited modules. Change-Id: Idbe1b6c4a3c2e9d1fe0ca5b1e9fa922080e9de86
2025-09-08gnu: gcc-4.9: Unbreak embedded builds.Efraim Flashner
Reported by Ludovic Courtès <ludo@gnu.org>. * gnu/packages/gcc.scm (gcc-4.9)[arguments]: When cross-compiling don't adjust the inherited modules. Change-Id: I763746c25a8f24f89db8c6b100a6395b816cbcaf
2025-09-08gnu: gcc-4.8: Use less inheritance.Efraim Flashner
* gnu/packages/gcc.scm (gcc-4.8)[arguments]: Take the version specific configure-flag from gcc-base. [supported-systems]: Update supported systems. (gcc-base)[arguments]: Remove version specific configure-flag logic. Change-Id: I9104cdc81d5caae4c3310e1c8d3821e0509f928e Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2025-09-08gnu: gcc-4.9: Inherit from gcc-base.Efraim Flashner
* gnu/packages/gcc.scm (gcc-4.9): Inherit from gcc-base. [arguments]: Add inherited phases. Take the version specific configure-flag from gcc-base. [inputs]: List specifically. [supported-systems]: New field. Change-Id: Iff481ef403faff7047bcb7a27cc13833d98e5de7 Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2025-09-08gnu: gcc-5: Inherit from gcc-base.Efraim Flashner
* gnu/packages/gcc.scm (gcc-5): Inherit from gcc-base. [arguments]: Add inherited phases. Take the version specific configure-flag from gcc-base. [native-inputs]: List specifically. [supported-systems]: New field. Change-Id: I8fd89cda090a69f4a60891e8c387beb416d250ad Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2025-09-08gnu: gcc-6: Inherit from gcc-base.Efraim Flashner
* gnu/packages/gcc.scm (gcc-6): Inherit from gcc-base. [native-inputs]: List specifically. Change-Id: Id8606c49b4f19f46a84a6c105e4f90a506b198bf Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2025-09-08gnu: gcc-7: Inherit from gcc-base.Efraim Flashner
* gnu/packages/gcc.scm (gcc-7): Inherit from gcc-base. [native-inputs]: Add explicitly. [inputs]: Add explicitly. Change-Id: Id982ecb81ec774121858251723341f89507f0332 Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2025-09-08gnu: gcc-4.7: Break out into its own package.Efraim Flashner
* gnu/packages/gcc.scm (gcc-4.7): Rename to gcc-base. (gcc-4.7): New package, inherit from gcc-base. [source]: Add snippet to fix building with newer glibc. [arguments]: Add phase to adjust the C++ include path when not cross-building. [supported-systems]: Update supported systems. (gcc-4.8, gcc-4.9, gcc-6): Inherit from gcc-base. (base-gcc)[supported-systems]: Remove field. * gnu/packages/embedded.scm (make-propeller-gcc-4): Inherit from gcc-base. Change-Id: I843049420e2afcf1ea342e87eaa9ac46576e4307 Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2025-09-01gnu: gcc@12: Update to 12.5.0.fanquake
* gnu/packages/gcc.scm (gcc-12): Update to 12.5.0. Signed-off-by: Andreas Enge <andreas@enge.fr>
2025-08-26gnu: gdc: Fix build.Maxim Cournoyer
* gnu/packages/gcc.scm (gdc): Add gdc-11 (and gcc) to native inputs. Fixes: #1460 Co-authored-by: Dariqq <dariqq@posteo.net> Change-Id: I1d25704829d48a9819cc493e227b050083b18ea4
2025-08-26gnu: Remove gdc-toolchain-10.Maxim Cournoyer
* gnu/packages/commencement.scm (gdc-toolchain-10): Delete variable. Change-Id: I0862bd93ae6fea8a50889990db454485b6f22513
2025-08-15gnu: gcc-15: Update to 15.2.0.Zheng Junjie
* gnu/packages/gcc.scm (gcc-15): Update to 15.2.0. Change-Id: Idfb116056b57406ddb746c0e0583adad284296ae Signed-off-by: Greg Hogan <code@greghogan.com>
2025-08-06gnu: gcc: Update recognized micro-architectures.Efraim Flashner
* gnu/packages/gcc.scm (%gcc-13-x86_64-micro-architectures): Add lujiazui. (%gcc-14-x86_64-micro-architectures): Add yongfeng. (%gcc-14-aarch64-micro-architectures, %gcc-14-ppc64le-micro-architectures, %gcc-15-aarch64-micro-architectures, %gcc-15-x86_64-micro-architectures): New variables. (gcc-14)[properties]: Update compiler-cpu-architectures. (gcc-15)[properties]: Same. Change-Id: Iac85a691c577aadd24e073d70621d0dea69e43f2
2025-07-18gnu: libstdc++: Fix build for gcc-13.Zheng Junjie
* gnu/packages/gcc.scm (make-libstdc++)[arguments]: use patch-tzdb.cc phase for gcc >= 13. Change-Id: I6e8ae4b973e80c11d67b7333ec2dfa732d1d016a
2025-07-18gnu: gcc: Fix compilation of libstdc++ for GCC 7 to 13.Ludovic Courtès
With the introduction of GCC 14 as the default compiler, compilation of libstdc++ of all previous versions would fail due to a different signature for ‘__cxa_call_terminate’ (a builtin in GCC 14). This fixes it. * gnu/packages/patches/gcc-libstdc++-newer-gcc.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/gcc.scm (gcc-7, gcc-8, gcc-9, gcc-10) (gcc-11, gcc-12, gcc-13): Use it. Change-Id: I84dc26e46d56259d7d610f19b0521fa9c5499d5e
2025-07-18gnu: gcc-6: Use libstdc++ headers appropriate for each GCC.Leo Nikkilä
After the "hack" introduced for <https://issues.guix.gnu.org/42392>, all GCCs are built with the current GCC's libstdc++ headers. This results in subtly broken C++ headers in older versions, which aren't necessarily compatible with libstdc++s from other versions. For example, this test case works with GCC 11: $ guix shell --container --emulate-fhs --pure -e '(@ (gnu packages gcc) gcc)' binutils -- sh -c 'echo -e "#include <cmath>\nint main() { return std::isnan(0); }" | g++ -x c++ -; echo $?' 0 but fails with GCC 9: $ guix shell --container --emulate-fhs --pure -e '(@ (gnu packages gcc) gcc-9)' binutils -- sh -c 'echo -e "#include <cmath>\nint main() { return std::isnan(0); }" | g++ -x c++ -; echo $?' In file included from /gnu/store/gkh2rljdrnj24q1q7baa6bhb119251w4-profile/include/c++/cmath:45, from <stdin>:1: <stdin>: In function 'int main()': <stdin>:2:26: error: '__builtin_isnan' is not a member of 'std'; did you mean '__builtin_isnan'? <built-in>: note: '__builtin_isnan' declared here 1 This specific error can be traced back to the GCC build, where GCC 10 and 11 are configured with: checking for ISO C99 support in <math.h> for C++11... yes but GCC 9 is configured with: checking for ISO C99 support in <math.h> for C++11... no The configure check fails due to errors like these due to the mismatched libstdc++: configure:17817: checking for ISO C99 support in <math.h> for C++11 […] In file included from /gnu/store/y3kk0ybf7hqwndl8xpm61r4a5b3lhwix-libstdc++-11.4.0/include/cmath:41, from /gnu/store/y3kk0ybf7hqwndl8xpm61r4a5b3lhwix-libstdc++-11.4.0/include/math.h:36, from conftest.cpp:41: /gnu/store/y3kk0ybf7hqwndl8xpm61r4a5b3lhwix-libstdc++-11.4.0/include/bits/c++config.h:491:18: error: missing binary operator before token "(" 491 | #if __has_builtin(__builtin_is_constant_evaluated) | ^ Updating libstdc++ to reference each GCC works around this. * gnu/packages/gcc.scm (libstdc++, libstdc++-headers): Remove variables. (make-libstdc++-headers): New procedure. (gcc-6)[native-inputs]: Use it with `this-package'. Change-Id: Ie05878c83860c4ccc29d66b916d11613e367e142 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Modified-by: Ludovic Courtès <ludo@gnu.org>
2025-07-18gnu: gcc-4.7: Fix slash in startfile prefix.Leo Nikkilä
These prefixes must have a trailing slash. When this slash is omitted, gcc fails to find ?crt*.o files when LIBRARY_PATH is not set. Fixes #75483, see <https://issues.guix.gnu.org/75483>. * gnu/packages/gcc.scm (gcc-4.7): Fix replaced startfile prefix. [arguments]: <#:phases>: Fix it. Change-Id: I1988e0bf98b0002e83e0c0233310d05b72644ac9 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-07-18gnu: gcc: Update gcc, gcc-toolchain, libgccjit to 14.Janneke Nieuwenhuizen
* gnu/packages/gcc.scm (gcc): Define as gcc-14 for all. (libgccjit): Define as libgccjit-14. * gnu/packages/commencement.scm (gcc-toolchain): Define as gcc-toolchain-14 for all. * gnu/packages/gcc.scm Change-Id: Iaac983da8acbbb2fd1088a0469d6115b7d424dbb
2025-07-18gnu: gcc-11: Update to 11.5.0; fixes build with gcc-14.Janneke Nieuwenhuizen
* gnu/packages/gcc.scm (gcc-11): Update to 11.5.0. Change-Id: I57b0ab94e733ab9eb2ad226b5fcbc951860a48c3
2025-07-18gnu: gcc-4.7: Add gcc-wrapper from gcc-final.Janneke Nieuwenhuizen
* gnu/packages/commencement.scm (gcc-boot0)[arguments]: Remove CC_FOR_BUILD strictness relaxing from #:make-flags. (gcc-final)[arguments]: Move stage "create-stage-wrapper" and related settings in #:configure-flags and #:make-flags to... * gnu/packages/gcc.scm (gcc-4.7)[arguments]: ...new "relax-gcc-14s-strictness stage here. Change-Id: I0c372a4f372281b54e44dd446b6e5ddac5841c5a
2025-07-18gnu: libstdc++: Fix build for linux with gcc-14.Janneke Nieuwenhuizen
* gnu/packages/gcc.scm (make-libstdc++)[arguments]: Rename stage "patch-hurd64 to "patch-tzdb.cc and use for gcc >= 14 unrestrictedly. Change-Id: Icaf0a31744dc6102d96444f531f3ba1878a61b6c
2025-06-24gnu: gcc-14: Update to 14.3.0.Janneke Nieuwenhuizen
* gnu/packages/gcc.scm (gcc-14): Update to 14.3.0. Change-Id: I50b3c47f1e1c80129e2aee7a37e0fa6c57a3f9fc Signed-off-by: Zheng Junjie <z572@z572.online>
2025-05-19gnu: Add gm2-toolchain.Danny Milosavljevic
* gnu/packages/commencement.scm (gm2-toolchain): New variable. * gnu/packages/gcc.scm (gm2): New variable. Change-Id: I0f416b53497daeec60dcefc3916591ea8a152dae
2025-05-04gnu: Add gcc-15.Zheng Junjie
* gnu/packages/gcc.scm (gcc-15, gccgo-15, libgccjit-15): New variable. * gnu/packages/commencement.scm (gcc-toolchain-15): New variable. Change-Id: I55e49e61626e8419ac936d1c5d241a586eaca47f Signed-off-by: Zheng Junjie <z572@z572.online>
2025-01-25gnu: isl: Fix build to loongarch64.Zheng Junjie
* gnu/packages/gcc.scm (isl)[arguments]: When target is loongarch64, Add update-config-scripts phase. [native-inputs]: When target is loongarch64, Add config. Change-Id: If60b28f64dd3285f5b89000c42e714be07876400
2024-12-03gnu: Use gcc-14, gcc-toolchain-14 on the 64bit Hurd.Janneke Nieuwenhuizen
This enables building packages in a 64bit childhurd. It will not enable offloading to a childhurd. * guix/utils.scm (host-hurd?, host-x86-64, host-hurd64?): New procedures. * gnu/packages/commencement.scm (gcc-toolchain): Use them to determine if the host is a 64bit Hurd, and use gcc-toolchain-14. * gnu/packages/gcc.scm (gcc): Likewise, to use gcc-14. Change-Id: I55e43fdc61e3ea5fc13065fc7ca854b951c94930
2024-12-03gnu: gcc-14: Force libdir /lib instead of /lib64 for the 64bit Hurd.Janneke Nieuwenhuizen
* gnu/packages/gcc.scm (gcc-14)[arguments]: In stage "pre-x86-configure", also patch "gcc/config/i386/t-gnu64". Change-Id: Ib2607c5f315c49696596fdcbcbbcc2895b6a9775
2024-12-03gnu: libstdc++: Support the 64bit Hurd.Janneke Nieuwenhuizen
* gnu/packages/gcc.scm (make-libstdc++)[arguments]: When building for the 64bit Hurd, add stage patch-hurd64. Change-Id: I795a591ef8282ee5b760fec43bd4ad849007f602
2024-10-15gnu: gcc@9: Add libsanitizer fsconfig command patch.Rutherther
Since newer glibc version there is a conflict in names between kernel module and glibc module. This uses a patch that was used upstream in llvm to bypass it. Without this, the build fails with a redefinition error. * gnu/packages/gcc.scm (gcc-9)[source]: Add ‘gcc-7-libsanitizer-fsconfig-command.patch’. Change-Id: Ibb8446b7bba52f72d82fcf69804cae09215daeed Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-09-30gnu: gcc-14: Add tuning target.Efraim Flashner
* gnu/packages/gcc.scm (%gcc-14-x86_64-micro-architectures): New variable. (gcc-14)[properties]: Use it. Change-Id: I00f9e2a4c9d590f97977275b157002ac330b895b
2024-09-19gnu: make-libiberty: Build with -fPIC.Nguyễn Gia Phong
Since iberty is a static library, linking a PIC-enabled target to it requires it to also have been built with PIC. (The target is Dyninst in this case.) This `-fPIC' flag is appended to the default CFLAGS of `-O2 -g'. * gnu/packages/gcc.scm (make-libiberty)[arguments]: Adjust make-flags to add -fPIC to CFLAGS. Change-Id: I155045d05f4434cb68be933a95b7bc9fdec98818 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-09-19gnu: make-libiberty: Install the header demangle.h.Nguyễn Gia Phong
This header is wanted by Dyninst. * gnu/packages/gcc.scm (make-libiberty): Add include/demangle.h to install phase. Change-Id: I01235071b75b412f55785d240cda248315b7a93e Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-09-17gnu: gcc@8: Add missing patch.Ludovic Courtès
This fixes compilation with glibc 2.39. * gnu/packages/gcc.scm (gcc-8)[source]: Add “gcc-7-libsanitizer-fsconfig-command.patch”. Change-Id: If8f99972278b90f37e104da3b3ca414be6f34140
2024-09-17gnu: libgccjit: Remove duplicate libgccjit@11 package.Ludovic Courtès
Fixes a regression introduced in bfeccd3db9446d45d04d9144698506a61321e1c6 and caught by ‘tests/packages.scm’, whereby two equivalent but not ‘eq?’ libgccjit@11 packages would be exported. * gnu/packages/gcc.scm (libgccjit): Make an alias for ‘libgccjit-11’. Change-Id: I9aeacb7588af5f78af0941e80715665572567958
2024-08-31gnu: gcc-6: Fix libsanitizer build.Josselin Poiret
* gnu/packages/gcc.scm (gcc-6, gcc-5): Also apply gcc-7's libsanitizer patch. Change-Id: I2f5699480574721dc32389b7c2c3c45043d28b51
2024-08-31gnu: gcc: Patch crypt out of bundled libsanitizer.Josselin Poiret
* gnu/packages/patches/gcc-10-libsanitizer-no-crypt.patch: * gnu/packages/patches/gcc-12-libsanitizer-no-crypt.patch: * gnu/packages/patches/gcc-13-libsanitizer-no-crypt.patch: New patches. * gnu/local.mk (dist_patch_DATA): Register them. * gnu/packages/gcc.scm (gcc-10, gcc-11, gcc-12, gcc-13): Use them. Change-Id: Idc450c5a468e07c4ea78c8ca7bb1c5ee379231bb
2024-08-31gnu: gcc: Simplify application of Hurd-specific pthread patch.Josselin Poiret
* gnu/packages/gcc.scm (gcc-11): Apply gcc-11-libstdc++-hurd-libpthread.patch unconditionally. (gcc-12): Also apply gcc-11-libstdc++-hurd-libpthread.patch. Change-Id: I80e2b2adb5636e1bff4536c5a0a348955454e81d
2024-08-31gnu: gcc@7: Allow compilation with glibc 2.38.Ludovic Courtès
* gnu/packages/patches/gcc-7-libsanitizer-fsconfig-command.patch: New file. * gnu/packages/gcc.scm (gcc-7)[source]: Use it. * gnu/local.mk (dist_patch_DATA): Add it. Change-Id: Ifa273b92573281c34d83e5fb8cd68734ef02c7fd
2024-08-31gnu: gcc: Support objc, objc++ by default.Efraim Flashner
* gnu/packages/gcc.scm (gcc-4.7)[configure-flags]: Adjust the enable-languages flag to also enable objc, obj-c++. (gcc-objc-4.8, gcc-objc-4.9, gcc-objc-5, gcc-objc-6, gcc-objc-7, gcc-objc-8, gcc-objc-9, gcc-objc-10, gcc-objc-11, gcc-objc-12, gcc-objc, gcc-objc++-4.8, gcc-objc++-4.9, gcc-objc++-5, gcc-objc++-6, gcc-objc++-7, gcc-objc++-8, gcc-objc++-9, gcc-objc++-10, gcc-objc++-11, gcc-objc++-12, gcc-objc++, %objc-search-paths, %objc++-search-paths): Remove variables. * guix/search-paths.scm ($OBJC_INCLUDE_PATH, $OBJCPLUS_INCLUDE_PATH): New variables. (%gcc-search-paths): Include $OBJC_INCLUDE_PATH, $OBJCPLUS_INCLUDE_PATH. Change-Id: Ib4cd176eb88c733a82f2d31e8cc45b9c61720f8f