perl-5.18.2-296.fc21 loads modules from system instead from build directory at some tests. E.g. t/comp/parser.t: $ LD_PRELOAD=../libperl.so strace -fq -eopen,execve ./perl harness comp/parser.t 2>&1 |grep '"/usr/lib64/perl5/' [pid 13545] open("/usr/lib64/perl5/re.pm", O_RDONLY) = 5 [pid 13545] open("/usr/lib64/perl5/auto/re/re.so", O_RDONLY|O_CLOEXEC) = 5 This is caused by a bug in t/TEST where _cmd() functions forgets to emit "-I" arguments if requested. The _cmd() is called with: $VAR1 = { 'return_dir' => undef, 'testswitch' => '', 'perl' => './perl', 'file' => '', 'utf8' => '', 'lib' => '../lib', 'run_dir' => undef, 'switch' => '', 'test' => 'comp/parser.t' }; $VAR2 = 'perl'; but it returns: $VAR1 = './perl comp/parser.t '; while it should return: $VAR1 = './perl -I../lib comp/parser.t '; The fix is to change line: $cmd = $perl . _quote_args($args) . " $test $redir"; into: my $lib = ($options->{lib} eq '') ? '' : " -I$options->{lib}"; $cmd = $perl . $lib . _quote_args($args) . " $test $redir";
Created attachment 882662 [details] Proposed fix
Reported to upstream <https://rt.perl.org/Ticket/Display.html?id=121579>.
Created attachment 882684 [details] Upstream fix ported to 5.18.2 The proposed fix was wrong. Upstream prefers different approach already implemented in this patch.
Different tests still loads: /usr/lib64/perl5/vendor_perl/auto/HTML/Parser/Parser.so /usr/lib64/perl5/vendor_perl/auto/Params/Util/Util.so /usr/lib64/perl5/vendor_perl/HTML/Entities.pm /usr/lib64/perl5/vendor_perl/HTML/Parser.pm and some /usr/share/perl5 stuff. But these things did not go away even with originally proposed patch, so they are probably isolated execs of perl. However this is different story, maybe different bug report.