summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/gcc
diff options
context:
space:
mode:
authorMaciej Wójcik <w8jcik@gmail.com>2023-03-08 22:29:57 +0100
committerGitHub <noreply@github.com>2023-03-08 22:29:57 +0100
commitee5b2936e4783c9e8d7ce353452ed06953bbd612 (patch)
treebaa93a268d56be5768725524a73a53aa37b0a657 /var/spack/repos/builtin/packages/gcc
parentf7a6446d3faffb8168ee0f88672d76499dc9249c (diff)
downloadspack-ee5b2936e4783c9e8d7ce353452ed06953bbd612.tar.gz
spack-ee5b2936e4783c9e8d7ce353452ed06953bbd612.tar.bz2
spack-ee5b2936e4783c9e8d7ce353452ed06953bbd612.tar.xz
spack-ee5b2936e4783c9e8d7ce353452ed06953bbd612.zip
gcc: Patch building of GCC 5.1-12.1 with glibc >= 2.36 (#35798)
Diffstat (limited to 'var/spack/repos/builtin/packages/gcc')
-rw-r--r--var/spack/repos/builtin/packages/gcc/glibc-2.36-libsanitizer-gcc-10-12.patch27
-rw-r--r--var/spack/repos/builtin/packages/gcc/glibc-2.36-libsanitizer-gcc-5-9.patch27
-rw-r--r--var/spack/repos/builtin/packages/gcc/package.py5
3 files changed, 59 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/gcc/glibc-2.36-libsanitizer-gcc-10-12.patch b/var/spack/repos/builtin/packages/gcc/glibc-2.36-libsanitizer-gcc-10-12.patch
new file mode 100644
index 0000000000..90df6b0486
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gcc/glibc-2.36-libsanitizer-gcc-10-12.patch
@@ -0,0 +1,27 @@
+diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
+index badf6a401cc..b43733033a6 100644
+--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
+@@ -72,7 +72,6 @@
+ #include <sys/vt.h>
+ #include <linux/cdrom.h>
+ #include <linux/fd.h>
+-#include <linux/fs.h>
+ #include <linux/hdreg.h>
+ #include <linux/input.h>
+ #include <linux/ioctl.h>
+@@ -822,10 +821,10 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
+ unsigned IOCTL_EVIOCGPROP = IOCTL_NOT_PRESENT;
+ unsigned IOCTL_EVIOCSKEYCODE_V2 = IOCTL_NOT_PRESENT;
+ #endif
+- unsigned IOCTL_FS_IOC_GETFLAGS = FS_IOC_GETFLAGS;
+- unsigned IOCTL_FS_IOC_GETVERSION = FS_IOC_GETVERSION;
+- unsigned IOCTL_FS_IOC_SETFLAGS = FS_IOC_SETFLAGS;
+- unsigned IOCTL_FS_IOC_SETVERSION = FS_IOC_SETVERSION;
++ unsigned IOCTL_FS_IOC_GETFLAGS = _IOR('f', 1, long);
++ unsigned IOCTL_FS_IOC_GETVERSION = _IOR('v', 1, long);
++ unsigned IOCTL_FS_IOC_SETFLAGS = _IOW('f', 2, long);
++ unsigned IOCTL_FS_IOC_SETVERSION = _IOW('v', 2, long);
+ unsigned IOCTL_GIO_CMAP = GIO_CMAP;
+ unsigned IOCTL_GIO_FONT = GIO_FONT;
+ unsigned IOCTL_GIO_UNIMAP = GIO_UNIMAP;
diff --git a/var/spack/repos/builtin/packages/gcc/glibc-2.36-libsanitizer-gcc-5-9.patch b/var/spack/repos/builtin/packages/gcc/glibc-2.36-libsanitizer-gcc-5-9.patch
new file mode 100644
index 0000000000..2cd2bc4e5b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gcc/glibc-2.36-libsanitizer-gcc-5-9.patch
@@ -0,0 +1,27 @@
+diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
+index e8fce8a02..5122baa46 100644
+--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
+@@ -65,7 +65,6 @@
+ #include <sys/vt.h>
+ #include <linux/cdrom.h>
+ #include <linux/fd.h>
+-#include <linux/fs.h>
+ #include <linux/hdreg.h>
+ #include <linux/input.h>
+ #include <linux/ioctl.h>
+@@ -846,10 +845,10 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
+ unsigned IOCTL_EVIOCGPROP = IOCTL_NOT_PRESENT;
+ unsigned IOCTL_EVIOCSKEYCODE_V2 = IOCTL_NOT_PRESENT;
+ #endif
+- unsigned IOCTL_FS_IOC_GETFLAGS = FS_IOC_GETFLAGS;
+- unsigned IOCTL_FS_IOC_GETVERSION = FS_IOC_GETVERSION;
+- unsigned IOCTL_FS_IOC_SETFLAGS = FS_IOC_SETFLAGS;
+- unsigned IOCTL_FS_IOC_SETVERSION = FS_IOC_SETVERSION;
++ unsigned IOCTL_FS_IOC_GETFLAGS = _IOR('f', 1, long);
++ unsigned IOCTL_FS_IOC_GETVERSION = _IOR('v', 1, long);
++ unsigned IOCTL_FS_IOC_SETFLAGS = _IOW('f', 2, long);
++ unsigned IOCTL_FS_IOC_SETVERSION = _IOW('v', 2, long);
+ unsigned IOCTL_GIO_CMAP = GIO_CMAP;
+ unsigned IOCTL_GIO_FONT = GIO_FONT;
+ unsigned IOCTL_GIO_UNIMAP = GIO_UNIMAP;
diff --git a/var/spack/repos/builtin/packages/gcc/package.py b/var/spack/repos/builtin/packages/gcc/package.py
index 516c8df9da..15826825ec 100644
--- a/var/spack/repos/builtin/packages/gcc/package.py
+++ b/var/spack/repos/builtin/packages/gcc/package.py
@@ -438,6 +438,11 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
)
patch("patch-745dae5923aba02982563481d75a21595df22ff8.patch", when="@10.1.0:10.3.0,11.1.0")
+ # Backport libsanitizer patch for glibc >= 2.36
+ # https://reviews.llvm.org/D129471
+ patch("glibc-2.36-libsanitizer-gcc-5-9.patch", when="@5.1:5.5,6.1:6.5,7.1:7.5,8.1:8.5,9.1:9.5")
+ patch("glibc-2.36-libsanitizer-gcc-10-12.patch", when="@10.1:10.4,11.1:11.3,12.1.0")
+
# Older versions do not compile with newer versions of glibc
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81712
patch("ucontext_t.patch", when="@4.9,5.1:5.4,6.1:6.4,7.1")