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 .
Solution - below.