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";
          }

Reply via email to