FIX: Oracle 10g on Solaris x64 installation – Error in invoking target ‘agent nmb nmo’…

Share this:

So here I am trying to install Oracle Application Server 10g release 2 (10.1.2.0.2) on my Solaris x86 64-bit VM to test out some stuff. Then, I get this error.

“Error in invoking target ‘agent nmo nmb’ of makefile ‘home/oracle/OraHome_1/sysman/lib/ins_sysman.mk’. See ‘/home/oracle/oraInventory/logs/installAction2011-11-17_07-04-25AM.log’ for details.”

Nice. Just nice.

Checking out the logs, there were a few warnings and errors that showed what was wrong.

ld: warning: file libclntsh.so.10.1: required by /home/oracle/OraHome_1/lib//libnmemso.so, not found
...
...
...
ld: fatal: symbol referencing errors. No output written to /home/oracle/OraHome_1/sysman/lib/emagent
*** Error code 1
make: Fatal error: Command failed for target `/home/oracle/OraHome_1/sysman/lib/emagent'
Current working directory /home/oracle/OraHome_1/sysman/lib
*** Error code 1
make: Fatal error: Command failed for target `emergent'
...
...
...
End output from spawned process.
----------------------------------
Exception thrown from action: make
Exception Name: MakefileException
Exception String: Error in invoking target 'agent nmo nmb' of makefile '/home/oracle/OraHome_1/sysman/lib/ins_sysman.mk'. See '/home/oracle/oraInventory/logs/installActions2011-11-17_07-04-25AM.log' for details.
Exception Severity: 1
The output of this make operation is also available at: '/home/oracle/OraHome_1/install/make.log'

Basically, it looks like there was some error in the makefile process somewhere. So, I checked out the make.log file to see what was wrong.

It turns out that the error started when the installer tried to make the libclntsh.so.10.1 lib file. Which also explains why it was not found in the earlier log.

/usr/ccs/bin/make -f ins_net_client.mk client_sharedlib ORACLE_HOME=/home/oracle/OraHome_1//home/oracle/OraHome_1/bin/genclntsh
ld: fatal: symbol 'ntcontab' in file /home/oracle/OraHome_1/lib/libn10.a(ntcontab.o): section [3].data: size 0x60: symbol (address 0, size 0x70) lies outside of containing section
ld: fatal: file processing errors. No output written to /home/oracle/OraHome_1/lib/libclntsh.so.10.1
/home/oracle/OraHome_1/bin/genagtsh /home/oracle/OraHome_1/lib/libagtsh.so 1.0
ld: fatal: symbol 'ntcontab' in file /home/oracle/OraHome_1/lib/libn10.a(ntcontab.o): section [3].data: size 0x60: symbol (address 0, size 0x70) lies outside of containing section
ld: fatal: file processing errors. No output written to /home/oracle/OraHome_1/lib/libagtsh.so


But it looks like there’s a bug with somewhere. This ain’t good at all. However, I knew I can’t be the only one who has faced this problem and I’m sure this issue has surely been reported to Oracle’s support. Thus, I searched support for a fix on this exact issue. And indeed, there was a workaround posted in a support document title “Solaris and Oracle 32bit Linking Error “fatal: symbol ‘ntcontab’ in file $O_H/lib/libn10.a(ntcontab.o): section [3].data: : symbol lies outside of containing section” [ID 1364167.1]
It appears that this applies to the following products:-

  • Oracle Server – Enterprise Edition – Version: 10.1.0.2 to 10.2.0.5 – Release: 10.1 to 10.2
  • Oracle Server – Standard Edition – Version: 10.1.0.2 to 10.2.0.5   [Release: 10.1 to 10.2]
  • Oracle Solaris on x86 (32-bit)
  • Oracle Solaris on x86-64 (64-bit)

And this issue is also currently known to affect only the 32bit version of Oracle Software on Solaris x86 and Solaris x86-64 where OS patch 144501-19 has been installed or in the latest Solaris builds:- Solaris 11 [Nevada] or Solaris 10 Update 10 and above ( Solaris 10 8/11 ).

True enough. I was trying to install Oracle Application Server 10.1.2.0.2 on Solaris 10 8/11.

Thankfully, the fix is rather simple. If you don’t want to login to My Oracle Support, then here it is posted for your convenience.

1. If you are doing a 1st install on the machine and encountered this error during the installation as I had, then open a new Terminal window and firstly set the ORACLE_HOME path. You do this by running the following command.

ORACLE_HOME=/usr/oracle/OraHome_1; export ORACLE_HOME

2. Go to the bin directory of ORACLE_HOME

cd $ORACLE_HOME/bin

3. Make a copy of the file you need to correct just in case. Backing up is ALWAYS a best practice.

cp gennttab gennttab_orig

4. Run gedit to edit the genntab file. I prefer to do it graphically, so gedit it is for me. You may use any editor that you prefer too.

gedit gennttab

5. Here’s what you need to change. Search for the word “ntcontab:” and you should find what you need to change. I’ve highlighted in red what you need to change.

