[uClibc]problems linking libz

Tom Grennan tgrennan at ayrnetworks.com
Mon May 20 17:45:05 MDT 2002


Erik Andersen wrote on Fri, May 10, 2002 at 11:51:33PM -0600:
>On Fri May 10, 2002 at 08:05:01PM -0700, Todd Sundsted wrote:
>> I have been fighting with this problem for the last several days.  I am trying
>> to link a simple program with a version of libz.so that I built with uClibc but
>> I can't get the linker to pick up my version of libz.so -- it insists on
>> picking up the version installed in /lib.
>
>Hmm.  You might want to take a look at how I compile things
>with buildroot.  I just added a makefile for building zlib 
>vs uClibc for you
>    http://www.uclibc.org/cgi-bin/cvsweb/buildroot/
>
> -Erik

I could't get uClibc to build and link with libz.so correctly using the
above guide.  The following is with uClibc-0.9.11.tar.bz2 and
zlib-1.1.4.tar.gz compiled/running on RH7.1.

Note that the uClibc version of ldd crashes.  I'll trace this unless
someone else is already investigating.

Also note that the example program does work with a libz.a

-- 
TomG



$ CC=/usr/i386-linux-uclibc/bin/gcc configure -shared
Checking for shared library support...
Building shared library libz.so.1.1.4 with /usr/i386-linux-uclibc/bin/gcc.
Checking for unistd.h... Yes.
Checking for errno.h...  Yes.
Checking for mmap support... Yes.
$ make LDSHARED="/usr/i386-linux-uclibc/bin/gcc --shared" CFLAGS="-Os -g -fPIC" CC=/usr/i386-linux-uclibc/bin/gcc all libz.a
/usr/i386-linux-uclibc/bin/gcc -Os -g -fPIC   -c -o example.o example.c
/usr/i386-linux-uclibc/bin/gcc -Os -g -fPIC   -c -o adler32.o adler32.c
/usr/i386-linux-uclibc/bin/gcc -Os -g -fPIC   -c -o compress.o compress.c
/usr/i386-linux-uclibc/bin/gcc -Os -g -fPIC   -c -o crc32.o crc32.c
/usr/i386-linux-uclibc/bin/gcc -Os -g -fPIC   -c -o gzio.o gzio.c
/usr/i386-linux-uclibc/bin/gcc -Os -g -fPIC   -c -o uncompr.o uncompr.c
/usr/i386-linux-uclibc/bin/gcc -Os -g -fPIC   -c -o deflate.o deflate.c
/usr/i386-linux-uclibc/bin/gcc -Os -g -fPIC   -c -o trees.o trees.c
/usr/i386-linux-uclibc/bin/gcc -Os -g -fPIC   -c -o zutil.o zutil.c
/usr/i386-linux-uclibc/bin/gcc -Os -g -fPIC   -c -o inflate.o inflate.c
/usr/i386-linux-uclibc/bin/gcc -Os -g -fPIC   -c -o infblock.o infblock.c
/usr/i386-linux-uclibc/bin/gcc -Os -g -fPIC   -c -o inftrees.o inftrees.c
/usr/i386-linux-uclibc/bin/gcc -Os -g -fPIC   -c -o infcodes.o infcodes.c
/usr/i386-linux-uclibc/bin/gcc -Os -g -fPIC   -c -o infutil.o infutil.c
/usr/i386-linux-uclibc/bin/gcc -Os -g -fPIC   -c -o inffast.o inffast.c
/usr/i386-linux-uclibc/bin/gcc --shared -o libz.so.1.1.4 adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o zutil.o inflate.o infblock.o inftrees.o infcodes.o infutil.o inffast.o
rm -f libz.so libz.so.1
ln -s libz.so.1.1.4 libz.so
ln -s libz.so.1.1.4 libz.so.1
/usr/i386-linux-uclibc/bin/gcc -Os -g -fPIC -o example example.o -L. -lz
/usr/i386-linux-uclibc/bin/gcc -Os -g -fPIC   -c -o minigzip.o minigzip.c
/usr/i386-linux-uclibc/bin/gcc -Os -g -fPIC -o minigzip minigzip.o -L. -lz
ar rc libz.a adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o zutil.o inflate.o infblock.o inftrees.o infcodes.o infutil.o inffast.o
$ /usr/i386-linux-uclibc/bin/ldd ./example
Segmentation fault
$ /usr/bin/ldd ./example
        libz.so => //usr/lib/libz.so (0x0x40006000)
        libc.so.0 => /usr/i386-linux-uclibc/lib/libc.so.0 (0x0x40014000)
./example: linked against GNU libc!
$ /usr/bin/ldd ./libz.so.1.1.4
        /lib/libNoVersion.so.1 => /lib/libNoVersion.so.1 (0x4000e000)
        libc.so.0 => not found
        libc.so.6 => /lib/i686/libc.so.6 (0x4002b000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
$ rm libz.so*
$ /usr/i386-linux-uclibc/bin/gcc -Os -g -fPIC -o example example.o -L. -lz
$ /usr/bin/ldd ./example
        libc.so.0 => /usr/i386-linux-uclibc/lib/libc.so.0 (0x0x40006000)
        ld-uClibc.so.0 => /usr/i386-linux-uclibc/lib/ld-uClibc.so.0 (0x0x40000000)
$ ./example
uncompress(): hello, hello!
gzread(): hello, hello!
gzgets() after gzseek: hello!
inflate(): hello, hello!
large_inflate(): OK
after inflateSync(): hello, hello!
inflate with dictionary: hello, hello!



More information about the uClibc mailing list