Subject: bug#16259: when cross-compiling with LT_INIT([win32-dll]) wrappers are installed instead of real programs

From: Peter Rosin <[email-masked]>
Date: Tue, 07 Jan 2014 15:08:27 +0100

On 2013-12-26 15:00, Marcin Wojdyr wrote:
> Hello,
> 1.5 years ago I reported this as a bug for automake.
> Stefano Lattarini just replied that it
> looks like a libtool bug rather than an Automake one.
> The details are here:
> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11155

Hi Marcin!

I fail to reproduce. What is your $host and $build? Can you provide a
stripped down example?

Cheers,
Peter

$ uname -a
CYGWIN_NT-6.1-WOW64 PEDA-PC 1.7.25(0.270/5/3) 2013-08-31 20:39 i686 Cygwin
$ libtool --version
libtool (GNU libtool) 2.4
Written by Gordon Matzigkeit <[email-masked]>, 1996

Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ cat lttest.c
int foo(void)
{
  return 1;
}
$ cat ltexe.c
int foo(void);
int main(void)
{
  foo();
  return 0;
}
$ libtool --mode=compile gcc -o lttest.lo -c lttest.c
libtool: compile:  gcc -c lttest.c  -DDLL_EXPORT -DPIC -o .libs/lttest.o
libtool: compile:  gcc -c lttest.c -o lttest.o >/dev/null 2>&1
$ libtool --mode=compile gcc -o ltexe.lo -c ltexe.c
libtool: compile:  gcc -c ltexe.c  -DDLL_EXPORT -DPIC -o .libs/ltexe.o
libtool: compile:  gcc -c ltexe.c -o ltexe.o >/dev/null 2>&1
$ libtool --mode=link gcc -o liblttest.la lttest.lo -shared -no-undefined -rpath /home/peda/src/junk/lib
libtool: link: gcc -shared  .libs/lttest.o      -o .libs/cyglttest-0.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/liblttest.dll.a
libtool: link: ( cd ".libs" && rm -f "liblttest.la" && ln -s "../liblttest.la" "liblttest.la" )
$ libtool --mode=link gcc -o ltexe ltexe.lo ./liblttest.la
libtool: link: gcc -o .libs/ltexe .libs/ltexe.o  ./.libs/liblttest.dll.a  -L/home/peda/src/junk/lib
$ mkdir -p /home/peda/src/junk/lib
$ mkdir -p /home/peda/src/junk/bin
$ libtool --mode=install /usr/bin/install -c liblttest.la /home/peda/src/junk/lib
libtool: install: /usr/bin/install -c .libs/liblttest.dll.a /home/peda/src/junk/lib/liblttest.dll.a
libtool: install: base_file=`basename liblttest.la`
libtool: install:  dlpath=`/bin/sh 2>&1 -c '. .libs/'liblttest.la'i; echo cyglttest-0.dll'`
libtool: install:  dldir=/home/peda/src/junk/lib/`dirname ../bin/cyglttest-0.dll`
libtool: install:  test -d /home/peda/src/junk/lib/../bin || mkdir -p /home/peda/src/junk/lib/../bin
libtool: install:  /usr/bin/install -c .libs/cyglttest-0.dll /home/peda/src/junk/lib/../bin/cyglttest-0.dll
libtool: install:  chmod a+x /home/peda/src/junk/lib/../bin/cyglttest-0.dll
libtool: install:  if test -n '' && test -n 'strip --strip-unneeded'; then eval 'strip --strip-unneeded /home/peda/src/junk/lib/../bin/cyglttest-0.dll' || exit 0; fi
libtool: install: /usr/bin/install -c .libs/liblttest.lai /home/peda/src/junk/lib/liblttest.la
$ libtool --mode=install /usr/bin/install -c ltexe.exe /home/peda/src/junk/bin
libtool: install: /usr/bin/install -c .libs/ltexe.exe /home/peda/src/junk/bin/ltexe.exe
$ 

Cheers,
Peter