From ce7dcaf212366b0aa97354000f079954c55ee678 Mon Sep 17 00:00:00 2001 From: Tony Cook Date: Thu, 28 Mar 2024 09:55:04 +1100 Subject: [PATCH] perldelta: note the address space conflict on cygwin --- pod/perldelta.pod | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/pod/perldelta.pod b/pod/perldelta.pod index e1af63d943e8b..db16f5ab79299 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -385,7 +385,30 @@ platform specific bugs also go here. =item * -XXX +fork() failures on cygwin with C<-DDEBUGGING> builds. + +Perl uses the C<--enable-auto-image-base> option to set the base +images for DLLs for C and the DLLs needed for +dynamically loaded modules on cygwin. + +With 5.39.10 if perl is built with C<-DDEBUGGING> or possibly other +options that increase the address space used by F, +the address space for F overlaps with the address +space allocated for F. + +The C module will still load, but if perl attempts to fork you +will likely see an error like: + + 0 [main] perl 34054 child_info_fork::abort: address space needed by 'mro.dll' (0x400000) is already occupied + +You can workaround this by building without the C<-DDEBUGGING> option, +or by making C a static extension: + + ./Configure ... -Dstatic_ext=mro + +We expect the name change of the F to +F in 5.39.11 will fix this problem for the next +release. [github #22104] =back