Hi,

That Makefile.PL still leaves the -l:libcl.a  which causes this error:

/usr/bin/ld: Invalid loader fixup in text space needed in output file for
symbol "$0000005C" in input file: "/usr/lib/libcl.a(ftnerr.o)". Make sure it
was compiled with +z/+Z.

Attempting to discover Oracle OCI build rules...
cc    -c DBD_ORA_OBJ.c -o DBD_ORA_OBJ.o
Oracle oci build command:
        + -Wl,+s -Wl,+n -L/afs1/ora8174/lib/ -L/afs1/ora8174/rdbms/lib/ -o
DBD_ORA_EXE DBD_ORA_OBJ.o /afs1/ora8174/rdbms/lib/kpudfo.o -lclntsh -lnbeq8
-lnhost8 -lnus8 -lnldap8 -lldapclnt8 -lnsslb8 -ln8 -lncrypt8 -ln8 -lncrypt8
-lnoname8 -lntcp8 -lntcps8 -lnsslb8 -lnent8 -lntcp8 -lntns8 -lnsgr8 -lnzjs8
-ln8 -lnl8 -lnro8 -lnbeq8 -lnhost8 -lnus8 -lnldap8 -lldapclnt8 -lnsslb8 -ln8
-lncrypt8 -ln8 -lncrypt8 -lnoname8 -lntcp8 -lntcps8 -lnsslb8 -lnent8 -lntcp8
-lntns8 -lnsgr8 -lnzjs8 -ln8 -lnl8 -lclient8 -lvsn8 -lwtc8 -lcommon8
-lgeneric8 -lwtc8 -lmm -lnls8 -lcore8 -lnls8 -lcore8 -lnls8 -lnbeq8 -lnhost8
-lnus8 -lnldap8 -lldapclnt8 -lnsslb8 -ln8 -lncrypt8 -ln8 -lncrypt8 -lnoname8
-lntcp8 -lntcps8 -lnsslb8 -lnent8 -lntcp8 -lntns8 -lnsgr8 -lnzjs8 -ln8 -lnl8
-lnro8 -lnbeq8 -lnhost8 -lnus8 -lnldap8 -lldapclnt8 -lnsslb8 -ln8 -lncrypt8
-ln8 -lncrypt8 -lnoname8 -lntcp8 -lntcps8 -lnsslb8 -lnent8 -lntcp8 -lntns8
-lnsgr8 -lnzjs8 -ln8 -lnl8 -lclient8 -lvsn8 -lwtc8 -lcommon8 -lgeneric8
-ltrace8 -lnls8 -lcore8 -lnls8 -lcore8 -lnls8 -lclient8 -lvsn8 -lwtc8
-lcommon8 -lgeneric8 -lnls8 -lcore8 -lnls8 -lcore8 -lnls8
/afs1/ora8174/rdbms/lib/kpuadef.o -l:libcl.a -l:librt.sl -lpthread
-l:libnss_dns.1 -l:libdld.sl -lm

It seem Oracle does it wrong but since it probably does it wrong on all HPUX
with Ora8174 it's likely faster to change the Makefile.PL as opposed to
waiting for Oracle to fix it :). The new Makefile.PL *does* seem to find
OCI8 on our installs now, which is good.

Also I got annoyed by the warning about not having perl build with +z so I
changed that too :)

Diff below and also attached (NOTE: diff based on the 1.13 Makefile.PL file
you supplied):

*** Makefile.PL.113     Fri Mar 14 10:14:02 2003
--- Makefile.fixed.113  Fri Mar 14 10:13:31 2003
***************
*** 441,453 ****
              }
          }
  
          if (($linkwith !~ m/-lcl/) || ($linkwith !~ m/-lpthread/)) {
              print "Warning: Oracle is built with multi-threading
libraries\n"
                  . "         You will most likely need to rebuild perl from
sources\n"
                  . "         with the following libraries: -lcl
-lpthread\n" ;
          }
  
