[Top][All Lists]

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

Re: testsuite.at for version 2.x Was: ... mingw-cross, check-local fail

From: Roumen Petrov
Subject: Re: testsuite.at for version 2.x Was: ... mingw-cross, check-local fail for DESTDIR tests
Date: Wed, 19 Nov 2008 00:12:56 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv: Gecko/20080925 SeaMonkey/1.1.12

Roumen Petrov wrote:
Ralf Wildenhues wrote:
Hello Roumen, all,

apologies for the huge delay.

* Roumen Petrov wrote on Sat, May 10, 2008 at 12:25:48PM CEST:
The libtool version before 2.x (as example 1.5x) in mingw-cross compilation environment create executables as follow:
- foo : wrapper shell script
- foo.exe : libtool wrapper executable
. libs/foo.exe : native(host) executable

Since version 2.x don't create wrapper shell script in build directory make check{-local} skip any tests. The reason is code of macro LT_AT_EXEC_CHECK:
The program $1 (wrapper shell scrip in 1.5x and former) don't exist, lt_status is non zero and macro code exit with status 77 (exist wrapper executable "$1"$EXEEXT).

Also same problem in macro LT_AT_NOINST_EXEC_CHECK.

Agreed.  Please try this patch.  Thanks.

Others, OK to commit?


Please find attached file "libtool-origin-20081118.diff.gz" (Ralf patch
+ more $EXEEXT when linking executables)

I guess that a typo was problem with "libtool --mode install" so in previous patch I left test code unchanged (may be a Cyrillic E instead Latin).

Now I update code for "mode install" again and the new diff-file is attached as "libtool-origin-20081118-v2.diff.gz".
- $EXEEXT for "mode install";
- gived-up changes in old-m4-iface.at;
- change in static.at from [m$st] to [m${st}$EXEEXT] may be isn't portable.

Test 25 "Link order of deplibs" skipped (link-order2.at:129) - in my todo for investigation.

Still skipped. The executable exit code is 1 instead 2. No idea what is problem:
- emulation problem;
- mingw linker problem;
- windows loader - load shared library order problem (not tested yet).

$objdump -x .libs/wrong.exe  | grep DLL
        DLL Name: libb-0.dll
        DLL Name: KERNEL32.dll
        DLL Name: msvcrt.dll
        DLL Name: liba0-0.dll

$ objdump -x .libs/libb-0.dll | grep DLL
        DLL Name: liba1-0.dll
        DLL Name: KERNEL32.dll
        DLL Name: msvcrt.dll

strace show that liba1-0.dll is accessed first.

The link command:
[GCC] ... -o .libs/wrong.exe main.o \
  -L[T25DIR]/lib \
  [T25DIR]/lib/liba0.dll.a \
  ./.libs/libb.dll.a \
  [T25DIR]/.libs/liba1.dll.a \
  -L[T25DIR]/lib -L[T25DIR]/inst/lib

Test 29 "static linking flags for programs" skipped (static.at:177) - problem is with "libtool --mode install" since real executable is in .libs subdirectory. No idea how to fix.
It is not "--mode install" problem.
Still skipped. It is too big test :) .

Test 48 "enforced lib prefix" FAILED (need_lib_prefix.at:184) - again "--mode install" problem (see test 29).
It is not "--mode install" problem. It is related to end of line.
$ cat -A testsuite.dir/48/expout
libfoo1: 2^M^M$
libfoo2: 3^M^M$
$ testsuite.dir/48/main.exe  | cat -A
libfoo1: 2^M$
libfoo2: 3^M$

Also executable is linked statically since -no-undefined isn't specified (two warnings in log output).



Attachment: libtool-origin-20081118-v2.diff.gz
Description: application/gzip

reply via email to

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