Subject: Re: libtool bug
From: "Gerrit P. Haase" <[email-masked]>
To: Reini Urban <[email-masked]>
Cc: Charles Wilson <[email-masked]>, [email-masked]
Date: Mon, 11 Oct 2004 09:16:16 +0200

Hello Reini,

[...]

> But it didn't help on another (related?) new cygwin libtool problem:

> Sometimes it switches to .exe instead of .dll.  Will investigate this
> further. My current theory is that -o <soname> just missed the .dll 
> extension and .exe is then taken as default.

I saw similar errors before, IIRC there were some old MACROS in .m4
files used from inside the package source tree, but never tracked it
really down.  After cleaning up with old buggy .m4 files and
reconfiguring it works in most of the cases.

> /bin/sh.exe ./libtool --mode=link g++ $LIBS 
> -Wl,--enable-runtime-pseudo-reloc -o libgdal.la ./gcore/*.lo ./port/*.lo
> ./alg/*.lo ... \
>      -rpath /usr/lib \
>      -no-undefined \
>      -version-info 5:1:4
> rm -fr  .libs/libgdal.a .libs/libgdal.dll.a .libs/libgdal.la 
> .libs/libgdal.lai
> creating reloadable object files...
> creating a temporary reloadable object file: .libs/libgdal.la-2.o
> /usr/i686-pc-cygwin/bin/ld.exe -r -o .libs/libgdal.la-1.o $OBJS...
> /usr/i686-pc-cygwin/bin/ld.exe -r -o .libs/libgdal.la-2.o $OBJS...

> g++ -shared -nostdlib  .libs/libgdal.la-2.o  -L/usr/lib 
> /usr/lib/libgeos.dll.a /usr/lib/libjasper.dll.a /usr/lib/libpng.dll.a
> /usr/lib/libz.dll.a /usr/lib/libsqlite3.dll.a -L/lib 
> /usr/lib/libpq.dll.a -L/usr/lib/gcc/i686-pc-cygwin/3.4.1 
> -L/usr/lib/gcc/i686-pc-cygwin/3.4.1/../../.. -lstdc++ -lgcc -lcygwin
> -luser32 -lkernel32 -ladvapi32 -lshell32 -lgcc 
> -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-runtime-pseudo-reloc
> -o .libs/cyggdal-1 -Wl,--image-base=0x10000000
>                  ^^^  .dll missing!
> -Wl,--out-implib,.libs/libgdal.dll.a

> does this ring a bell somewhere? $output missing the extension.

No, never saw this before.

> I see in one code section that for case $linkmode prog) the .exe 
> extension and then any extension is stripped.

>      case $linkmode in
> ...
>      prog)
>        case $host in
> 	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
>        esac

> but we are in linkmode=lib.
> and this is the failing place, exactly after your patch:

>        if test "$wrappers_required" = no; then
> 	# Replace the output file specification.
> 	compile_command=`$echo "X$compile_command" | $Xsed -e 
> 's%@OUTPUT@%'"$output"'%g'`

> $output misses the ".dll"
> I would rather use something like this:

> 	compile_command=`$echo "X$compile_command" | $Xsed -e 
> 's%@OUTPUT@%'"$output_objdir/${outputname}${shrext}"'%g'`

> correct?

Is this the original libtool-devel-1.5.10 code before any patches?
If so, then it can't be wrong since I have nearly the whole GNOME
desktop compiled with this libtool (relink on install disabled).

Does it help with the errors you're getting if you use your version?

Gerrit
-- 
=^..^=

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/