At 2:51 PM -0700 7/22/03, Michael G Schwern wrote: >Installing Bit::Vector 6.3 on OpenVMS with Perl 5.8.0, I ran into this problem:
>XS(XS_Bit__Vector_lsb); /* prototype to pass -Wmissing-prototypes */ >^ >%CC-W-DUPEXTERN, The declaration of "XS_Bit__Vector_lsb" will map to the same ex >ternal name as the declaration of "XS_Bit__Vector_LSB" at line number 1866 in fi >le USER1:[SCHWERN.SRC.BV]VECTOR.C;1. >at line number 1926 in file USER1:[SCHWERN.SRC.BV]VECTOR.C;1 It is possible to configure a build of Perl to use case sensitive symbols on any somewhat recent compiler/OS version, but this behavior is not the default. Such a Perl should automatically set the compiler flags to do the same for extension building, but I can't vouch for how up-to-date that support is. > I hacked up a quick patch to change LSB to LSB1 and MSB to MSB1 (attached). That should work. I tend to use a macro to point the case sensitive name to another non-conflicting one. That works on any version of VMS and doesn't affect whatever readability the author was attempting with the names that are the same except for case. >Now it failed like so: >MCR perl_root:[000000]perl.exe perl_root:[lib.ExtUtils]xsubpp -typemap perl_roo >t:[lib.ExtUtils]typemap -typemap typemap VECTOR.xs >VECTOR.C I would run that command again verbatim except add the -d option and use the debugger to see why xsubpp lost its mind in this particular case. >Warning: long symbol Bit__Vector_Index_List_Remove > trimmed to Bit_Vector_Index_List_Remove > at perl_root:[lib.extutils]xsubpp line 1095 >Error: Function definition too short ' >%SYSTEM-F-ABORT, abort >%MMS-F-ABORT, For target VECTOR.C, CLI returned abort status: %X0000002C. >-SYSTEM-F-ABORT, abort -- ________________________________________ Craig A. Berry mailto:[EMAIL PROTECTED] "... getting out of a sonnet is much more difficult than getting in." Brad Leithauser
