RE: Cannot build DBD-Informix on HP-UX 11.11 - Invalid loader fix up i n text space...
From: Olivier Delaporte (olivier.delaporte_at_idt.com)
Date: 05/29/04
- Previous message: Tim Bunce: "Re: build of DBD-Oracle 1.15 not possible using Oracle 8.0.6"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
To: "'Jonathan Leffler'" <jleffler@earthlink.net>, "Delaporte, Olivier" <olivier.delaporte@idt.com> Date: Fri, 28 May 2004 17:33:34 -0700
Hello
I read and reread your e-mails several times and realized that all the
libraries in the esql script where using .a libraries instead of .sl
libraries. So I edited the informix/bin/esql file and replaced all .a
libraries by their .sl equivalent. I was able to successfully do a make and
make install, but the make test fails and I will post another message for
that problem. I had upgraded Informix from 7.3 to 9.4 but that did not make
any difference.
Thank you
Olivier Delaporte
-----Original Message-----
From: Jonathan Leffler [mailto:jleffler@earthlink.net]
Sent: Friday, May 14, 2004 12:48 PM
To: Delaporte, Olivier
Cc: dbi-users@perl.org
Subject: Re: Cannot build DBD-Informix on HP-UX 11.11 - Invalid loader fixup
i n text space...
Delaporte, Olivier wrote:
> Here is the set-up:
> DBD-Informix-2003.04
> INFORMIX-ESQL Version 9.30.HC1 or ClientSDK 2.40
> HP-UX 11.11 64 bit
> Gcc 3.3.3
> Perl -V:
> Compiler:
> cc='gcc', ccflags ='-D_POSIX_C_SOURCE=199506L -D_REENTRANT
> -D_HPUX_SOURCE -fPIC -mpa-risc-1-1 -fno-strict-aliasing
-D_LARGEFILE_SOURCE
> -D_FILE_OFFSET_BITS=64',
> optimize='-O',
> cppflags='-D_HPUX_SOURCE -D_POSIX_C_SOURCE=199506L -D_REENTRANT
> -D_HPUX_SOURCE -fPIC -mpa-risc-1-1 -fno-strict-aliasing'
>
> I get a failure during the make step:
>
> LD_RUN_PATH="" INFORMIXC='/opt/perl/bin/perl esqlld'
> ESQLLD='gcc -shared -static-libgcc -fPIC' esql -shared -static-libgcc
> -fPIC Informix.o dbdimp.o dbdattr.o sqltoken.o sqltype.o ixblob.o
> decsci.o odbctype.o link.o esqlcver.o esqlc_v6.o -o
> blib/arch/auto/DBD/Informix/Informix.sl
> /usr/ccs/bin/ld: Invalid loader fixup in text space needed in output file
> for symbol "$0000006A" in input file:
> "/apps11/informix/lib/esql/libifgen.a(rmsg.o)". Make sure it was compiled
> with +z/+Z.
> collect2: ld returned 1 exit status
> *** Error exit code 1
[..immediate reaction...]
IIRC, the +z option is related to shared libraries, which in turn is
related to position-independent code - PIC. The GCC option is
probably -fPIC or -fpic.
[...looks at the message...there's lots of evidence of -fPIC...]
Hmmm; why is that picking up libifgen.a (a static, non-shared
library). You may need to go dinking with:
DBD_INFORMIX_ESQLC_LINKAGE=-shared
in the environment. Information about environment variables is in
DBD-Informix-2003.04/Notes/environment.variables. If that doesn't
cure it, then you are going to need to look hard at the esql script,
and probably at esqlld via DBD_INFORMIX_DEBUG_ESQLLD. CSDK 2.40 is
quite old. I seem to remember that some versions of ESQL/C on HP-UX
do static linking by default, even though every other platform does
shared linking. I think the linkage environment should fix that up;
but you need to be sure that the libraries being linked into the
DBD::Informix shared object are themselves shared libraries - .sl -
and not static.
-- Jonathan Leffler (jleffler@earthlink.net, jleffler@us.ibm.com) #include <disclaimer.h> Guardian of DBD::Informix v2003.04 -- http://dbi.perl.org/
- Previous message: Tim Bunce: "Re: build of DBD-Oracle 1.15 not possible using Oracle 8.0.6"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|