Title
"Error in invoking target 'ntcontab.o'" when installing Oracle SOA Suite 10g on 64-bit Linux

Date
2010-04-14

Summary
When installing Oracle SOA Suite 10g (10.1.3.1) on Red Hat Linux 64-bit, you may get the following error:

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

End output from spawned process.
----------------------------------
Calling Action unixActions10.1.0.4.0  make
        installMakePath = /usr/bin/make
        installMakeFileName = /u01/app/oracle/product/10.1.3/OracleAS_1/network/lib/ins_net_client.mk
        installTarget = ntcontab.o
        installArguments = ORACLE_HOME=/u01/app/oracle/product/10.1.3/OracleAS_1,
        undoMakeFileName = null
        undoTarget = null
        undoArguments = null
        logFile = /u01/app/oracle/product/10.1.3/OracleAS_1/install/make.log
        progMsg = Linking ntcontab

The output of this make operation is also available at: '/u01/app/oracle/product/10.1.3/OracleAS_1/install/make.log'

Start output from spawned process:
----------------------------------
rm -f ntcontab.*
(if [ "compile" = "compile" ] ; then \
          /u01/app/oracle/product/10.1.3/OracleAS_1/bin/gennttab > ntcontab.c ;\
          /u01/app/oracle/product/10.1.3/OracleAS_1/bin/ogcc   -c ntcontab.c ;\
          rm -f /u01/app/oracle/product/10.1.3/OracleAS_1/lib/ntcontab.o ;\
          mv ntcontab.o /u01/app/oracle/product/10.1.3/OracleAS_1/lib/ ;\
          /usr/bin/ar rv /u01/app/oracle/product/10.1.3/OracleAS_1/lib/libn10.a /u01/app/oracle/product/10.1.3/OracleAS_1/lib/ntcontab.o ; fi)
gcc.oracle.original: no input files
mv: cannot stat `ntcontab.o': No such file or directory
/usr/bin/ar: /u01/app/oracle/product/10.1.3/OracleAS_1/lib/ntcontab.o: No such file or directory
make: *** [ntcontab.o] Error 1

End output from spawned process.
----------------------------------
Exception thrown from action: make
Exception Name: MakefileException
Exception String: Error in invoking target 'ntcontab.o' of makefile '/u01/app/oracle/product/10.1.3/OracleAS_1/network/lib/ins_net_client.mk'. See '/u01/app/oracle/oraInventory/logs/installActions2010-04-14_04-56-27PM.log' for details.
Exception Severity: 1


You will also find the following in $ORACLE_HOME/install/make.log:

/usr/bin/make -f ins_net_client.mk mkldflags ORACLE_HOME=/u01/app/oracle/product/10.1.3/OracleAS_1//usr/bin/make -f ins_net_client.mk ntcontab.o ORACLE_HOME=/u01/app/oracle/product/10.1.3/OracleAS_1/rm -f ntcontab.*
(if [ "compile" = "compile" ] ; then \
          /u01/app/oracle/product/10.1.3/OracleAS_1/bin/gennttab > ntcontab.c ;\
          /u01/app/oracle/product/10.1.3/OracleAS_1/bin/ogcc   -c ntcontab.c ;\
          rm -f /u01/app/oracle/product/10.1.3/OracleAS_1/lib/ntcontab.o ;\
          mv ntcontab.o /u01/app/oracle/product/10.1.3/OracleAS_1/lib/ ;\
          /usr/bin/ar rv /u01/app/oracle/product/10.1.3/OracleAS_1/lib/libn10.a /u01/app/oracle/product/10.1.3/OracleAS_1/lib/ntcontab.o ; fi)
gcc.oracle.original: no input files
mv: cannot stat `ntcontab.o': No such file or directory
/usr/bin/ar: /u01/app/oracle/product/10.1.3/OracleAS_1/lib/ntcontab.o: No such file or directory
make: *** [ntcontab.o] Error 1

Details
1. The problem is that when installing a 32-bit Oracle product on a 64-bit Linux operating system, a few steps must be performed first.

First, force the operating system to link to 32-bit (since Red Hat 64-bit is a multilib OS).
mv /usr/bin/gcc /usr/bin/gcc.oracle.original
echo "/usr/bin/gcc.oracle.original -m32 \$*" < /usr/bin/gcc
chmod 755 /usr/bin/gcc

2. Prior to installing, set the shell to run in 32-bit:

linux32 bash
export LDEMULATION=elf_i386

Type uname -m. It should say i686 and not x86_64.

Restart your installation from scratch.

Applicable Versions
Oracle SOA Suite 10g (10.1.3)

References
http://thisisahmed.com/tia/database/32bit64bit.html
Ahmed Aboulnaga

.com .com