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:
SLES 12 SP2 ships with binutils 2.26 which breaks compatibility for certain shared library links.
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:
email@example.com:/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’)
7 thoughts on “Oracle 12c 32-bit client and direct GOT relocation R_386_GOT32 against `lxecerr’”
Hit the exact same problem today. This solution worked for me.
Awesome! Thanks for posting.
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…
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.
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!
Thank You, you have saved a lot of time for people like me.
This Solution worked for me.
Ive had the same problem.
it seems with binutils release 27.28 it seems to be solved.
Hi Ivan, good to hear!