2006.01.09 14:12 "[Tiff] The -rpath Problem: Please add ${LIBDIR} to ${LINK}", by Norihiko Murase

2006.01.11 06:29 "Re: [Tiff] The -rpath Problem: Please add ${LIBDIR} to ${LINK}", by Norihiko Murase

Hi,

I Thank you for replying.

|From: Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
|Subject: [Tiff] The -rpath Problem: Please add ${LIBDIR} to ${LINK}
|Message-ID: <Pine.SOC.4.60.0601091102170.4804@blade.simplesystems.org>
|Date: Mon, 9 Jan 2006 11:06:12 -0600 (CST)
|

I found one kind of problem in LibTIFF-3.8.0. Even if I executed the configure script with the option "--enable-rpath", the -R<dir> options are NOT added in the steps of "link"!!

Currently LIBDIR is added to LDFLAGS for linking the libtiff library.

Actually, NOT added in all the Makefiles (except
tiff-3.8.0/libtiff/Makefile) I referred to.
    [-/tiff-3.8.0]% grep 'LIBDIR' tools/Makefile.in
    LIBDIR = @LIBDIR@
    [-/tiff-3.8.0]%
This means that the value of LIBDIR is NOT used. The same
result is got also from
    tiff-3.8.0/contrib/addtiffo/Makefile.in
    tiff-3.8.0/contrib/dbs/Makefile.in
    tiff-3.8.0/contrib/iptcutil/Makefile.in

I was mistaken on tiff-3.8.0/libtiff/Makefile, in which the
value of LIBDIR is added via the variable am__append_[34].
(Sorry!)

[-/tiff-3.8.0]% egrep -n -B 1 '(LIBDIR|am__append_[34])' libtiff/Makefile.in 68-@HAVE_CXX_TRUE@am__append_2 = libtiffxx.la 69:@HAVE_RPATH_TRUE@am__append_3 = $(LIBDIR) 70:@HAVE_RPATH_TRUE@am__append_4 = $(LIBDIR)

--
192-LDFLAGS = @LDFLAGS@
193:LIBDIR = @LIBDIR@
--
349-libtiff_la_LDFLAGS = -no-undefined -version-number \

    350:        $(LIBTIFF_VERSION_INFO) $(am__append_3)
    --
    353-libtiffxx_la_LDFLAGS = -no-undefined -version-number \
    354:        $(LIBTIFF_VERSION_INFO) $(am__append_4)

[-/tiff-3.8.0]%

# As for libtiff/Makefile, it may be the best to add the
# following line somewhere
# mkg3states_LDFLAGS = $(LIBDIR)

What does this accomplish? The mkg3states program is never installed and it does not need any library which is later installed.

This means that the mkg3states program is built but would
not be usable without adding that line.

[-/tiff-3.8.0]% egrep -n -B 2 '(LIBDIR|mkg3states_LDFLAGS)' libtiff/Makefile.in 67-@HAVE_CXX_TRUE@am__append_1 = tiffio.hxx 68-@HAVE_CXX_TRUE@am__append_2 = libtiffxx.la 69:@HAVE_RPATH_TRUE@am__append_3 = $(LIBDIR) 70:@HAVE_RPATH_TRUE@am__append_4 = $(LIBDIR)

--
191-LD = @LD@
192-LDFLAGS = @LDFLAGS@
193:LIBDIR = @LIBDIR@
--

    458-mkg3states$(EXEEXT): $(mkg3states_OBJECTS) $(mkg3states_DEPENDENCIES) 
    459-        @rm -f mkg3states$(EXEEXT)
    460:        $(LINK) $(mkg3states_LDFLAGS) $(mkg3states_OBJECTS) $(mkg3states_LDADD) $(LIBS)

[-/tiff-3.8.0]%
[-/tiff-3.8.0]% ldd tiff-3.8.0/libtiff/mkg3states
tiff-3.8.0/libtiff/mkg3states:
    libz.so => /usr/lib/libz.so (0x28067000)
    libm.so.2 => /usr/lib/libm.so.2 (0x28074000)
    libc.so.4 => /usr/lib/libc.so.4 (0x2808f000)
[-/tiff-3.8.0]%

The result of ldd(1) should have been the following:
    libz.so => /usr/local/zlib/lib/libz.so (0x********)

Sincerely,

---
Norihiko Murase
  The University of Aizu
E-mail: skeleten [AT] shillest.net
        s1080224 [AT] u-aizu.ac.jp