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