Re: [RFC PATCH 08/11] x86: Add support for finer grained KASLR

Arvind Sankar
2020-02-25T17:50:14Z

On Wed, Feb 05, 2020 at 02:39:47PM -0800, Kristen Carlson Accardi wrote:
> At boot time, find all the function sections that have separate .text
> sections, shuffle them, and then copy them to new locations. Adjust
> any relocations accordingly.
>
> Signed-off-by: Kristen Carlson Accardi <kristen@linux.intel.com>
> ---
> arch/x86/boot/compressed/Makefile | 1 +
> arch/x86/boot/compressed/fgkaslr.c | 751 +++++++++++++++++++++++
> arch/x86/boot/compressed/misc.c | 106 +++-
> arch/x86/boot/compressed/misc.h | 26 +
> arch/x86/boot/compressed/vmlinux.symbols | 15 +
> arch/x86/include/asm/boot.h | 15 +-
> arch/x86/include/asm/kaslr.h | 1 +
> arch/x86/lib/kaslr.c | 15 +
> scripts/kallsyms.c | 14 +-
> scripts/link-vmlinux.sh | 4 +
> 10 files changed, 939 insertions(+), 9 deletions(-)
> create mode 100644 arch/x86/boot/compressed/fgkaslr.c
> create mode 100644 arch/x86/boot/compressed/vmlinux.symbols
>
> diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
> index b7e5ea757ef4..60d4c4e59c05 100644
> --- a/arch/x86/boot/compressed/Makefile
> +++ b/arch/x86/boot/compressed/Makefile
> @@ -122,6 +122,7 @@ OBJCOPYFLAGS_vmlinux.bin := -R .comment -S
>
> ifdef CONFIG_FG_KASLR
> RELOCS_ARGS += --fg-kaslr
> + OBJCOPYFLAGS += --keep-symbols=$(obj)/vmlinux.symbols

I think this should be $(srctree)/$(src) rather than $(obj)? Using a
separate build directory fails currently.