diff --git a/D102059.diff b/D102059.diff new file mode 100644 index 0000000..271e02d --- /dev/null +++ b/D102059.diff @@ -0,0 +1,113 @@ +Index: compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +=================================================================== +--- a/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc ++++ b/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +@@ -370,6 +370,7 @@ + + #if SANITIZER_GLIBC + // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE ++#if SANITIZER_LINUX_CYCLADES + _(CYGETDEFTHRESH, WRITE, sizeof(int)); + _(CYGETDEFTIMEOUT, WRITE, sizeof(int)); + _(CYGETMON, WRITE, struct_cyclades_monitor_sz); +@@ -379,6 +380,7 @@ + _(CYSETDEFTIMEOUT, NONE, 0); + _(CYSETTHRESH, NONE, 0); + _(CYSETTIMEOUT, NONE, 0); ++#endif + _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz); + _(EQL_ENSLAVE, WRITE, struct_ifreq_sz); + _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz); +Index: compiler-rt/lib/sanitizer_common/sanitizer_platform.h +=================================================================== +--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform.h ++++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform.h +@@ -390,4 +390,17 @@ + #define SANITIZER_SUPPORTS_INIT_FOR_DLOPEN 0 + #endif + ++// Kernel has removed this header, as such check for it's existance ++// before trying to include defines from it. ++// https://lkml.org/lkml/2021/3/2/153 ++#ifdef __has_include ++# if __has_include() && !SANITIZER_ANDROID ++# define SANITIZER_LINUX_CYCLADES 1 ++# else ++# define SANITIZER_LINUX_CYCLADES 0 ++# endif ++#else ++# define SANITIZER_LINUX_CYCLADES 0 ++#endif ++ + #endif // SANITIZER_PLATFORM_H +Index: compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h +=================================================================== +--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h ++++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h +@@ -983,7 +983,9 @@ + + #if SANITIZER_LINUX && !SANITIZER_ANDROID + extern unsigned struct_ax25_parms_struct_sz; ++#if SANITIZER_LINUX_CYCLADES + extern unsigned struct_cyclades_monitor_sz; ++#endif + extern unsigned struct_input_keymap_entry_sz; + extern unsigned struct_ipx_config_data_sz; + extern unsigned struct_kbdiacrs_sz; +@@ -1328,6 +1330,7 @@ + #endif // SANITIZER_LINUX + + #if SANITIZER_LINUX && !SANITIZER_ANDROID ++#if SANITIZER_LINUX_CYCLADES + extern unsigned IOCTL_CYGETDEFTHRESH; + extern unsigned IOCTL_CYGETDEFTIMEOUT; + extern unsigned IOCTL_CYGETMON; +@@ -1337,6 +1340,7 @@ + extern unsigned IOCTL_CYSETDEFTIMEOUT; + extern unsigned IOCTL_CYSETTHRESH; + extern unsigned IOCTL_CYSETTIMEOUT; ++#endif + extern unsigned IOCTL_EQL_EMANCIPATE; + extern unsigned IOCTL_EQL_ENSLAVE; + extern unsigned IOCTL_EQL_GETMASTRCFG; +Index: compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp +=================================================================== +--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp ++++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp +@@ -143,7 +143,9 @@ + # include + #endif + #include +-#include ++#if SANITIZER_LINUX_CYCLADES ++# include ++#endif + #include + #include + #include +@@ -460,7 +462,9 @@ + + #if SANITIZER_GLIBC + unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct); ++#if SANITIZER_LINUX_CYCLADES + unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor); ++#endif + #if EV_VERSION > (0x010000) + unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry); + #else +@@ -824,6 +828,7 @@ + #endif // SANITIZER_LINUX + + #if SANITIZER_LINUX && !SANITIZER_ANDROID ++#if SANITIZER_LINUX_CYCLADES + unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH; + unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT; + unsigned IOCTL_CYGETMON = CYGETMON; +@@ -833,6 +838,7 @@ + unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT; + unsigned IOCTL_CYSETTHRESH = CYSETTHRESH; + unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT; ++#endif + unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE; + unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE; + unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG; diff --git a/compiler-rt.spec b/compiler-rt.spec index 4cc58c4..1db6491 100644 --- a/compiler-rt.spec +++ b/compiler-rt.spec @@ -21,6 +21,7 @@ Source2: tstellar-gpg-key.asc Patch0: 0001-PATCH-compiler-rt-Workaround-libstdc-limitation-wrt..patch Patch1: 0002-PATCH-compiler-rt-Sanitizer-built-against-glibc-2.34.patch +Patch2: D102059.diff BuildRequires: gcc BuildRequires: gcc-c++