diff options
author | John Ericson <John.Ericson@Obsidian.Systems> | 2023-01-13 08:30:20 -0500 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2023-01-14 22:33:57 -0500 |
commit | d6d18979043b65685de9163743558ece2365d18f (patch) | |
tree | a9d93b33cab4748ac13a9c9b0911ec8696bbfa6d /pkgs/development/compilers/gcc/10/default.nix | |
parent | 0a9df042f23bda9187c24c13ab1e5f56b09b665a (diff) |
gcc: Backport fix of GCC Issue 80431 from version 12
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80431 This bug annoys me because I hit it when working on Nix. It causes miscompilations in such a way that I am hard-pressed to think how a program could inadvertainly rely on the bug (such that it would be broken by the fix). The bug is longstanding, and the (quite small) applies without modification to many older GCCs. I have confirmed by running the test in that commit that does indeed fix the bug with the backports too.
Diffstat (limited to 'pkgs/development/compilers/gcc/10/default.nix')
-rw-r--r-- | pkgs/development/compilers/gcc/10/default.nix | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/pkgs/development/compilers/gcc/10/default.nix b/pkgs/development/compilers/gcc/10/default.nix index e4cebab266e84..373c35f4b4fec 100644 --- a/pkgs/development/compilers/gcc/10/default.nix +++ b/pkgs/development/compilers/gcc/10/default.nix @@ -51,8 +51,14 @@ let majorVersion = "10"; inherit (stdenv) buildPlatform hostPlatform targetPlatform; - patches = [ ] - ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch + patches = [ + # Fix https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80431 + (fetchurl { + name = "fix-bug-80431.patch"; + url = "https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=de31f5445b12fd9ab9969dc536d821fe6f0edad0"; + sha256 = "0sd52c898msqg7m316zp0ryyj7l326cjcn2y19dcxqp15r74qj0g"; + }) + ] ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch ++ optional noSysDirs ../no-sys-dirs.patch ++ optional (noSysDirs && hostPlatform.isRiscV) ../no-sys-dirs-riscv.patch /* ++ optional (hostPlatform != buildPlatform) (fetchpatch { # XXX: Refine when this should be applied |