Re: [PATCH] riscv: elf: add .riscv.attributes parsing

From: Vineet Gupta
Date: Thu Jan 12 2023 - 15:51:33 EST




On 1/11/23 08:53, Eric W. Biederman wrote:
Vineet Gupta <vineetg@xxxxxxxxxxxx> writes:

This implements the elf loader hook to parse RV specific
.riscv.attributes section. This section is inserted by compilers
(gcc/llvm) with build related information such as -march organized as
tag/value attribute pairs.

It identifies the various attribute tags (and corresponding values) as
currently specified in the psABI specification.

This patch only implements the elf parsing mechanics, leaving out the
recording/usage of the attributes to subsequent patches.
Why does the kernel care?

Unless I am mistaken the kind of information you are describing is
typically dealt with by the dynamic linker, rather than the kernel.

As a general strategy I think it is smart to leave as much to
userspace and the dynamic linker and possible intead of asking
the kernel's elf loader to care.

That is true in general. But in some cases we might have to do stuff before kick starting usermode such as setting up a shadow stack with special permissions etc.

That allows more rapid
prototyping and reduces the impact of parsing bugs.