gcc: remove <cyclades.h> from libsanitizer

linux-headers-5.13 removed <cyclades.h> along with device support.
Backport a single https://gcc.gnu.org/PR100379 upstream change to
fix gcc build.

Use local (unmodified) upstream patches to avoid fetchpatch dependency.

+186 -7
+3 -1
pkgs/development/compilers/gcc/10/default.nix
··· 73 ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch 74 75 # Obtain latest patch with ../update-mcfgthread-patches.sh 76 - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch; 77 78 /* Cross-gcc settings (build == host != target) */ 79 crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
··· 73 ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch 74 75 # Obtain latest patch with ../update-mcfgthread-patches.sh 76 + ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch 77 + 78 + ++ [ ../libsanitizer-no-cyclades.patch ]; 79 80 /* Cross-gcc settings (build == host != target) */ 81 crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
+3 -1
pkgs/development/compilers/gcc/11/default.nix
··· 78 }) 79 80 # Obtain latest patch with ../update-mcfgthread-patches.sh 81 - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch; 82 83 /* Cross-gcc settings (build == host != target) */ 84 crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
··· 78 }) 79 80 # Obtain latest patch with ../update-mcfgthread-patches.sh 81 + ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch 82 + 83 + ++ [ ../libsanitizer-no-cyclades.patch ]; 84 85 /* Cross-gcc settings (build == host != target) */ 86 crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
+3 -1
pkgs/development/compilers/gcc/4.9/default.nix
··· 98 { commit = "98c7bf9ddc80db965d69d61521b1c7a1cec32d9a"; sha256 = "1d7pfdv1q23nf0wadw7jbp6d6r7pnzjpbyxgbdfv7j1vr9l1bp60"; } 99 { commit = "3dc76b53ad896494ca62550a7a752fecbca3f7a2"; sha256 = "0jvdzfpvfdmklfcjwqblwq1i22iqis7ljpvm7adra5d7zf2xk7xz"; } 100 { commit = "1e961ed49b18e176c7457f53df2433421387c23b"; sha256 = "04dnqqs4qsvz4g8cq6db5id41kzys7hzhcaycwmc9rpqygs2ajwz"; } 101 - { commit = "e137c72d099f9b3b47f4cc718aa11eab14df1a9c"; sha256 = "1ms0dmz74yf6kwgjfs4d2fhj8y6mcp2n184r3jk44wx2xc24vgb2"; }]; 102 103 javaEcj = fetchurl { 104 # The `$(top_srcdir)/ecj.jar' file is automatically picked up at
··· 98 { commit = "98c7bf9ddc80db965d69d61521b1c7a1cec32d9a"; sha256 = "1d7pfdv1q23nf0wadw7jbp6d6r7pnzjpbyxgbdfv7j1vr9l1bp60"; } 99 { commit = "3dc76b53ad896494ca62550a7a752fecbca3f7a2"; sha256 = "0jvdzfpvfdmklfcjwqblwq1i22iqis7ljpvm7adra5d7zf2xk7xz"; } 100 { commit = "1e961ed49b18e176c7457f53df2433421387c23b"; sha256 = "04dnqqs4qsvz4g8cq6db5id41kzys7hzhcaycwmc9rpqygs2ajwz"; } 101 + { commit = "e137c72d099f9b3b47f4cc718aa11eab14df1a9c"; sha256 = "1ms0dmz74yf6kwgjfs4d2fhj8y6mcp2n184r3jk44wx2xc24vgb2"; }] 102 + 103 + ++ [ ../libsanitizer-no-cyclades-9.patch ]; 104 105 javaEcj = fetchurl { 106 # The `$(top_srcdir)/ecj.jar' file is automatically picked up at
+3 -1
pkgs/development/compilers/gcc/6/default.nix
··· 87 ++ optional (targetPlatform.libc == "musl" && targetPlatform.isx86_32) (fetchpatch { 88 url = "https://git.alpinelinux.org/aports/plain/main/gcc/gcc-6.1-musl-libssp.patch?id=5e4b96e23871ee28ef593b439f8c07ca7c7eb5bb"; 89 sha256 = "1jf1ciz4gr49lwyh8knfhw6l5gvfkwzjy90m7qiwkcbsf4a3fqn2"; 90 - }); 91 92 javaEcj = fetchurl { 93 # The `$(top_srcdir)/ecj.jar' file is automatically picked up at
··· 87 ++ optional (targetPlatform.libc == "musl" && targetPlatform.isx86_32) (fetchpatch { 88 url = "https://git.alpinelinux.org/aports/plain/main/gcc/gcc-6.1-musl-libssp.patch?id=5e4b96e23871ee28ef593b439f8c07ca7c7eb5bb"; 89 sha256 = "1jf1ciz4gr49lwyh8knfhw6l5gvfkwzjy90m7qiwkcbsf4a3fqn2"; 90 + }) 91 + 92 + ++ [ ../libsanitizer-no-cyclades-9.patch ]; 93 94 javaEcj = fetchurl { 95 # The `$(top_srcdir)/ecj.jar' file is automatically picked up at
+3 -1
pkgs/development/compilers/gcc/7/default.nix
··· 84 ++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch 85 86 # Obtain latest patch with ../update-mcfgthread-patches.sh 87 - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch; 88 89 /* Cross-gcc settings (build == host != target) */ 90 crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
··· 84 ++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch 85 86 # Obtain latest patch with ../update-mcfgthread-patches.sh 87 + ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch 88 + 89 + ++ [ ../libsanitizer-no-cyclades-9.patch ]; 90 91 /* Cross-gcc settings (build == host != target) */ 92 crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
+3 -1
pkgs/development/compilers/gcc/8/default.nix
··· 71 ++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch 72 73 # Obtain latest patch with ../update-mcfgthread-patches.sh 74 - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch; 75 76 /* Cross-gcc settings (build == host != target) */ 77 crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
··· 71 ++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch 72 73 # Obtain latest patch with ../update-mcfgthread-patches.sh 74 + ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch 75 + 76 + ++ [ ../libsanitizer-no-cyclades-9.patch ]; 77 78 /* Cross-gcc settings (build == host != target) */ 79 crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
+3 -1
pkgs/development/compilers/gcc/9/default.nix
··· 87 ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch 88 89 # Obtain latest patch with ../update-mcfgthread-patches.sh 90 - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch; 91 92 /* Cross-gcc settings (build == host != target) */ 93 crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
··· 87 ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch 88 89 # Obtain latest patch with ../update-mcfgthread-patches.sh 90 + ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch 91 + 92 + ++ [ ../libsanitizer-no-cyclades-9.patch ]; 93 94 /* Cross-gcc settings (build == host != target) */ 95 crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
+82
pkgs/development/compilers/gcc/libsanitizer-no-cyclades-9.patch
···
··· 1 + https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=2b40941d23b1570cdd90083b58fa0f66aa58c86e 2 + https://gcc.gnu.org/PR100379 3 + --- a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc 4 + +++ b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc 5 + @@ -365,15 +365,6 @@ static void ioctl_table_fill() { 6 + 7 + #if SANITIZER_LINUX && !SANITIZER_ANDROID 8 + // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE 9 + - _(CYGETDEFTHRESH, WRITE, sizeof(int)); 10 + - _(CYGETDEFTIMEOUT, WRITE, sizeof(int)); 11 + - _(CYGETMON, WRITE, struct_cyclades_monitor_sz); 12 + - _(CYGETTHRESH, WRITE, sizeof(int)); 13 + - _(CYGETTIMEOUT, WRITE, sizeof(int)); 14 + - _(CYSETDEFTHRESH, NONE, 0); 15 + - _(CYSETDEFTIMEOUT, NONE, 0); 16 + - _(CYSETTHRESH, NONE, 0); 17 + - _(CYSETTIMEOUT, NONE, 0); 18 + _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz); 19 + _(EQL_ENSLAVE, WRITE, struct_ifreq_sz); 20 + _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz); 21 + --- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 22 + +++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 23 + @@ -157,7 +157,6 @@ typedef struct user_fpregs elf_fpregset_t; 24 + # include <sys/procfs.h> 25 + #endif 26 + #include <sys/user.h> 27 + -#include <linux/cyclades.h> 28 + #include <linux/if_eql.h> 29 + #include <linux/if_plip.h> 30 + #include <linux/lp.h> 31 + @@ -466,7 +465,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); 32 + 33 + #if SANITIZER_LINUX && !SANITIZER_ANDROID 34 + unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct); 35 + - unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor); 36 + #if EV_VERSION > (0x010000) 37 + unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry); 38 + #else 39 + @@ -833,15 +831,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); 40 + #endif // SANITIZER_LINUX || SANITIZER_FREEBSD 41 + 42 + #if SANITIZER_LINUX && !SANITIZER_ANDROID 43 + - unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH; 44 + - unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT; 45 + - unsigned IOCTL_CYGETMON = CYGETMON; 46 + - unsigned IOCTL_CYGETTHRESH = CYGETTHRESH; 47 + - unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT; 48 + - unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH; 49 + - unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT; 50 + - unsigned IOCTL_CYSETTHRESH = CYSETTHRESH; 51 + - unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT; 52 + unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE; 53 + unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE; 54 + unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG; 55 + --- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h 56 + +++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h 57 + @@ -1040,7 +1040,6 @@ struct __sanitizer_cookie_io_functions_t { 58 + 59 + #if SANITIZER_LINUX && !SANITIZER_ANDROID 60 + extern unsigned struct_ax25_parms_struct_sz; 61 + - extern unsigned struct_cyclades_monitor_sz; 62 + extern unsigned struct_input_keymap_entry_sz; 63 + extern unsigned struct_ipx_config_data_sz; 64 + extern unsigned struct_kbdiacrs_sz; 65 + @@ -1385,15 +1384,6 @@ struct __sanitizer_cookie_io_functions_t { 66 + #endif // SANITIZER_LINUX || SANITIZER_FREEBSD 67 + 68 + #if SANITIZER_LINUX && !SANITIZER_ANDROID 69 + - extern unsigned IOCTL_CYGETDEFTHRESH; 70 + - extern unsigned IOCTL_CYGETDEFTIMEOUT; 71 + - extern unsigned IOCTL_CYGETMON; 72 + - extern unsigned IOCTL_CYGETTHRESH; 73 + - extern unsigned IOCTL_CYGETTIMEOUT; 74 + - extern unsigned IOCTL_CYSETDEFTHRESH; 75 + - extern unsigned IOCTL_CYSETDEFTIMEOUT; 76 + - extern unsigned IOCTL_CYSETTHRESH; 77 + - extern unsigned IOCTL_CYSETTIMEOUT; 78 + extern unsigned IOCTL_EQL_EMANCIPATE; 79 + extern unsigned IOCTL_EQL_ENSLAVE; 80 + extern unsigned IOCTL_EQL_GETMASTRCFG; 81 + -- 82 + 2.27.0
+83
pkgs/development/compilers/gcc/libsanitizer-no-cyclades.patch
···
··· 1 + https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=2bf34b9f4e446bf9be7f04458058dd5319fb396e 2 + https://gcc.gnu.org/PR100379 3 + --- a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc 4 + +++ b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc 5 + @@ -366,15 +366,6 @@ static void ioctl_table_fill() { 6 + 7 + #if SANITIZER_LINUX && !SANITIZER_ANDROID 8 + // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE 9 + - _(CYGETDEFTHRESH, WRITE, sizeof(int)); 10 + - _(CYGETDEFTIMEOUT, WRITE, sizeof(int)); 11 + - _(CYGETMON, WRITE, struct_cyclades_monitor_sz); 12 + - _(CYGETTHRESH, WRITE, sizeof(int)); 13 + - _(CYGETTIMEOUT, WRITE, sizeof(int)); 14 + - _(CYSETDEFTHRESH, NONE, 0); 15 + - _(CYSETDEFTIMEOUT, NONE, 0); 16 + - _(CYSETTHRESH, NONE, 0); 17 + - _(CYSETTIMEOUT, NONE, 0); 18 + _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz); 19 + _(EQL_ENSLAVE, WRITE, struct_ifreq_sz); 20 + _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz); 21 + --- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 22 + +++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 23 + @@ -130,7 +130,6 @@ typedef struct user_fpregs elf_fpregset_t; 24 + # include <sys/procfs.h> 25 + #endif 26 + #include <sys/user.h> 27 + -#include <linux/cyclades.h> 28 + #include <linux/if_eql.h> 29 + #include <linux/if_plip.h> 30 + #include <linux/lp.h> 31 + @@ -443,7 +442,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); 32 + 33 + #if SANITIZER_LINUX && !SANITIZER_ANDROID 34 + unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct); 35 + - unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor); 36 + #if EV_VERSION > (0x010000) 37 + unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry); 38 + #else 39 + @@ -809,15 +807,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); 40 + #endif // SANITIZER_LINUX 41 + 42 + #if SANITIZER_LINUX && !SANITIZER_ANDROID 43 + - unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH; 44 + - unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT; 45 + - unsigned IOCTL_CYGETMON = CYGETMON; 46 + - unsigned IOCTL_CYGETTHRESH = CYGETTHRESH; 47 + - unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT; 48 + - unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH; 49 + - unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT; 50 + - unsigned IOCTL_CYSETTHRESH = CYSETTHRESH; 51 + - unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT; 52 + unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE; 53 + unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE; 54 + unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG; 55 + --- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h 56 + +++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h 57 + @@ -974,7 +974,6 @@ extern unsigned struct_vt_mode_sz; 58 + 59 + #if SANITIZER_LINUX && !SANITIZER_ANDROID 60 + extern unsigned struct_ax25_parms_struct_sz; 61 + -extern unsigned struct_cyclades_monitor_sz; 62 + extern unsigned struct_input_keymap_entry_sz; 63 + extern unsigned struct_ipx_config_data_sz; 64 + extern unsigned struct_kbdiacrs_sz; 65 + @@ -1319,15 +1318,6 @@ extern unsigned IOCTL_VT_WAITACTIVE; 66 + #endif // SANITIZER_LINUX 67 + 68 + #if SANITIZER_LINUX && !SANITIZER_ANDROID 69 + -extern unsigned IOCTL_CYGETDEFTHRESH; 70 + -extern unsigned IOCTL_CYGETDEFTIMEOUT; 71 + -extern unsigned IOCTL_CYGETMON; 72 + -extern unsigned IOCTL_CYGETTHRESH; 73 + -extern unsigned IOCTL_CYGETTIMEOUT; 74 + -extern unsigned IOCTL_CYSETDEFTHRESH; 75 + -extern unsigned IOCTL_CYSETDEFTIMEOUT; 76 + -extern unsigned IOCTL_CYSETTHRESH; 77 + -extern unsigned IOCTL_CYSETTIMEOUT; 78 + extern unsigned IOCTL_EQL_EMANCIPATE; 79 + extern unsigned IOCTL_EQL_ENSLAVE; 80 + extern unsigned IOCTL_EQL_GETMASTRCFG; 81 + -- 82 + 2.33.0 83 +