summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorGlenn Johnson <glenn-johnson@uiowa.edu>2022-01-05 16:14:28 -0600
committerGitHub <noreply@github.com>2022-01-05 14:14:28 -0800
commita43ed9286fc99f5e9127744d914b7c09a4021836 (patch)
tree2117ba0cd13ab2dc5d1708f23f60088ea7ddc1f5 /var
parent071778b919ed435fe28e39dcdd5fabde7496d244 (diff)
downloadspack-a43ed9286fc99f5e9127744d914b7c09a4021836.tar.gz
spack-a43ed9286fc99f5e9127744d914b7c09a4021836.tar.bz2
spack-a43ed9286fc99f5e9127744d914b7c09a4021836.tar.xz
spack-a43ed9286fc99f5e9127744d914b7c09a4021836.zip
GCC package: allow building gcc-5 on newer Linux (#27386)
Remove cyclades support so gcc-5 can build against newer glibc versions (e.g. 2.31).
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/gcc/glibc-2.31-libsanitizer-3-gcc-5.patch81
-rw-r--r--var/spack/repos/builtin/packages/gcc/package.py4
2 files changed, 85 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/gcc/glibc-2.31-libsanitizer-3-gcc-5.patch b/var/spack/repos/builtin/packages/gcc/glibc-2.31-libsanitizer-3-gcc-5.patch
new file mode 100644
index 0000000000..e1df265aa3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gcc/glibc-2.31-libsanitizer-3-gcc-5.patch
@@ -0,0 +1,81 @@
+diff -ru a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
+--- a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc 2014-09-23 17:59:53.000000000 +0000
++++ b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc 2021-10-30 19:48:38.690007561 +0000
+@@ -358,15 +358,6 @@
+
+ #if SANITIZER_LINUX && !SANITIZER_ANDROID
+ // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE
+- _(CYGETDEFTHRESH, WRITE, sizeof(int));
+- _(CYGETDEFTIMEOUT, WRITE, sizeof(int));
+- _(CYGETMON, WRITE, struct_cyclades_monitor_sz);
+- _(CYGETTHRESH, WRITE, sizeof(int));
+- _(CYGETTIMEOUT, WRITE, sizeof(int));
+- _(CYSETDEFTHRESH, NONE, 0);
+- _(CYSETDEFTIMEOUT, NONE, 0);
+- _(CYSETTHRESH, NONE, 0);
+- _(CYSETTIMEOUT, NONE, 0);
+ _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz);
+ _(EQL_ENSLAVE, WRITE, struct_ifreq_sz);
+ _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz);
+diff -ru a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
+--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2021-10-30 19:40:51.805824323 +0000
++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2021-10-30 19:51:13.640403192 +0000
+@@ -143,7 +143,6 @@
+ #include <sys/statvfs.h>
+ #include <sys/timex.h>
+ #include <sys/user.h>
+-#include <linux/cyclades.h>
+ #include <linux/if_eql.h>
+ #include <linux/if_plip.h>
+ #include <linux/lp.h>
+@@ -392,7 +391,6 @@
+
+ #if SANITIZER_LINUX && !SANITIZER_ANDROID
+ unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct);
+- unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor);
+ #if EV_VERSION > (0x010000)
+ unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry);
+ #else
+@@ -759,15 +757,6 @@
+ #endif // SANITIZER_LINUX || SANITIZER_FREEBSD
+
+ #if SANITIZER_LINUX && !SANITIZER_ANDROID
+- unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH;
+- unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT;
+- unsigned IOCTL_CYGETMON = CYGETMON;
+- unsigned IOCTL_CYGETTHRESH = CYGETTHRESH;
+- unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT;
+- unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH;
+- unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT;
+- unsigned IOCTL_CYSETTHRESH = CYSETTHRESH;
+- unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT;
+ unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE;
+ unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE;
+ unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG;
+diff -ru a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
+--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h 2021-10-30 19:40:51.698824053 +0000
++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h 2021-10-30 19:51:39.680469814 +0000
+@@ -875,7 +875,6 @@
+
+ #if SANITIZER_LINUX && !SANITIZER_ANDROID
+ extern unsigned struct_ax25_parms_struct_sz;
+- extern unsigned struct_cyclades_monitor_sz;
+ extern unsigned struct_input_keymap_entry_sz;
+ extern unsigned struct_ipx_config_data_sz;
+ extern unsigned struct_kbdiacrs_sz;
+@@ -1220,15 +1219,6 @@
+ #endif // SANITIZER_LINUX || SANITIZER_FREEBSD
+
+ #if SANITIZER_LINUX && !SANITIZER_ANDROID
+- extern unsigned IOCTL_CYGETDEFTHRESH;
+- extern unsigned IOCTL_CYGETDEFTIMEOUT;
+- extern unsigned IOCTL_CYGETMON;
+- extern unsigned IOCTL_CYGETTHRESH;
+- extern unsigned IOCTL_CYGETTIMEOUT;
+- extern unsigned IOCTL_CYSETDEFTHRESH;
+- extern unsigned IOCTL_CYSETDEFTIMEOUT;
+- extern unsigned IOCTL_CYSETTHRESH;
+- extern unsigned IOCTL_CYSETTIMEOUT;
+ extern unsigned IOCTL_EQL_EMANCIPATE;
+ extern unsigned IOCTL_EQL_ENSLAVE;
+ extern unsigned IOCTL_EQL_GETMASTRCFG;
diff --git a/var/spack/repos/builtin/packages/gcc/package.py b/var/spack/repos/builtin/packages/gcc/package.py
index 6a83354b89..d23ce734b8 100644
--- a/var/spack/repos/builtin/packages/gcc/package.py
+++ b/var/spack/repos/builtin/packages/gcc/package.py
@@ -292,6 +292,10 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
patch('sys_ustat.h.patch', when='@5.0:6.4,7.0:7.3,8.1')
patch('sys_ustat-4.9.patch', when='@4.9')
+ # this patch removes cylades support from gcc-5 and allows gcc-5 to be built
+ # with newer glibc versions.
+ patch('glibc-2.31-libsanitizer-3-gcc-5.patch', when='@5.3.0:5.5.0')
+
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95005
patch('zstd.patch', when='@10')