Andrew Schulman via Cygwin-apps writes:
> OK. Can you or anyone else shed any more light on that step? I looked at the
> package sources for perl-Readonly-XS, perl-Text-CSV_XS, and
> perl_XS-Parse-Keyword just to pick a few, and didn't see any rebase logic
> there.

It lives in ExtUtile::MakeMaker::MM_Cygwin and has long been upstreamed
in favor of the previous variants that all weren't working.

https://github.com/Perl/perl5/blob/c9c7acaf187c9c2008bb7e92eca73096a09d5206/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm#L141-L150
--8<---------------cut here---------------start------------->8---
sub dynamic_lib {
    my($self, %attribs) = @_;
    my $s = ExtUtils::MM_Unix::dynamic_lib($self, %attribs);
    return '' unless $s;
    return $s unless %{$self->{XS}};


    # do an ephemeral rebase so the new DLL fits to the current rebase map
    $s .= "\t/bin/find \$\(INST_ARCHLIB\)/auto -xdev -name \\*.$self->{DLEXT} | 
/bin/rebase -sOT -" if (( $Config{myarchname} eq 'i686-cygwin' ) and not ( 
exists $ENV{CYGPORT_PACKAGE_VERSION} ));
    $s;
}
--8<---------------cut here---------------end--------------->8---

That's for 32bit only as on 64bit any newly compiled DLL should not overlap
with already rebased DLL (and empirically doesn't unless BLODA steps in,
to which these days unfortunaltely Windows Defender needs to be counted).

It may be worth the try and do a

rebase-trigger full

on your system if you have a long history of updates to compact your
rebase map to something hopefully more reasonable (if that was the
culprit).  Also except the Cygwin installation root and (if it's on a
separate directory) the build root in Windows defender so that their
heuristic scanners hzopefully don't try to inject another DLL in place
of what you are trying to load.  The heuristics get tuned up and down
with high frequency and tend to grab anything that isn't already
scanned, which is of course a pattern that a newly built DLL matches.
There's a WebThreats service or something like that that you can't
switch off permanently, but at least you can shut one of it's two
services down and it will stay mostly out of the way.  Some time ago it
would block everything that matched certain executable names (among them
hostname, ping and curl) and that was real fun until I found the way to
switch it off.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptations for Waldorf Q V3.00R3 and Q+ V3.54R2:
http://Synth.Stromeko.net/Downloads.html#WaldorfSDada

Reply via email to