all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Mark H Weaver <mhw@netris.org>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: guix-devel@gnu.org
Subject: Re: Installing manually built software in Guix
Date: Sat, 08 Feb 2014 23:50:30 -0500	[thread overview]
Message-ID: <874n486ga1.fsf@netris.org> (raw)
In-Reply-To: <878utmlfc8.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Fri, 07 Feb 2014 23:37:11 +0100")

Hi Ludovic,

ludo@gnu.org (Ludovic Courtès) writes:

> Mark H Weaver <mhw@netris.org> skribis:
>
>> As a Guile developer, I'm in the habit of building Guile from git, and
>> occasionally installing that version with --prefix=/usr.
>>
>> As a Guix enthusiast, I've recently been experimenting with building
>> Guile from git, with my environment variables set to attempt to use only
>> things from Guix:
>
> I’ve been doing something similar.
>
>> I just tried "make install", as root, with these same environment
>> variable settings (but with HOME=/home/mhw).  It failed in the middle.
>> Here's the tail of the log:
>>
>> make[2]: Entering directory `/home/mhw/guile/guile-readline'
>> make  install-am
>> make[3]: Entering directory `/home/mhw/guile/guile-readline'
>> make[4]: Entering directory `/home/mhw/guile/guile-readline'
>>  /home/mhw/.guix-profile/bin/mkdir -p '/usr/lib'
>>  /bin/bash ../libtool   --mode=install /home/mhw/.guix-profile/bin/install -c   libguilereadline-v-18.la '/usr/lib'
>> libtool: install: warning: relinking `libguilereadline-v-18.la'
>> libtool: install: (cd /home/mhw/guile/guile-readline; /bin/bash
>> /home/mhw/guile/libtool --silent --tag CC --mode=relink gcc -Wall
>> -Wmissing-prototypes -Wdeclaration-after-statement -Wpointer-arith
>> -Wswitch-enum -fno-strict-aliasing
>> -I/nix/store/a9j9bl7m73rhlal9z83z3wbl9m17di4i-libgc-7.4.0/include -g
>> -O2 -version-info 18:0:0 -export-dynamic -no-undefined -o
>> libguilereadline-v-18.la -rpath /usr/lib readline.lo -lreadline
>> -lncurses ../libguile/libguile-2.0.la ../lib/libgnu.la -lcrypt -lm )
>> libtool: relink: warning: `/home/mhw/.guix-profile/lib/libunistring.la' seems to be moved
>> libtool: relink: warning: `/home/mhw/.guix-profile/lib/libgmp.la' seems to be moved
>> libtool: relink: warning: `/home/mhw/.guix-profile/lib/libltdl.la' seems to be moved
>> /usr/lib/libgc.so: could not read symbols: File in wrong format
>> collect2: error: ld returned 1 exit status
>
> Here it’s trying to use the “wrong” libgc, which is itself possibly
> linked with a different libc.
>
> Can you try installing libgc from Guix, and make sure it’s the one
> that’s picked up when building Guile?

I already had libgc from Guix, and indeed it was the one picked up by
Guile.  The problem seems to be limited to guile-readline.

I guess the problem might be related to an "-rpath /usr/lib" that ends
up in 'relink_command' in guile-readline/libguilereadline-v-18.la:

--8<---------------cut here---------------start------------->8---
# Directory that this library needs to be installed in:
libdir='/usr/lib'
relink_command="(cd /home/mhw/guile/guile-readline; /bin/bash /home/mhw/guile/libtool  --silent --tag CC --mode=relink gcc -Wall -Wmissing-prototypes -Wdeclaration-after-statement -Wpointer-arith -Wswitch-enum -fno-strict-aliasing -I/nix/store/a9j9bl7m73rhlal9z83z3wbl9m17di4i-libgc-7.4.0/include -g -O2 -version-info 18:0:0 -export-dynamic -no-undefined -o libguilereadline-v-18.la -rpath /usr/lib readline.lo -lreadline -lncurses ../libguile/libguile-2.0.la ../lib/libgnu.la -lcrypt -lm @inst_prefix_dir@)"
--8<---------------cut here---------------end--------------->8---

I'm not sure why libtool is putting that rpath in there, but here are
some possibly relevant lines from config.log:

--8<---------------cut here---------------start------------->8---
BDW_GC_LIBS='-L/nix/store/a9j9bl7m73rhlal9z83z3wbl9m17di4i-libgc-7.4.0/lib -lgc  '
GUILE_LIBS='  -lcrypt -lm '
INTL_MACOSX_LIBS=''
LIBFFI_LIBS='-L/nix/store/49535xllwsa3mwddjj1hny84l0p7c453-libffi-3.0.13/lib -lffi  '
PTHREAD_LIBS=''
READLINE_LIBS='-lreadline -lncurses '
--8<---------------cut here---------------end--------------->8---

All of the libraries listed above are in ~/.guix-profile/lib, but it
seems that only the ones that are found using 'pkg-config' end up with
corresponding -L arguments.

Also possibly relevant: I don't have LD_LIBRARY_PATH set.  Should I?

The only environment variables I have pointing to anything Guix-related
are the ones I listed in my previous email.  Am I missing anything?

   Thanks,
     Mark

  reply	other threads:[~2014-02-09  4:51 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-07 21:07 Installing manually built software in Guix Mark H Weaver
2014-02-07 22:37 ` Ludovic Courtès
2014-02-09  4:50   ` Mark H Weaver [this message]
2014-02-09  5:17     ` Mark H Weaver
2014-02-09 20:50     ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=874n486ga1.fsf@netris.org \
    --to=mhw@netris.org \
    --cc=guix-devel@gnu.org \
    --cc=ludo@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.