2 Replies Latest reply: May 31, 2013 9:36 AM by user458823 RSS

    PL_stack_base: relocations based on the ABS44 coding model can not be used

    user458823
      Hi,

      I am using Solaris Studio 12.3 to build mod_perl, I could successfully build 64 bit perl using this compiler, it appears I may have missed a flag. Please advise, so I may rebuild 64 perl with the correct flag(s) - so that I do not encounter this error while building mod_perl

      Thanks in advance.
        • 1. Re: PL_stack_base: relocations based on the ABS44 coding model can not be used
          800381
          Assuming you're using Studio 12.3, the compile-time options are one of "-xcode=pic13" or "-xcode=pic32".

          The deprecated options are "-Kpic" and "-KPIC".
          • 2. Re: PL_stack_base: relocations based on the ABS44 coding model can not be used
            user458823
            Thank you, that was indeed the fix. Here is a summary I sent to the mod_perl mailing list:

            We could successfully build 64 bit apache with the configuration options so kindly shared by John D. Groenveld, also, in order to build mod_perl on 64 bit perl we had to recompile perl 64 bit, these are the flags we used:
            ./Configure -ders -Dcc=cc -Ud_sigsetjmp -Uinstallusrbinperl -Ulocincpth= -Uloclibpth= -Duse64bitint -Duse64bitall -Ud_strerror_r -Ud_signbit -Duselargefiles -Dprefix=/usr/perl10/5.18.0 -Accflags="-xcode=pic32"

            The noteworthy flags in above ./Configure are -Accflags="-xcode=pic32" in ./Configure the "-Accflags=" passes the flags you want to the C compiler, in our case we wanted the -xcode=x32 flag to be passed to the C compiler(solaris studio compiler) because of the error message we were getting:
            "symbol PL_check: relocations based on the ABS44 coding model can not be used in building a shared object"
            So to build for "shared object" support, perl 64 bit had to be recompiled with the -xcode=pic32 flag

            Building mod_perl was then seamless, perl Makefile.PL (NOTE: the perl is teh perl which was built with above arguments.
            make, make install.


            It is important to use the SAME COMPILER for everything. We are using Solaris Studio compiler, which, John D. Grovenfeld also used. We needed DBD::mysql to talk to the MYSql database, now Mysql was installed on Solaris 10 via pkgadd and is a 64 bit application. Needless to say it is safe to assume that Oracle built it using the Solaris Studio compiler......

            DBD::mysql was built using MCPAN shell.....

            Hope this helps someone in the future.......

            Thanks to John D. Groenveld, The other resources online, and to my boss...