Files
Centos-kernel-stream-9/scripts/module.lds.S
T
Lenny Szubowicz 87489d8534 Revert "arm64: unwind: add asynchronous unwind tables to kernel and modules"
Bugzilla: https://bugzilla.redhat.com/2234390

Upstream Status: RHEL only

This commit is part of a series which reverts
https://gitlab.com/redhat/centos-stream/src/kernel/centos-stream-9/-/merge_requests/2687
whose purpose was to address https://bugzilla.redhat.com/2183343

This reverts centos-stream-9 commit 4ea8cf7a2b

commit 4ea8cf7a2b
Author: Sebastian Ott <sebott@redhat.com>
Date:   Tue Jun 20 12:51:25 2023 -0400

    arm64: unwind: add asynchronous unwind tables to kernel and modules

    Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2183343

    Enable asynchronous unwind table generation for both the core kernel as
    well as modules, and emit the resulting .eh_frame sections as init code
    so we can use the unwind directives for code patching at boot or module
    load time.

    This will be used by dynamic shadow call stack support, which will rely
    on code patching rather than compiler codegen to emit the shadow call
    stack push and pop instructions.

    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
    Tested-by: Sami Tolvanen <samitolvanen@google.com>
    Link: https://lore.kernel.org/r/20221027155908.1940624-2-ardb@kernel.org
    Signed-off-by: Will Deacon <will@kernel.org>
    (cherry picked from commit 68c76ad4a9571a2b603665c85cf8229bcf04982a)
    Signed-off-by: Sebastian Ott <sebott@redhat.com>

    Note: minor conflicts in
            drivers/firmware/efi/libstub/Makefile
            include/asm-generic/vmlinux.lds.h
            scripts/module.lds.S

Signed-off-by: Lenny Szubowicz <lszubowi@redhat.com>
2023-08-31 22:40:39 -04:00

67 lines
1.5 KiB
ArmAsm

/*
* Common module linker script, always used when linking a module.
* Archs are free to supply their own linker scripts. ld will
* combine them automatically.
*/
#ifdef CONFIG_CFI_CLANG
# include <asm/page.h>
# define ALIGN_CFI ALIGN(PAGE_SIZE)
# define SANITIZER_DISCARDS *(.eh_frame)
#else
# define ALIGN_CFI
# define SANITIZER_DISCARDS
#endif
SECTIONS {
/DISCARD/ : {
*(.discard)
*(.discard.*)
SANITIZER_DISCARDS
}
__ksymtab 0 : { *(SORT(___ksymtab+*)) }
__ksymtab_gpl 0 : { *(SORT(___ksymtab_gpl+*)) }
__kcrctab 0 : { *(SORT(___kcrctab+*)) }
__kcrctab_gpl 0 : { *(SORT(___kcrctab_gpl+*)) }
.init_array 0 : ALIGN(8) { *(SORT(.init_array.*)) *(.init_array) }
__jump_table 0 : ALIGN(8) { KEEP(*(__jump_table)) }
__patchable_function_entries : { *(__patchable_function_entries) }
#ifdef CONFIG_LTO_CLANG
/*
* With CONFIG_LTO_CLANG, LLD always enables -fdata-sections and
* -ffunction-sections, which increases the size of the final module.
* Merge the split sections in the final binary.
*/
.bss : {
*(.bss .bss.[0-9a-zA-Z_]*)
*(.bss..L*)
}
.data : {
*(.data .data.[0-9a-zA-Z_]*)
*(.data..L*)
}
.rodata : {
*(.rodata .rodata.[0-9a-zA-Z_]*)
*(.rodata..L*)
}
/*
* With CONFIG_CFI_CLANG, we assume __cfi_check is at the beginning
* of the .text section, and is aligned to PAGE_SIZE.
*/
.text : ALIGN_CFI {
*(.text.__cfi_check)
*(.text .text.[0-9a-zA-Z_]* .text..L.cfi*)
}
#endif
}
/* bring in arch-specific sections */
#include <asm/module.lds.h>