tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
gcc6: fix build w/glibc-2.31
Maximilian Bosch
5 years ago
d348694f
cff1a1ee
+63
-1
2 changed files
expand all
collapse all
unified
split
pkgs
development
compilers
gcc
6
0001-Fix-build-for-glibc-2.31.patch
default.nix
+62
pkgs/development/compilers/gcc/6/0001-Fix-build-for-glibc-2.31.patch
···
1
1
+
From 8b55f1047cf3491429c1af607e5dac08a81db6e1 Mon Sep 17 00:00:00 2001
2
2
+
From: Maximilian Bosch <maximilian@mbosch.me>
3
3
+
Date: Thu, 20 Feb 2020 15:08:36 +0100
4
4
+
Subject: [PATCH] Fix build for glibc 2.31
5
5
+
6
6
+
---
7
7
+
.../sanitizer_platform_limits_posix.cc | 5 +++--
8
8
+
.../sanitizer_platform_limits_posix.h | 15 +--------------
9
9
+
2 files changed, 4 insertions(+), 16 deletions(-)
10
10
+
11
11
+
diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
12
12
+
index 069d8d557..c49c28c6e 100644
13
13
+
--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
14
14
+
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
15
15
+
@@ -1130,8 +1130,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, cgid);
16
16
+
#ifndef __GLIBC_PREREQ
17
17
+
#define __GLIBC_PREREQ(x, y) 0
18
18
+
#endif
19
19
+
-#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)
20
20
+
-/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */
21
21
+
+#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31)
22
22
+
+/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit
23
23
+
+ on many architectures. */
24
24
+
CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
25
25
+
#endif
26
26
+
27
27
+
diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
28
28
+
index 304d04e39..568081a79 100644
29
29
+
--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
30
30
+
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
31
31
+
@@ -200,27 +200,14 @@ namespace __sanitizer {
32
32
+
unsigned __seq;
33
33
+
u64 __unused1;
34
34
+
u64 __unused2;
35
35
+
-#elif defined(__mips__) || defined(__aarch64__)
36
36
+
- unsigned int mode;
37
37
+
- unsigned short __seq;
38
38
+
- unsigned short __pad1;
39
39
+
- unsigned long __unused1;
40
40
+
- unsigned long __unused2;
41
41
+
#elif defined(__sparc__)
42
42
+
-# if defined(__arch64__)
43
43
+
unsigned mode;
44
44
+
- unsigned short __pad1;
45
45
+
-# else
46
46
+
- unsigned short __pad1;
47
47
+
- unsigned short mode;
48
48
+
unsigned short __pad2;
49
49
+
-# endif
50
50
+
unsigned short __seq;
51
51
+
unsigned long long __unused1;
52
52
+
unsigned long long __unused2;
53
53
+
#else
54
54
+
- unsigned short mode;
55
55
+
- unsigned short __pad1;
56
56
+
+ unsigned int mode;
57
57
+
unsigned short __seq;
58
58
+
unsigned short __pad2;
59
59
+
#if defined(__x86_64__) && !defined(_LP64)
60
60
+
--
61
61
+
2.25.0
62
62
+
+1
-1
pkgs/development/compilers/gcc/6/default.nix
···
65
65
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
66
66
67
67
patches =
68
68
-
[ ../use-source-date-epoch.patch ]
68
68
+
[ ../use-source-date-epoch.patch ./0001-Fix-build-for-glibc-2.31.patch ]
69
69
++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
70
70
++ optional noSysDirs ../no-sys-dirs.patch
71
71
++ optional langAda ../gnat-cflags.patch