Ticket #6308: x86_64_ldscripts.patch

File x86_64_ldscripts.patch, 5.7 KB (added by nmentley, 9 years ago)

added .patch extension to previously uploaded file

  • src/system/ldscripts/x86_64/boot_loader_bios_x86_64.ld

     
     1OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
     2OUTPUT_ARCH(i386)
     3
     4ENTRY(_start)
     5SECTIONS
     6{
     7    . = 0x10000;
     8
     9    /* text/read-only data */
     10    .text : { *(.text .gnu.linkonce.t.*) }
     11
     12    . = ALIGN(0x4);
     13    __ctor_list = .;
     14    .ctors : { *(.ctors) }
     15    __ctor_end = .;
     16
     17    .rodata : { *(.rodata .rodata.*) }
     18
     19    /* writable data  */
     20    . = ALIGN(0x1000);
     21    __data_start = .;
     22    .data : { *(.data .gnu.linkonce.d.*) }
     23
     24    /* uninitialized data (in same segment as writable data) */
     25    __bss_start = .;
     26    .bss : { *(.bss) }
     27
     28    . = ALIGN(0x1000);
     29    _end = . ;
     30
     31    /* Strip unnecessary stuff */
     32    /DISCARD/ : { *(.comment .note .eh_frame .dtors .stab .stabstr .debug*) }
     33}
  • src/system/ldscripts/x86_64/stage2.ld

     
     1OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
     2OUTPUT_ARCH(i386)
     3
     4ENTRY(_start)
     5SECTIONS
     6{
     7    . = 0x101000 + SIZEOF_HEADERS;
     8
     9    /* text/read-only data */
     10    .text : { *(.text .gnu.linkonce.t.*) }
     11
     12    __ctor_list = .;
     13    .ctors : { *(.ctors) }
     14    __ctor_end = .;
     15
     16    .rodata : { *(.rodata .rodata.*) }
     17
     18    /* writable data  */
     19    . = ALIGN(0x1000);
     20    __data_start = .;
     21    .data : { *(.data .gnu.linkonce.d.* .bss) }
     22
     23    . = ALIGN(0x1000);
     24    _end = . ;
     25
     26    /* Strip unnecessary stuff */
     27    /DISCARD/ : { *(.comment .note .eh_frame .dtors .stab .stabstr .debug*) }
     28}
  • src/system/ldscripts/x86_64/runtime_loader.ld

     
     1OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
     2OUTPUT_ARCH(i386:x86-64)
     3
     4ENTRY(runtime_loader)
     5SEARCH_DIR("libgcc");
     6SECTIONS
     7{
     8    . = 0x00100000 + SIZEOF_HEADERS;
     9
     10    .interp : { *(.interp) }
     11    .hash : { *(.hash) }
     12    .dynsym : { *(.dynsym) }
     13    .dynstr : { *(.dynstr) }
     14    .rel.text : { *(.rel.text) *(.rel.gnu.linkonce.t*) }
     15    .rela.text : { *(.rela.text) *(.rela.gnu.linkonce.t*) }
     16    .rel.data : { *(.rel.data) *(.rel.gnu.linkonce.d*) }
     17    .rela.data : { *(.rela.data) *(.rela.gnu.linkonce.d*) }
     18    .rel.rodata : { *(.rel.rodata) *(.rel.gnu.linkonce.r*) }
     19    .rela.rodata : { *(.rela.rodata) *(.rela.gnu.linkonce.r*) }
     20    .rel.got : { *(.rel.got) }
     21    .rela.got : { *(.rela.got) }
     22    .rel.ctors : { *(.rel.ctors) }
     23    .rela.ctors : { *(.rela.ctors) }
     24    .rel.dtors : { *(.rel.dtors) }
     25    .rela.dtors : { *(.rela.dtors) }
     26    .rel.init : { *(.rel.init) }
     27    .rela.init : { *(.rela.init) }
     28    .rel.fini : { *(.rel.fini) }
     29    .rela.fini : { *(.rela.fini) }
     30    .rel.bss : { *(.rel.bss) }
     31    .rela.bss : { *(.rela.bss) }
     32    .rel.plt : { *(.rel.plt) }
     33    .rela.plt : { *(.rela.plt) }
     34    .init : { *(.init) } =0x9090
     35    .plt : { *(.plt) }
     36
     37    /* text/read-only data */
     38    .text : { *(.text .gnu.linkonce.t.*) }
     39
     40    .rodata : { *(.rodata) }
     41
     42    /* writable data  */
     43    . = ALIGN(0x1000) + (. & (0x1000 - 1));
     44    __data_start = .;
     45    PROVIDE(_data_start = .);
     46    .data : { *(.data .gnu.linkonce.d.*) }
     47
     48    __ctor_list = .;
     49    PROVIDE (_ctor_list = .);
     50    .ctors : { *(.ctors) }
     51    PROVIDE (__ctor_end = .);
     52
     53
     54    /* uninitialized data (in same segment as writable data) */
     55    PROVIDE (__bss_start = .);
     56    .bss : { *(.bss) }
     57
     58    . = ALIGN(0x1000);
     59    PROVIDE (_end = .);
     60
     61    /* Strip unnecessary stuff */
     62    /DISCARD/ : { *(.comment .note .eh_frame .dtors) }
     63}
  • src/system/ldscripts/x86_64/kernel.ld

     
     1OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
     2OUTPUT_ARCH(i386:x86-64)
     3
     4ENTRY(_start)
     5SEARCH_DIR("libgcc");
     6SECTIONS
     7{
     8    . = 0x80000000 + SIZEOF_HEADERS;
     9
     10    .interp : { *(.interp) }
     11    .hash : { *(.hash) }
     12    .dynsym : { *(.dynsym) }
     13    .dynstr : { *(.dynstr) }
     14    .rel.text : { *(.rel.text) *(.rel.gnu.linkonce.t*) }
     15    .rela.text : { *(.rela.text) *(.rela.gnu.linkonce.t*) }
     16    .rel.data : { *(.rel.data) *(.rel.gnu.linkonce.d*) }
     17    .rela.data : { *(.rela.data) *(.rela.gnu.linkonce.d*) }
     18    .rel.rodata : { *(.rel.rodata) *(.rel.gnu.linkonce.r*) }
     19    .rela.rodata : { *(.rela.rodata) *(.rela.gnu.linkonce.r*) }
     20    .rel.got : { *(.rel.got) }
     21    .rela.got : { *(.rela.got) }
     22    .rel.ctors : { *(.rel.ctors) }
     23    .rela.ctors : { *(.rela.ctors) }
     24    .rel.dtors : { *(.rel.dtors) }
     25    .rela.dtors : { *(.rela.dtors) }
     26    .rel.init : { *(.rel.init) }
     27    .rela.init : { *(.rela.init) }
     28    .rel.fini : { *(.rel.fini) }
     29    .rela.fini : { *(.rela.fini) }
     30    .rel.bss : { *(.rel.bss) }
     31    .rela.bss : { *(.rela.bss) }
     32    .rel.plt : { *(.rel.plt) }
     33    .rela.plt : { *(.rela.plt) }
     34    .init : { *(.init) } =0x9090
     35    .plt : { *(.plt) }
     36
     37    /* text/read-only data */
     38    .text : { *(.text .gnu.linkonce.t.*) } =0x9090
     39
     40    .rodata : { *(.rodata) }
     41
     42    /* writable data  */
     43    . = ALIGN(0x1000);
     44    __data_start = .;
     45    .data : { *(.data .gnu.linkonce.d.*) }
     46
     47    . = ALIGN(0x4);
     48    __ctor_list = .;
     49    .ctors : { *(.ctors) }
     50    __ctor_end = .;
     51    __dtor_list = .;
     52    .dtors : { *(.dtors) }
     53    __dtor_end = .;
     54    .got : { *(.got.plt) *(.got) }
     55    .dynamic : { *(.dynamic) }
     56   
     57    /* uninitialized data (in same segment as writable data) */
     58    __bss_start = .;
     59    .bss : { *(.bss) }
     60
     61    . = ALIGN(0x1000);
     62    _end = . ;
     63
     64    /* Strip unnecessary stuff */
     65    /DISCARD/ : { *(.comment .note .eh_frame) }
     66}