(Take Two... a screwed up the dbi-users address)

 

Hi,

 

On Sun (solaris 8) I am rebuilding my perl tree using perl 5.8.0, DBD-Oracle
1.14 and my own bootstrapped build of gcc 3.2.3.

 

It appears I had to hack Makefile.PL to get a good link with oracle 9.2
(64bit version).

 

Oracle seems to have done the same thing in solaris land they did in hp land
(the 32bit objects are now in lib32).

 

I also had to further hack up the version discovery logic.  My oracle was
9.2.0.0.0

 

Here is a context diff of my DBD-Oracle Makefile.PL with the original for
the changes I had to make. I am not sure it is 100% right yet, but it is a
start.

 

*** Makefile.PL.orig    Wed May 28 16:16:58 2003

--- Makefile.PL Wed May 28 16:41:25 2003

***************

*** 179,186 ****

  }

  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

  if ($os eq 'darwin') {

--- 179,190 ----

  }

  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/;

! #Lincoln: ran into Oracle version 9.2.0.0.0... truncate trailing versions

! ($inspdver{rdbms_ver} = $inspdver{RDBMS}) =~
s/^(\d+\.\d+)\.(\d+).*$/${1}0$2/;

! #LIncoln: now remove trailing .0s...

! $inspdver{rdbms_ver} =~ s/0*$//;

! print "\ninspdver{rdbms_ver}=". $inspdver{rdbms_ver} ."\n";

  

  # Check for symbol table problem in libclntsh.dylib.9.0 on MacOS X

  if ($os eq 'darwin') {

***************

*** 296,301 ****

--- 300,309 ----

      if ( $os eq 'hpux' and $osvers >= 11 ) {

        $libdir = hpux_libdir();

      }

+     #Lincoln: this is probably incomplete test...

+     if ( $os eq 'solaris' ) {

+       my $libdir = solaris_libdir();

+     }

      $opts{LIBS} = [ "-L$OH/$libdir -l$lib $syslibs" ];

      $opts{dynamic_lib} = { OTHERLDFLAGS => "$::opt_g" };

      my $inc = join " ", map { "-I$OH/$_" } @h_dirs;

***************

*** 334,339 ****

--- 342,353 ----

          $libhome =~ s!/lib\b!/$libdir!g; 

          #print "linkwith=$linkwith\n";

      }

+     #Lincoln: could not get this to work:

+     if ( $os eq 'solaris' ) {

+       my $libdir = solaris_libdir();

+         $linkwith =~ s!/lib\b!/$libdir!g; 

+         $libhome =~ s!/lib\b!/$libdir!g; 

+     }

  

  

      if ($mk_target_rules{build} && $::opt_b) {

***************

*** 851,856 ****

--- 865,878 ----

      }

      return $libdir;

  }

+ sub solaris_libdir {

+     my $libdir = 'lib' ;

+     if ( $inspdver{rdbms_ver} >= 9 ) {

+       $libdir = 'lib32' ;

+     }

+     return $libdir;

+ }

+ 

  

  

  sub del_crtobj {

***************

*** 1339,1345 ****

              $ldrp =~ s!/lib\b!/$libdir!g; 

              #print "ldrp=$ldrp\n";

          }

! 

        # stitch it back in

        s/^LD_RUN_PATH\s*=\s*(.*)/LD_RUN_PATH=$ldrp/m;

        my $env = $ENV{LD_RUN_PATH};

--- 1361,1370 ----

              $ldrp =~ s!/lib\b!/$libdir!g; 

              #print "ldrp=$ldrp\n";

          }

!       if ( $os eq 'solaris' ) {

!           my $libdir = 'lib32';

!             $ldrp =~ s!/lib\b!/$libdir!g; 

!       }

        # stitch it back in

        s/^LD_RUN_PATH\s*=\s*(.*)/LD_RUN_PATH=$ldrp/m;

        my $env = $ENV{LD_RUN_PATH};

 

Lincoln

 

215-444-7973 (office)
267-716-1370 (cellular)

 

 

 

Lincoln

 

215-444-7973 (office)
267-716-1370 (cellular)

 

Reply via email to