Craig A. Berry wrote:
At 11:00 PM -0400 7/24/05, John E. Malmberg wrote:

The link of miniperl is failing because of an undefined symbol in the transfer 
vector.

"Perl_stashpv_hvname_match".

It appears that when USE_ITHREADS is not defined, either that transfer vector 
entry should not be written for VMS, or a stub routine should be present either 
in util.c or vms.c


That was fixed in patch #25217:

http://public.activestate.com/cgi-bin/perlbrowse?patch=25217

I see it there at the bottom.

If I pull down a new bleadperl tomorrow, would that patch be present?

There is a problem with the other parts of the patch.

The (char *) casts are wrong and need to be removed. They will cause data corruptions and access violations when the stars and the moon are not aligned perfectly.

It is deceptive because most calls will likely work, and it may even be able to get Perl built and pass the test suite, but it is still wrong.

The data corruptions may be hard to diagnose, but when one of the access violations hit, those will be obvious. The calling routine has been promised that those data locations would not be modified by any subroutine, and the optimizer does take advantage of that.

Be highly suspicious of any code that is using a cast to get around a compiler const warning. About the only time that is not a serious bug is when you are setting up a descriptor to be passed as a read-only parameter to a system service or run-time library call.

Adding the const qualifier to the input parameters and fixing the routines to not modify the input data is the safest way to resolve these issues, and when you look at the patches that I posted, there really was not that much to make the VMS specific code compliant with what the rest of Perl expects.

I posted patches for vmsish.h, vms/vms.c, embed.fnc, util.c, mg.c, and perl.h that fix the build issues with out causing those corruptions.

The embed.fnc requires that the proto.h file be regenerated per the instructions included in it, and as near as I can tell, the bleadperl built from a realclean state does not regenerate it on the fly.

The patch to descrip_mms.template is needed in order to have useful listings to diagnose some of these issues.

-John
[EMAIL PROTECTED]
Personal Opinion Only

Reply via email to