From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-4325.protonmail.ch (mail-4325.protonmail.ch [185.70.43.25]) by sourceware.org (Postfix) with ESMTPS id AB6AF3857BBD for ; Fri, 15 Jul 2022 03:20:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org AB6AF3857BBD Date: Fri, 15 Jul 2022 03:20:31 +0000 To: David Allsopp From: William Hu Cc: Jon Turney , "cygwin-apps@cygwin.com" Reply-To: William Hu Subject: RE: [ITA] ocaml 4.14.0 Message-ID: In-Reply-To: References: <452a0d68-1caf-e618-9107-af1b66366142@dronecode.org.uk> Feedback-ID: 51238035:user:proton MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, KAM_INFOUSMEBIZ, KAM_NUMSUBJECT, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: cygwin-apps@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin package maintainer discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jul 2022 03:20:43 -0000 Hi David, > I think this down to neglect - the PIC/shared versions of the runtime wer= e contributed for a specific purpose and aren't properly maintained/tested = AFAICT. > > I'm not sure that libcamlrun_shared can ever have worked on Cygwin, at le= ast certainly not since OCaml 3.11 (which is a loooong time ago). The patch= builds cygcamlrun_shared.dll as a plugin DLL - so the symbols will have be= en stripped and moved into symtbl (hence the huge number of missing symbols= when linking against it when it gets passed to a normal linker). > > What normally happens with flexlink is that either an executable or a "ma= in program DLL" (compiled with flexlink -maindll) would receive that symtbl= from a DLL it flexdll_dlopen's and the DLL receives static_symtbl from the= executable. That then means that the DLL can relocate any symbols it expec= ted from the main executable and any other flexdll_dlopen'd DLLs. However, = that's all meant to happen at runtime - I don't think flexlink has ever sup= ported compiling an executable itself which must flexdll_dlopen DLLs before= its main function. > > I think it's quite feasible to add that to flexlink, but it's not a small= piece of work - in the meantime I'd suggest instead deleting the BYTECODE_= SHARED_LIBRARIES +=3D and NATIVE_SHARED_LIBRARIES +=3D lines in runtime/Mak= efile instead of patching them. Duly noted. Thanks for the explanation! > > Would you be able to send the entire config.log file (off-list is fine!).= I'm not seeing this at all in Cygwin32 here! > > All best, > > > David Config.log sent :) On another note, on x86_64, 16 of the testsuite tests ar= e failing: tests/lib-scanf-2/'tscanf2_master.ml' with 1.1.1.1.1.1 (run) tests/lib-unix/common/'cloexec.ml' with 1.1.1.1.1.1.1 (run) tests/lib-systhreads/'testfork.ml' with 1.1.1.1 (bytecode) tests/tool-debugger/basic/'debuggee.ml' with 1.1.1.1.1.1.1 (check-progr= am-output) tests/lib-unix/common/'process_pid.ml' with 1.1 (bytecode) tests/tool-debugger/dynlink/'host.ml' with 1.1.1.1.1.1.1.2.1 (check-pro= gram-output) tests/lib-unix/common/'pipe_eof.ml' with 1.1 (bytecode) tests/lib-unix/common/'wait_nohang.ml' with 1.1.1.1.1.1 (run) tests/tool-debugger/find-artifacts/'debuggee.ml' with 1.1.1.1.1.1.1.1.1= .1 (check-program-output) tests/c-api/'alloc_async.ml' with 1 (native) tests/c-api/'alloc_async.ml' with 2 (bytecode) tests/lib-unix/common/'test_unix_cmdline.ml' with 1.1.1.1.1.1 (run) tests/lib-unix/common/'redirections.ml' with 1.1.1.1.1.1 (run) tests/tool-debugger/module_named_main/'main.ml' with 1.1.1.1.1.1.1 (che= ck-program-output) tests/tool-debugger/no_debug_event/'noev.ml' with 1.1.1.1.1.1.1.1.1.1 (= check-program-output) tests/tool-debugger/printer/'debuggee.ml' with 1.1.1.2.1.1.1 (check-pro= gram-output) Two are innocuous "unused variable" warnings, but the others are of this fo= rm: > Loading program... 0 [main] ocamlrun 40657 child_info_fork::abort: = address space needed by 'dllunix.so' (0x400000) is already occupied > Unix error: 'fork' failed: Resource temporarily unavailable Github issues (e.g., https://github.com/ocaml/opam/issues/3785) have encoun= tered this error before, but the issue seems to imply it's been resolved. Are the= se test failures expected/known (to be fair, 16 is a small number compared to 3000)= ? I can send the test log too if that helps. Thanks, William