p3006854_9204_LINUX 补丁:
包含两个文件
README
--------------------------------------------------------------------------
#-------------------------------------------------------------------------
# Patch for Bug 3006854
#-------------------------------------------------------------------------
#
# DATE: October 22, 2003
# -----------------------
# Platform Patch for : LINUX Intel
#
# Bugs Fixed by this patch:
# -------------------------
# 3006854, INSTALLER INTEROPERABILITY PATCH FOR RHEL3.0
#
# This patch must be installed on systems running Red Hat Enterprise Linux 3.0
# before running the Oracle Universal Installer (for any Oracle product).
#
# This patch is not specific to a particular Oracle version.
#
# Patch Installation Instructions:
# --------------------------------
# [1] To apply the patch, unzip the PSE container file:
# % unzip p3006854_9204_LINUX.zip
#
# [2] Login as the root user,
#
# [3] Set your current directory to the directory where the patch
# is located, eg:
#
# # cd 3006854
#
# [4] Run the script supplied by this patch
#
# # sh rhel3_pre_install.sh
#
# The installation of the patch is now complete. You can now run
# the Oracle Universal Installer as normal.
#
-----------------------------------------------------------------------------------------------------
rhel3_pre_install.sh
-----------------------------------------------------------------------------------------------------
#!/bin/bash
USER=`whoami`
if [ $USER != root ]; then
echo "Must be root to run this script, please login as root and re-try"
exit
fi
# see if libcwait.so is already being loaded
if [ -f "/etc/ld.so.preload" ] && [ -n "`grep libcwait /etc/ld.so.preload`" ]; then
echo "Patch has already been applied"
exit
else
echo "Applying patch..."
fi
cat << EOF |
#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;
}
EOF
gcc -O2 -shared -fpic -xc - -o /etc/libcwait.so
echo "/etc/libcwait.so" >>/etc/ld.so.preload
echo "Patch successfully applied"