Hi! I now have the parity patches for HEAD ready. I ran the testsuite for interix/gcc and cygwin/gcc too, and both still behave the same as without the patch applied. I haven't had the chance to test any other platform, but I tried to take good care and not introduce any breaking changes. If there are such changes, please tell me, and I'll try and correct them. Most of the changes are either inside a case label or inside #ifdef's which should limit their impact to winnt.
For the testsuite to run through with parity, a patched config.guess is required (patch submitted to config list allready), which reports i586-pc-winnt if the compiler defines __PARITY__ and uname reports either Interix or CYGWIN (x86 only for now). Also parity SVN-trunk may be required at the moment for all tests to pass. 1.0.4 will be released in a few days. On Cygwin, parity does not yet fully work, but this has no influence on this patch, or anything else :) Attached is both a log for configure/build and the complete testsuite, and a patch against current HEAD. 2008-02-12 Markus Duft <[EMAIL PROTECTED]> Implemented support for *-winnt*, which is the "parity" compiler for windows (http://www.sf.net/projects/parity): * libltdl/config/ltmain.m4sh: recognize winnt as Windows OS, specially handle parity compiler (force C++), don't handle .exe extensions like on cygwin and mingw, but like on UNIX. Disable the use of reloadable objects (not supported). * libltdl/libltdl/lt_system.h: Only define R_OK if it's not allready defined elsewhere on Windows. * libltdl/loaders/dlopen.c: Don't use RTLD_GLOBAL with parity. * libltdl/loaders/loadlibrary.c: In case LoadLibrary is used instead of dlopen, convert paths to windows-style for the Windows API's (dlopen does this otherwise). * libltdl/m4/argz.m4: Windows (parity) has no argz support. * libltdl/m4/libtool.m4: Added winnt support. * libltdl/m4/ltdl.m4: On winnt dlopen opens deplibs. * tests/configure-iface.at: Fix output for testsuite. * tests/ctor.at: Use dllimport for correct link. * tests/destdir.at: Add $EXEEXT to output filenames. * tests/duplicate_conv.at: Don't execute the part of the test that relies on reloadable objects (not supported). * tests/export.at: Need explicit export of uninitialized data, use the LIBA_SCOPE define instead of extern. * tests/link-order.at: Use dllimport for correct link. * tests/link-order2.at: XFAIL on winnt. Windows has no RTL. * tests/lt_dladvise.at: Fix output for testsuite. Use dllimport for correct link. Don't test undefined symbols. * tests/lt_dlexit.at: Use dllimport for correct link. * tests/need_lib_prefix.at: Fix output for testsuite. * tests/stresstest.at: Need explicit export of uninitialized data, use the LIBA_SCOPE define instead of extern. link the main-static object only when -static is given. * tests/template.at: Add dependent libs to link line. There is no support for undefined symbols on winnt. * tests/testsuite.at: the *_EXEC_CHECK macros know of $EXEEXT * tests/demo/foo.c tests/demo/foo.h tests/depdemo/l1/l1.c tests/depdemo/l1/l1.h tests/depdemo/l2/l2.c tests/depdemo/l2/l2.h tests/depdemo/l3/l3.c tests/depdemo/l3/l3.h tests/depdemo/l4/l4.c tests/depdemo/l4/l4.h: Use dllimport for correct link. * tests/mdemo/foo1.c tests/mdemo/foo2.c: Initialize global data, otherwise dllexport would be required. * tests/pdemo/foo.h tests/pdemo/longer_file_name_foo.c: Use dllimport for correct link. I hope that's everything you need, otherwise just tell me. Cheers, Markus
lt-interix-log.tgz
Description: lt-interix-log.tgz
lt-2-HEAD.patch.gz
Description: lt-2-HEAD.patch.gz