|
I couldn't find this install documented anywhere on Metalink or the Internet, so here are some instructions on how to do it. It's written for Oracle 9 and RHEL3, but should apply to Oracle 10 and RHEL4 as well.
How to install 32-bit oracle on a x86-64 platform:
- Unpack the regular oracle x86 install disks (ship_9204_linux_disk1.cpio etc)
- Download patch 3005865 and unpack
- Extract the assembler code in rhel3_pre_install.sh into a new file libcwait.c. It should look something like this:
#include <errno.h>
#include <sys/syscall.h>
#include <sys/types.h>
#include <sys/wait.h>
pid_t
__libc_wait (int *status)
{
int res;
asm volatile ("pushl %%ebx\n\t"
"movl %2, %%ebx\n\t"
"movl %1, %%eax\n\t"
"int \$0x80\n\t"
"popl %%ebx"
: "=a" (res)
: "i" (__NR_wait4), "0" (WAIT_ANY), "c" (status), "d"
(0), "S" (0));
return res;
}
- Compile it, using GCC 2.96:
/usr/bin/gcc296 -O2 -shared -fpic -c libcwait.c -o libcwait.so
- Generate the 64-bit version of libcwait.
cp libcwait.c libcwait64.c
vi libcwait64.c
Replace "pushl %%ebx\n\t" with "pushq %%rbx\n\t"
Replace "popl %%ebx" with "popq %%rbx"
- Compile using the more recent 3.23 compiler (for RHEL3; other linux versions will vary):
/usr/bin/gcc323 -m64 -O2 -shared -fpic -c libcwait64.c -o libcwait64.so
- Install 32-bit and 64-bit libcwaits into recognized library paths:
cp libcwait.so /usr/lib
cp libcwait64.so /usr/lib64/libcwait.so
- Refresh the LD cache
ldconfig
- Now run the install, in an X session:
setarch i686
export LD_ASSUME_KERNEL=2.4.19
export LD_PRELOAD=libcwait.so
./runInstaller
|