libtool-patches
[Top][All Lists]
Advanced

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

Status of the MSYS/MSVC port


From: Peter Rosin
Subject: Status of the MSYS/MSVC port
Date: Wed, 28 Jan 2009 01:14:22 +0100
User-agent: Thunderbird 2.0.0.19 (Windows/20081209)

Hi!

With a bunch of pending patches [1] applied, the status of the
pr-msvc-support branch is as follows, when bootstrapped on Cygwin
(autoconf 2.63, automake 1.10.1) and configured on MSYS (autoconf 2.61,
automake 1.10) in a subdir with:

../configure CC=cl CFLAGS='-MD -Zi' CXX=cl CXXFLAGS='-MD -Zi' LD=link \
             NM='dumpbin -symbols' AR=lib STRIP=: RANLIB=: F77=no FC=no

I also have a MinGW install accessible from the MSYS tree, and I think
some tool(s) from it (objdump?) might still be used at some point.

cl, link, lib and friends are from MSVC 8 (2005).
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86

It *should* work for MSVC 6 as well, and I see no reason why it
shouldn't also work for MSVC 7, 7.1 and 9 (famous last words). It's
been a while since I tested on MSVC 6 though, and the other versions
are virtually untested in this context.

## -------------------------- ##
## libtool 2.2.7a test suite. ##
## -------------------------- ##

Libtoolize operation.

  1: libtoolize macro installation                   ok
  2: libtoolize macro directory mismatch error       ok
  3: libtoolize macro serial update                  ok
  4: libtoolize config files serial update           ok
  5: diagnose missing LT_CONFIG_LTDL_DIR             ok
  6: copy ltdl.m4 with shared macro directory        ok
  7: correctly parse LTDL_INIT from configure.ac     ok
  8: diagnose missing LTDL_INIT invocation           ok
  9: upgrading verbatim style aclocal.m4             ok
 10: verbatim aclocal.m4 w/o AC_CONFIG_MACRO_DIR     ok
 11: nonrecursive ltdl with AC_CONFIG_MACRO_DIR      ok
 12: subproject ltdl with non-shared directories     ok
 13: LIBTOOLIZE_OPTIONS                              ok
 14: cleanup old installation                        ok

Testing libtool functions.

 15: duplicate members in archive tests              ok
 16: duplicate convenience archive names             skipped 
(duplicate_conv.at:80)
 17: preserve duplicate convenience deps             skipped 
(duplicate_deps.at:66)
 18: inherited_linker_flags                          ok
 19: C convenience archives                          ok
 20: C++ convenience archives                        ok
 21: F77 convenience archives                        skipped 
(convenience.at:110)
 22: FC convenience archives                         skipped 
(convenience.at:170)
 23: Java convenience archives                       skipped 
(convenience.at:230)
 24: Link order test                                 ok
 25: Link order of deplibs                           ok
 26: Failure tests                                   ok
 27: shlibpath_overrides_runpath                     skipped (shlibpath.at:54)
 28: Runpath in libtool library files                ok
 29: static linking flags for programs               FAILED (static.at:197)
 30: ccache -all-static                              ok
 31: Export test                                     ok
 32: sys_lib_search_path                             skipped (search-path.at:57)
 33: indirect convenience                            ok
 34: indirect uninstalled                            ok
 35: static library contains static library          UNEXPECTED PASS
 36: both of -o prog and -o prog$EXEEXT work         ok
 37: execute mode                                    ok
 38: cwrapper for uninstalled executables            ok
 39: inferred tag                                    ok
 40: CXX inferred tag                                ok
 41: F77 inferred tag                                skipped (infer-tag.at:56)
 42: FC inferred tag                                 skipped (infer-tag.at:70)
 43: GCJ inferred tag                                skipped (infer-tag.at:84)
 44: localized compiler messages                     ok
 45: nocase library search                           ok
 46: Install tests                                   ok

DESTDIR tests

 47: Simple DESTDIR install                          ok
 48: DESTDIR with in-package deplibs                 ok

Support for older m4 interface.

 49: AM_PROG_LIBTOOL                                 ok
 50: AC_WITH_LTDL                                    ok

Libtool subdir-objects support.

 51: C subdir-objects                                ok
 52: C++ subdir-objects                              FAILED (am-subdir.at:148)

Libltdl functionality.

 53: lt_dlexit unloading libs                        ok
 54: lt_dlopenadvise library loading                 ok
 55: ltdl API                                        ok
 56: enforced lib prefix                             ok

