121 Commits

Author SHA1 Message Date
sempiternal-aurora 1526eeed3a gnat13: reapply trampoline patch 2026-07-15 21:38:53 +12:00
sempiternal-aurora c0afb7f40d gnat: remove old unused gnat patch 2026-07-15 21:38:40 +12:00
sempiternal-aurora 1f0b98a288 gcc: 15.2.0 -> 15.3.0
https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=15.3
2026-07-15 16:29:36 +12:00
sempiternal-aurora 1456003393 gcc14: 14.3.0 -> 14.4.0
https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=14.4
2026-07-15 16:27:17 +12:00
Emily 225552310a gcc16: add Darwin patches 2026-07-15 16:27:17 +12:00
Emily a6845cb0d6 gcc: always apply Darwin patches for Darwin targets
The upstream issue was fixed, the branch has changes relevant to
`x86_64-darwin` too, and you don’t really want to target Darwin
without these patches.

We reorder the deployment target patch after the patches, as they touch
the same file, and apply it on AArch64 for all versions (but for Darwin
targets rather than hosts, which should be the relevant case anyway).

Co-Authored-By: sempiternal-aurora <78790545+sempiternal-aurora@users.noreply.github.com>
2026-07-15 16:27:15 +12:00
Emily 28aa84b964 gcc: drop Darwin Ada patches
I’m pretty sure these should no longer be required after the
toolchain update and SDK rework.
2026-07-15 16:21:20 +12:00
Emily 400c70ff32 gcc: remove unused Darwin patch file
Fixes: 02eb6d0571
2026-07-15 16:21:19 +12:00
Emily f7f32bfe21 Revert "gcc15: 15.2.0 -> 15.3.0"
Broke `aarch64-linux` and Darwin. Reverting pending fixes.

This reverts commit 7049a93a44.
2026-06-26 10:12:56 +01:00
liberodark 7049a93a44 gcc15: 15.2.0 -> 15.3.0 2026-06-17 08:18:32 +02:00
sempiternal-aurora 10eb89c978 gnat13: fix patch evaluation
The patch only applies on top of the iains gcc patchset, as it modifies
the abi added by that patchset.
2026-06-01 15:12:32 +10:00
zinzilulo 481208bdff cc-wrapper, gcc, gnat, gnat-bootstrap: fix GCC 13 and GNAT 13/14/15 builds on darwin 2026-05-27 18:35:39 +01:00
Sergei Trofimovich 5af8e1ffe0 gcc16, gccgo16, gfortran16, gnat16: init at 16.1.0
Changes: https://gcc.gnu.org/gcc-16/changes.html
Porting guide: https://gcc.gnu.org/gcc-16/porting_to.html

Added logic to avoid evaluation of gnatprove on gnat16, as it isn't
ported to that compiler version yet.

