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

lintian rpath warning



I'm getting this warning from lintian:

$ lintian -i gimp-print_4.2.5-3_i386.changes 
W: cupsys-driver-gimpprint: binary-or-shlib-defines-rpath ./usr/lib/cups/backend/epson /usr/lib
N:
N:   The binary or shared library defines the `RPATH'. Usually this is a
N:   bad thing. Most likely you will find a Makefile with a line like:
N:       gcc test.o -o test -Wl,--rpath
N:   or
N:       gcc test.o -o test -R/usr/local/lib
N:   Please contact debian-devel@lists.debian.org if you have questions
N:   about this.
N:
W: cupsys-driver-gimpprint: binary-or-shlib-defines-rpath ./usr/lib/cups/backend/canon /usr/lib
W: cupsys-driver-gimpprint: binary-or-shlib-defines-rpath ./usr/lib/cups/filter/rastertoprinter /usr/lib
W: cupsys-driver-gimpprint: binary-or-shlib-defines-rpath ./usr/lib/cups/filter/commandtoepson /usr/lib

Looking at the build log, rpath /is/ being used, firstly when linking
libgimpprint:

/bin/sh ../../libtool --mode=link gcc -Wall -Wcast-align
-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations
-Wnested-externs -Wwrite-strings -pedantic -g -O2 -o libgimpprint.la
-version-info 2:0:1 -rpath /usr/lib print-lexmark.lo print-canon.lo
print-dither.lo print-escp2.lo print-escp2-data.lo print-pcl.lo
print-ps.lo print-util.lo print-color.lo print-weave.lo
print-version.lo print-dither-matrices.lo -lm -lz

However, this a libtool option, and does not actually result in
DT_RPATH being set in the shared library.  When building all the cups
binaries, ld rpath is used, but is not mentioned in the
Makefile/Makefile.am:

/bin/sh ../../libtool --mode=link gcc -Wall -Wcast-align
-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations
-Wnested-externs -Wwrite-strings -pedantic -g -O2  -o epson  epson.o
../../lib/libprintut.la -Wl,-rpath,/usr/lib -lcupsimage -ltiff -ljpeg
-lpng -lm -lz -lcups -L/usr/lib -lgnutls -lnsl   -lz

gcc -Wall -Wcast-align -Wstrict-prototypes -Wmissing-prototypes
-Wmissing-declarations -Wnested-externs -Wwrite-strings -pedantic -g
-O2 -o epson epson.o -Wl,-rpath -Wl,/usr/lib
../../lib/.libs/libprintut.al -lcupsimage -ltiff /usr/lib/libjpeg.so
-lpng -lm -lcups -L/usr/lib /usr/lib/libgnutls.so /usr/lib/libtasn1.so
/usr/lib/libgcrypt.so -lnsl -lz

What is making libtool use ld's -rpath option here?  Is it something
to do with the libraries being linked, which are different between the
libtool and gcc commands?  Why are libjpeg/libgnutls etc. absolute
paths, and why are the libgnutls dependencies expanded by libtool?


Thanks,
Roger

-- 
Roger Leigh

                Printing on GNU/Linux?  http://gimp-print.sourceforge.net/
                GPG Public Key: 0x25BFB848 available on public keyservers



Reply to: