summary refs log tree commit diff
path: root/pkgs/development/interpreters
diff options
context:
space:
mode:
authorMichael Raskin <7c6f434c@mail.ru>2018-03-22 20:03:12 +0000
committerGitHub <noreply@github.com>2018-03-22 20:03:12 +0000
commitbc48bbdd7ef13c161e6657733c43a46a16b19510 (patch)
tree553398e1acf4db43ccbaf3559e2734e92444e12c /pkgs/development/interpreters
parent4a18b4222a1772018c8e85f64f496e391bcd5a53 (diff)
parent2119041dbf4323ff3e92e605b70b75fc2c252741 (diff)
downloadnixlib-bc48bbdd7ef13c161e6657733c43a46a16b19510.tar
nixlib-bc48bbdd7ef13c161e6657733c43a46a16b19510.tar.gz
nixlib-bc48bbdd7ef13c161e6657733c43a46a16b19510.tar.bz2
nixlib-bc48bbdd7ef13c161e6657733c43a46a16b19510.tar.lz
nixlib-bc48bbdd7ef13c161e6657733c43a46a16b19510.tar.xz
nixlib-bc48bbdd7ef13c161e6657733c43a46a16b19510.tar.zst
nixlib-bc48bbdd7ef13c161e6657733c43a46a16b19510.zip
Merge pull request #37589 from mdorman/guile-libtool-fix
guile-1.8: Fix and clean up `libtool` propagation fixes
Diffstat (limited to 'pkgs/development/interpreters')
-rw-r--r--pkgs/development/interpreters/guile/1.8.nix34
1 files changed, 25 insertions, 9 deletions
diff --git a/pkgs/development/interpreters/guile/1.8.nix b/pkgs/development/interpreters/guile/1.8.nix
index 6a2fdbdea436..cf42c9a7b683 100644
--- a/pkgs/development/interpreters/guile/1.8.nix
+++ b/pkgs/development/interpreters/guile/1.8.nix
@@ -24,18 +24,18 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ makeWrapper gawk pkgconfig ];
   buildInputs = [ readline libtool ];
 
-  propagatedBuildInputs = [ gmp ];
-
-  patches = [ ./cpp-4.5.patch ];
+  propagatedBuildInputs = [
+    gmp
 
+    # XXX: These ones aren't normally needed here, but `libguile*.la' has '-l'
+    # flags for them without corresponding '-L' flags. Adding them here will add
+    # the needed `-L' flags.  As for why the `.la' file lacks the `-L' flags,
+    # see below.
+    libtool
+  ];
 
-  postInstall = ''
-    wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin"
-  '';
 
-  preBuild = ''
-    sed -e '/lt_dlinit/a  lt_dladdsearchdir("'$out/lib'");' -i libguile/dynl.c
-  '';
+  patches = [ ./cpp-4.5.patch ];
 
   # Guile needs patching to preset results for the configure tests
   # about pthreads, which work only in native builds.
@@ -45,6 +45,22 @@ stdenv.mkDerivation rec {
     fi
   '';
 
+  preBuild = ''
+    sed -e '/lt_dlinit/a  lt_dladdsearchdir("'$out/lib'");' -i libguile/dynl.c
+  '';
+
+
+  postInstall = ''
+    wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin"
+  ''
+    # XXX: See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903 for
+    # why `--with-libunistring-prefix' and similar options coming from
+    # `AC_LIB_LINKFLAGS_BODY' don't work on NixOS/x86_64.
+  + ''
+    sed -i "$out/lib/pkgconfig/guile"-*.pc    \
+        -e "s|-lltdl|-L${libtool.lib}/lib -lltdl|g"
+  '';
+
   # One test fails.
   # ERROR: file: "libtest-asmobs", message: "file not found"
   # This is fixed here: