Nico:
     
     Hi. Yes, I did successfully build the Expat parser and XML::Expat as 
     well. Once built they work fine.
     
     In addition to the changes you mention below, you must also change the 
     Expat code itself, renaming the function:
     
     XML_SetExternalEntityRefHandlerArg()
     
     to something else, e.g. XML_SetExtEntityRefHdlrArg(). The reason is 
     that when the DEC compiler truncates to 31 characters, it will make it 
     "XML_SetExternalEntityRefHandler()", which clashes with a different 
     function of the same name.
     
     Once that is done, you will find that the .XS module also creates a 
     bunch of stub functions which are not unique due to truncation. You 
     will basically need to take the .XS file and truncate every function 
     name manually, until the DEC C compiler stops complaining about 
     too-long symbols. This is necessary because when the shared library is 
     bootstrapped and you start calling functions, it will try to match up 
     the function name (a perl string, exceeding 31 characters) with a 
     corresponding name in the library's symbol table, and it won't find 
     it. I just slashed-and-burned everything in the .XS which was longer 
     than 24 or so characters, and it then worked.
     
     I attach for your reference our .XS file, from XML::Parser version 
     2.27. You will see things like XML_SetExternalEntityRefHandler() to 
     something more sane, like XML_SetEERefHandler() or some such thing. 
     Note you must change every reference to that name and not just the 
     declaration (obviously).
     
     One last note: When you finish compiling and it starts to fail tests, 
     whining about badly formed XML, check to see if the test program is 
     doing a "binmode()" on the test XML file. If it is, comment out that 
     line -- "binmode()" on VMS is WAAAYYY different than on other systems.
     
     Good luck, and let me know when you are stuck, as there is no point in 
     both of us suffering the same pain.
     
     Regards,
     
     David Hansen
     
     


______________________________ Reply Separator _________________________________
Subject: XML::Parser on VMS
Author:  NVerwer ([EMAIL PROTECTED]) at unix,mime
Date:    01/04/01 10:07 AM


Dear David, Craig,
     
On the vmsperl newsgroup I found that you have both installed XML::Parser 
and XML::Parser::Expat on VMS, with some degree of success. I am trying to 
do this myself, on OpenVMS 7.2, using Perl 5.6.0. However, I have not been 
able to build XML::Parser, and would like to ask you for some help.
I have patched File::Spec::VMS.pm as indicated in the newsgroup.
I have not patched MM_VMS, as this appears to be okay under Perl 5.6.0. 
I use cc/names=truncated
     
Apparently, I should also change some symbols in the expat.xs files. Do you 
have a list of these?
     
Thanks for any help you can provide!
     
Best regards,
Nico Verwer
[EMAIL PROTECTED]

expat.xs


Visit our website at http://www.ubswarburg.com

This message contains confidential information and is intended only 
for the individual named.  If you are not the named addressee you 
should not disseminate, distribute or copy this e-mail.  Please 
notify the sender immediately by e-mail if you have received this 
e-mail by mistake and delete this e-mail from your system.
 
E-mail transmission cannot be guaranteed to be secure or error-free 
as information could be intercepted, corrupted, lost, destroyed, 
arrive late or incomplete, or contain viruses.  The sender therefore 
does not accept liability for any errors or omissions in the contents 
of this message which arise as a result of e-mail transmission.  If 
verification is required please request a hard-copy version.  This 
message is provided for informational purposes and should not be 
construed as a solicitation or offer to buy or sell any securities or 
related financial instruments.

Reply via email to