summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2012-11-05 22:25:52 +0100
committerLudovic Courtès <ludo@gnu.org>2012-11-05 23:51:07 +0100
commitbca114d5282847eb2e0f44ff065ad48adf7f5504 (patch)
treeb2a10f0e18fd1fd353cf2fc0b84b94a35a1be2d8
parent4500581a7c212548a483e143b1dfafbffa3fd1c6 (diff)
downloadguix-bca114d5282847eb2e0f44ff065ad48adf7f5504.tar.gz
distro: gcc: Don't add a RUNPATH to GCC when using `-static-libgcc'.
* distro/packages/base.scm (gcc-4.7)[LIB_SPEC]: Add a `-rpath' to GCC
  only when !static and !static-libgcc.
-rw-r--r--distro/packages/base.scm7
1 files changed, 5 insertions, 2 deletions
diff --git a/distro/packages/base.scm b/distro/packages/base.scm
index 195f870676..16a22eb38f 100644
--- a/distro/packages/base.scm
+++ b/distro/packages/base.scm
@@ -400,8 +400,11 @@ BFD (Binary File Descriptor) library, `gprof', `nm', `strip', etc.")
                  (substitute* (find-files "gcc/config"
                                           "^(gnu-user(64)?|linux-elf)\\.h$")
                    (("#define LIB_SPEC (.*)$" _ suffix)
-                    (format #f "#define LIB_SPEC \"-L~a/lib -rpath=~a/lib \
--rpath=~a/lib64 -rpath=~a/lib \" ~a~%"
+                    ;; Note that with this "lib" spec, we may still add a
+                    ;; RUNPATH to GCC even when `libgcc_s' is not NEEDED.
+                    ;; There's not much that can be done to avoid it, though.
+                    (format #f "#define LIB_SPEC \"-L~a/lib %{!static:-rpath=~a/lib \
+%{!static-libgcc:-rpath=~a/lib64 -rpath=~a/lib}} \" ~a~%"
                             libc libc out out suffix))
                    (("#define STARTFILE_SPEC.*$" line)
                     (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\"