1From 1557c3d919623a95c2aa090d3018c31401f63f88 Mon Sep 17 00:00:00 2001
2From: Tamar Christina <tamar.christina@arm.com>
3Date: Fri, 21 May 2021 12:16:56 +0100
4Subject: [PATCH] libsanitizer: Remove cyclades from libsanitizer
5
6The Linux kernel has removed the interface to cyclades from
7the latest kernel headers[1] due to them being orphaned for the
8past 13 years.
9
10libsanitizer uses this header when compiling against glibc, but
11glibcs itself doesn't seem to have any references to cyclades.
12
13Further more it seems that the driver is broken in the kernel and
14the firmware doesn't seem to be available anymore.
15
16As such since this is breaking the build of libsanitizer (and so the
17GCC bootstrap[2]) I propose to remove this.
18
19[1] https://lkml.org/lkml/2021/3/2/153
20[2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100379
21
22libsanitizer/ChangeLog:
23
24	PR sanitizer/100379
25	* sanitizer_common/sanitizer_common_interceptors_ioctl.inc: Cherry-pick
26	llvm-project revision f7c5351552387bd43f6ca3631016d7f0dfe0f135.
27	* sanitizer_common/sanitizer_platform_limits_posix.cc: Likewise.
28	* sanitizer_common/sanitizer_platform_limits_posix.h: Likewise.
29---
30 .../sanitizer_common_interceptors_ioctl.inc           |  9 ---------
31 .../sanitizer_platform_limits_posix.cpp               | 11 -----------
32 .../sanitizer_platform_limits_posix.h                 | 10 ----------
33 3 files changed, 30 deletions(-)
34
35diff --git a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
36index 490a04b2181..42e43a04441 100644
37--- a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
38+++ b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
39@@ -366,15 +366,6 @@ static void ioctl_table_fill() {
40
41 #if SANITIZER_LINUX && !SANITIZER_ANDROID
42   // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE
43-  _(CYGETDEFTHRESH, WRITE, sizeof(int));
44-  _(CYGETDEFTIMEOUT, WRITE, sizeof(int));
45-  _(CYGETMON, WRITE, struct_cyclades_monitor_sz);
46-  _(CYGETTHRESH, WRITE, sizeof(int));
47-  _(CYGETTIMEOUT, WRITE, sizeof(int));
48-  _(CYSETDEFTHRESH, NONE, 0);
49-  _(CYSETDEFTIMEOUT, NONE, 0);
50-  _(CYSETTHRESH, NONE, 0);
51-  _(CYSETTIMEOUT, NONE, 0);
52   _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz);
53   _(EQL_ENSLAVE, WRITE, struct_ifreq_sz);
54   _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz);
55diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
56index aa845df4dde..badf6a401cc 100644
57--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
58+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
59@@ -130,7 +130,6 @@ typedef struct user_fpregs elf_fpregset_t;
60 # include <sys/procfs.h>
61 #endif
62 #include <sys/user.h>
63-#include <linux/cyclades.h>
64 #include <linux/if_eql.h>
65 #include <linux/if_plip.h>
66 #include <linux/lp.h>
67@@ -443,7 +442,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
68
69 #if SANITIZER_LINUX && !SANITIZER_ANDROID
70   unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct);
71-  unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor);
72 #if EV_VERSION > (0x010000)
73   unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry);
74 #else
75@@ -809,15 +807,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
76 #endif // SANITIZER_LINUX
77
78 #if SANITIZER_LINUX && !SANITIZER_ANDROID
79-  unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH;
80-  unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT;
81-  unsigned IOCTL_CYGETMON = CYGETMON;
82-  unsigned IOCTL_CYGETTHRESH = CYGETTHRESH;
83-  unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT;
84-  unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH;
85-  unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT;
86-  unsigned IOCTL_CYSETTHRESH = CYSETTHRESH;
87-  unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT;
88   unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE;
89   unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE;
90   unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG;
91diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
92index d82fd5e4005..dc6423bc297 100644
93--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
94+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
95@@ -974,7 +974,6 @@ extern unsigned struct_vt_mode_sz;
96
97 #if SANITIZER_LINUX && !SANITIZER_ANDROID
98 extern unsigned struct_ax25_parms_struct_sz;
99-extern unsigned struct_cyclades_monitor_sz;
100 extern unsigned struct_input_keymap_entry_sz;
101 extern unsigned struct_ipx_config_data_sz;
102 extern unsigned struct_kbdiacrs_sz;
103@@ -1319,15 +1318,6 @@ extern unsigned IOCTL_VT_WAITACTIVE;
104 #endif  // SANITIZER_LINUX
105
106 #if SANITIZER_LINUX && !SANITIZER_ANDROID
107-extern unsigned IOCTL_CYGETDEFTHRESH;
108-extern unsigned IOCTL_CYGETDEFTIMEOUT;
109-extern unsigned IOCTL_CYGETMON;
110-extern unsigned IOCTL_CYGETTHRESH;
111-extern unsigned IOCTL_CYGETTIMEOUT;
112-extern unsigned IOCTL_CYSETDEFTHRESH;
113-extern unsigned IOCTL_CYSETDEFTIMEOUT;
114-extern unsigned IOCTL_CYSETTHRESH;
115-extern unsigned IOCTL_CYSETTIMEOUT;
116 extern unsigned IOCTL_EQL_EMANCIPATE;
117 extern unsigned IOCTL_EQL_ENSLAVE;
118 extern unsigned IOCTL_EQL_GETMASTRCFG;
119--
1202.31.1
121
122