mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-18 15:56:50 +01:00
gcc: fix libgomp to not use initial-exec
Only apply w/musl since while it's wrong everywhere it apparently hasn't broken things entirely w/glibc so keep things as they were. Patch regenerated from original so that it applies which isn't saying much since it's simple :). Source: https://patchwork.ozlabs.org/patch/154298/ IRC chat on #musl with Rich and others endorses this, at least at the conceptual level of no shared library should be using initial-exec TLS. Fixes various uses of libgomp that previously crashed (before 1.1.20) or encounter errors (post-1.1.20), such as pythonPackages.cython .
This commit is contained in:
parent
3ec0d14140
commit
e845be1756
2 changed files with 42 additions and 1 deletions
|
@ -56,7 +56,8 @@ let version = "7.3.0";
|
|||
sha256 = "0mrvxsdwip2p3l17dscpc1x8vhdsciqw1z5q9i6p5g9yg1cqnmgs";
|
||||
})
|
||||
++ optional langFortran ../gfortran-driving.patch
|
||||
++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch;
|
||||
++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
|
||||
++ optional (targetPlatform.libc == "musl") ./libgomp-dont-force-initial-exec.patch;
|
||||
|
||||
/* Cross-gcc settings (build == host != target) */
|
||||
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
From 01c433f4788441c0963005b9d3fad5b2865e6651 Mon Sep 17 00:00:00 2001
|
||||
From: Will Dietz <w@wdtz.org>
|
||||
Date: Mon, 24 Sep 2018 19:57:50 -0500
|
||||
Subject: [PATCH] libgomp/configure.tgt: don't force initial-exec tls-model
|
||||
|
||||
---
|
||||
libgomp/configure.tgt | 17 -----------------
|
||||
1 file changed, 17 deletions(-)
|
||||
|
||||
diff --git a/libgomp/configure.tgt b/libgomp/configure.tgt
|
||||
index 74d95a570c7..b608c55f0c1 100644
|
||||
--- a/libgomp/configure.tgt
|
||||
+++ b/libgomp/configure.tgt
|
||||
@@ -10,23 +10,6 @@
|
||||
# XCFLAGS Add extra compile flags to use.
|
||||
# XLDFLAGS Add extra link flags to use.
|
||||
|
||||
-# Optimize TLS usage by avoiding the overhead of dynamic allocation.
|
||||
-if test $gcc_cv_have_tls = yes ; then
|
||||
- case "${target}" in
|
||||
-
|
||||
- *-*-k*bsd*-gnu*)
|
||||
- ;;
|
||||
-
|
||||
- *-*-linux* | *-*-gnu*)
|
||||
- XCFLAGS="${XCFLAGS} -ftls-model=initial-exec"
|
||||
- ;;
|
||||
-
|
||||
- *-*-rtems*)
|
||||
- XCFLAGS="${XCFLAGS} -ftls-model=local-exec"
|
||||
- ;;
|
||||
- esac
|
||||
-fi
|
||||
-
|
||||
# Since we require POSIX threads, assume a POSIX system by default.
|
||||
config_path="posix"
|
||||
|
||||
--
|
||||
2.19.0
|
||||
|
Loading…
Reference in a new issue