Solaris and Oracle 32bit Linking Error "fatal: symbol 'ntcontab'

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]


修改时间 12-OCT-2011     类型 PROBLEM     状态 MODERATED 

In this Document


This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process and therefore has not been subject to an independent technical review.

Applies to: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)
This issue is currently known to affect only the 32bit version of Oracle Software on the following platforms
Solaris x86
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 )Symptoms

When doing a new install or applying a patch of 32bit Oracle software on a server that meets the following criteria

Solaris x86

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 )

The following error is seen during link phase:

excerpt from $ORACLE_HOME/install/make.log

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

INFO: /export/home/oracle/sw/11g/bin/genclntsh

INFO: ld: fatal: symbol 'ntcontab' in file 
/export/home/oracle/sw/11g/lib/libn10.a(ntcontab.o): section [3].data: size 
0x60: symbol (address 0, size 0x70) lies 
outside of containing section

INFO: ld: fatal: file processing errors. No output written to 
/export/home/oracle/sw/11g/lib/libclntsh.so.10.1

INFO: genclntsh: Failed to link libclntsh.so.10.1

INFO: make: Fatal error: Command failed for target `client_sharedlib 
INFO: '

INFO: *** Error code 1

Cause

Unpublished bug:

Bug 6791866 - ASSEMBLER CODE GENERATED BY GENNTTAB CAUSES LD ERROR IN LATEST SOLARIS BUILDS

Which states:

Always in the latest Solaris builds

Solaris 11 [Nevada]

and

Solaris 10 Update 10 and above ( Solaris 10 8/11 )

due to stricter integrity checking in the linker (ld)

or

OS patch 144501-19 installed.

Solution

For versions 10.1.x through 10.2.0.x use the following workaround

If this occurs during an installation of the base release or patchset, you will get a pop-up for the link error providing the following options, 'Retry or Continue'.  Leave this popup and login to a new session as the owner of the ORACLE_HOME, and complete the following:

1. cd $ORACLE_HOME/bin

2. cp gennttab gennttab_orig

3. edit gennttab

change

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

to

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

4. cd $ORACLE_HOME/network/lib

execute command

/usr/ccs/bin/make -f ins_net_client.mk ntcontab.o

execute command

$ORACLE_HOME/bin/genclntsh

5. 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.

6.  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

7. review the relink.txt file for errors

原文地址:https://www.cnblogs.com/cqubityj/p/2860572.html