I've discovered some problems that are occuring with our configuration of
Oracle and HP-UX. This is using DBD::Oracle 1.14 and
[EMAIL PROTECTED] The problems are:
* The Oracle version number is returning 8.1.7.0.0, which is breaking the
regexp that discovers the version number. I have modified the regexp to
ignore everything after the third number.
* If '-l' is used, $linkwith is not being set. This is causing:
Use of uninitialized value in pattern match (m//) at Makefile.PL line 834.
I fixed this by modifying the code to check to see if $linkwith was valid.
* On HP-UX systems, the program attempts to call hpux_libdir(). This
results in an error:
Undefined subroutine &MY::hpux_libdir called at Makefile.PL line 1338.
I fixed this by adding 'main::' to the function call.
These fixes are in the following patch. Please let me know if you have any
comments.
Eric
*** Makefile.PL Thu Mar 27 10:44:36 2003
--- Makefile-new.PL Wed Aug 13 12:03:56 2003
***************
*** 179,185 ****
}
print "Oracle version $inspdver{RDBMS}\n" if $inspdver{RDBMS};
# hack up a simple floating point form of the version: 8.1.6 => 8.106
! ($inspdver{rdbms_ver} = $inspdver{RDBMS}) =~
s/^(\d+\.\d+)\.(\d+)/${1}0$2/;
#print "\ninspdver{rdbms_ver}=". $inspdver{rdbms_ver} ."\n";
# Check for symbol table problem in libclntsh.dylib.9.0 on MacOS X
--- 179,185 ----
}
print "Oracle version $inspdver{RDBMS}\n" if $inspdver{RDBMS};
# hack up a simple floating point form of the version: 8.1.6 => 8.106
! ($inspdver{rdbms_ver} = $inspdver{RDBMS}) =~
s/^(\d+\.\d+)\.(\d+).*/${1}0$2/;
#print "\ninspdver{rdbms_ver}=". $inspdver{rdbms_ver} ."\n";
# Check for symbol table problem in libclntsh.dylib.9.0 on MacOS X
***************
*** 831,837 ****
#$syslibs =~ s/-l:lib(\w+).(sl|a)\b/-l$1/g if $os eq 'hpux';
if ($os eq "hpux") {
$syslibs =~ s/-l:lib(\w+).(sl|a)\b/-l$1/g;
! $linkwith =~ m/-lcl\b/ or
$syslibs =~ s/\s*-lcl\b//g;
}
return $syslibs;
--- 831,837 ----
#$syslibs =~ s/-l:lib(\w+).(sl|a)\b/-l$1/g if $os eq 'hpux';
if ($os eq "hpux") {
$syslibs =~ s/-l:lib(\w+).(sl|a)\b/-l$1/g;
! ($linkwith && $linkwith =~ m/-lcl\b/) or
$syslibs =~ s/\s*-lcl\b//g;
}
return $syslibs;
***************
*** 1335,1341 ****
$ldrp ||= "$OH/lib:$OH/rdbms/lib";
#Lincoln: if hpux, pick the right library path
if ( $os eq 'hpux' and $osvers >= 11 ) {
! my $libdir = hpux_libdir();
$ldrp =~ s!/lib\b!/$libdir!g;
#print "ldrp=$ldrp\n";
}
--- 1335,1341 ----
$ldrp ||= "$OH/lib:$OH/rdbms/lib";
#Lincoln: if hpux, pick the right library path
if ( $os eq 'hpux' and $osvers >= 11 ) {
! my $libdir = main::hpux_libdir();
$ldrp =~ s!/lib\b!/$libdir!g;
#print "ldrp=$ldrp\n";
}