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        .ctors                  0 : ALIGN(8) { *(SORT(.ctors.*)) *(.ctors) }
  28        .init_array             0 : ALIGN(8) { *(SORT(.init_array.*)) *(.init_array) }
  29
  30        __jump_table            0 : ALIGN(8) { KEEP(*(__jump_table)) }
  31
  32        __patchable_function_entries : { *(__patchable_function_entries) }
  33
  34#ifdef CONFIG_LTO_CLANG
  35        /*
  36         * With CONFIG_LTO_CLANG, LLD always enables -fdata-sections and
  37         * -ffunction-sections, which increases the size of the final module.
  38         * Merge the split sections in the final binary.
  39         */
  40        .bss : {
  41                *(.bss .bss.[0-9a-zA-Z_]*)
  42                *(.bss..L*)
  43        }
  44
  45        .data : {
  46                *(.data .data.[0-9a-zA-Z_]*)
  47                *(.data..L*)
  48        }
  49
  50        .rodata : {
  51                *(.rodata .rodata.[0-9a-zA-Z_]*)
  52                *(.rodata..L*)
  53        }
  54
  55        /*
  56         * With CONFIG_CFI_CLANG, we assume __cfi_check is at the beginning
  57         * of the .text section, and is aligned to PAGE_SIZE.
  58         */
  59        .text : ALIGN_CFI {
  60                *(.text.__cfi_check)
  61                *(.text .text.[0-9a-zA-Z_]* .text..L.cfi*)
  62        }
  63#endif
  64}
  65
  66/* bring in arch-specific sections */
  67#include <asm/module.lds.h>
  68