[devel] binutils
Dmitry V. Levin
=?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Пн Июл 21 18:34:09 MSD 2003
On Mon, Jul 21, 2003 at 03:31:08PM +0400, Vitaly Lugovsky wrote:
> On Sun, 20 Jul 2003, Dmitry V. Levin wrote:
>
> > То изменение, которое непосредственно затрагивает ocaml-shared,
> > судя по binutils-2.14.90.0.4/bfd/ChangeLog, было сделано в
> > здравом уме:
>
> Может быть. Но обоснований то не было... :(
>
> > (elf_link_output_extsym): Warn if a forced local symbol is
> > referenced from dynamic objects. Make non-weak undefined symbol
> > with non-default visibility a fatal error.
>
> Только это изменение и существенно. По некоторым, до сих пор мне
> не совсем понятным причинам, Malc-у потребовалось определять
> глобальные символы из OCaml runtime как .protected и .hidden в
> каждой динамически подгружаемой библиотеке (то есть примерно
> понятно - чтоб они реально ссылались на соответствующие
> определения в статическом бинарнике, обращающемся к той самой
> библиотеке). Зачем это запрещать - ни хрена не ясно.
>
> Попробую спросить автора изменений.
>
> Но вообще - мой patch только то и делает, что отменяет это
> дурное ужесточение policy...
Ok, аналогичный временный патч пойдёт в Сизиф (attached).
> > Так что лучше всего пообщаться с автором изменений.
>
> Попробую... Такой крутой народ, однако, обычно вообще не
> реагирует на сообщения...
Ничего страшного, hjl вполне вменяемый.
--
ldv
----------- следующая часть -----------
--- binutils-2.14.90.0.4/bfd/elflink.h.orig 2003-07-20 22:03:16 +0400
+++ binutils-2.14.90.0.4/bfd/elflink.h 2003-07-21 18:08:43 +0400
@@ -4483,20 +4483,22 @@ elf_link_output_extsym (h, data)
(*_bfd_error_handler)
(_("%s: %s symbol `%s' in %s is referenced by DSO"),
bfd_get_filename (finfo->output_bfd),
ELF_ST_VISIBILITY (h->other) == STV_INTERNAL
? "internal"
: ELF_ST_VISIBILITY (h->other) == STV_HIDDEN
? "hidden" : "local",
h->root.root.string,
bfd_archive_filename (h->root.u.def.section->owner));
+#ifdef ENABLE_STRICT_SYMBOL_CHECKING
eoinfo->failed = TRUE;
return FALSE;
+#endif /* ENABLE_STRICT_SYMBOL_CHECKING */
}
/* We don't want to output symbols that have never been mentioned by
a regular file, or that we have been told to strip. However, if
h->indx is set to -2, the symbol is used by a reloc and we must
output it. */
if (h->indx == -2)
strip = FALSE;
else if (((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) != 0
@@ -4665,20 +4667,22 @@ elf_link_output_extsym (h, data)
{
(*_bfd_error_handler)
(_("%s: %s symbol `%s' isn't defined"),
bfd_get_filename (finfo->output_bfd),
ELF_ST_VISIBILITY (sym.st_other) == STV_PROTECTED
? "protected"
: ELF_ST_VISIBILITY (sym.st_other) == STV_INTERNAL
? "internal" : "hidden",
h->root.root.string);
+#ifdef ENABLE_STRICT_SYMBOL_CHECKING
eoinfo->failed = TRUE;
return FALSE;
+#endif /* ENABLE_STRICT_SYMBOL_CHECKING */
}
/* If this symbol should be put in the .dynsym section, then put it
there now. We already know the symbol index. We also fill in
the entry in the .hash section. */
if (h->dynindx != -1
&& elf_hash_table (finfo->info)->dynamic_sections_created)
{
size_t bucketcount;
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?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/20030721/b5808d77/attachment-0001.bin>
Подробная информация о списке рассылки Devel