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

  • Next message: Olivier Delaporte: "/usr/lib/dld.sl: Can't shl_load() a library containing Thread Loc al Storage: /usr/lib/libcl.2"
    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/
    

  • Next message: Olivier Delaporte: "/usr/lib/dld.sl: Can't shl_load() a library containing Thread Loc al Storage: /usr/lib/libcl.2"

    Relevant Pages

    • Re: Using thread-specific data in shared libraries
      ... shared libraries since there might be a race condition between thread ... exit notification and pthread_key_delete called from library unload. ... might have TSD in threads that outlives the shared library. ...
      (comp.programming.threads)
    • Re: Cross platform - an interim proposal
      ... Compilers don't output shared libraries. ... mac calls them and copy them to the Mac, when your mac app runs the run ... But there is a market for consumer apps, and the rumor is that Mac users ...
      (borland.public.delphi.non-technical)
    • Re: Using thread-specific data in shared libraries
      ... operation of the per-thread destructor in any dependent on the location ... might have TSD in threads that outlives the shared library. ... shared libraries unless completely missed David Butenhof's point. ...
      (comp.programming.threads)
    • Re: Is the global shared library segment paged?
      ... behaviour of shared libraries on AIX. ... generates 'C' and builds shared libraries which are then pulled into ... The third party tool being used runs on multiple versions of UNIX, ...
      (comp.unix.aix)
    • Re: Self-initializing shared library?
      ... >> SVR3 shared libraries worked like that, ... linked with some kind of map file or stub that ...
      (comp.sys.hp.hpux)