Standalone Libltdl.

 57: compiling softlinked libltdl                    ok
 58: compiling copied libltdl                        ok
 59: installable libltdl                             ok
 60: linking libltdl without autotools               ok

Subproject Libltdl.

 61: compiling softlinked libltdl                    ok
 62: compiling copied libltdl                        ok
 63: installable libltdl                             ok
 64: linking libltdl without autotools               ok

Nonrecursive Automake Libltdl.

 65: compiling softlinked libltdl                    ok
 66: compiling copied libltdl                        ok
 67: installable libltdl                             ok

Recursive Automake Libltdl.

 68: compiling softlinked libltdl                    ok
 69: compiling copied libltdl                        ok
 70: installable libltdl                             ok

C++ template tests.

 71: simple template test                            ok
 72: template test with subdirs                      ok

Constructors.

 73: C++ static constructors                         ok

libtool script generation.

 74: config.status                                   ok
 75: config.lt                                       ok

Libtool usage in GCC

 76: AC_NO_EXECUTABLES                               ok

Detecting identical deplibs.

 77: build tree relpaths                             expected failure 
(deplibs-ident.at:68)

configure interface to libltdl.

 78: installable libltdl                             ok
 79: --with-ltdl-include/lib                         ok
 80: --with-included-ltdl                            ok
 81: convenience libltdl                             ok

Libtool stress test.

 82: Link option thorough search test                ok
 83: Run tests with low max_cmd_len                  FAILED (cmdline_wrap.at:43)

Mac OS X tests

 84: darwin fat compile                              skipped (darwin.at:42)

## ------------- ##
## Test results. ##
## ------------- ##

ERROR: 73 tests were run,
1 passed unexpectedly,
4 failed (1 expected failure).
11 tests were skipped.

The problem in 29 (static.at) is that libtool has no way of guessing
the name of the static library when the .la file is removed, it ends
up with the import lib instead. The only fix I can think of is to
change the naming convention I selected for dll/import/static. Seems
like a big change though. I'll have a look at that eventually.

The problem in 35 (archive-in-archive.at) is that the MS archiver
(lib.exe) copies the content of an archive, and not the archive itself,
into another archive when requested. Maybe that should be tagged as
something other than an unexpected pass?

The problem in 52 (am-subdir.at) is that Automake doesn't have an
AM_PROG_CXX_C_O macro (or should I say that -o doesn't work in cl?).
I have made a request [2] for such a macro on the appropriate mailing
list (at least I think it's the right list, no response yet).

The summary for test 83 (cmdline_wrap.at) is like this:
testsuite: 29 failed, 35 passed unexpectedly
so as expected given the above (52 isn't tested in cmdline_wrap.at)


make check-local on Cygwin/gcc is "clean" with this flavor of libtool.
On MSYS/MinGW, stresstest.at now passes when "Run tests with low
max_cmd_len", that fails on git master. On the other hand, "cwrapper for
uninstalled executables" fails at cwrapper.at:78 (both with and without
low max_cmd_len). It's the second time through the loop that fails, when
restrictive_flags='-std=c89 -Wall -Werror' (an attempt to execute the
missing usea.exe). The root cause is that when linking, the compile of
the wrapper fails with various implicitly declared (or undeclared)
identifiers -> usea.exe goes MIA. But that test behaves the exact same
way on a pure libtool from git master, so move on, nothing to see
here...

I guess I should to set up a Linux VM and see what happens if I cross-
compile from *nix to MinGW.

Cheers,
Peter


[1] Pending patches

http://lists.gnu.org/archive/html/libtool-patches/2009-01/msg00152.html
http://lists.gnu.org/archive/html/libtool-patches/2009-01/msg00174.html
 (but msg00174 is combined with msg00096 from Chuck)
http://lists.gnu.org/archive/html/libtool-patches/2009-01/msg00096.html
http://lists.gnu.org/archive/html/libtool-patches/2009-01/msg00055.html
http://lists.gnu.org/archive/html/libtool-patches/2009-01/msg00090.html
http://lists.gnu.org/archive/html/libtool-patches/2009-01/msg00093.html
 (but msg00093 is refactored based on msg00163 from Chuck)
http://lists.gnu.org/archive/html/libtool-patches/2009-01/msg00163.html
http://lists.gnu.org/archive/html/libtool-patches/2009-01/msg00092.html


[2] http://lists.gnu.org/archive/html/automake/2009-01/msg00027.html




reply via email to

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