Carl's Oracle

Carl's thougts about the Oracle Database Server

2005/11/9

Patching Oracle 9.2.0.4 to 9.2.0.7 on SuSE 9.2 Professional raises - undefined reference to `dl_iterate_phdr@GLIBC_2.2.4'

@ 10:57 AM (33 months, 24 days ago)
Hi,
It was time to upgrade my Linux based Oracle database from 9.2.0.4 to 9.2.0.7. A thing which is easy going – I thought! Linux was SusE 9.2 Professional with 2.6.x kernel and gcc 3.3.4. After the oracle installer finished copying the files to Oracle Home the linking of the executable started. Soon an error raised which I could not solve:

/usr/lib/gcc-lib/i586-suse-linux/3.3.4/../../../libgcc_s.so: undefined reference to `dl_iterate_phdr@GLIBC_2.2.4'


Contacted Oracle support – the answer:

DATA COLLECTED
===============
uname –a: 2.6.8-24-default i686 <<< invalid kernel
hostname: OrcaLX01
cat /etc/SuSE-release
SuSE Linux 9.2 (i586)
VERSION = 9.2

QUESTION 1
===========
Is Oracle certified on my SuSE Linux 9.2 OS?

ANSWER 1
==========
No, it is not. According to the Metalink certifications page, you will need to use the SuSE
Linux Enterprise Server (SLES 9).

This is it. Oracle 9.2 is not supported with 2.6 kernel on SuSE 9.2 Professional but on SuSE Linux Enterprise Server (SLES 9).


But I remberd that I found posts to solve this dilemma.
The problem of patching was not the Linux Kernel but it was the gcc 3.3.4 compiler using 3.3.4 libs. If you have the compat package installed on your SuSE Box you can  install this patch by switching to the old gcc 2.9.x.

FOLLOWING DESCRIPTION IS AT YOU OWN RISK – COULD DEMAGE YOUR SYSTEM

  • First you have no Oracle Support (on SuSE 9.2 Professional) for your installation even the patch succeeds
  • Second you must be very carfully switching gcc to 2.9.x and back to 3.3.4 (your version).

Renaming gcc/g++ executable (must be done as root)

oracle@OrcaLX01:/usr/bin> gcc -v
gcc version 3.3.4 (pre 3.3.5 20040809)
oracle@OrcaLX01:/usr/bin>

OrcaLX01:/usr/bin # ls gc*
gcc  gcc296  gccbug  gcj  gcjh  gcov
OrcaLX01:/usr/bin # mv gcc gcc334
OrcaLX01:/usr/bin # mv g++ g++334
OrcaLX01:/usr/bin # ln -s gcc296 gcc
OrcaLX01:/usr/bin # ln -s gcc296 g++
OrcaLX01:/usr/bin # ls -l g+* gc*
lrwxrwxrwx  1 root root      6 2005-11-10 05:15 g++ -> gcc296
-rwxr-xr-x  1 root root 101529 2004-10-01 23:56 g++334
lrwxrwxrwx  1 root root      6 2005-11-10 05:14 gcc -> gcc296
-rwxr-xr-x  2 root root  75543 2004-08-24 11:17 gcc296
-rwxr-xr-x  1 root root 101529 2004-10-01 23:56 gcc334
-rwxr-xr-x  1 root root  15900 2004-10-01 23:56 gccbug
-rwxr-xr-x  1 root root 105785 2004-10-01 23:56 gcj
-rwxr-xr-x  1 root root  61413 2004-10-01 23:56 gcjh
-rwxr-xr-x  1 root root  22774 2004-10-01 23:56 gcov
OrcaLX01:/usr/bin #

OrcaLX01:/usr/bin # gcc -v
Reading specs from /opt/gcc295/lib/gcc-lib/i486-suse-linux/2.95.3/specs
gcc version 2.95.3 20010315 (SuSE)
OrcaLX01:/usr/bin #


NOW YOU INSTALL THE PATCH
The Result!!


http://img181.imageshack.us/img181/3866/install35az.png


NOW RETURN TO THE ORIGINAL installed GCC 3.3.4 (your version)

OrcaLX01:/usr/bin # ls -l gc*
lrwxrwxrwx  1 root root      6 2005-11-10 05:14 gcc -> gcc296
-rwxr-xr-x  2 root root  75543 2004-08-24 11:17 gcc296
-rwxr-xr-x  1 root root 101529 2004-10-01 23:56 gcc334
-rwxr-xr-x  1 root root  15900 2004-10-01 23:56 gccbug
-rwxr-xr-x  1 root root 105785 2004-10-01 23:56 gcj
-rwxr-xr-x  1 root root  61413 2004-10-01 23:56 gcjh
-rwxr-xr-x  1 root root  22774 2004-10-01 23:56 gcov
OrcaLX01:/usr/bin # mv gcc334 gcc
OrcaLX01:/usr/bin # ls -l g+*
lrwxrwxrwx  1 root root      6 2005-11-10 05:15 g++ -> gcc296
-rwxr-xr-x  1 root root 101529 2004-10-01 23:56 g++334
OrcaLX01:/usr/bin # mv g++334 g++
OrcaLX01:/usr/bin # gcc -v
Thread model: posix
gcc version 3.3.4 (pre 3.3.5 20040809)
OrcaLX01:/usr/bin # g++ -v
Reading specs from /usr/lib/gcc-lib/i586-suse-linux/3.3.4/specs
gcc version 3.3.4 (pre 3.3.5 20040809)
OrcaLX01:/usr/bin #

AND FOLLOW ALL STEPS DOCUMENTED IN PATCH NOTES to finish the 9.2.0.7 PatcheSet …

After upgrading the Catalog all was fine!

oracle@OrcaLX01:~> sqlplus /nolog
 
SQL*Plus: Release 9.2.0.7.0 - Production on Thu Nov 10 16:37:27 2005
 
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
 
SQL> connect / as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.
 
Total System Global Area  168891376 bytes
Fixed Size                   451568 bytes
Variable Size             100663296 bytes
Database Buffers           67108864 bytes
Redo Buffers                 667648 bytes
Database mounted.
Database opened.
SQL> select * from v$version;
 
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.7.0 - Production
PL/SQL Release 9.2.0.7.0 - Production
CORE    9.2.0.7.0       Production
TNS for Linux: Version 9.2.0.7.0 - Production
NLSRTL Version 9.2.0.7.0 - Production


Carl