libtool
[Top][All Lists]
Advanced

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

libtool: make prefix install fails


From: Paul E Johnson
Subject: libtool: make prefix install fails
Date: Thu, 17 Oct 2002 16:19:19 -0500
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.1) Gecko/20020918

I'm trying to build RPMS for Swarm (www.swarm.org) on a RH8.0 system. I am having trouble with a problem that is similar to a libtool problem that came up almost one year ago and we discussed it in the RPM list as well as libtool and Swarm lists.

With libtool 1.4.2, rpm/libtool would fail to build libraries properly if the prefix for make install was different from the final install prefix and some relinking had to be done. That broke rpm building in RH7.2, as I recall. Or was it RH7.1? WHichever was released around Nov.2001. Libtool was patched on November 15, 2001, and I built rpms for that patched libtool and since then I had no trouble building rpms on RH 7.2 and RH7.3. These are the ones I was using:

http://lark.cc.ku.edu/~pauljohn/software/libtool-20011121-1pj.i386.rpm
http://lark.cc.ku.edu/~pauljohn/software/libtool-libs-20011121-1pj.i386.rpm

I thought this shared library problem was solved then, but now it reappears for me in RH8.0.

On RH8.0, I am having trouble building an RPM for the Swarm libraries. I get the same thing whether I use the libtool that is distributed with RH8.0 or I use the libtool-1.4c edition that I took from their CVS last year and built into rpms mentioned above. I can build/install Swarm just fine with the regular old configure/make/make install, but if I try to build the rpm I get a libtool failure because it can't find libraries that are installed in the buildroot. After the SPEC file dictates this

make prefix=$RPM_BUILD_ROOT%{prefix} install

That causes the install into /tmp/swarm-root/usr and all the "first wave" of libraries (libspace, libactivity, etc) get dumped in there, but libtool tries to relink, it fails. Observe please that it builds libspace, copies it into the build root, and then can't find -lspace.