ntcontab:
.type   ntcontab,@object
.size   ntcontab,112
.align  4

to

ntcontab:
.type   ntcontab,@object
.size   ntcontab,96
.align  4

6. Now that that’s fix, let’s remake the required lib file.

cd $ORACLE_HOME/network/lib
/usr/ccs/bin/make -f ins_net_client.mk ntcontab.o
$ORACLE_HOME/bin/genclntsh

7. If this error occurred during an installation of base release or patchset and you received the pop-up described above, click on ‘Retry’ and the link error should resolve itself.
8.  If this error occurred during a patching installation via opatch utility then complete the following after doing steps 1-4 above

relink Oracle
relink all > relink.txt 2>&1

9. review the relink.txt file for errors (if any)

And that’s it. You should be ok now. Phew!

Share this:

You may also like...

6 Responses

  1. Rafael Rojas Liscano says:

    Hi, I have a similar problem…
    I triying to install a Oracle Application Server on Solaris 10. Over a amd processor.
    When is linking some files. Show me the following error:
    Error in invoking target ‘libso_install’ of makefile. ‘$ORACLE_HOME/reports/lib/ins_reports.mk’. See ‘/opt/oracle/oraInventory/logs/installActions2012-03-12_09-09-03AM.log’ for details.

    And this log look like this:
    ld: fatal: symbol referencing errors. No output written to /opt/oracle/oas/1012/buint/lib/librwu.so
    *** Error code 1
    make: Fatal error: Command failed for target `/opt/oracle/oas/1012/buint/lib/librwu.so’

    End output from spawned process.
    ———————————-
    Exception thrown from action: make
    Exception Name: MakefileException
    Exception String: Error in invoking target ‘libso_install’ of makefile ‘/opt/oracle/oas/1012/buint/reports/lib/ins_reports.mk’. See ‘/opt/oracle/oraInventory/logs/installActions2012-03-12_09-09-03AM.log’ for details.
    Exception Severity: 1
    The output of this make operation is also available at: ‘/opt/oracle/oas/1012/buint/install/make.log’

    Can you help me, please…

  2. Ken Ng says:

    You need to take a look a the make.log file (/opt/oracle/oas/1012/buint/install/make.log) to see what’s going on and where the error occurred. Only then can we further diagnose it.

  3. Rafael Rojas Liscano says:

    Thanks for response…
    The file “make.log” does not give me so much information about my problem. this file look like:
    /usr/ccs/bin/make -f ins_reports.mk libso_install ORACLE_HOME=$ORACLE_HOME/rm -f $ORACLE_HOME/lib//librwu.so; \
    rm -f $ORACLE_HOME/lib//librw.so
    rm -f rwsutil.o rwspid.o ; \
    /usr/ccs/bin/ar x $ORACLE_HOME/lib//librwu.a rwsutil.o rwspid.o ; \
    (LD_OPTIONS=”-z muldefs”; \
    /usr/ccs/bin/ld -o $ORACLE_HOME/lib/librwu.so -z defs -G -L $ORACLE_HOME/lib/ rwsutil.o rwspid.o \
    -lm $ORACLE_HOME/lib/libclntsh.so -lthread -L/usr/dt/lib /usr/dt/lib/libXm.so -lgen -L/usr/openwin/lib/ -R/usr/openwin/lib/ -lXt -lX11 -lw -lm `cat $ORACLE_HOME/lib/sysliblist` -lc )
    Undefined first referenced
    symbol in file
    ssl_GlobalSetClientAuthenticationToOptional /opt/oracle/oas/1012/buint/lib//libnnz10.so
    ssl_DisableClientAuthentication $ORACLE_HOME/lib//libnnz10.so
    ssl_EnableClientAuthentication $ORACLE_HOME/lib//libnnz10.so
    ssl_SetClientSGCBehaviour $ORACLE_HOME/lib//libnnz10.so
    ssl_GlobalDisableClientAuthentication $ORACLE_HOME/lib//libnnz10.so
    ssl_SetIOSemantics $ORACLE_HOME/lib//libnnz10.so
    ssl_ModifyCipherSuites $ORACLE_HOME/lib//libnnz10.so
    ssl_CheckClientVerifyOptionalFlag $ORACLE_HOME/lib//libnnz10.so
    ld: fatal: symbol referencing errors. No output written to $ORACLE_HOME/lib/librwu.so
    *** Error code 1
    make: Fatal error: Command failed for target `$ORACLE_HOME/lib/librwu.so’

  4. HP Fung says:

    Thank you so much for posting this! You have no idea how thankful I am. I spent 4 days and only got to genclntsh…and still very clueless. Thank you for saving me from many sleepless nights. Kudo!

  5. Mei says:

    Thank you man! I don’t have words to say how thankful i am. I got stuck on this error for 2 days

  6. Dmitry says:

    Thank you, this article helped me solve the problem with the installation of Oracle Database 10g on Solaris 10
    (both 32-bit)!

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.