Subject: | DBI-1.44: unixify() not available |
Environment: perl-5.8.5 on Linux (RH7.2) and Solaris/Sparc 8, built
with gcc-3.2.3, ithreads, shared libperl
The tests of DBI-1.44 run ok, but when building e.g. DBD::SQLite with
it, errors appear:
$...DBD-SQLite-1.06> perl Makefile.PL
Checking if your kit is complete...
Looks good
Undefined subroutine &DBI::DBD::unixify called
at /opt/perl_5.8.5/lib/i686-linux-thread-multi/DBI/DBD.pm line 3741.
These are because the unixify() and vmsify() subs are not defined (or
not imported). I am not a VMS expert, but undoing the diffs below
(DBI::DBD) fixed the problem.
Cheers,
Marek
@@ -3738,8 +3738,8 @@
_inst_checks();
return '$(INST_ARCHAUTODIR)' if $is_dbi;
my $dbidir = dbd_dbi_dir();
- my @try = map { "$_/auto/DBI" } @INC;
- my @xst = grep { -f "$_/Driver.xst" } @try;
+ my @try = map { vmsify( unixify($_) . "/auto/DBI/" ) } @INC;
+ my @xst = grep { -f vmsify( unixify($_) . "/Driver.xst" ) } @try;
Carp::croak("Unable to locate Driver.xst in @try") unless @xst;
Carp::carp( "Multiple copies of Driver.xst found in: @xst") if
@xst > 1;
print "Using DBI $DBI::VERSION (for perl $] on $Config{archname})
installed in $xst[0]\n";
@@ -3753,7 +3753,8 @@
my $dbi_driver_xst= '$(DBI_INSTARCH_DIR)/Driver.xst';
my $xstf_h = '$(DBI_INSTARCH_DIR)/Driver_xst.h';
if ($^O eq 'VMS') {
- $dbi_instarch_dir = vmsify($dbi_instarch_dir.'/') unless
$is_dbi;
+ $dbi_instarch_dir = vmsify($dbi_instarch_dir.'/');
+ $dbi_instarch_dir =~ s:/$::; # for buggy old vmsify's?
$dbi_driver_xst= '$(DBI_INSTARCH_DIR)Driver.xst';
$xstf_h = '$(DBI_INSTARCH_DIR)Driver_xst.h';
}