lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <87bk27fndi.fsf@prevas.dk>
Date: Mon, 05 Aug 2024 09:19:05 +0200
From: Rasmus Villemoes <linux@...musvillemoes.dk>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Oleg Nesterov <oleg@...hat.com>,  linux-kernel@...r.kernel.org
Subject: Re: build failure caused by RUNTIME_CONST()

Linus Torvalds <torvalds@...ux-foundation.org> writes:

> On Fri, 2 Aug 2024 at 15:10, Oleg Nesterov <oleg@...hat.com> wrote:
>>
>>         $ ld -v
>>         GNU ld version 2.25-17.fc23
>
> Yeah, we document that we support building with ld-2.25.  And I went
> and looked into the binutils-gdb repo, and it looks like this whole
> automatic start/stop symbol thing was introduced in 2.29.
>

Well, the basics of it goes much further back. ld/NEWS says

Changes in version 2.6:

  * When an ELF section name is representable as a C identifier (this is not true
  of most ELF section names), the linker will automatically define symbols
  __start_SECNAME and __stop_SECNAME, where SECNAME is the section name, at the
  beginning and the end of the section.  This is used by glibc.

but then also goes on with

    Addendum: Current versions of the linker (at least for version 2.18 onwards
  and possibly much earlier as well) place two restrictions on this feature:  The
  symbols are only implemented for orphaned sections, not for explicitly placed
  sections and they are PROVIDEd rather than being defined.

and I think what was changed in 2.29 is that some of that was being
relaxed again with commit cbd0eecf261c ("Always define referenced
__start_SECNAME/__stop_SECNAME"), which is what you find running 'git
blame' on the current doc text. But yes, it does seem that the 2.29
semantics are what are needed to avoid explicitly defining the symbols
in the linker script.

Rasmus

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