Oracle 12c 32-bit client and direct GOT relocation R_386_GOT32 against `lxecerr’

Edit 12/09/2018

As Ivan commented below:

with binutils release 27.28 it seems to be solved.

But see the workaround below in case it’s not…


When trying to install Oracle 12c 32-bit Client (12.1 or 12.2) on Oracle Linux 7.3 or 7.5, it throws error during linking static libraries:

INFO: Start output from spawned process:
INFO: ----------------------------------
INFO:

INFO: /u01/app/oracle/product/12.2.0_client32/bin/genclntsh

INFO: /bin/ld: /u01/app/oracle/product/12.2.0_client32/lib/libnls12.a(lxecg2e.o): direct GOT relocation R_386_GOT32 against `lxecerr' without base register can not be used when making a shared object
/bin/ld: final link failed: Bad value

INFO: collect2: error: ld returned 1 exit status

INFO: genclntsh: Failed to link libclntshcore.so.12.1

INFO: make: *** [client_sharedlib] Error 1

 

Not very specific, I found only one reference in Oracle KM Doc ID 2246237.1.

Rootcause and resolution in there was:

REASON

SLES 12 SP2 ships with binutils 2.26 which breaks compatibility for certain shared library links.

SOLUTION
01) Update binutils package to version binutils-2.26.1-9.15.1 or later.

But in fact, I do have in my server binutils-2.27-27.base.el7.x86_64 .

Workaround is to downgrade the binutils:

jhartman@sms.jhartman.pl:/home/jhartman$ sudo yum downgrade binutils*
Loaded plugins: ulninfo
Resolving Dependencies
--> Running transaction check
---> Package binutils.x86_64 0:2.25.1-32.base.el7_4.2 will be a downgrade
---> Package binutils.x86_64 0:2.27-27.base.el7 will be erased
---> Package binutils-devel.x86_64 0:2.25.1-32.base.el7_4.2 will be a downgrade
---> Package binutils-devel.x86_64 0:2.27-27.base.el7 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================================================================================================================================================================================================================
 Package                                                            Arch                                                       Version                                                                     Repository                                                      Size
================================================================================================================================================================================================================================================================================
Downgrading:
 binutils                                                           x86_64                                                     2.25.1-32.base.el7_4.2                                                      ol7_latest                                                     5.4 M
 binutils-devel                                                     x86_64                                                     2.25.1-32.base.el7_4.2                                                      ol7_latest                                                     845 k

Transaction Summary

After this, the libs can be compiled and linked:

oracle$ export ORACLE_HOME=/u01/app/oracle/product/12.2.0_client32
oracle$ /u01/app/oracle/product/12.2.0_client32/bin/genclntsh
oracle$

I do believe that after finishing the installation, binutils can be upgraded again to the latest version (but not forget about this problem in case of installing the RSU).

PS: I’ve raised SR 3-17356002141 : Error when installing Oracle 32-bit client (direct GOT relocation R_386_GOT32 against `ipp_zcalloc’)

 

Oracle 12c 32-bit client and direct GOT relocation R_386_GOT32 against `lxecerr’
Tagged on:     

7 thoughts on “Oracle 12c 32-bit client and direct GOT relocation R_386_GOT32 against `lxecerr’

  • 2018-04-25 at 17:17
    Permalink

    Hit the exact same problem today. This solution worked for me.

    Awesome! Thanks for posting.

    Reply
    • 2018-04-25 at 20:58
      Permalink

      I’m glad I could help 🙂 I’ve spent almost two days trying to figure it out so I thought it could help somebody else…

      Reply
  • 2018-05-08 at 15:22
    Permalink

    I just ran into this issue two days ago. Apparently the update to binutils was in a recent set of patches for RHEL. I found the following Doc ID 2389953.1 on MOS, which has your solution in it, but I wasn’t sure if it also applied to regular database installations as the doc is about EBS applications, but has a single line saying that the downgrade has to be done on all tiers of EBS.

    Thanks for posting this. I’ll have to have all my other database servers downgraded as well.

    Reply
    • 2018-05-08 at 19:51
      Permalink

      Apparently more people are complaining for this issue. Even the KM article you’ve mentioned was published on the 3rd of May…

      Thanks for this comment!

      Reply
  • 2018-08-09 at 11:38
    Permalink

    Thank You, you have saved a lot of time for people like me.
    This Solution worked for me.

    Reply
  • 2018-09-12 at 07:52
    Permalink

    Hi,

    Ive had the same problem.
    it seems with binutils release 27.28 it seems to be solved.

    Ivan.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *