aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-08-19 18:20:05 +0200
committerLudovic Courtès <ludo@gnu.org>2018-08-19 18:21:24 +0200
commit0b93d04ac537d6413999349ebe7cdcb1e961700e (patch)
tree49a83c97394b7debd17ac47a6ae9d5e43d6f8e2e /gnu/packages
parent6d1a7ce8ea52613963684e6545f6fb3e32d84181 (diff)
downloadguix-0b93d04ac537d6413999349ebe7cdcb1e961700e.tar.gz
guix-0b93d04ac537d6413999349ebe7cdcb1e961700e.zip
gnu: gcc@4.8: Fix libsanitizer build issue.
Fixes <https://bugs.gnu.org/32397>. Reported by fis trivial <ybbs.daans@hotmail.com>. * gnu/packages/patches/gcc-4.8-libsanitizer-fix.patch: New file. * gnu/packages/gcc.scm (gcc-4.8)[source]: Use it. * gnu/local.mk (dist_patch_DATA): Add it.
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/gcc.scm1
-rw-r--r--gnu/packages/patches/gcc-4.8-libsanitizer-fix.patch15
2 files changed, 16 insertions, 0 deletions
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 04d0a85276..bdff2ddada 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -365,6 +365,7 @@ Go. It also includes runtime support libraries for these languages.")
(base32
"08yggr18v373a1ihj0rg2vd6psnic42b518xcgp3r9k81xz1xyr2"))
(patches (search-patches "gcc-arm-link-spec-fix.patch"
+ "gcc-4.8-libsanitizer-fix.patch"
"gcc-asan-missing-include.patch"
"gcc-fix-texi2pod.patch"))
(modules '((guix build utils)))
diff --git a/gnu/packages/patches/gcc-4.8-libsanitizer-fix.patch b/gnu/packages/patches/gcc-4.8-libsanitizer-fix.patch
new file mode 100644
index 0000000000..86a3ee912d
--- /dev/null
+++ b/gnu/packages/patches/gcc-4.8-libsanitizer-fix.patch
@@ -0,0 +1,15 @@
+This is a backport of part of this patch from 6.5 to 4.8:
+
+ https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=8937b94d1a643fd9760714642296d034a45254a8
+
+--- a/libsanitizer/tsan/tsan_platform_linux.cc
++++ b/libsanitizer/tsan/tsan_platform_linux.cc
+@@ -351,7 +351,7 @@ bool IsGlobalVar(uptr addr) {
+ // closes within glibc. The code is a pure hack.
+ int ExtractResolvFDs(void *state, int *fds, int nfd) {
+ int cnt = 0;
+- __res_state *statp = (__res_state*)state;
++ struct __res_state *statp = (struct __res_state*)state;
+ for (int i = 0; i < MAXNS && cnt < nfd; i++) {
+ if (statp->_u._ext.nsaddrs[i] && statp->_u._ext.nssocks[i] != -1)
+ fds[cnt++] = statp->_u._ext.nssocks[i];