Re: [GIT PULL] Block driver changes for 5.20-rc1
From: Linus Torvalds <torvalds@linux-foundation.org>
Date: 2022-08-03 16:26:37
On Wed, Aug 3, 2022 at 8:16 AM Jens Axboe [off-list ref] wrote:
On the topic of warnings, on my new build box I get a lot of these: ld: warning: arch/x86/lib/putuser.o: missing .note.GNU-stack section implies executable stack ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker which ends up polluting the output quite a bit. axboe@r7525 ~> ld --version GNU ld (GNU Binutils for Debian) 2.38.90.20220713
Ok, I have binutils 2.37, so it may be new to 2.38.
Some googling around seems to imply that we'd need to so something like this
.section .note.GNU-stack,"",%progbits
in all our *.S files.
We do have some signs of that in our tooling, because apparently it
has hit user-space, but I wonder what has triggered the need on the
kernel side for you.
I'd hate to add that pointless line to every asm file, but maybe we
could so something like this
#ifdef __ASSEMBLY_
#ifdef OUTPUT_PROGBITS
.section .note.GNU-stack,"",%progbits
#undef OUTPUT_PROGBITS
#endif
#endif
and then change our 'AS' command line to do '-DOUTPUT_PROGBITS' in our
makefiles.
*Most* asm files should include <linux/linkage.h> just for all the
macros that declare variables externally, so that might catch the bulk
of it.
Somebody who knows the rules better than I would be a good idea.
I've added random people who have touched those linkage things in the
past to the participants, in the hope that somebody goes, "No, Linus,
just add flag XYZ to the linker script" or other and there's a clear
and obvious solution.
Linus