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