Revert "gnu: gcc: Add '-lgcc_s' only when '-pthread' is given."
This reverts commit 9097e666d4
.
This turned out not to be a good strategy. Some build system, e.g. tcl's, do
not pass -pthread on GNU/Linux by default, but merely link with -lpthread.
Also, Ludovic found other cases where libgcc_s is dlopened by libc that have
nothing to do with pthreads, e.g. to walk the stack.
This commit is contained in:
parent
b515822de1
commit
fa1e2f3d0d
|
@ -1,6 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -202,15 +201,14 @@ where the OS part is overloaded to denote a specific ABI---into GCC
|
||||||
(substitute* (find-files "gcc/config"
|
(substitute* (find-files "gcc/config"
|
||||||
"^gnu-user.*\\.h$")
|
"^gnu-user.*\\.h$")
|
||||||
(("#define GNU_USER_TARGET_LIB_SPEC (.*)$" _ suffix)
|
(("#define GNU_USER_TARGET_LIB_SPEC (.*)$" _ suffix)
|
||||||
;; Help libgcc_s.so be found (see also below.) When
|
;; Help libgcc_s.so be found (see also below.) Always use
|
||||||
;; -pthread is given, use '-lgcc_s' so that libgcc_s.so is
|
;; '-lgcc_s' so that libgcc_s.so is always found by those
|
||||||
;; always found by those programs that use 'pthread_cancel'
|
;; programs that use 'pthread_cancel' (glibc dlopens
|
||||||
;; (glibc dlopens libgcc_s.so when pthread_cancel support
|
;; libgcc_s.so when pthread_cancel support is needed, but
|
||||||
;; is needed, but having it in the application's RUNPATH
|
;; having it in the application's RUNPATH isn't enough; see
|
||||||
;; isn't enough; see
|
|
||||||
;; <http://sourceware.org/ml/libc-help/2013-11/msg00023.html>.)
|
;; <http://sourceware.org/ml/libc-help/2013-11/msg00023.html>.)
|
||||||
(format #f "#define GNU_USER_TARGET_LIB_SPEC \
|
(format #f "#define GNU_USER_TARGET_LIB_SPEC \
|
||||||
\"-L~a/lib %{!static:-rpath=~a/lib %{!static-libgcc:-rpath=~a/lib64 -rpath=~a/lib %{pthread:-lgcc_s}}} \" ~a"
|
\"-L~a/lib %{!static:-rpath=~a/lib %{!static-libgcc:-rpath=~a/lib64 -rpath=~a/lib -lgcc_s}} \" ~a"
|
||||||
libc libc libdir libdir suffix))
|
libc libc libdir libdir suffix))
|
||||||
(("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" line)
|
(("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" line)
|
||||||
(format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\"
|
(format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\"
|
||||||
|
|
Loading…
Reference in New Issue