tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

warning about conflicting libraries from base and pkgsrc



Hi,
on NetBSD 3.1 with /usr/lib/libz.so.0.4 and /usr/pkg/lib/libz.so.1.0.2
(from zlib-1.2.3) I just saw this, building a program without pkgsrc:
 gcc -I/usr/pkg/include -g -O2 -L/usr/pkg/lib -lcurl -L/usr/pkg/lib
 -Wl,-R/usr/pkg/lib -lidn -lssl -lcrypto -lz -o esniper auction.o
 auctionfile.o auctioninfo.o buffer.o esniper.o history.o html.o http.o
 options.o util.o -L/usr/pkg/lib -lcurl -L/usr/pkg/lib -Wl,-R/usr/pkg/lib
 -lidn -lssl -lcrypto -lz 
 ld: warning: libz.so.0, needed by /usr/pkg/lib/libcurl.so, may conflict
 with libz.so.1
 ld: warning: libz.so.0, needed by /usr/pkg/lib/libcurl.so, may conflict
 with libz.so.1
The resulting binary includes this information
 $ objdump -x esniper
 ...
 Dynamic Section:
 NEEDED libcurl.so.4
 NEEDED libidn.so.11
 NEEDED libssl.so.3
 NEEDED libcrypto.so.2
 NEEDED libz.so.1
 NEEDED libc.so.12
 RPATH /usr/pkg/lib
NOTE: take a look at the version of libz.
 $ ldd esniper
 esniper:
 -lintl.0 => /usr/lib/libintl.so.0
 -lidn.11 => /usr/pkg/lib/libidn.so.11
 -lcrypt.0 => /lib/libcrypt.so.0
 -lcrypto.2 => /usr/lib/libcrypto.so.2
 -lssl.3 => /usr/lib/libssl.so.3
 -lz.0 => /usr/lib/libz.so.0
 -lcurl.4 => /usr/pkg/lib/libcurl.so.4
 -lz.1 => /usr/pkg/lib/libz.so.1
 -lc.12 => /usr/lib/libc.so.12
NOTE: two versions of libz will be used by this program.
Building the software within the pkgsrc framework gives me this
 $ objdump -x esniper
 ...
 Dynamic Section:
 NEEDED libcurl.so.4
 NEEDED libidn.so.11
 NEEDED libssl.so.3
 NEEDED libcrypto.so.2
 NEEDED libz.so.0
 NEEDED libc.so.12
 RPATH /usr/pkg/lib
 $ ldd esniper
 esniper:
 -lintl.0 => /usr/lib/libintl.so.0
 -lidn.11 => /usr/pkg/lib/libidn.so.11
 -lcrypt.0 => /lib/libcrypt.so.0
 -lcrypto.2 => /usr/lib/libcrypto.so.2
 -lssl.3 => /usr/lib/libssl.so.3
 -lz.0 => /usr/lib/libz.so.0
 -lcurl.4 => /usr/pkg/lib/libcurl.so.4
 -lc.12 => /usr/lib/libc.so.12
Without digging further I suppose the correct result (only libz.so.0 is
recorded in the binary) comes from using "buildlink3" in pkgsrc.
However, I am curious how to avoid the warning when not using pkgsrc. I
suppose there _are_ people who build software now and then without pkgsrc.
ciao
 Klaus


Home | Main Index | Thread Index | Old Index

AltStyle によって変換されたページ (->オリジナル) /