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

Re: Libtool problems building New Aspell



"J.H.M. Dassen (Ray)" <dm@zensunni.demon.nl> writes:

> On Sat, Oct 05, 2002 at 19:11:10 +0200, Peter Makholm wrote:
>> "J.H.M. Dassen (Ray)" <dm@zensunni.demon.nl> writes:
>> The symptoms that are described in libtool bugs #57087 and #98342.
>> 
>> Not being able to do a 
>> 
>> $ ./configure && make && make install prefix=`pwd`/debian/tmp
>> 
>> which is needed for building debian-packages. Only libaspell-common
>> gets installed and neither libaspell og libpspell gets installed.
>
> Ah. This works for me:
[ snip make a chroot ]
> - Unpack tarball:
> 	cd /root && tar xfz aspell-0.50.2.tar.gz && cd aspell-0.50.2
> - Regenerate auto* generated files:
> 	aclocal-1.6 && libtoolize --force && automake-1.6 && autoconf
> - Build and install in temp area:
> 	./configure --prefix=/usr -v && make CC=g++ && \
> 	mkdir -p debian/tmp && make install DESTDIR=`pwd`/debian/tmp
>   (The "CC=g++" is to work around an upstream bug; note this uses DESTDIR
>   rather than PREFIX)
>
> The resulting debian/tmp contains
> 	usr/lib/libaspell.so
> 	usr/lib/libaspell-common.so
> 	usr/lib/libpspell.so.15.0.1
> 	usr/lib/libaspell.so.15
> 	usr/lib/libpspell.so.15
> 	usr/lib/libpspell.so
> 	usr/lib/libaspell-common-0.50.2.so
> 	usr/lib/libaspell.so.15.0.1
> which I guess is what you want.

I've discovered another problem, however.  For some reason, when using
this approach, the libraries that are built don't get linked against
libstdc++.

$ ldd libaspell.so.15.0.1
	libaspell-common-0.50.2.so => /home/nelson/debian/aspell/aspell-0.50.2/common/.libs/libaspell-common-0.50.2.so (0x400b9000)
	libc.so.6 => /lib/libc.so.6 (0x40115000)
	/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)

Therefore, if you install and attempt to use the libraries, you get
relocation errors such as:

/usr/bin/perl: relocation error: /usr/lib/libaspell.so.15: undefined symbol: __10istrstreamiPCci

However, if you don't re-run the auto* chain and just use upstream's
generated files, the libraries are linked properly:

$ ldd libaspell.so.15.0.1
        libaspell-common-0.50.2.so => /home/nelson/tmp/aspell-0.50.2/common/.libs/libaspell-common-0.50.2.so (0x400ba000)
        libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x4010d000)
        libm.so.6 => /lib/libm.so.6 (0x40156000)
        libc.so.6 => /lib/libc.so.6 (0x40177000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)

though the previously mentioned bug with libtool failing to install all
of the libraries will still bite.

What's causing this linking problem?  libtool?  auto* something or
other?

-- 
People said I was dumb, but I proved them!



Reply to: