Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150520210801.GK11258@port70.net>
Date: Wed, 20 May 2015 23:08:02 +0200
From: Szabolcs Nagy <nsz@...t70.net>
To: musl@...ts.openwall.com
Cc: John Mudd <johnbmudd@...il.com>
Subject: Re: Re: musl xclock?

* John Mudd <johnbmudd@...il.com> [2015-05-20 16:47:45 -0400]:
> 
> It listed this:
> 
> libz.so.1 needed by /home/mudd/musl/libXft-2.3.2.install/lib/libXft.so
> found libz.so.1 at //lib/i386-linux-gnu/libz.so.1
> libc.so.6 needed by //lib/i386-linux-gnu/libz.so.1
> 

ok so you probably forgot to add libz to the -L path
and then ld went ahead and found the wrong one

> $ readelf -a ./libXft-2.3.2.install/lib/libXft.so | grep NEED
>  0x00000001 (NEEDED)                     Shared library:
> [libfontconfig.so.1]
>  0x00000001 (NEEDED)                     Shared library: [libxml2.so.2]
>  0x00000001 (NEEDED)                     Shared library: [libfreetype.so.6]
>  0x00000001 (NEEDED)                     Shared library: [libz.so.1]
>  0x00000001 (NEEDED)                     Shared library: [libXrender.so.1]
>  0x00000001 (NEEDED)                     Shared library: [libX11.so.6]
>  0x00000001 (NEEDED)                     Shared library: [libxcb.so.1]
>  0x00000001 (NEEDED)                     Shared library: [libXau.so.6]
>  0x00000001 (NEEDED)                     Shared library: [libc.so]
> 

this is ok

(in general you may also want to look at rpath too)

> $ /home/mudd/musl/lib/ld-musl-i386.so.1 --list
> ./libXft-2.3.2.install/lib/libXft.so
...
>         libz.so.1 => /usr/rx30/musl/zlib-1.2.8.install/lib/libz.so.1
> (0xb73c7000)
...

> $ ln -s /home/mudd/musl/lib/ld-musl-i386.so.1 musl_lib
> $ musl_lib --list ./libXft-2.3.2.install/lib/libXft.so
...
> Error loading shared library libz.so.1: No such file or directory (needed
> by ./libXft-2.3.2.install/lib/libXft.so)

you probably have an /home/mudd/musl/etc/ld-musl-i386.path
that is visible to the first command but not to the second
(nor to ld).

you may also want to figure out why ld tried the system
paths (it either uses hard coded paths or gets them from
some ld.so.conf, you can figure out what it's doing by
using strace -f on the build command)

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.