Co-authored-by: sempiternal-aurora <78790545+sempiternal-aurora@users.noreply.github.com>
2026-05-14 23:36:55 +10:00
Alyssa Ross 0127c8be00 gcc: drop obsolete Musl Go patches (#519064) 2026-05-12 13:01:56 +00:00
Eman Resu 5f7ff1085a gcc: pass result of lib.systems.equals around rather than recomputing 2026-05-11 19:27:43 -04:00
Emily c18d40d4e5 gcc: drop obsolete Musl Go patches
These are present in GCC 13, GCC 12 was removed, and `pkgsMusl.gccgo`
fails to evaluate right now anyway.
2026-05-11 16:42:43 +01:00
Aleksi Hannula 82c6fd5344 pkgsi686Linux.pkgsMusl.gcc: Use libssp_nonshared from musl
This may not have visible effects until #494106 is merged. This is
because this build is blocked by the exact same issue in
minimal-bootstrap gcc, which causes perl to fail on this specific
platform.
2026-03-04 10:28:12 +02:00
Philip Taron c0988ed534 libhwy: 1.0.7 -> 1.3.0, gcc15: backport aarch64 ICE on vreg split (#320616) 2026-01-22 00:19:56 +00:00
Sergei Trofimovich 7e3600b5fa gcc15: backport aarch64 ICE on vreg split
Without the change `libhwy-1.3.0` fails as:

    libhwy-aarch64-unknown-linux-gnu> /build/source/hwy/contrib/random/random-inl.h: In function 'hwy::N_SVE2::VectorXoshiro::VectorXoshiro(uint64_t, uint64_t)':
    libhwy-aarch64-unknown-linux-gnu> /build/source/hwy/contrib/random/random-inl.h:199:3: error: unrecognizable insn:
    libhwy-aarch64-unknown-linux-gnu>   199 |   }
    libhwy-aarch64-unknown-linux-gnu>       |   ^
    libhwy-aarch64-unknown-linux-gnu> (insn 18 4 19 2 (set (reg:TI 154 [ D.606722 ])
    libhwy-aarch64-unknown-linux-gnu>         (subreg:TI (const_vector:V2DI [
    libhwy-aarch64-unknown-linux-gnu>                     (const_int 4 [0x4])
    libhwy-aarch64-unknown-linux-gnu>                     (const_poly_int:DI [2, 2])
    libhwy-aarch64-unknown-linux-gnu>                 ]) 0)) "/build/source/hwy/contrib/random/random-inl.h":183:9 -1
    libhwy-aarch64-unknown-linux-gnu>      (nil))
    libhwy-aarch64-unknown-linux-gnu> during RTL pass: vregs
    libhwy-aarch64-unknown-linux-gnu> /build/source/hwy/contrib/random/random-inl.h:199:3: internal compiler error: in extract_insn, at recog.cc:2882
    libhwy-aarch64-unknown-linux-gnu> 0x233d5bb diagnostic_context::diagnostic_impl(rich_location*, diagnostic_metadata const*, diagnostic_option_id, char const*, __va_list_tag (*) [1], diagnostic_t)

Co-authored-by: Philip Taron <philip.taron@gmail.com>
2026-01-21 06:42:19 +00:00
Vladimír Čunát 57d9ca5d49 Merge branch 'master' into staging 2026-01-08 12:47:15 +01:00
Vladimír Čunát 6ea24aa5c3 gcc14: fixup build on aarch64-darwin
https://hydra.nixos.org/build/317993814
Same for gfortran14 and perhaps other derivatives.
This is a partial revert of 385a5e2917 from PR #461497
(with added comment to explain)
2026-01-08 07:57:17 +01:00
Maximilian Bosch 00105a15ea gcc13,gcc14: fix build w/ glibc-2.42 2025-12-30 14:57:14 +01:00
Sergei Trofimovich df4f7ea710 gcc: don't apply c++tools --enable-default-pie patch for gcc-16+
The patch is already applied upstream at https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=3f1f99ef82a65d66e3aaa429bf4fb746b93da0db
and causes conflict when applied on top of current git master as:

    xgcc> applying patch /nix/store/kxfa7n7k3clgw13yafj5irj51gk2w3dg-c++tools-dont-check-enable-default-pie.patch
    xgcc> patching file c++tools/configure
    xgcc> Reversed (or previously applied) patch detected!  Assume -R? [n]
    xgcc> Apply anyway? [n]
    xgcc> Skipping patch.
    xgcc> 3 out of 3 hunks ignored -- saving rejects to file c++tools/configure.rej
    xgcc> patching file c++tools/configure.ac
    xgcc> Reversed (or previously applied) patch detected!  Assume -R? [n]
    xgcc> Apply anyway? [n]
    xgcc> Skipping patch.
    xgcc> 1 out of 1 hunk ignored -- saving rejects to file c++tools/configure.ac.rej
2025-12-17 12:08:33 +00:00
dramforever 48878a8096 gcc{14,15}: Pick c++tools --enable-default-pie patch 2025-12-13 13:39:07 +08:00
Vladimír Čunát 355876da68 gcc15: fix build on aarch64-darwin (#461497) 2025-12-08 09:33:12 +00:00
David McFarland 22144b94ae gcc: remove unix define on cygwin
This breaks compilation of nix, because it uses 'namespace unix'.  Other
platforms currently do something similar to this.
2025-12-05 15:56:17 -04:00
Ben Siraphob 385a5e2917 gcc15: fix build on aarch64-darwin
This fixes the GCC 15.2.0 build on aarch64-darwin by addressing two issues
in the libgcc build process:

1. Update libgcc-darwin-detection.patch:
- Catch arm64-apple-darwin (which lacks a version number)
- Add t-darwin-libgccs1 to enable libgcc_s.1.dylib compatibility build

2. Added libgcc-darwin-fix-reexport.patch:
- Remove reexport of darwin-unwind.ver symbols in libgcc_s.1.dylib
- These symbols (___register_frame_info, etc.) don't exist in libgcc
  on modern macOS as they come from libSystem

The original build failed with:
  Undefined symbols for architecture arm64:
    "___deregister_frame_info", referenced from:
       -reexported_symbols_list command line option
    ...

This occurred because darwin-unwind.ver lists unwinder symbols that are
excluded from libgcc (via libgcc-libsystem.ver) on macOS 11+ where they
are provided by the system's libSystem.
2025-11-14 00:08:40 -08:00
nixpkgs-ci[bot] ce0844a584 Merge master into staging-next 2025-10-15 12:55:06 +00:00
Marie Ramlow 06e1588e57 gcc: drop libstdc++ patch
This patch was introduced in 2010 to fix mingw compilers.
See c548c084bb
It no longer applies to gcc15 and all of our current gccs (13, 14 and 15)
build fine without it.

Tested the following cross-compilers:
```shell
nix-build --expr 'with (import ./. { }).pkgsCross.mingwW64; hello.override { stdenv = gcc13Stdenv; }' \
          --expr 'with (import ./. { }).pkgsCross.mingwW64; hello.override { stdenv = gcc14Stdenv; }' \
          --expr 'with (import ./. { }).pkgsCross.mingwW64; hello.override { stdenv = gcc15Stdenv; }' \
          --expr 'with (import ./. { }).pkgsCross.mingw32; hello.override { stdenv = gcc13Stdenv; }' \
          --expr 'with (import ./. { }).pkgsCross.mingw32; hello.override { stdenv = gcc14Stdenv; }' \
          --expr 'with (import ./. { }).pkgsCross.mingw32; hello.override { stdenv = gcc15Stdenv; }'
```
2025-10-07 10:28:13 +02:00
Wolfgang Walther 5e1f5b623b Merge branch 'staging-next' into staging 2025-10-05 11:40:56 +02:00
Wolfgang Walther 91a8fee3aa treewide: remove redundant parentheses
Auto-fixed by nixf-diagnose.
2025-10-05 10:52:03 +02:00
David McFarland b8cf634aa1 Revert "treewide: undo changes causing rebuilds"
This reverts commit e098bea39d.
2025-09-30 19:05:25 -03:00
David McFarland e098bea39d treewide: undo changes causing rebuilds 2025-09-27 21:21:48 -03:00
David McFarland 0db0ac301a gcc: fix cross-win32 build of libstdc++ 2025-09-27 13:33:44 -03:00
David McFarland d4217f410f gcc: fix cross-cygwin build 2025-09-27 13:33:44 -03:00
K900 e9a7500b70 Merge remote-tracking branch 'origin/master' into staging-next 2025-08-23 09:24:59 +03:00
Emily f3186c5958 {gcc12,gfortran12,gccgo12,gnat12,gnat-bootstrap12}: drop
EOL as of July; no longer used in the tree.
2025-08-22 23:01:59 +01:00
Emily 10ce2b4791 {gcc11,gfortran11,gdc11,gnat11,gnat-bootstrap11}: drop
EOL since 2024; no longer used in the tree.
2025-08-22 23:01:59 +01:00
Emily b5a4a0a6cc {gdc,gdmd}: drop
GDC 11 was the last version that could bootstrap without a D compiler,
and GDC don’t offer their own binaries any more. GCC 11 is now
end‐of‐life and being removed (as is GCC 12, even).

It’s possible that we could use another distribution’s binary
packages to bootstrap this, or go via our DMD package (it’s
apparently not possible to bootstrap GDC with LDC, but I’m not sure
about DMD), but as nobody has worked on it in the three years since
GCC 12 came out, it seems like interest is limited, and it’s more
of a yak shave than I’m up for right now.

A full from‐source bootstrap chain would of course be nice, but is
more the realm of the minimal bootstrap work than something we’d
want to keep GCC 11 around in the main package set indefinitely for.
2025-08-22 23:01:59 +01:00
Emily 4e7ee62b94 {gcc10,gfortran10}: drop
EOL since 2023; no longer used in the tree.
2025-08-22 23:01:59 +01:00
Emily 2a196a7278 {gcc9,gfortran9}: drop
EOL since 2022; no longer used in the tree.
2025-08-22 23:01:59 +01:00
Emily b8f75c8f75 gcc: clean up unused patches 2025-08-22 23:01:59 +01:00
nixpkgs-ci[bot] 11f1819945 Merge staging-next into staging 2025-08-06 12:08:36 +00:00
Sergei Trofimovich 02eb6d0571 gcc13: 13.3.0 -> 13.4.0
Changes: https://sourceware.org/pipermail/gcc/2025-June/246131.html
2025-08-03 09:42:51 +02:00
Emily a413c6f5b4 cc-wrapper: use -fmacro-prefix-map to scrub __FILE__ references
This accomplishes the same thing as `sanitiseHeaderPathsHook`, but
applies to every build input and should have fewer side effects.
2025-07-29 18:32:43 +01:00
Alexander Bantyev f484086997 gcc: download patch instead of storing it in-tree
A backport of a fix for GCC bug 80431 was stored in-tree, while it is
available to download from the GCC upstream.

The advantage of fetching the patch is more obvious provenance.
2025-06-03 18:43:41 +04:00
Silvan Mosberger ac165bd9b7 gcc: Remove unnecessary patch update script
The patch is in recent gcc versions
2025-06-03 18:43:41 +04:00
Silvan Mosberger 6b1a63dd48 gcc: Fetch a patch instead of having it locally
This unfortunately unavoidably causes a rebuild
2025-06-03 18:43:41 +04:00
Silvan Mosberger 1636888349 gcc: Switch a patch to the upstream source
Same exact patch, just from upstream instead
2025-06-03 18:43:40 +04:00
Silvan Mosberger a9d7c5ee5f gcc: Add missing patch comments
Co-authored-by: Alexander Bantyev <alexander.bantyev@moduscreate.com>
2025-06-03 18:43:40 +04:00