summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-06-25 20:31:10 +0200
committerLudovic Courtès <ludo@gnu.org>2013-06-25 20:31:10 +0200
commit6e1c4093d27c3d57261958df6c04996c19c74e69 (patch)
tree055c07bcafea8b376855bb504458d6e464133b6c
parent527e7961252ece5d143bfd921c1159a7a5bf8d5f (diff)
downloadguix-6e1c4093d27c3d57261958df6c04996c19c74e69.tar.gz
gnu: bigloo: Explicitly link libbigloopthread against libgc.
* gnu/packages/scheme.scm (bigloo): In `configure' phase, change
  api/thread/src/Makefile to explicitly link against libgc.
-rw-r--r--gnu/packages/scheme.scm13
1 files changed, 12 insertions, 1 deletions
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index 1e66750b01..4d717128d9 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -128,7 +128,7 @@ development cycle.")
                "1771z43nmf9awjvlvrpjfhzcfxsbw2qipir8g9r47sygf2vn59yl"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:patches (list (assoc-ref %build-inputs "patch/shebangs"))
+     `(#:patches (list (assoc-ref %build-inputs "patch/shebangs"))
        #:test-target "test"
        #:phases (alist-replace
                  'configure
@@ -138,6 +138,17 @@ development cycle.")
                      (("^shell=.*$")
                       (string-append "shell=" (which "bash") "\n")))
 
+                   ;; Since libgc's pthread redirects are used, we end up
+                   ;; using libgc symbols, so we must link against it.
+                   ;; Reported on 2013-06-25.
+                   (substitute* "api/pthread/src/Makefile"
+                     (("^EXTRALIBS[[:blank:]]*=(.*)$" _ value)
+                      (string-append "EXTRALIBS = "
+                                     (string-trim-right value)
+                                     " -l$(GCLIB)_fth-$(RELEASE)"
+                                     " -Wl,-rpath=" (assoc-ref outputs "out")
+                                     "/lib/bigloo/" ,version)))
+
                    ;; Those variables are used by libgc's `configure'.
                    (setenv "SHELL" (which "bash"))
                    (setenv "CONFIG_SHELL" (which "bash"))