_lt_libltdl_LTX_preloaded_symbols in consistence.

2008-04-12 Thread Steven Wu

Hi,

On MacOS X, 10.5.2, intel machine, the symbol  
_lt_libltdl_LTX_preloaded_symbols libraries (from the generated file  
libltdlS.o) is inconsistent with the symbol defined in ltdl.h, where  
the symbol is declared as _lt__PROGRAM__LTX_preloaded_symbols. This  
causes link time error. I fixed this problem by changing the name in  
the ltdl.h file to match the symbol in the libraries.


Do you guys have a long term fix for that?

steve


___
http://lists.gnu.org/mailman/listinfo/libtool


Re: _lt_libltdl_LTX_preloaded_symbols in consistence.

2008-04-12 Thread Steven Wu

Here is the message:
| I was building guile-1.8.4 on my macbook pro, and I found the
linking
| problem. Here is the configure command I typed:
|  ./configure --prefix=/usr --with-threads --enable-shared
|
| and here is the make.log tail:
|
| (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 -D_THREAD_SAFE -g -O2 -Wall -Wmissing-prototypes -Werror
| .libs/guileS.o -D_THREAD_SAFE -o .libs/guile guile-guile.o
| ./.libs/libguile.dylib -lintl -lgmp -lm -lltdl
| Undefined symbols:
|   "_lt__PROGRAM__LTX_preloaded_symbols", referenced from:
|   _lt__PROGRAM__LTX_preloaded_symbols$non_lazy_ptr in guile-
guile.o
| ld: symbol(s) not found
| collect2: ld returned 1 exit status
| make[3]: *** [guile] Error 1
| make[2]: *** [all] Error 2
| make[1]: *** [all-recursive] Error 1
| make: *** [all] Error 2
|

I fixed it by changing the macro in ltdl.h from  
_lt__PROGRAM__LTX_preloaded_symbols to  
_lt_libltdl_LTX_preloaded_symbols. I found this symbol using nm on the  
libltdl.a and the shared library.


steve
On Apr 12, 2008, at 9:53 PM, Peter O'Gorman wrote:


Steven Wu wrote:

Hi,

On MacOS X, 10.5.2, intel machine, the symbol
_lt_libltdl_LTX_preloaded_symbols libraries (from the generated file
libltdlS.o) is inconsistent with the symbol defined in ltdl.h,  
where the
symbol is declared as _lt__PROGRAM__LTX_preloaded_symbols. This  
causes
link time error. I fixed this problem by changing the name in the  
ltdl.h

file to match the symbol in the libraries.


When linking libltdl?

What are the errors that you saw? And what changes did you have to  
make?


Peter
--
Peter O'Gorman
http://pogma.com





___
http://lists.gnu.org/mailman/listinfo/libtool


Re: _lt_libltdl_LTX_preloaded_symbols in consistence.

2008-04-13 Thread Steven Wu
It was _lt__PROGRAM__LTX_preloaded_symbols, however, in libltdl.a, it  
was _lt_libltdl_LTX_preloaded_symbols. That is why I changed the name  
in ltdl.h.


here:
$ nm libltdlS.o
 U _dlopen_LTX_get_vtable
02c0 S _lt_libltdl_LTX_preloaded_symbols

and nm libltdl.a
...
nm libltdlS.o
 U _dlopen_LTX_get_vtable
02c0 S _lt_libltdl_LTX_preloaded_symbols
...

That symbol name was inconsistent with ltdl.h. When I tried to link  
with with -lltdl, and I got the following error. I hence got around  
the problem by changing the macro definition in ltdl.h to match the  
symbol in the ltdl libraries. Hopefully we can find the real solution  
to this problem.


steve
On Apr 13, 2008, at 1:14 AM, Ralf Wildenhues wrote:


* Steven Wu wrote on Sun, Apr 13, 2008 at 07:34:13AM CEST:

|
| (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 -D_THREAD_SAFE -g -O2 -Wall -Wmissing-prototypes -Werror
| .libs/guileS.o -D_THREAD_SAFE -o .libs/guile guile-guile.o
| ./.libs/libguile.dylib -lintl -lgmp -lm -lltdl
| Undefined symbols:
|   "_lt__PROGRAM__LTX_preloaded_symbols", referenced from:
|   _lt__PROGRAM__LTX_preloaded_symbols$non_lazy_ptr in guile- 
guile.o


Can you show the output of
 nm -p .libs/guileS.o

please?  It should define _lt__PROGRAM__LTX_preloaded_symbols.

Thanks,
Ralf





___
http://lists.gnu.org/mailman/listinfo/libtool


Re: _lt_libltdl_LTX_preloaded_symbols in consistence.

2008-04-16 Thread Steven Wu
thanks. The Guile team is working on Libtool 2.2.x migration, and I  
think it will take a while before it got fully integrated.


thanks.
steve
On Apr 16, 2008, at 3:17 PM, Ralf Wildenhues wrote:


Steven, please keep the libtool list in CC:, thanks.

* Steven Wu wrote on Mon, Apr 14, 2008 at 04:04:39AM CEST:

On Apr 13, 2008, at 10:12 AM, Ralf Wildenhues wrote:


[ re-adding libtool list in Cc: ]

* Steven Wu wrote on Sun, Apr 13, 2008 at 06:43:59PM CEST:


In libguile/.libs/guileS.o
$ nm -p libguile/.libs/guileS.o
0224 S _lt_preloaded_symbols

this doesn't seem to be correct.


Ah ok, thanks.  That means that linking of guile is done by libtool
1.5.x, not 2.2.x.

We may need to document this better: using libltdl from 2.2.x  
requires

libtool 2.2.x to link against.


So how can I ensure that the libtool 2.2.x is being used? Since I  
am on
MacOS X, and the darwin's libtool is shipped with the OS. I  
installed the
latest release of gnu libtool, and I named the executable to be  
glibtool.

What should I do to build guile with the right stuffs?


As a hack, you can try
 make LIBTOOL=glibtool

but to update properly, you need to replace the libtool.m4 and other
macro files in the package (the Libtool macros may have been copied  
into

the acinclude.m4 or aclocal.m4 files), and replace ltmain.sh with the
2.2.2 version, and then regenerate configure.  Typically, libtoolize
does part of this, and often, autoreconf --force can do all of it for
you.  If the package has a custom ./bootstrap or ./autogen.sh, then
that is the way to go.

Cheers,
Ralf





___
http://lists.gnu.org/mailman/listinfo/libtool