On Tue, Mar 25, 2003 at 03:19:50PM +0100, Honza Pazdziora wrote:
> On Tue, Mar 25, 2003 at 02:09:24PM +0000, Tim Bunce wrote:
> > Here's a Release Candidate of DBD::Oracle 1.14:
> >
> > http://homepage.eircom.net/~timbunce/DBD-Oracle-1.14-20020325gamma.tar.gz
> >
> > I'd appreciate it if people could give it a whirl ASAP...
>
> I have an Sparc Solaris 8 installation of Oracle 9.2.0, with This is
> perl, version 5.005_03 built for sun4-solaris and DBI 999
> required--this is only version 1.30.
>
> The Oracle is a 64 binary, so the linking fails with
>
> LD_RUN_PATH="/export/packages/oracle-9.2.0/lib:/export/packages/oracle-9.2.0/rdbms/lib"
> gcc -o blib/arch/auto/DBD/Oracle/Oracle.so -G Oracle.o dbdimp.o oci7.o oci8.o
> -L/opt/SUNWcluster/lib -R/opt/SUNWcluster/lib -o build
> -L/export/packages/oracle-9.2.0/rdbms/lib/ -L/export/packages/oracle-9.2.0/lib/
> -lclntsh -lnbeq9 -lnhost9 -lnus9 -lnldap9 -lldapclnt9 -lnsslb9 -lnnis9 -lnoname9
> -lntcp9 -lntcps9 -lnsslb9 -lntcp9 -lntns9 -lnsl -lsocket -lgen -ldl
> -R/export/packages/oracle-9.2.0/lib -laio -lposix4 -lkstat -lm -lthread
> ld: warning: option -o appears more than once, first setting taken
> ld: fatal: file /export/packages/oracle-9.2.0/lib//libclntsh.so: wrong ELF class:
> ELFCLASS64
> ld: fatal: File processing errors. No output written to
> blib/arch/auto/DBD/Oracle/Oracle.so
> collect2: ld returned 1 exit status
> *** Error code 1
> make: Fatal error: Command failed for target `blib/arch/auto/DBD/Oracle/Oracle.so'
>
> It's easily fixed by replacing all the relevant lib with lib32.
> Then the compilation runs just fine, even if I wonder it DBD::Oracle
> building process could somehow figure this out?
Did the 'perl Makefile.PL' say it was using the build-rules from Oracle?
Patches always welcome.
> The make test runs fine except for
>
> t/long..............Illegal hex digit ignored at t/long.t line 106.
> Illegal hex digit ignored at t/long.t line 109.
> Illegal hex digit ignored at t/long.t line 111.
Ah, I guess that's a compile time error - at run time the uft8 code
isn't executed for perl 5.5.3. Does the attached patch fix it?
[You do know I'll be removing support for perl 5.5 soon, right?]
Tim.
--- t/long.t 2003/03/14 17:45:27 1.8
+++ t/long.t 2003/03/25 15:01:02
@@ -103,12 +103,14 @@
my $long_data0;
if ($utf8_test) {
- $long_data0 = ("0\x{263A}xyX" x 2048) x (1 ); # 10KB < 64KB
+ my $utf_x = eval q{ "0\x{263A}xyX" };
+ my $utf_z = eval q{ "0\x{263A}xyZ" };
+ $long_data0 = ($utf_x x 2048) x (1 ); # 10KB < 64KB
if (length($long_data0) > 10240) {
print "known bug in Perl5.6.0, applying workaround\n";
- $long_data0 = "0\x{263A}xyZ";
+ $long_data0 = $utf_z;
foreach my $i (1..2047) {
- $long_data0 .= "0\x{263A}xyZ";
+ $long_data0 .= $utf_z;
}
}
if ($type_name =~ /BLOB/) {