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

Reply via email to