in reply to 64bit perl on AIX

I've built 64bit perl on AIX in the past ok, but have not had reason to try DBD Oracle. As you may already know, AIX has it's own strange way of making things (e.g. dynamic libraries) and I've seen make problems in the past for other modules. Please post more details on the problem you are seeing (e.g. actual make output).

If you haven't already done so, you may want to see about any open issues on the CPAN page for it. If the problem isn't there, please report it.

Replies are listed 'Best First'.
Re^2: 64bit perl on AIX
by daryle (Initiate) on Jun 28, 2004 at 12:45 UTC
    If you try to make with the 64bit perl libs you get this (something in the header files??):
    ld: 0711-738 ERROR: Input file Oracle.o:
    XCOFF32 object files are not allowed in 64-bit mode.
    I have played around with the Makefile, but still get the same XCOFF error.

    So, if you follow the readme.aix and make with the Oracle lib32, you get this:
      When you said "64bit perl" I though you meant 64bitints -- sorry about that. I'm assuming you are building on AIX 5.1 with a 64-bit kernel. Unfortunately, I'm probably not much help there since I've never built under it.

      From the output it looks like the linker doesn't like the Oracle.o object since (I'm guessing again) it was built in 32-bit mode (XCOFF32) and it needs to be built with a 64-bit compiler. Do you know how this object file is generated? If you are generating this during the build, are you using the right compiler version and/or options?

        I think that Oracle.o is built in the 'perl Makefile.PL' step of building the dbd. Yeah, it is AIX5.1, trying to make everything full 64bit. The compiler is the latest Visual Age C++ from ibm. Thanks! I got this to work...fyi:

        Using Oracle dbd 1.16
        Perl 5.8.4 built like this, with Visual Age 6.0:
        config_args='-Dcc=xlc_r -Dusenm -Dprefix=/appl/datasync/work/perl5 -Dusethreads -Duse64bitall -des'
        ==============================================
        Used DBI 1.42
        =============================================
        Added this to top of Oracle.h:
        #define A_OSF
        #include <oratypes.h>
        =======================
        Set LIBPATH to point to 64bit Oracle libs first.
        export LIBPATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/usr/lib
        Use: perl Makefile.PL -nob
        Change all references in Makefile of LD_RUN_PATH to be LIBPATH.
        Change nothing else, left all flags in Makefile, including -q64.
        Passed make, and all tests.