Month: April 2018

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: /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

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:$ 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
 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

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’)