Re: mingw win64 comatibility
* Alon Bar-Lev wrote on Thu, Nov 13, 2008 at 10:45:23AM CET: --- a/libltdl/config/ltmain.m4sh +++ b/libltdl/config/ltmain.m4sh @@ -2156,7 +2156,7 @@ func_win32_libid () ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2/dev/null | - $EGREP 'file format pe-i386(.*architecture: i386)?' /dev/null ; then + $EGREP 'file format pe-i386(.*architecture: i386)?|file format pe-x86-64' /dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | $SED -n -e ' 1,100{ Committed like this. Cheers, and thanks, Ralf 2008-11-23 Alon Bar-Lev ... Fix func_win32_libid for 64-bit Windows. * libltdl/config/ltmain.m4sh (func_win32_libid): Accept file format 'pe-x86-64'. * NEWS: Update. diff --git a/NEWS b/NEWS index c00e404..1c99042 100644 --- a/NEWS +++ b/NEWS @@ -12,6 +12,7 @@ New in 2.2.8 2008-??-??: git version 2.2.7a, Libtool team: - New libtool command line flag --no-verbose, which disables only the extra verbose output messages and has no effect on the default informational messages. + - Improved support for 64bit Windows (mingw64). * Bug fixes: diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh index 28ad40d..e7dcdf2 100644 --- a/libltdl/config/ltmain.m4sh +++ b/libltdl/config/ltmain.m4sh @@ -2159,6 +2159,7 @@ static const void *lt_preloaded_setup() { # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug @@ -2170,7 +2171,7 @@ func_win32_libid () ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2/dev/null | - $EGREP 'file format pe-i386(.*architecture: i386)?' /dev/null ; then + $EGREP 'file format (pe-i386(.*architecture: i386)?|pe-x86-64)' /dev/null; then win32_nmres=`eval $NM -f posix -A $1 | $SED -n -e ' 1,100{ ___ http://lists.gnu.org/mailman/listinfo/libtool
Re: mingw win64 comatibility
On Sun, 23 Nov 2008, Ralf Wildenhues wrote: * Alon Bar-Lev wrote on Thu, Nov 13, 2008 at 10:45:23AM CET: --- a/libltdl/config/ltmain.m4sh +++ b/libltdl/config/ltmain.m4sh @@ -2156,7 +2156,7 @@ func_win32_libid () ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2/dev/null | - $EGREP 'file format pe-i386(.*architecture: i386)?' /dev/null ; then + $EGREP 'file format pe-i386(.*architecture: i386)?|file format pe-x86-64' /dev/null ; then may I recall that I am waiting a similar patch for Windows CE ? thank you Vincent Torri ___ http://lists.gnu.org/mailman/listinfo/libtool
Re: mingw win64 comatibility
On 11/23/08, Ralf Wildenhues [EMAIL PROTECTED] wrote: Committed like this. Cheers, and thanks, Ralf Thanks! Will you backport this to 1.5 branch? Alon. ___ http://lists.gnu.org/mailman/listinfo/libtool
Re: mingw win64 comatibility
On 11/23/08, Ralf Wildenhues [EMAIL PROTECTED] wrote: No. The 1.5 branch is dead, and I don't recall anyone that desired turning it undead. If there is anything that 1.5.x gave you that you don't get from 2.2.x, then time to complain is *now* (well, *was* a long time ago, but anyway). 2.2.x should be more portable, faster, shinier, better. And 99% compatible (except for what changes NEWS mentions). Cheers, It is that I need now to convince all developers in my project to switch to 2.2 before distro marked it stable. Thanks! ___ http://lists.gnu.org/mailman/listinfo/libtool
Re: mingw win64 comatibility
Hello Alon, * Alon Bar-Lev wrote on Thu, Nov 13, 2008 at 10:45:23AM CET: On Wednesday 12 November 2008, Ralf Wildenhues wrote: verify that this command fails: make check-local TESTSUITEFLAGS='-v -d -x -k AC_WITH_LTDL' and post the output, then find out where exactly the failure happens during configure: cd tests/testsuite.dir/42 ./configure --prefix=/nowhere You may have to look at the output, and/or config.log. Do you have the ECHO, RM, environment variables set? I tried with clean checkout, BTW: make maintainer-clean does not work. Ah, yes; maintainer-clean only works if you have run 'make check' before (and no 'make clean' in between), so that all the old test subdirs have a Makefile. Same thing with distclean. Following is the patch I use... I don't know if the old-m4-iface.at is correct. But it solved at least one issue. Thanks. The .gitignore issue is obvious, I've pushed that; the old-m4-iface.m4 change should be obsolete with the pending patch. I'll deal with the ltmain.m4sh change when we're through with this. I also don't know which test should be skipped. Now only the following tests fails: 32: sys_lib_search_pathtestsuite: WARNING: A failure happened in a test group before any test could be testsuite: WARNING: run. This means that test suite is improperly designed. Please testsuite: WARNING: report this failure to [EMAIL PROTECTED]. ok Thanks; fixed like this, and put you in THANKS. Cheers, Ralf Skip sys_lib_search_path on systems without libz. * tests/search-path.at (sys_lib_search_path): Autotest needs at least one AT_CHECK executed in a test group. So if we haven't found -lz anywhere, as may happen with cross-compilers, skip the test. * THANKS: Update. Report by Alon Bar-Lev. diff --git a/tests/search-path.at b/tests/search-path.at index 2bc56c0..929d2dd 100644 --- a/tests/search-path.at +++ b/tests/search-path.at @@ -1,6 +1,6 @@ # search-path.at -- test sys_lib_search_path_spec -*- Autotest -*- # -# Copyright (C) 2006 Free Software Foundation, Inc. +# Copyright (C) 2006, 2008 Free Software Foundation, Inc. # Written by Ralf Wildenhues, 2006 # # This file is part of GNU Libtool. @@ -41,13 +41,20 @@ int main() $CC $CPPFLAGS $CFLAGS -c main.c eval `$LIBTOOL --config | $EGREP '^(sys_lib_search_path_spec)='` eval sys_lib_search_path=\$sys_lib_search_path_spec\ +no_libz=: for path in $sys_lib_search_path; do if $LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o main main.$OBJEXT -L$path -lz then AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o main main.$OBJEXT -lz], [], [ignore], [ignore]) +no_libz=false break fi done +# If -lz doesn't exist (hello, cross compiler!), we need a dummy test. +if $no_libz; then + AT_CHECK([exit 77]) +fi + AT_CLEANUP ___ http://lists.gnu.org/mailman/listinfo/libtool
Re: mingw win64 comatibility
Ralf? This is the last task... OpenSSL, mingw64 and other projects already accepted all patches to make this environment work. libtool is the last one. Alon. On 10/27/08, Alon Bar-Lev [EMAIL PROTECTED] wrote: Hello Raf, Any news? Can I do anything to help? Alon. On 10/21/08, Alon Bar-Lev [EMAIL PROTECTED] wrote: Hello, Used git head. Before I use cross compile, I tried to see if all tests pass on local compiler. My system (gentoo) has the following versions: sys-devel/m4-1.4.11 sys-devel/autoconf-2.61-r2 sys-devel/automake-1.10.1-r1 sys-devel/libtool-1.5.26 Attached is the native log and win64 log (after the fix). You should add *.exe to ignore... :) Thanks! Alon. On 10/21/08, Ralf Wildenhues [EMAIL PROTECTED] wrote: Hello Alon, Thanks for the report. * Alon Bar-Lev wrote on Mon, Oct 20, 2008 at 03:19:50PM CEST: The func_win32_libid is not working correctly when win64 objects are found. The file format is file format pe-x86-64. The attached patches for 1.5.26, 2.2.6a for the resulting libtool script. I did not know where to put this in libtool source, can you please look into it? It needs to be done in libltdl/config/ltmain.m4sh. --- libtool.2.2.6a2008-10-20 14:21:57.0 +0200 +++ libtool 2008-10-20 14:21:42.0 +0200 @@ -3073,7 +3073,7 @@ func_win32_libid () ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2/dev/null | - $EGREP 'file format pe-i386(.*architecture: i386)?' /dev/null ; then + $EGREP 'file format pe-i386(.*architecture: i386)?|file format pe-x86-64?' /dev/null ; then The trailing ? after pe-x86-64 is wrong, pleasse drop it. win32_nmres=`eval $NM -f posix -A $1 | $SED -n -e ' 1,100{ Can you be bothered to check out the Libtool git tree or a nightly snapshot (see homepage for links) and, with above change, build it and run the testsuite on win64, please? We'd be interested in any failures of make -k check (add VERBOSE=yes for verbose output of the old testsuite, and send tests/testsuite.log for failure of the new one). You'd need Autoconf for rebuilding Libtool, and also Automake for running all tests. Thanks! Ralf ___ http://lists.gnu.org/mailman/listinfo/libtool
Re: mingw win64 comatibility
Hello Raf, Any news? Can I do anything to help? Alon. On 10/21/08, Alon Bar-Lev [EMAIL PROTECTED] wrote: Hello, Used git head. Before I use cross compile, I tried to see if all tests pass on local compiler. My system (gentoo) has the following versions: sys-devel/m4-1.4.11 sys-devel/autoconf-2.61-r2 sys-devel/automake-1.10.1-r1 sys-devel/libtool-1.5.26 Attached is the native log and win64 log (after the fix). You should add *.exe to ignore... :) Thanks! Alon. On 10/21/08, Ralf Wildenhues [EMAIL PROTECTED] wrote: Hello Alon, Thanks for the report. * Alon Bar-Lev wrote on Mon, Oct 20, 2008 at 03:19:50PM CEST: The func_win32_libid is not working correctly when win64 objects are found. The file format is file format pe-x86-64. The attached patches for 1.5.26, 2.2.6a for the resulting libtool script. I did not know where to put this in libtool source, can you please look into it? It needs to be done in libltdl/config/ltmain.m4sh. --- libtool.2.2.6a2008-10-20 14:21:57.0 +0200 +++ libtool 2008-10-20 14:21:42.0 +0200 @@ -3073,7 +3073,7 @@ func_win32_libid () ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2/dev/null | - $EGREP 'file format pe-i386(.*architecture: i386)?' /dev/null ; then + $EGREP 'file format pe-i386(.*architecture: i386)?|file format pe-x86-64?' /dev/null ; then The trailing ? after pe-x86-64 is wrong, pleasse drop it. win32_nmres=`eval $NM -f posix -A $1 | $SED -n -e ' 1,100{ Can you be bothered to check out the Libtool git tree or a nightly snapshot (see homepage for links) and, with above change, build it and run the testsuite on win64, please? We'd be interested in any failures of make -k check (add VERBOSE=yes for verbose output of the old testsuite, and send tests/testsuite.log for failure of the new one). You'd need Autoconf for rebuilding Libtool, and also Automake for running all tests. Thanks! Ralf ___ http://lists.gnu.org/mailman/listinfo/libtool