From 65d3b7c31ddda37fd721cf4ee1e538d3dc9727c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 18 Nov 2013 00:09:45 +0100 Subject: [PATCH] gnu: gcc: Always link against libgcc_s.so. * gnu/packages/gcc.scm (gcc-4.7)[pre-configure]: Add snippet to #undef USE_LD_AS_NEEDED. --- gnu/packages/gcc.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index db1984306e..f11e506bc7 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -173,6 +173,18 @@ where the OS part is overloaded to denote a specific ABI---into GCC ~a" libc line)))) + ;; Use '-lgcc_s' rather than '--as-needed -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 + ;; .) + ;; Also, "gcc_cv_ld_as_needed=no" as a configure flag doesn't + ;; work. + (substitute* "gcc/gcc.c" + (("#ifndef USE_LD_AS_NEEDED.*$" line) + (string-append "#undef USE_LD_AS_NEEDED\n" line))) + ;; Don't retain a dependency on the build-time sed. (substitute* "fixincludes/fixincl.x" (("static char const sed_cmd_z\\[\\] =.*;")