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

Reply via email to