All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ard Biesheuvel <ardb@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Guenter Roeck <linux@roeck-us.net>,
	"Jason A. Donenfeld" <Jason@zx2c4.com>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>, Arnd Bergmann <arnd@arndb.de>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Masahiro Yamada <masahiroy@kernel.org>,
	Palmer Dabbelt <palmer@rivosinc.com>
Subject: Re: Linux 6.2-rc2
Date: Tue, 3 Jan 2023 11:58:48 +0100	[thread overview]
Message-ID: <CAMj1kXHqQoqoys83nEp=Q6oT68+-GpCuMjfnYK9pMy-X_+jjKw@mail.gmail.com> (raw)
In-Reply-To: <CAHk-=whmeBkyu3iS_s-yk0=t3GEoW3sQb-wJFHKykOjG=iQVFw@mail.gmail.com>

On Tue, 3 Jan 2023 at 03:13, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> On Mon, Jan 2, 2023 at 5:45 PM Guenter Roeck <linux@roeck-us.net> wrote:
> >
> > ... and reverting commit 99cb0d917ff indeed fixes the problem.
>
> Hmm. My gut feel is that this just exposes some bug in binutils.
>
> That said, maybe that commit should not have added its own /DISCARDS/
> thing, and instead just added that "*(.note.GNU-stack)" to the general
> /DISCARDS/ thing that is defined by the
>
>   #define DISCARDS  ..
>
> a little bit later, so that we only end up with one single DISCARD
> list. Something like this (broken patch on purpose):
>
>   --- a/include/asm-generic/vmlinux.lds.h
>   +++ b/include/asm-generic/vmlinux.lds.h
>   @@ -897,5 +897,4 @@
>     */
>    #define NOTES                                        \
>   -     /DISCARD/ : { *(.note.GNU-stack) }              \
>         .notes : AT(ADDR(.notes) - LOAD_OFFSET) {       \
>                 BOUNDED_SECTION_BY(.note.*, _notes)     \
>   @@ -1016,4 +1015,5 @@
>    #define DISCARDS                                     \
>         /DISCARD/ : {                                   \
>   +     *(.note.GNU-stack)                              \
>         EXIT_DISCARDS                                   \
>         EXIT_CALL                                       \
>
> But maybe that DISCARDS macrop ends up being used too late?
>

Masahiro's v1 did something like this, and it caused an issue on
RISC-V, which is why we ended up with this approach instead.

> It really shouldn't matter, but here we are, with a build problem with
> some random old binutils on an odd platform..
>

AIUI, the way ld.bfd used to combine output sections may also affect
the /DISCARD/ pseudo-section, and so introducing it much earlier
results in these discards to be interpreted in a different order.

The purpose of this change is to prevent .note.GNU-stack from deciding
the section type of the .notes output section, and so keeping it in
its own section should be sufficient. E.g.,

--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -896,7 +896,7 @@
  * Otherwise, the type of .notes section would become PROGBITS
instead of NOTES.
  */
 #define NOTES                                                          \
-       /DISCARD/ : { *(.note.GNU-stack) }                              \
+       .note.GNU-stack : { *(.note.GNU-stack) }                        \
        .notes : AT(ADDR(.notes) - LOAD_OFFSET) {                       \
                BOUNDED_SECTION_BY(.note.*, _notes)                     \
        } NOTES_HEADERS                                                 \

The .note.GNU-stack has zero size, so the result should be the same.

  parent reply	other threads:[~2023-01-03 10:59 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-01 22:01 Linux 6.2-rc2 Linus Torvalds
2023-01-02 10:20 ` Build regressions/improvements in v6.2-rc2 Geert Uytterhoeven
2023-01-02 22:56 ` Linux 6.2-rc2 Guenter Roeck
2023-01-03  0:21   ` Linus Torvalds
2023-01-03  1:45     ` Guenter Roeck
2023-01-03  2:13       ` Linus Torvalds
2023-01-03  3:57         ` Guenter Roeck
2023-01-03  4:26           ` Nathan Chancellor
2023-01-03  9:14             ` Thorsten Leemhuis
2023-01-03 10:58         ` Ard Biesheuvel [this message]
2023-01-03 11:45           ` Conor Dooley
2023-01-03 12:22           ` Guenter Roeck
2023-01-03 18:26           ` Nathan Chancellor
2023-01-03 18:34           ` Linus Torvalds
2023-01-05 13:44             ` Masahiro Yamada
2023-01-04 10:34           ` Michael Ellerman
2023-01-04 10:34             ` Michael Ellerman
2023-01-10  0:32           ` SeongJae Park
2023-01-10 18:39             ` Masahiro Yamada
2023-01-10 19:14               ` SeongJae Park
2023-01-23  9:09                 ` Masahiro Yamada
2023-01-23 18:27                   ` SeongJae Park
2023-02-06 22:56                     ` SeongJae Park
2023-02-08  1:27                       ` Masahiro Yamada
2023-01-13 14:59           ` Tom Saeger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAMj1kXHqQoqoys83nEp=Q6oT68+-GpCuMjfnYK9pMy-X_+jjKw@mail.gmail.com' \
    --to=ardb@kernel.org \
    --cc=Jason@zx2c4.com \
    --cc=arnd@arndb.de \
    --cc=dalias@libc.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=masahiroy@kernel.org \
    --cc=palmer@rivosinc.com \
    --cc=torvalds@linux-foundation.org \
    --cc=ysato@users.sourceforge.jp \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.