!         if ( ($Config{'cc'} eq 'cc') && ($Config{'ccflags'} !~ m/\+z/ ) )
{
              print "Warning: perl was not built with +z in ccflags\n"
                  . "         You may need to rebuild perl from sources\n"
                  . "         See instructions in README.hpux\n" ;
--- 441,458 ----
              }
          }
  
+          if ( $os eq "hpux" && $osvers >= 11 and $linkwith =~
m/-l:libcl.a/) {
+                 print "Warning: stripping -l:libcl.a from liblist
(conflict with ld looking for shared libs)";
+                 $linkwith =~ s/\s*-l:libcl.a\b//g;
+       }
+ 
          if (($linkwith !~ m/-lcl/) || ($linkwith !~ m/-lpthread/)) {
              print "Warning: Oracle is built with multi-threading
libraries\n"
                  . "         You will most likely need to rebuild perl from
sources\n"
                  . "         with the following libraries: -lcl
-lpthread\n" ;
          }
  
!         if ( ($Config{'cc'} eq 'cc') && ($Config{'ccflags'} !~ m/\+z/ &&
$Config{'ccldflags'} !~ m/\+Z/i) ) {
              print "Warning: perl was not built with +z in ccflags\n"
                  . "         You may need to rebuild perl from sources\n"
                  . "         See instructions in README.hpux\n" ; 



-----------------------------------
Frans Postma, (050-58) 81 852
ATOS Origin, Unix Support 
     "If at first you don't succeed, skydiving isn't for you"




> -----Oorspronkelijk bericht-----
> Van: Tim Bunce [mailto:[EMAIL PROTECTED]
> Verzonden: donderdag 13 maart 2003 17:48
> Aan: [EMAIL PROTECTED]
> CC: [EMAIL PROTECTED]; [EMAIL PROTECTED]
> Onderwerp: Re: DBD:Oracle 1.12 makefile patches for building on HPUX11
> 
> 
> Please try the attached Makefile.PL from the soon-to-be-released
> DBD::Oracle 1.13.
> 
> If it doesn't work for you please send me a patch based on that
> version. (As an attachment, because your mailer has wrapped 
> the lines.)
> 
> Thanks.
> 
> Tim.
> 
> On Thu, Mar 13, 2003 at 05:03:59PM +0100, 
> [EMAIL PROTECTED] wrote:
> > Hi,
> > 
> > In order to get DBD:Oracle 1.12 to compile AND use OCI8 on 
> our HPUX 11i
> > systems I had to make some modifications to the supplied 
> Makefile.PL.
> > 
> > 1.  Force join lines which oracle returns as it's build 
> command, in order to
> > be able to use OCI8 calls (otherwise I get the unable to 
> interpret OCI
> > commands error, due to multi-line output)
> > 
> > 2. When building against Oracle 9.2.0.2 I noticed that 
> somehow "-l:libcl.a"
> > got into the library list. Obviously that causes troubles 
> when building a
> > shared extension :) So.. I sed/grepped '-l:libcl.a' out of 
> the linkwith list
> > and it compiles fine once again.
> > 
> > I'm not sure if the way I force the oci8/line-join is the 
> best or preferred
> > solution, it works for me though. 
> > 
> > (and yes, I did manage to build a working DBD 1.12 against 
> Oracle 9.2.0.2,
> > that required a perl configured and build for 64bits though)
> > 
> > Patch below:
> > 
> > # diff -c DBD-Oracle-1.12/Makefile.PL Makefile.fixed
> > *** DBD-Oracle-1.12/Makefile.PL Fri Aug 31 18:27:15 2001
> > --- Makefile.fixed      Wed Mar 12 17:55:23 2003
> > ***************
> > *** 299,304 ****
> > --- 299,328 ----
> >         @cmds = grep { my $skip = $prev eq "echo $_"; 
> $prev=$_; !$skip }
> > @cmds;
> >         my @prolog; push @prolog, shift @cmds while @cmds 
> && $cmds[0] !~
> > /DBD_ORA_EXE/;
> >         print "Oracle oci build prolog:\n\t",  join("\n\t", 
> @prolog), "\n"
> > if @prolog;
> > + 
> > +       # Try harder to get OCI8
> > +          # Join multi-line output
> > +          my $xx=join(" ",@cmds);
> > +          chomp $xx;
> > +  
> > +          # expand `` commands
> > +          $xx=~s/(`[^`]+?`)/$1/eeg;
> > +          $xx=~s/[\t\n]+/ /g;
> > +  
> > +          # strip duplicate libraries but keep order
> > +          my %lh;
> > +          my $xx2='';
> > +          foreach my $w (split(/ +/,$xx)) {
> > +                  if (!exists $lh{$w}) {
> > +                          $xx2.=$w.' ';
> > +                          $lh{$w}++;
> > +                  } else {
> > +                          print "skipped duplicate: $w\n" 
> if $::opt_v;
> > +                  }
> > +          }
> > +          undef @cmds;
> > +          push (@cmds,"$xx2\n");
> > +  
> >         print "Oracle oci build command:\n\t", join("\n\t", 
> @cmds), "\n";
> >         while ($cmds[0] =~ s/\\$/ /) { # join lines split with \'s
> >             $cmds[0] .= splice(@cmds,1,1);
> > ***************
> > *** 364,369 ****
> > --- 388,398 ----
> >                   . "         seems to conflict with -l:libcl.a\n" ;
> >               $linkwith =~ s/\s*-lcl\b//g;
> >           }
> > + 
> > +         if ( $os eq "hpux" && $osvers >= 11 and $linkwith =~
> > m/-l:libcl.a/) {
> > +                print "Warning: stripping -l:libcl.a from 
> liblist (conflict
> > with ld looking for shared libs)";
> > +                $linkwith =~ s/\s*-l:libcl.a\b//g;
> > +       }
> >   
> >           if (($linkwith !~ m/-lcl/) || ($linkwith !~ 
> m/-lpthread/)) {
> >               print "Warning: Oracle is built with multi-threading
> > libraries\n"
> > 
> > -----------------------------------
> > Frans Postma, (050-58) 81 852
> > ATOS Origin, Unix Support 
> >      "If at first you don't succeed, skydiving isn't for you"
> > 
> > 
> > 
> > 
> > > -----Oorspronkelijk bericht-----
> > > Van: Tim Bunce [mailto:[EMAIL PROTECTED]
> > > Verzonden: donderdag 13 maart 2003 14:14
> > > Aan: [EMAIL PROTECTED]
> > > CC: [EMAIL PROTECTED]; [EMAIL PROTECTED]
> > > Onderwerp: Status of DBI 1.35 (was: Install of DBI)
> > > 
> > > 
> > > On Thu, Mar 13, 2003 at 09:57:12AM +0100, 
> > > [EMAIL PROTECTED] wrote:
> > > > 
> > > > www.perl.com/CPAN  should work nicely :)
> > > > 
> > > > Latest stable version of DBI would appear to be 1.30. 
> > > Changes coming a bit
> > > > too fast to call the newer versions 'stable' though (sorry Tim).
> > > 
> > > No need to appologise.
> > > 
> > > The only problems I'm aware of for 1.35 are:
> > > 
> > >  perl Makefile.PL PREFIX=<whatever>  reported not to work 
> > > (not checked yet)
> > >  Minor tweak to t/80proxy.t test (not important)
> > >  The t/zz_* test files are not deleted by 'make clean' 
> (not important)
> > > 
> > > So I think it's well worth testing by a wider audience now.
> > > 
> > > Tim.
> > > 
> 

Attachment: DBD_Oracle.Make.fix113
Description: Binary data

Reply via email to