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 за моральную и техническую поддержку :)

[personal profile] olegnet 2005-11-07 08:35 am (UTC)(link)
Ну нет же в линуксах /usr/local, вот и положили куда-нибудь, чтобы не в /usr/lib.

[identity profile] svs.livejournal.com 2005-11-07 07:50 pm (UTC)(link)
да, пожалуй, надо было сразу расколоться :-)

на той страничке еще много познавательного в духе "если вы увидите эту ошибку, просто забейте" :)