November 2019

S M T W T F S
      12
34 5 678 9
10111213141516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Sunday, November 6th, 2005 07:17 pm
Вот к этому.
Патч нумер 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 за моральную и техническую поддержку :)
Tags:
Monday, November 7th, 2005 07:50 pm (UTC)
да, пожалуй, надо было сразу расколоться :-)

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