Michael G Schwern wrote:
> 
> Installing Bit::Vector 6.3 on OpenVMS with Perl 5.8.0, I ran into this problem:
> 
> $ perl Makefile.PL
> Checking if your kit is complete...
> Looks good
> Writing Descrip.MMS for Bit::Vector
> Writing patchlevel.h for $1$dkb300:[schwern.perl-5_8_0_root.][000000]perl.exe;1
> (5.008)
> $ mms test
> 
> MCR perl_root:[000000]perl.exe "-MExtUtils::Install" -e "pm_to_blib({split(' ',<
> STDIN>)},'[.blib.lib.auto]','')" <.MM_tmp
> cp [.lib.bit.vector]overload.pod [.blib.lib.bit.vector]overload.pod
> cp [.lib.carp]clan.pod [.blib.lib.carp]clan.pod
> cp vector.pod [.blib.lib.Bit]vector.pod
> cp [.lib.bit.vector]overload.pm [.blib.lib.bit.vector]overload.pm
> cp vector.pm [.blib.lib.Bit]vector.pm
> cp [.lib.carp]clan.pm [.blib.lib.carp]clan.pm
> MCR perl_root:[000000]perl.exe -e "use ExtUtils::Mksymlists;"   -e "Mksymlists('
> NAME' => 'Bit::Vector', 'DL_FUNCS' => {  }, 'DL_VARS' => [], 'FUNCLIST' => [])"
> MCR perl_root:[000000]perl.exe -e "print ""[.blib.arch.auto.Bit.Vector]Vector.ol
> b/Include=(bitvector,vector)\n[.blib.arch.auto.Bit.Vector]Vector.olb/Library\n""
> ;" >>VECTOR.OPT
> MCR perl_root:[000000]perl.exe -e "print qq{PerlShr/Share\n}" >>VECTOR.OPT
> Copy/NoConfirm VECTOR.OPT [.BLIB.ARCH.AUTO.BIT.VECTOR]VECTOR.OPT
> CC/DECC /Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj /NOANSI_ALIAS/floa
> t=ieee/ieee=denorm_results/Define=("VERSION=""6.3""","XS_VERSION=""6.3""")/Inclu
> de=(perl_root:[lib.VMS_AXP.5_8_0.CORE])/NoList  BITVECTOR.c
> MCR perl_root:[000000]perl.exe perl_root:[lib.ExtUtils]xsubpp  -typemap perl_roo
> t:[lib.ExtUtils]typemap -typemap typemap VECTOR.xs >VECTOR.C
> Warning: long symbol Bit__Vector_Interval_Scan_inc
>         trimmed to Bit_Vector_Interval_Scan_inc
>          at perl_root:[lib.extutils]xsubpp line 1095
> Warning: long symbol Bit__Vector_Interval_Scan_dec
>         trimmed to Bit_Vector_Interval_Scan_dec
>          at perl_root:[lib.extutils]xsubpp line 1095
> Warning: long symbol Bit__Vector_Interval_Substitute
>         trimmed to B_Vt_Ieal_Substitute
>          at perl_root:[lib.extutils]xsubpp line 1095
> Warning: long symbol Bit__Vector_Index_List_Remove
>         trimmed to Bit_Vector_Index_List_Remove
>          at perl_root:[lib.extutils]xsubpp line 1095
> CC/DECC /Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj /NOANSI_ALIAS/floa
> t=ieee/ieee=denorm_results/Define=("VERSION=""6.3""","XS_VERSION=""6.3""")/Inclu
> de=(perl_root:[lib.VMS_AXP.5_8_0.CORE])/NoList  VECTOR.c
> 
> 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
> 
> XS(XS_Bit__Vector_msb); /* prototype to pass -Wmissing-prototypes */
> ^
> %CC-W-DUPEXTERN, The declaration of "XS_Bit__Vector_msb" will map to the same ex
> ternal name as the declaration of "XS_Bit__Vector_MSB" at line number 1896 in fi
> le USER1:[SCHWERN.SRC.BV]VECTOR.C;1.
> at line number 1953 in file USER1:[SCHWERN.SRC.BV]VECTOR.C;1
> %MMS-F-ABORT, For target VECTOR.OBJ, CLI returned abort status: %X10B91260.
> 
> Essentially, since symbols on VMS are case-insensitive there's a conflict.
> So I hacked up a quick patch to change LSB to LSB1 and MSB to MSB1 (attached).
> 
> Now it failed like so:

Instead of the hack, why not let it do what it wants to do?  One way is
as follows:

$ diff vector.c
************
File DISK$FREEWARE2:[FREEWARE.BIT-VECTOR-6_3]VECTOR.C;2
 1816   #pragma names save
 1817   #pragma names as_is
 1818   XS(XS_Bit__Vector_LSB)
 1819   #pragma names restore
 1820   {
******
File DISK$FREEWARE2:[FREEWARE.BIT-VECTOR-6_3]VECTOR.C;1
 1816   XS(XS_Bit__Vector_LSB)
 1817   {
************
************
File DISK$FREEWARE2:[FREEWARE.BIT-VECTOR-6_3]VECTOR.C;2
 1848   #pragma names save
 1849   #pragma names as_is
 1850   XS(XS_Bit__Vector_MSB)
 1851   #pragma names restore
 1852   {
******
File DISK$FREEWARE2:[FREEWARE.BIT-VECTOR-6_3]VECTOR.C;1
 1845   XS(XS_Bit__Vector_MSB)
 1846   {
************
************
File DISK$FREEWARE2:[FREEWARE.BIT-VECTOR-6_3]VECTOR.C;2
 1880   #pragma names save
 1881   #pragma names as_is
 1882   XS(XS_Bit__Vector_lsb)
 1883   #pragma names restore
 1884   {
******
File DISK$FREEWARE2:[FREEWARE.BIT-VECTOR-6_3]VECTOR.C;1
 1874   XS(XS_Bit__Vector_lsb)
 1875   {
************
************
File DISK$FREEWARE2:[FREEWARE.BIT-VECTOR-6_3]VECTOR.C;2
 1909   #pragma names save
 1910   #pragma names as_is
 1911   XS(XS_Bit__Vector_msb)
 1912   #pragma names restore
 1913   {
******
File DISK$FREEWARE2:[FREEWARE.BIT-VECTOR-6_3]VECTOR.C;1
 1900   XS(XS_Bit__Vector_msb)
 1901   {
************

Number of difference sections found: 4
Number of difference records found: 16

Mark Berryman

Reply via email to