summary refs log tree commit diff
path: root/gnu/packages/gcc.scm
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2018-01-02 23:44:20 +0200
committerEfraim Flashner <efraim@flashner.co.il>2018-01-05 16:37:09 +0200
commit6149fdfb5e97e3598e08b6516a96d647a14f03a6 (patch)
tree710daa7545fe0f77e0687f40e1901cbba8d2d612 /gnu/packages/gcc.scm
parent247d23680a222bc5440dec7c3fe0d36ad463a121 (diff)
downloadguix-6149fdfb5e97e3598e08b6516a96d647a14f03a6.tar.gz
gnu: gcc@6: Fix building with glibc@2.26.
* gnu/packages/gcc.scm (gcc@6)[source]: Add snippet to adjust
linux-unwind.h to changes in glibc@2.26.  Add patch.
* gnu/packages/patches/gcc-libsanitizer-fix.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
Diffstat (limited to 'gnu/packages/gcc.scm')
-rw-r--r--gnu/packages/gcc.scm17
1 files changed, 15 insertions, 2 deletions
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 020d2a7138..350a9bd3fb 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -444,10 +444,23 @@ Go.  It also includes runtime support libraries for these languages.")
               (sha256
                (base32
                 "1m0lr7938lw5d773dkvwld90hjlcq2282517d1gwvrfzmwgg42w5"))
-              (patches (search-patches "gcc-strmov-store-file-names.patch"
+              (patches (search-patches "gcc-libsanitizer-fix.patch"
+                                       "gcc-strmov-store-file-names.patch"
                                        "gcc-6-source-date-epoch-1.patch"
                                        "gcc-6-source-date-epoch-2.patch"
-                                       "gcc-5.0-libvtv-runpath.patch"))))
+                                       "gcc-5.0-libvtv-runpath.patch"))
+              (modules '((guix build utils)))
+              ;; This is required for building with glibc-2.26.
+              ;; This can be removed when gcc-6.5.0 is released.
+              ;; https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81712
+              (snippet
+               '(for-each
+                  (lambda (dir)
+                    (substitute* (string-append "libgcc/config/"
+                                                dir "/linux-unwind.h")
+                      (("struct ucontext") "ucontext_t")))
+                  '("aarch64" "alpha" "bfin" "i386" "m68k" "nios2"
+                    "pa" "sh" "tilepro" "xtensa")))))
     (inputs
      `(("isl" ,isl)
        ,@(package-inputs gcc-4.7)))))