/bin/sh ../../libtool --mode=install /usr/bin/install -c libspace.la /tmp/swarm-root/usr/lib/swarm/libspace.la /usr/bin/install -c .libs/libspace.so.2.0.1 /tmp/swarm-root/usr/lib/swarm/libspace.so.2.0.1 (cd /tmp/swarm-root/usr/lib/swarm && rm -f libspace.so.2 && ln -s libspace.so.2.0.1 libspace.so.2) (cd /tmp/swarm-root/usr/lib/swarm && rm -f libspace.so && ln -s libspace.so.2.0.1 libspace.so) /usr/bin/install -c .libs/libspace.lai /tmp/swarm-root/usr/lib/swarm/libspace.la /usr/bin/install -c .libs/libspace.a /tmp/swarm-root/usr/lib/swarm/libspace.a
ranlib /tmp/swarm-root/usr/lib/swarm/libspace.a
chmod 644 /tmp/swarm-root/usr/lib/swarm/libspace.a
libtool: install: warning: remember to run `libtool --finish /usr/lib/swarm'
/bin/sh /home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/mkinstalldirs /tmp/swarm-root/usr/include/swarm /usr/bin/install -c -m 644 /home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/src/space/space.h /tmp/swarm-root/usr/include/swarm/space.h /bin/sh /home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/mkinstalldirs /tmp/swarm-root/usr/include/swarm/space
mkdir /tmp/swarm-root/usr/include/swarm/space
/usr/bin/install -c -m 644 /home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/src/space/Ca2d.h /tmp/swarm-root/usr/include/swarm/space/Ca2d.h /usr/bin/install -c -m 644 /home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/src/space/ConwayLife2d.h /tmp/swarm-root/usr/include/swarm/space/ConwayLife2d.h /usr/bin/install -c -m 644 /home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/src/space/DblBuffer2d.h /tmp/swarm-root/usr/include/swarm/space/DblBuffer2d.h /usr/bin/install -c -m 644 /home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/src/space/Diffuse2d.h /tmp/swarm-root/usr/include/swarm/space/Diffuse2d.h /usr/bin/install -c -m 644 /home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/src/space/Discrete2d.h /tmp/swarm-root/usr/include/swarm/space/Discrete2d.h /usr/bin/install -c -m 644 /home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/src/space/Grid2d.h /tmp/swarm-root/usr/include/swarm/space/Grid2d.h /usr/bin/install -c -m 644 /home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/src/space/Int2dFiler.h /tmp/swarm-root/usr/include/swarm/space/Int2dFiler.h /usr/bin/install -c -m 644 /home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/src/space/Object2dDisplay.h /tmp/swarm-root/usr/include/swarm/space/Object2dDisplay.h /usr/bin/install -c -m 644 /home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/src/space/Value2dDisplay.h /tmp/swarm-root/usr/include/swarm/space/Value2dDisplay.h make[3]: Leaving directory `/home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/=with-hdf/src/space' make[2]: Leaving directory `/home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/=with-hdf/src/space' make[2]: Entering directory `/home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/=with-hdf/src' make[3]: Entering directory `/home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/=with-hdf/src' /bin/sh /home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/mkinstalldirs /tmp/swarm-root/usr/lib/swarm /bin/sh ../libtool --mode=install /usr/bin/install -c libswarm.la /tmp/swarm-root/usr/lib/swarm/libswarm.la
libtool: install: warning: relinking `libswarm.la'
cd /home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/=with-hdf/src; /bin/sh ../libtool --mode=relink gcc -g - O2 -march=i386 -mcpu=i686 -Wall -Wno-import -Wno-protocol -Werror -Wno-unknown-pragmas -o libswarm.la -version-info 0:0:0 -rp ath /usr/lib/swarm -Lspace -Lanalysis -Lsimtoolsgui -Lsimtools -Lrandom -Ltkobjc -Ltclobjc -Lobjectbase -Lactivity -Ldefobj - Lcollections -Lmisc -L../libobjc -L/usr/lib -R /usr/lib -L/usr/lib -R /usr/lib -L/usr/lib -R /usr/lib -L/usr/lib -R /usr/lib -L/usr/X11R6/lib -R /usr/X11R6/lib -L/usr/X11R6/lib SwarmEnvironment.lo -lspace -lanalysis -lsimtoolsgui -lsimtools -lrandom -ltkobjc -ltclobjc -lobjectbase -lactivity -ldefobj -lcollections -lmisc -lobjc -lBLT24 -ltk8.3 -ltcl8.3 -lXpm -lpng -lhdf5 -
lz ../avcall/libavcall.la -lX11 -lm -ldl
gcc -shared SwarmEnvironment.lo -Wl,--whole-archive ../avcall/.libs/libavcall.al -Wl,--no-whole-archive -Wl,--rpath -Wl,/us r/lib/swarm -Wl,--rpath -Wl,/usr/lib -Wl,--rpath -Wl,/usr/X11R6/lib -L/home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.1 40.20020514/=with-hdf/src/space -L/home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/=with-hdf/src/analysis -L/home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/=with-hdf/src/simtoolsgui -L/home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/=with-hdf/src/simtools -L/home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514 /=with-hdf/src/random -L/home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/=with-hdf/src/tkobjc -L/home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/=with-hdf/src/tclobjc -L/home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/=with-hdf/src/objectbase -L/home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/=with-hdf/src /activity -L/home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/=with-hdf/src/defobj -L/home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/=with-hdf/src/collections -L/home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/=with-hdf/src/misc -L/home/pauljohn/LinuxDownloads/redhat/BUILD/swarm-2.1.140.20020514/=with-hdf/libobjc -L/usr/lib -L/usr/X11R6/lib -L/usr/lib/swarm -lspace -lanalysis -lsimtoolsgui -lsimtools -lrandom -ltkobjc -ltclobjc -lobjectbase -lac tivity -ldefobj -lcollections -lmisc -lobjc -lBLT24 -ltk8.3 -ltcl8.3 -lXpm -lpng -lhdf5 -lz ../avcall/.libs/libavcall.al -lX1 1 -lm -ldl -Wl,-soname -Wl,libswarm.so.0 -o .libs/libswarm.so.0.0.0
/usr/bin/ld: cannot find -lspace
collect2: ld returned 1 exit status
libtool: install: error: relink `libswarm.la' with the above command before installing it
libtool: install: warning: remember to run `libtool --finish /usr/lib/swarm'


I'm completely bewildered, and would beg for any help anybody can give.

There is an even more ghastly aspect of this problem that was just brought to my attention. If an old version of Swarm is installed on the system, then libtool will find it and relink against that, thus defeating the purpose of building the new library. That's really awful!


--
Paul E. Johnson                       email: address@hidden
Dept. of Political Science            http://lark.cc.ku.edu/~pauljohn
1541 Lilac Lane, Rm 504
University of Kansas                  Office: (785) 864-9086
Lawrence, Kansas 66044-3177           FAX: (785) 864-5700





reply via email to

[Prev in Thread] Current Thread [Next in Thread]