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 08:35 am (UTC)
Ну нет же в линуксах /usr/local, вот и положили куда-нибудь, чтобы не в /usr/lib.
Monday, November 7th, 2005 10:01 am (UTC)
$ ls -l /usr/local/lib
total 8
drwxr-sr-x 2 root staff 4096 Oct 30 16:44 firmware
drwxrwsr-x 3 root staff 4096 Oct 30 17:02 python2.3

Да и почему не в /usr/lib, собственно?
Monday, November 7th, 2005 10:11 am (UTC)
IMHO, неправильно складывать левую заплатку в каталог с общими библиотеками.
/usr/local/lib у тебя похоже посоздавали какие-то недопатченые gnu-тые утилиты - so-шника ни одного.
Monday, November 7th, 2005 10:51 am (UTC)
Да какая разница, кто чего туда уже положил. Для кастомизированной библиотеки самое место - /usr/local/lib. Она все равно грузится самой первой, потому что из /etc/ld.so.preload.
Monday, November 7th, 2005 11:03 am (UTC)
я про то, что в линуксе вообще /usr/local может возникнуть только случайно и нет такого разделения на "систему" и "пакеты", как в BSD, Солярисе и т.п.
кстати, /etc в линуксах просто перегружен файлами и каталогами, в сравнении с теми же BSD, так что этот файл там погоды уже не сделает :)
Monday, November 7th, 2005 11:27 am (UTC)
сходи на ближайший линукс и набери там man hier
Будешь приятно удивлён ;)
/usr/local
This is where programs which are local to the site typically go.

/usr/local/lib
Files associated with locally installed programs.
Monday, November 7th, 2005 11:42 am (UTC)
что ж, значит линуксы лучше, чем я о них думал :)
Tuesday, November 8th, 2005 08:04 am (UTC)
чего-то вы странное говорите очень
Monday, November 7th, 2005 07:50 pm (UTC)
да, пожалуй, надо было сразу расколоться :-)

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