dil: (Default)
dil ([personal profile] dil) wrote2005-11-06 07:17 pm
Entry tags:

К вопросу об Оракле 9i под линуксом

Вот к этому.
Патч нумер 3006854 от Оракла, который, естественно, дают только зарегистрированным пользователям металинка, делает следующее:
Отсутствующий в glibc2.3 символ __libc_wait воссоздается следующим образом:
вот эта программочка
#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;
}

компилируется в библиотеку /etc/libcwait.so (да-да, именно в /etc. Ненатурализм использования /etc для хранения библиотек я обсуждать не буду) и ссылка на получившуюся библиотеку кладется в /etc/ld.so.preload


Огромное спасибо [livejournal.com profile] lhovitch за моральную и техническую поддержку :)

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting