linux/scripts/module.lds.S
<<
>>
Prefs
   1/*
   2 * Common module linker script, always used when linking a module.
   3 * Archs are free to supply their own linker scripts.  ld will
   4 * combine them automatically.
   5 */
   6#ifdef CONFIG_CFI_CLANG
   7# include <asm/page.h>
   8# define ALIGN_CFI              ALIGN(PAGE_SIZE)
   9# define SANITIZER_DISCARDS     *(.eh_frame)
  10#else
  11# define ALIGN_CFI
  12# define SANITIZER_DISCARDS
  13#endif
  14
  15SECTIONS {
  16        /DISCARD/ : {
  17                *(.discard)
  18                *(.discard.*)
  19                SANITIZER_DISCARDS
  20        }
  21
  22        __ksymtab               0 : { *(SORT(___ksymtab+*)) }
  23        __ksymtab_gpl           0 : { *(SORT(___ksymtab_gpl+*)) }
  24        __kcrctab               0 : { *(SORT(___kcrctab+*)) }
  25        __kcrctab_gpl           0 : { *(SORT(___kcrctab_gpl+*)) }
  26
  27        .init_array             0 : ALIGN(8) { *(SORT(.init_array.*)) *(.init_array) }
  28
  29        __jump_table            0 : ALIGN(8) { KEEP(*(__jump_table)) }
  30
  31        __patchable_function_entries : { *(__patchable_function_entries) }
  32
  33#ifdef CONFIG_LTO_CLANG
  34        /*
  35         * With CONFIG_LTO_CLANG, LLD always enables -fdata-sections and
  36         * -ffunction-sections, which increases the size of the final module.
  37         * Merge the split sections in the final binary.
  38         */
  39        .bss : {
  40                *(.bss .bss.[0-9a-zA-Z_]*)
  41                *(.bss..L*)
  42        }
  43
  44        .data : {
  45                *(.data .data.[0-9a-zA-Z_]*)
  46                *(.data..L*)
  47        }
  48
  49        .rodata : {
  50                *(.rodata .rodata.[0-9a-zA-Z_]*)
  51                *(.rodata..L*)
  52        }
  53
  54        /*
  55         * With CONFIG_CFI_CLANG, we assume __cfi_check is at the beginning
  56         * of the .text section, and is aligned to PAGE_SIZE.
  57         */
  58        .text : ALIGN_CFI {
  59                *(.text.__cfi_check)
  60                *(.text .text.[0-9a-zA-Z_]* .text..L.cfi*)
  61        }
  62#endif
  63}
  64
  65/* bring in arch-specific sections */
  66#include <asm/module.lds.h>
  67