~ruther/guix-local

92cea8460f5464a33254e0051268558862252b78 — Andreas Enge 10 months ago e72271f
gnu: Remove clang-runtime-6.

* gnu/packages/llvm.scm (clang-runtime-6): Delete variable.
* gnu/packages/patches/clang-runtime-9-glibc-2.36-compat.patch.
gnu/packages/patches/clang-runtime-9-libsanitizer-mode-field.patch:
Delete files.
* gnu/local.mk (dist_patch_DATA): Unregister files.

Change-Id: I2957376d083783e77de85a9761be06d0209ca6c7
4 files changed, 0 insertions(+), 119 deletions(-)

M gnu/local.mk
M gnu/packages/llvm.scm
D gnu/packages/patches/clang-runtime-9-glibc-2.36-compat.patch
D gnu/packages/patches/clang-runtime-9-libsanitizer-mode-field.patch
M gnu/local.mk => gnu/local.mk +0 -2
@@ 1110,8 1110,6 @@ dist_patch_DATA =						\
  %D%/packages/patches/clang-runtime-12-remove-crypt-interceptors.patch \
  %D%/packages/patches/clang-runtime-13-glibc-2.36-compat.patch	\
  %D%/packages/patches/clang-runtime-14-glibc-2.36-compat.patch	\
  %D%/packages/patches/clang-runtime-9-glibc-2.36-compat.patch		\
  %D%/packages/patches/clang-runtime-9-libsanitizer-mode-field.patch	\
  %D%/packages/patches/clang-runtime-3.7-fix-build-with-python3.patch	\
  %D%/packages/patches/clang-runtime-3.9-libsanitizer-mode-field.patch	\
  %D%/packages/patches/clang-runtime-3.8-libsanitizer-mode-field.patch	\

M gnu/packages/llvm.scm => gnu/packages/llvm.scm +0 -7
@@ 1049,13 1049,6 @@ Library.")
           `(("config" ,config))
           '())))))

(define-public clang-runtime-6
  (clang-runtime-from-llvm
   llvm-6
   "1fcr3jn24yr8lh36nc0c4ikli4744i2q9m1ik67p1jymwwaixkgl"
   '("clang-runtime-9-libsanitizer-mode-field.patch"
     "clang-runtime-9-glibc-2.36-compat.patch")))

(define-public llvm-3.8
  (package (inherit llvm-6)
    (name "llvm")

D gnu/packages/patches/clang-runtime-9-glibc-2.36-compat.patch => gnu/packages/patches/clang-runtime-9-glibc-2.36-compat.patch +0 -50
@@ 1,50 0,0 @@
This commit is from upstream and is included in the llvm-15 release

commit b379129c4beb3f26223288627a1291739f33af02
Author: Fangrui Song <i@maskray.me>
Date:   Mon Jul 11 11:38:28 2022 -0700

    [sanitizer] Remove #include <linux/fs.h> to resolve fsconfig_command/mount_attr conflict with glibc 2.36
    
    It is generally not a good idea to mix usage of glibc headers and Linux UAPI
    headers (https://sourceware.org/glibc/wiki/Synchronizing_Headers). In glibc
    since 7eae6a91e9b1670330c9f15730082c91c0b1d570 (milestone: 2.36), sys/mount.h
    defines `fsconfig_command` which conflicts with linux/mount.h:
    
        .../usr/include/linux/mount.h:95:6: error: redeclaration of ‘enum fsconfig_command’
    
    Remove #include <linux/fs.h> which pulls in linux/mount.h. Expand its 4 macros manually.
    
    Fix https://github.com/llvm/llvm-project/issues/56421
    
    Reviewed By: #sanitizers, vitalybuka, zatrazz
    
    Differential Revision: https://reviews.llvm.org/D129471

diff --git a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
index 4bd425435d56..81740bf4ab39 100644
--- a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
+++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
@@ -73,7 +73,6 @@
 #include <sys/vt.h>
 #include <linux/cdrom.h>
 #include <linux/fd.h>
-#include <linux/fs.h>
 #include <linux/hdreg.h>
 #include <linux/input.h>
 #include <linux/ioctl.h>
@@ -876,10 +875,10 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
   unsigned IOCTL_EVIOCGPROP = IOCTL_NOT_PRESENT;
   unsigned IOCTL_EVIOCSKEYCODE_V2 = IOCTL_NOT_PRESENT;
 #endif
-  unsigned IOCTL_FS_IOC_GETFLAGS = FS_IOC_GETFLAGS;
-  unsigned IOCTL_FS_IOC_GETVERSION = FS_IOC_GETVERSION;
-  unsigned IOCTL_FS_IOC_SETFLAGS = FS_IOC_SETFLAGS;
-  unsigned IOCTL_FS_IOC_SETVERSION = FS_IOC_SETVERSION;
+  unsigned IOCTL_FS_IOC_GETFLAGS = _IOR('f', 1, long);
+  unsigned IOCTL_FS_IOC_GETVERSION = _IOR('v', 1, long);
+  unsigned IOCTL_FS_IOC_SETFLAGS = _IOW('f', 2, long);
+  unsigned IOCTL_FS_IOC_SETVERSION = _IOW('v', 2, long);
   unsigned IOCTL_GIO_CMAP = GIO_CMAP;
   unsigned IOCTL_GIO_FONT = GIO_FONT;
   unsigned IOCTL_GIO_UNIMAP = GIO_UNIMAP;

D gnu/packages/patches/clang-runtime-9-libsanitizer-mode-field.patch => gnu/packages/patches/clang-runtime-9-libsanitizer-mode-field.patch +0 -60
@@ 1,60 0,0 @@
Adjust libsanitizer to ABI change in glibc 2.31.

Taken from this upstream commit:
https://github.com/llvm/llvm-project/commit/947f9692440836dcb8d88b74b69dd379d85974ce

diff --git a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
--- a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
+++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
@@ -1126,8 +1126,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid);
 CHECK_SIZE_AND_OFFSET(ipc_perm, gid);
 CHECK_SIZE_AND_OFFSET(ipc_perm, cuid);
 CHECK_SIZE_AND_OFFSET(ipc_perm, cgid);
-#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)
-/* On aarch64 glibc 2.20 and earlier provided incorrect mode field.  */
+#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31)
+/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit
+   on many architectures.  */
 CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
 #endif
 
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
--- a/lib/sanitizer_common/sanitizer_platform_limits_posix.h
+++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.h
@@ -203,28 +203,15 @@ namespace __sanitizer {
     u64 __unused1;
     u64 __unused2;
 #elif defined(__sparc__)
-#if defined(__arch64__)
-    unsigned mode;
-    unsigned short __pad1;
-#else
-    unsigned short __pad1;
-    unsigned short mode;
-    unsigned short __pad2;
-#endif
-    unsigned short __seq;
-    unsigned long long __unused1;
-    unsigned long long __unused2;
-#elif defined(__mips__) || defined(__aarch64__) || defined(__s390x__)
-    unsigned int mode;
-    unsigned short __seq;
-    unsigned short __pad1;
-    unsigned long __unused1;
-    unsigned long __unused2;
+  unsigned mode;
+  unsigned short __pad2;
+  unsigned short __seq;
+  unsigned long long __unused1;
+  unsigned long long __unused2;
 #else
-    unsigned short mode;
-    unsigned short __pad1;
-    unsigned short __seq;
-    unsigned short __pad2;
+  unsigned int mode;
+  unsigned short __seq;
+  unsigned short __pad2;
 #if defined(__x86_64__) && !defined(_LP64)
     u64 __unused1;
     u64 __unused2;