diff --git a/src/system/ldscripts/m68k/kernel.ld b/src/system/ldscripts/m68k/kernel.ld index 35cbc5a113..f172691932 100644 --- a/src/system/ldscripts/m68k/kernel.ld +++ b/src/system/ldscripts/m68k/kernel.ld @@ -43,28 +43,27 @@ SECTIONS .plt : { *(.plt) } /* text/read-only data */ - .text : { *(.text .gnu.linkonce.t.*) } :text =0x9090 - - .rodata : { *(.rodata) } + .text : { + *(.text .text.* .gnu.linkonce.t.*) *(.rodata .rodata.*) + } :text =0x9090 /* writable data */ . = ALIGN(0x1000); __data_start = .; - .data : { *(.data .gnu.linkonce.d.*) } :data + .data : { + . = ALIGN(0x4); + __ctor_list = .; + *(.ctors) + __ctor_end = .; + *(.data .data.* .gnu.linkonce.d.*) + *(.got.plt) *(.got) + } :data - . = ALIGN(0x4); - __ctor_list = .; - .ctors : { *(.ctors) } - __ctor_end = .; - __dtor_list = .; - .dtors : { *(.dtors) } - __dtor_end = .; - .got : { *(.got.plt) *(.got) } .dynamic : { *(.dynamic) } :dynamic :data /* uninitialized data (in same segment as writable data) */ __bss_start = .; - .bss : { *(.bss) } :data + .bss : { *(.bss .bss.*) } :data . = ALIGN(0x1000); _end = . ;