(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)