Subject: perl5 - broken under VirtualPC.
To: None <current-users@netbsd.org>
From: Peter Seebach <seebs@plethora.net>
List: current-users
Date: 12/26/2000 14:52:47
Okay, now I'm totally out of my league.

perl5 won't build under VPC, apparently.  miniperl segfaults.

The actual failure is at:
0x4811000f in S_regtry (prog=0x8067400,                         
    startpos=0x808af40 "config_arg1='-sde'\n") at regexec.c:1687
1687        prog->startp[0] = startpos - PL_bostr;              

prog->startp is 0, so I guess I can see why that would segfault.

Back trace is:
#0  0x4811000f in S_regtry (prog=0x8067400,                                   
    startpos=0x808af40 "config_arg1='-sde'\n") at regexec.c:1687              
#1  0x4810f51f in Perl_regexec_flags (prog=0x8067400,                         
    stringarg=0x808af40 "config_arg1='-sde'\n", strend=0x808af53 "",          
    strbeg=0x808af40 "config_arg1='-sde'\n", minend=0, sv=0x805f0fc, data=0x0,
    flags=3) at regexec.c:1384                                                
#2  0x480d5af8 in Perl_pp_subst () at pp_hot.c:1886                           
#3  0x480d16e5 in Perl_runops_standard () at run.c:27                         
#4  0x4808f656 in S_run_body (oldscope=1) at perl.c:1401                      
#5  0x4808f36c in perl_run (my_perl=0x805e030) at perl.c:1325                 
#6  0x804c8b7 in main (argc=3, argv=0xbfbfd8bc, env=0xbfbfd8cc)               
    at miniperlmain.c:52                                                      
#7  0x804c601 in ___start ()                                                  

Unfortunately for me, this builds fine on my other laptop, so it's hard
for me to argue that this is a NetBSD or perl problem.

I can, however, isolate it pretty far.  If I replace "configpm" with
the following script:

#!./miniperl                                                        
@ARGV = "./config.test";                                            
while (<>) {                                                        
    s/^(\w+)=(true|\d+)\s*$/$1='$2'\n/;                             
    if (!$fast{$name}){ push(@v_others, "$name=$quote$val"); next; }
}                                                                   

and use the following for config.test:

config_argc=7      
config_arg1='-sde' 

It dumps core.

Unfortunately, I have no idea at all *why*.  I would be open to suggestions
on how to proceed.  I'm assuming this will turn out to be specific to VPC,
given that it doesn't seem to happen on any of my other boxes, but I can't
imagine *how* it could be specific to VPC.

FWIW, the output of a "failed" run is:

Attempt to free unreferenced scalar at ./pt line 4, <> line 2.
Memory fault (core dumped)

The kernel also contributes:

Dec 25 21:17:41 godai /netbsd: pid 20282 (miniperl), uid 0: exited on signal 11 (core dumped)

-s