ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Предотвращение недолинковки
@ 2020-05-30 15:30 Mikhail Novosyolov
  2020-05-30 17:32 ` Dmitry V. Levin
  2020-05-30 17:55 ` Alexey Tourbin
  0 siblings, 2 replies; 7+ messages in thread
From: Mikhail Novosyolov @ 2020-05-30 15:30 UTC (permalink / raw)
  To: ALT Linux Team development discussions

Здравствуйте.

Пытаюсь понять, как сделать так, чтобы verify_elf выдал ошибку при обнаружении unresolved symbols, но не ругался на non-LFS functions.

Поставил "%global _verify_elf_method sctrict", получил:
verify-elf: ERROR: ./usr/bin/audacity: uses non-LFS functions: __open_2 __xstat fcntl fopen getrlimit open readdir

Эта проверка выглядит бесполезной в данном случае.

Поставил "%global _verify_elf_method normal" - получил такую же ошибку.

Задача - на этапе сборки убеждаться, что в рантайме не будет ошибки unresolved symbols. Зачем при этом проверять на соответствие LFS, не ясно. Поставить -Wl,--no-undefined не всегда вариант, т.к. многие апстримы допускают недолинковку плагинов. Мне кажется правильным в общем случае проверять, что /usr/bin/*, /usr/lib/*.so* не имеют недолинковки, а то, что лежит в нестандартных директориях вида /usr/lib64/xxx/*.so, не проверять, но при этом иметь возможность принудительно включить их проверку.



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [devel] Предотвращение недолинковки
  2020-05-30 15:30 [devel] Предотвращение недолинковки Mikhail Novosyolov
@ 2020-05-30 17:32 ` Dmitry V. Levin
  2020-05-30 22:16   ` Mikhail Novosyolov
  2020-05-30 17:55 ` Alexey Tourbin
  1 sibling, 1 reply; 7+ messages in thread
From: Dmitry V. Levin @ 2020-05-30 17:32 UTC (permalink / raw)
  To: ALT Devel discussion list

On Sat, May 30, 2020 at 06:30:41PM +0300, Mikhail Novosyolov wrote:
> Здравствуйте.
> 
> Пытаюсь понять, как сделать так, чтобы verify_elf выдал ошибку при обнаружении unresolved symbols, но не ругался на non-LFS functions.

%set_verify_elf_method unresolved=strict

> Поставил "%global _verify_elf_method sctrict", получил:
> verify-elf: ERROR: ./usr/bin/audacity: uses non-LFS functions: __open_2 __xstat fcntl fopen getrlimit open readdir

Почему бы заодно не исправить и эту ошибку?


-- 
ldv


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [devel] Предотвращение недолинковки
  2020-05-30 15:30 [devel] Предотвращение недолинковки Mikhail Novosyolov
  2020-05-30 17:32 ` Dmitry V. Levin
@ 2020-05-30 17:55 ` Alexey Tourbin
  2020-05-30 22:14   ` Mikhail Novosyolov
  1 sibling, 1 reply; 7+ messages in thread
From: Alexey Tourbin @ 2020-05-30 17:55 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Sat, May 30, 2020 at 6:31 PM Mikhail Novosyolov
<mikhailnov@altlinux.org> wrote:
> Пытаюсь понять, как сделать так, чтобы verify_elf выдал ошибку при обнаружении unresolved symbols, но не ругался на non-LFS functions.
>
> Поставил "%global _verify_elf_method sctrict", получил:
> verify-elf: ERROR: ./usr/bin/audacity: uses non-LFS functions: __open_2 __xstat fcntl fopen getrlimit open readdir
...
> Задача - на этапе сборки убеждаться, что в рантайме не будет ошибки unresolved symbols. Зачем при этом проверять на соответствие LFS, не ясно. Поставить -Wl,--no-undefined не всегда вариант, т.к. многие апстримы допускают недолинковку плагинов. Мне кажется правильным в общем случае проверять, что /usr/bin/*, /usr/lib/*.so* не имеют недолинковки, а то, что лежит в нестандартных директориях вида /usr/lib64/xxx/*.so, не проверять, но при этом иметь возможность принудительно включить их проверку.

Недолинковка может быть только в shared objects, грубо говоря в *.so*.
Недолинковку в executables линкер пресекает на стадии линковки
(поэтому поверять /usr/bin/* особого смысла нет).  В частности и в
audacity нет таких файлов, которые оправдывали бы проверку:

$ rpmfile audacity-2.3.3-alt2.x86_64.rpm |grep ELF
/usr/bin/audacity       100755  ELF 64-bit LSB executable, x86-64,
version 1 (GNU/Linux), dynamically linked (uses shared libs), for
GNU/Linux 3.2.0, stripped

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [devel] Предотвращение недолинковки
  2020-05-30 17:55 ` Alexey Tourbin
@ 2020-05-30 22:14   ` Mikhail Novosyolov
  0 siblings, 0 replies; 7+ messages in thread
From: Mikhail Novosyolov @ 2020-05-30 22:14 UTC (permalink / raw)
  To: devel

30.05.2020 20:55, Alexey Tourbin пишет:
> On Sat, May 30, 2020 at 6:31 PM Mikhail Novosyolov
> <mikhailnov@altlinux.org> wrote:
>> Пытаюсь понять, как сделать так, чтобы verify_elf выдал ошибку при обнаружении unresolved symbols, но не ругался на non-LFS functions.
>>
>> Поставил "%global _verify_elf_method sctrict", получил:
>> verify-elf: ERROR: ./usr/bin/audacity: uses non-LFS functions: __open_2 __xstat fcntl fopen getrlimit open readdir
> ...
>> Задача - на этапе сборки убеждаться, что в рантайме не будет ошибки unresolved symbols. Зачем при этом проверять на соответствие LFS, не ясно. Поставить -Wl,--no-undefined не всегда вариант, т.к. многие апстримы допускают недолинковку плагинов. Мне кажется правильным в общем случае проверять, что /usr/bin/*, /usr/lib/*.so* не имеют недолинковки, а то, что лежит в нестандартных директориях вида /usr/lib64/xxx/*.so, не проверять, но при этом иметь возможность принудительно включить их проверку.
> Недолинковка может быть только в shared objects, грубо говоря в *.so*.
> Недолинковку в executables линкер пресекает на стадии линковки
> (поэтому поверять /usr/bin/* особого смысла нет).
Теперь пазл до конца сошелся, спасибо
> В частности и в
> audacity нет таких файлов, которые оправдывали бы проверку:
>
> $ rpmfile audacity-2.3.3-alt2.x86_64.rpm |grep ELF
> /usr/bin/audacity       100755  ELF 64-bit LSB executable, x86-64,
> version 1 (GNU/Linux), dynamically linked (uses shared libs), for
> GNU/Linux 3.2.0, stripped


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [devel] Предотвращение недолинковки
  2020-05-30 17:32 ` Dmitry V. Levin
@ 2020-05-30 22:16   ` Mikhail Novosyolov
  2020-05-30 22:49     ` Dmitry V. Levin
  0 siblings, 1 reply; 7+ messages in thread
From: Mikhail Novosyolov @ 2020-05-30 22:16 UTC (permalink / raw)
  To: devel

30.05.2020 20:32, Dmitry V. Levin пишет:
> On Sat, May 30, 2020 at 06:30:41PM +0300, Mikhail Novosyolov wrote:
>> Здравствуйте.
>>
>> Пытаюсь понять, как сделать так, чтобы verify_elf выдал ошибку при обнаружении unresolved symbols, но не ругался на non-LFS functions.
> %set_verify_elf_method unresolved=strict
Спасибо
>
>> Поставил "%global _verify_elf_method sctrict", получил:
>> verify-elf: ERROR: ./usr/bin/audacity: uses non-LFS functions: __open_2 __xstat fcntl fopen getrlimit open readdir
> Почему бы заодно не исправить и эту ошибку?
А в чем практический смысл будет?


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [devel] Предотвращение недолинковки
  2020-05-30 22:16   ` Mikhail Novosyolov
@ 2020-05-30 22:49     ` Dmitry V. Levin
  2020-05-31  6:44       ` Ivan A. Melnikov
  0 siblings, 1 reply; 7+ messages in thread
From: Dmitry V. Levin @ 2020-05-30 22:49 UTC (permalink / raw)
  To: devel

On Sun, May 31, 2020 at 01:16:20AM +0300, Mikhail Novosyolov wrote:
> 30.05.2020 20:32, Dmitry V. Levin пишет:
> > On Sat, May 30, 2020 at 06:30:41PM +0300, Mikhail Novosyolov wrote:
[...]
> >> Поставил "%global _verify_elf_method sctrict", получил:
> >> verify-elf: ERROR: ./usr/bin/audacity: uses non-LFS functions: __open_2 __xstat fcntl fopen getrlimit open readdir
> > Почему бы заодно не исправить и эту ошибку?
> А в чем практический смысл будет?

Этот софт будет работать на x86 с файловыми системами, у которых
64-bit inodes.


-- 
ldv


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [devel] Предотвращение недолинковки
  2020-05-30 22:49     ` Dmitry V. Levin
@ 2020-05-31  6:44       ` Ivan A. Melnikov
  0 siblings, 0 replies; 7+ messages in thread
From: Ivan A. Melnikov @ 2020-05-31  6:44 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Sun, May 31, 2020 at 01:49:12AM +0300, Dmitry V. Levin wrote:
> On Sun, May 31, 2020 at 01:16:20AM +0300, Mikhail Novosyolov wrote:
> > 30.05.2020 20:32, Dmitry V. Levin пишет:
> > > On Sat, May 30, 2020 at 06:30:41PM +0300, Mikhail Novosyolov wrote:
> [...]
> > >> Поставил "%global _verify_elf_method sctrict", получил:
> > >> verify-elf: ERROR: ./usr/bin/audacity: uses non-LFS functions: __open_2 __xstat fcntl fopen getrlimit open readdir
> > > Почему бы заодно не исправить и эту ошибку?
> > А в чем практический смысл будет?
> 
> Этот софт будет работать на x86 с файловыми системами, у которых
> 64-bit inodes.

Кстати, LFS в данном контексте раскрывается в Large File
Support, а не в то, что я например когда-то сначала подумал.

-- 
  wbr,
    iv m.


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-05-31  6:44 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-30 15:30 [devel] Предотвращение недолинковки Mikhail Novosyolov
2020-05-30 17:32 ` Dmitry V. Levin
2020-05-30 22:16   ` Mikhail Novosyolov
2020-05-30 22:49     ` Dmitry V. Levin
2020-05-31  6:44       ` Ivan A. Melnikov
2020-05-30 17:55 ` Alexey Tourbin
2020-05-30 22:14   ` Mikhail Novosyolov

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git