Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/amd64/_link.ld.in

    rc89ae25 r6677acb  
    2323        }
    2424
    25         .mapped (PA2KA(BOOT_OFFSET) + SIZEOF_HEADERS + SIZEOF(.unmapped)) : AT (BOOT_OFFSET + SIZEOF_HEADERS + SIZEOF(.unmapped)) {
     25        .text (PA2KA(BOOT_OFFSET) + SIZEOF_HEADERS + SIZEOF(.unmapped)) : AT (BOOT_OFFSET + SIZEOF_HEADERS + SIZEOF(.unmapped)) {
    2626                ktext_start = .;
    2727                *(.text .text.*);
    2828                ktext_end = .;
     29        }
    2930
     31        /* stack unwinding data */
     32        .eh_frame_hdr : {
     33                eh_frame_hdr_start = .;
     34                *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*);
     35                eh_frame_hdr_end = .;
     36        }
     37        .eh_frame : {
     38                eh_frame_start = .;
     39                KEEP(*(.eh_frame .eh_frame.*));
     40                eh_frame_end = .;
     41        }
     42
     43        .data : {
    3044                kdata_start = .;
    31                 *(.data .data.*);              /* initialized data */
    32                 *(.rodata .rodata.*);
    33                 *(.eh_frame .eh_frame.*);      /* stack unwinding data */
    34                 *(.eh_frame_hdr .eh_frame_hdr.*);
    35                 *(COMMON);      /* global variables */
     45                *(.rodata .rodata.*);  /* read-only global variables */
     46                *(.data .data.*);      /* non-zero initialized global variables */
    3647
    37                 /* bss can't be omitted from the ELF image. */
    38                 *(.bss .bss.*);        /* uninitialized static variables */
     48                /*
     49                 * When .bss is not physically present in the ELF file (MemSz > FileSz)
     50                 * the kernel crashes during early boot. Not sure which part of the
     51                 * boot process is to blame, for now just keep .bss packaged with .data
     52                 * so that FileSz == MemSz.
     53                 */
     54
     55                 *(.bss .bss.*);        /* uninitialized global variables */
     56                *(COMMON);             /* non-`static` global variables without an extern declaration */
    3957                kdata_end = .;
    4058        }
Note: See TracChangeset for help on using the changeset viewer.