bug-libtool
[Top][All Lists]
Advanced

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

Re: libtool-2.2.6a breaks build of guile-1.8.5, libtool-1.5.26 is OK


From: Ralf Wildenhues
Subject: Re: libtool-2.2.6a breaks build of guile-1.8.5, libtool-1.5.26 is OK
Date: Mon, 10 Nov 2008 22:39:24 +0100
User-agent: Mutt/1.5.18 (2008-05-17)

Hello Sergei and Bob,

please take any meta discussion off-list, thank you.
Regarding the on-topic part:

* Sergei Steshenko wrote on Mon, Nov 10, 2008 at 04:46:26PM CET:
> 
> The fact that Ralf expressed an opinion the problem is in my project does
> _not_ yet mean that the problem is really in it.

I don't think I have to prove it.  But I will.

> I still believe it's the opposite - for every other target I build my tool
> correctly calculates paths, so things get included and linked from the 
> right locations.

You have shown that you get a compile failure with your setup.  Your
example tarball includes a lot of code that I don't know and don't have
the time to audit for security issues, and running it includes
downloading more stuff from the net.  Both items make me be reluctant in
trying it out on my system.

So let's analyze your logs, keeping in mind that I have successfully
built some guile version with Libtool 2.2.x:

Your build failure looks like this (long lines!):

| gcc -DHAVE_CONFIG_H  -I.. -I.. -I..  
-I/mnt/sdb8/sergei/AFSWD_debug/install/autoconf-2.63/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/gmp-4.2.2/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/libtool-2.2.6a/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/m4-1.4.12/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/ncurses-5.7/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/texinfo-4.13/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/autoconf-2.63/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/gmp-4.2.2/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/libtool-2.2.6a/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/m4-1.4.12/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/ncurses-5.7/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/texinfo-4.13/include -pthread -g -O2 
-Wall -Wmissing-prototypes -Werror -MT guile-guile.o -MD -MP -MF 
.deps/guile-guile.Tpo -c -o guile-guile.o `test -f 'guile.c' || echo 
'./'`guile.c
| mv -f .deps/guile-guile.Tpo .deps/guile-guile.Po
| /mnt/sdb8/sergei/AFSWD_debug/install/bash-3.2/bin/bash ../libtool --tag=CC   
--mode=link gcc -I/mnt/sdb8/sergei/AFSWD_debug/install/autoconf-2.63/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/gmp-4.2.2/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/libtool-2.2.6a/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/m4-1.4.12/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/ncurses-5.7/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/texinfo-4.13/include -pthread -g -O2 
-Wall -Wmissing-prototypes -Werror -dlpreopen force 
-I/mnt/sdb8/sergei/AFSWD_debug/install/autoconf-2.63/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/gmp-4.2.2/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/libtool-2.2.6a/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/m4-1.4.12/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/ncurses-5.7/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/texinfo-4.13/include -pthread 
-L/mnt/sdb8/sergei/AFSWD_debug/install/gmp-4.2.2/lib 
-L/mnt/sdb8/sergei/AFSWD_debug/install/libtool-2.2.6a/lib 
-L/mnt/sdb8/sergei/AFSWD_debug/install/ncurses-5.7/lib -o guile guile-guile.o 
libguile.la -lgmp -lcrypt -lm -lltdl 
| rm -f .libs/guile.nm .libs/guile.nmS .libs/guile.nmT
| creating .libs/guileS.c
| (cd .libs && gcc  -g -O2 -c -fno-builtin "guileS.c")
| rm -f .libs/guileS.c .libs/guile.nm .libs/guile.nmS .libs/guile.nmT
| gcc -I/mnt/sdb8/sergei/AFSWD_debug/install/autoconf-2.63/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/gmp-4.2.2/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/libtool-2.2.6a/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/m4-1.4.12/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/ncurses-5.7/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/texinfo-4.13/include -pthread -g -O2 
-Wall -Wmissing-prototypes -Werror .libs/guileS.o 
-I/mnt/sdb8/sergei/AFSWD_debug/install/autoconf-2.63/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/gmp-4.2.2/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/libtool-2.2.6a/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/m4-1.4.12/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/ncurses-5.7/include 
-I/mnt/sdb8/sergei/AFSWD_debug/install/texinfo-4.13/include -pthread -o 
.libs/guile guile-guile.o -Wl,--export-dynamic  
-L/mnt/sdb8/sergei/AFSWD_debug/install/gmp-4.2.2/lib 
-L/mnt/sdb8/sergei/AFSWD_debug/install/libtool-2.2.6a/lib 
-L/mnt/sdb8/sergei/AFSWD_debug/install/ncurses-5.7/lib ./.libs/libguile.so 
/mnt/sdb8/sergei/AFSWD_debug/install/gmp-4.2.2/lib/libgmp.so -lcrypt -lm 
/mnt/sdb8/sergei/AFSWD_debug/install/libtool-2.2.6a/lib/libltdl.so -ldl  
-Wl,--rpath -Wl,/mnt/sdb8/sergei/AFSWD_debug/install/guile-1.8.5/lib 
-Wl,--rpath -Wl,/mnt/sdb8/sergei/AFSWD_debug/install/gmp-4.2.2/lib -Wl,--rpath 
-Wl,/mnt/sdb8/sergei/AFSWD_debug/install/libtool-2.2.6a/lib
| guile-guile.o: In function `main':
| /mnt/sdb8/sergei/AFSWD_debug/build/guile-1.8.5/libguile/guile.c:72: undefined 
reference to `lt__PROGRAM__LTX_preloaded_symbols'
| collect2: ld returned 1 exit status
| make[3]: *** [guile] Error 1
| make[3]: Leaving directory 
`/mnt/sdb8/sergei/AFSWD_debug/build/guile-1.8.5/libguile'

This output explains it all:

You are using an ltdl.h from 2.2.x: LTDL_SET_PRELOADED_SYMBOLS expands
to something containing lt__PROGRAM__LTX_preloaded_symbols.  Good.

The ../libtool script, however, is not a 2.2.x one: all 2.2.x versions
prepend `libtool: link: ' to all link mode output.  Since I assume it's
a 1.5.x version, it's only consistent that it fails to define the symbol
lt__PROGRAM__LTX_preloaded_symbols in .libs/guileS.o.  You can verify
that with

  cd /mnt/sdb8/sergei/AFSWD_debug/build/guile-1.8.5/libguile
  nm .libs/guileS.o

It will contain something like lt_preloaded_symbols instead.

Please ensure that ../libtool is a 2.2.x one, and you will get a working
build again.

I should note that I had to employ some force in order to get guile to
use updated autotools.  I used something like this:

  autoreconf -vif       # to let libtoolize do its job in subdirs
                        # but this fails in toplevel due to some error
  rm -f ltmain.sh
  cp $libtool_install_tree/share/libtool/config/ltmain.sh build-aux/ltmain.sh
  LIBTOOLIZE=true autoreconf -vif --no-recursive # regenerate the toplevel

Hope that helps.

Cheers,
Ralf




reply via email to

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