From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark H Weaver Subject: Re: Installing manually built software in Guix Date: Sat, 08 Feb 2014 23:50:30 -0500 Message-ID: <874n486ga1.fsf@netris.org> References: <874n4apr7j.fsf@netris.org> <878utmlfc8.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:39245) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WCMMX-0004bI-0n for guix-devel@gnu.org; Sat, 08 Feb 2014 23:51:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WCMMN-000381-Qu for guix-devel@gnu.org; Sat, 08 Feb 2014 23:51:24 -0500 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") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: guix-devel@gnu.org Hi Ludovic, ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Mark H Weaver skribis: > >> As a Guile developer, I'm in the habit of building Guile from git, and >> occasionally installing that version with --prefix=3D/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=E2=80=99ve been doing something similar. > >> I just tried "make install", as root, with these same environment >> variable settings (but with HOME=3D/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=3Dinstall /home/mhw/.guix-profile/bin/ins= tall -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=3Drelink 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=E2=80=99s trying to use the =E2=80=9Cwrong=E2=80=9D libgc, which = is itself possibly > linked with a different libc. > > Can you try installing libgc from Guix, and make sure it=E2=80=99s the one > that=E2=80=99s 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=3D'/usr/lib' relink_command=3D"(cd /home/mhw/guile/guile-readline; /bin/bash /home/mhw/g= uile/libtool --silent --tag CC --mode=3Drelink gcc -Wall -Wmissing-prototy= pes -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 libguilereadl= ine-v-18.la -rpath /usr/lib readline.lo -lreadline -lncurses ../libguile/li= bguile-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=3D'-L/nix/store/a9j9bl7m73rhlal9z83z3wbl9m17di4i-libgc-7.4.0/li= b -lgc ' GUILE_LIBS=3D' -lcrypt -lm ' INTL_MACOSX_LIBS=3D'' LIBFFI_LIBS=3D'-L/nix/store/49535xllwsa3mwddjj1hny84l0p7c453-libffi-3.0.13/= lib -lffi ' PTHREAD_LIBS=3D'' READLINE_LIBS=3D'-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