[devel] Re: I: Sisyphus base build system freeze plans
Dmitry V. Levin
=?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Ср Апр 28 15:35:07 MSD 2004
On Wed, Apr 28, 2004 at 09:55:38AM +0400, Sergey Vlasov wrote:
> On Tue, Apr 27, 2004 at 02:54:21PM +0400, Dmitry V. Levin wrote:
> > On Tue, Apr 27, 2004 at 02:34:29PM +0400, Sergey Vlasov wrote:
[...]
> > > $ ls -la /usr/X11R6/lib/libGL.so.1
> > > lrwxrwxrwx 1 root root 12 Апр 27 14:30 /usr/X11R6/lib/libGL.so.1 -> libMesaGL.so
> > >
> > > Старый ldconfig делает ссылку на libGLwrapper.so.0.1.8. Вообще по какому
> > > принципу ldconfig выбирает, на что поставить ссылку при наличии нескольких
> > > библиотек с совпадающими SONAME?
> >
> > Этот алгоритм несколько раз менялся, и какой действует сейчас, я не помню.
>
> На самом деле эта проблема возникает из-за следующего изменения:
>
> @@ -770,10 +790,27 @@ search_dir (const struct dir_entry *entr
> continue;
> }
>
> +
> + /* A link may just point to itself. */
> + if (is_link)
> + {
> + /* If the path the link points to isn't its soname and it is not
> + .so symlink for ld(1) only, we treat it as a normal file. */
> + const char *real_base_name = basename (real_file_name);
> +
> + if (strcmp (real_base_name, soname) != 0)
> + {
> + len = strlen (real_base_name);
> + if (len < strlen (".so")
> + || strcmp (real_base_name + len - strlen (".so"), ".so") != 0
> + || strncmp (real_base_name, soname, len) != 0)
> + is_link = 0;
> + }
> + }
> +
> if (real_name != real_file_name)
> free (real_name);
>
> - /* Links will just point to itself. */
> if (is_link)
> {
> free (soname);
>
> libMesaGL.so - это тоже ссылка (на libGL.so.1.4.501). Судя по
> комментарию, такая ссылка должна была бы игнорироваться, но на самом
> деле этого не происходит из-за третьей части написанного здесь условия
> (strncmp (real_base_name, soname, len) != 0).
По идее автора этого изменения, ссылка libMesaGL.so должна игнорироваться
только в случае, если она ссылается на libMesaGL.so.*
> > Лучше не закладываться на тот или иной вариант и сделать нормальный
> > wrapper.
>
> Каким образом? Вынести все реальные libGL.so.* в другой каталог,
> оставив в /usr/X11R6/lib только libGLwrapper.so.*?
Например.
--
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20040428/883df69f/attachment-0001.bin>
Подробная информация о списке рассылки Devel