From fa1e2f3d0d04a2d8e841c6d77244739c00176e9a Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 7 Jan 2015 09:51:23 -0500 Subject: [PATCH] Revert "gnu: gcc: Add '-lgcc_s' only when '-pthread' is given." This reverts commit 9097e666d48c9b6c0263dcbe60b5af69ff7689f4. 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. --- gnu/packages/gcc.scm | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index df161193c1..a510af48a0 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -1,6 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014 Ludovic Courtès -;;; Copyright © 2015 Mark H Weaver ;;; ;;; 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" "^gnu-user.*\\.h$") (("#define GNU_USER_TARGET_LIB_SPEC (.*)$" _ suffix) - ;; Help libgcc_s.so be found (see also below.) When - ;; -pthread is given, use '-lgcc_s' so that libgcc_s.so is - ;; always found by those programs that use 'pthread_cancel' - ;; (glibc dlopens libgcc_s.so when pthread_cancel support - ;; is needed, but having it in the application's RUNPATH - ;; isn't enough; see + ;; Help libgcc_s.so be found (see also below.) Always use + ;; '-lgcc_s' so that libgcc_s.so is always found by those + ;; programs that use 'pthread_cancel' (glibc dlopens + ;; libgcc_s.so when pthread_cancel support is needed, but + ;; having it in the application's RUNPATH isn't enough; see ;; .) (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)) (("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" line) (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\"