| From 29210b168cc458480f71b242ad964ecd79214e38 Mon Sep 17 00:00:00 2001 | 
| From: Tamar Christina <tamar.christina@arm.com> | 
| Date: Fri, 21 May 2021 12:16:56 +0100 | 
| Subject: [PATCH] libsanitizer: Remove cyclades from libsanitizer | 
|   | 
| The Linux kernel has removed the interface to cyclades from | 
| the latest kernel headers[1] due to them being orphaned for the | 
| past 13 years. | 
|   | 
| libsanitizer uses this header when compiling against glibc, but | 
| glibcs itself doesn't seem to have any references to cyclades. | 
|   | 
| Further more it seems that the driver is broken in the kernel and | 
| the firmware doesn't seem to be available anymore. | 
|   | 
| As such since this is breaking the build of libsanitizer (and so the | 
| GCC bootstrap[2]) I propose to remove this. | 
|   | 
| [1] https://lkml.org/lkml/2021/3/2/153 | 
| [2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100379 | 
|   | 
| libsanitizer/ChangeLog: | 
|   | 
|     PR sanitizer/100379 | 
|     * sanitizer_common/sanitizer_common_interceptors_ioctl.inc: Cherry-pick | 
|     llvm-project revision f7c5351552387bd43f6ca3631016d7f0dfe0f135. | 
|     * sanitizer_common/sanitizer_platform_limits_posix.cc: Likewise. | 
|     * sanitizer_common/sanitizer_platform_limits_posix.h: Likewise. | 
|   | 
| Signed-off-by: Maxim Kochetkov <fido_max@inbox.ru> | 
| --- | 
|  .../sanitizer_common_interceptors_ioctl.inc           |  9 --------- | 
|  .../sanitizer_platform_limits_posix.cc                | 11 ----------- | 
|  .../sanitizer_platform_limits_posix.h                 | 10 ---------- | 
|  3 files changed, 30 deletions(-) | 
|   | 
| diff --git a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc | 
| index a68534c5a0a..85ab53e7430 100755 | 
| --- a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc | 
| +++ b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc | 
| @@ -361,15 +361,6 @@ static void ioctl_table_fill() { | 
|   | 
|  #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 --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc | 
| index 5c720b2e700..17f2c78b389 100644 | 
| --- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc | 
| +++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc | 
| @@ -157,7 +157,6 @@ typedef struct user_fpregs elf_fpregset_t; | 
|  # include <sys/procfs.h> | 
|  #endif | 
|  #include <sys/user.h> | 
| -#include <linux/cyclades.h> | 
|  #include <linux/if_eql.h> | 
|  #include <linux/if_plip.h> | 
|  #include <linux/lp.h> | 
| @@ -464,7 +463,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); | 
|   | 
|  #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 | 
| @@ -831,15 +829,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); | 
|  #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 --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h | 
| index 9c1429623ab..9f05c4e9ea7 100644 | 
| --- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h | 
| +++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h | 
| @@ -1004,7 +1004,6 @@ struct __sanitizer_cookie_io_functions_t { | 
|   | 
|  #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; | 
| @@ -1349,15 +1348,6 @@ struct __sanitizer_cookie_io_functions_t { | 
|  #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; | 
| --  | 
| 2.31.1 |