RE: Libtool HEAD on Windows.
Hi! Ralf Wildenhues mailto:[EMAIL PROTECTED] wrote: * Duft Markus wrote on Mon, Mar 03, 2008 at 09:33:44AM CET: [[...]] Still waiting for _something_... Sorry about being completely silent. Your patch is intrusive in that it changes more than should be necessary, it changes code that should not be changed. The ideal is: only libtool.m4 and ltdl.m4 contain system specifics, all other code is generic. Now I know that we're far from this ideal, but every step further away is one that should be scrutinized. Then Windows won't work, i think. I really need to add dllimport stuff (which is ifdef'd out in first place, and which is there allready partially for cygwin/mingw...) to c/h files. I tried to change as little as possible anyway allready :( I could throw away the changes to the loadlibrary loader, since the dlopen interface which i implemented is used anyway. I don't know if it would have any side effects on other software if RTDL_GLOBAL is not defined. If not, then maybe i could remove the definition for it to avoid the other ifdef. As for beeing generic: all the locations where there is a switch/case on the host, i have to insert winnt. Also, some of the testsuite changes look like they are papering over the failure rather than fix the issue. The template.at changes fall into this category. Hmm Here i had to add libraries to the command line for the linker to find symbols. If this isn't desired i'll have to xfail or skip the test, since i cannot link with unresolved symbols on windows. Last but not least, I don't know if you noticed that Libtool was in regression fixes mode up to the 2.2 release (yeah, I know it was an ugly long time). Given limited time, I for one simply ignored everything that wasn't fixing a regression or easy to verify as safe. No, i didn't notice that... I might give a detailed review on your patch, but that may be some days. Thats absolutely no problem, now that i have some status :) Thanks for the (now) fast answer :) Cheers, Markus Cheers, Ralf
RE: Libtool HEAD on Windows.
Hi! Duft Markus wrote: Hi! [...] Attached is both a log for configure/build and the complete testsuite, and a patch against current HEAD. Has anybody looked into this yet? I'm afraid this won't apply anymore when it's finally reviewed. Cheers, Markus 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