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:
$ 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
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
I checked and my hacked up version works on OS X, so I don't think I did
anything grossly incorrect.
--
You'll do.
diff -ru Bit-Vector-6.3/BitVector.c Bit-Vector-6.3.new/BitVector.c
--- Bit-Vector-6.3/BitVector.c 2002-09-28 12:40:37.000000000 -0700
+++ Bit-Vector-6.3.new/BitVector.c 2003-07-22 14:39:27.000000000 -0700
@@ -145,8 +145,8 @@
/* ===> bit vector bit shift & rotate functions: */
-void BitVector_LSB (wordptr addr, boolean bit);
-void BitVector_MSB (wordptr addr, boolean bit);
+void BitVector_LSB1 (wordptr addr, boolean bit);
+void BitVector_MSB1 (wordptr addr, boolean bit);
boolean BitVector_lsb_ (wordptr addr);
boolean BitVector_msb_ (wordptr addr);
boolean BitVector_rotate_left (wordptr addr);
@@ -2228,7 +2228,7 @@
}
}
-void BitVector_LSB(wordptr addr, boolean bit)
+void BitVector_LSB1(wordptr addr, boolean bit)
{
if (bits_(addr) > 0)
{
@@ -2237,7 +2237,7 @@
}
}
-void BitVector_MSB(wordptr addr, boolean bit)
+void BitVector_MSB1(wordptr addr, boolean bit)
{
N_word size = size_(addr);
N_word mask = mask_(addr);
Only in Bit-Vector-6.3.new: BitVector.c,v
diff -ru Bit-Vector-6.3/BitVector.h Bit-Vector-6.3.new/BitVector.h
--- Bit-Vector-6.3/BitVector.h 2002-09-28 12:40:37.000000000 -0700
+++ Bit-Vector-6.3.new/BitVector.h 2003-07-22 14:34:43.000000000 -0700
@@ -145,8 +145,8 @@
/* ===> bit vector bit shift & rotate functions: */
-void BitVector_LSB (wordptr addr, boolean bit);
-void BitVector_MSB (wordptr addr, boolean bit);
+void BitVector_LSB1 (wordptr addr, boolean bit);
+void BitVector_MSB1 (wordptr addr, boolean bit);
boolean BitVector_lsb_ (wordptr addr);
boolean BitVector_msb_ (wordptr addr);
boolean BitVector_rotate_left (wordptr addr);
Only in Bit-Vector-6.3.new: BitVector.h,v
Only in Bit-Vector-6.3.new: BitVector.o
Only in Bit-Vector-6.3.new: Makefile
Only in Bit-Vector-6.3.new: Vector.bs
Only in Bit-Vector-6.3.new: Vector.c
Only in Bit-Vector-6.3.new: Vector.o
diff -ru Bit-Vector-6.3/Vector.xs Bit-Vector-6.3.new/Vector.xs
--- Bit-Vector-6.3/Vector.xs 2002-09-28 12:40:37.000000000 -0700
+++ Bit-Vector-6.3.new/Vector.xs 2003-07-22 14:31:15.000000000 -0700
@@ -1473,7 +1473,7 @@
void
-BitVector_LSB(reference,bit)
+BitVector_LSB1(reference,bit)
BitVector_Object reference
BitVector_Scalar bit
CODE:
@@ -1486,7 +1486,7 @@
{
if ( BIT_VECTOR_SCALAR(bit,boolean,b) )
{
- BitVector_LSB(address,b);
+ BitVector_LSB1(address,b);
}
else BIT_VECTOR_SCALAR_ERROR;
}
@@ -1495,7 +1495,7 @@
void
-BitVector_MSB(reference,bit)
+BitVector_MSB1(reference,bit)
BitVector_Object reference
BitVector_Scalar bit
CODE:
@@ -1508,7 +1508,7 @@
{
if ( BIT_VECTOR_SCALAR(bit,boolean,b) )
{
- BitVector_MSB(address,b);
+ BitVector_MSB1(address,b);
}
else BIT_VECTOR_SCALAR_ERROR;
}
Only in Bit-Vector-6.3.new: Vector.xs,v
Only in Bit-Vector-6.3.new: blib
Only in Bit-Vector-6.3.new: patchlevel.h
Only in Bit-Vector-6.3.new: pm_to_blib
diff -ru Bit-Vector-6.3/t/09_parameters.t Bit-Vector-6.3.new/t/09_parameters.t
--- Bit-Vector-6.3/t/09_parameters.t 2002-09-28 12:40:37.000000000 -0700
+++ Bit-Vector-6.3.new/t/09_parameters.t 2003-07-22 14:40:52.000000000 -0700
@@ -81,8 +81,8 @@
$method_list{'bit_flip'} = [ 0, 2 ];
$method_list{'bit_test'} = [ 0, 2 ];
$method_list{'Bit_Copy'} = [ 0, 2, 7 ];
-$method_list{'LSB'} = [ 0, 7 ];
-$method_list{'MSB'} = [ 0, 7 ];
+$method_list{'LSB1'} = [ 0, 7 ];
+$method_list{'MSB1'} = [ 0, 7 ];
$method_list{'lsb'} = [ 0 ];
$method_list{'msb'} = [ 0 ];
$method_list{'rotate_left'} = [ 0 ];
Only in Bit-Vector-6.3.new/t: 09_parameters.t,v