/* ldscript for running user programs under Nachos Sections should be aligned on page boundaries. Here an alignement of at least 0x2000 is selected, thus supporting pages up to 8KB large. See addrspace.cc for details. */ ENTRY(__start) SECTIONS { /* Skip an area of about 8k, so that NULL pointer dereferences can be detected */ . += 0x2000; .sys ALIGN(0x4000) : { *(.init) *(.sys) } /* Code is aligned on a 16k boundary Due to the size of the .sys section, the code start address will presumably be at address 0x4000 */ .text ALIGN(0x400000) : { _ftext = .; eprol = .; *(.text) *(.fini) } etext = .; _etext = .; /* Initialized data is aligned on a 16k boundary */ .data ALIGN(0x4000) : { _fdata = .; *(.data) *(.sdata) } .rodata ALIGN(0x4000) : { *(.rdata) *(.srodata) *(.rodata) } edata = .; _edata = .; /* Non-initialized data is aligned on a 16k boundary */ /* Bss = Block Started by Symbol */ .bss ALIGN(0x4000) : { *(.bss) *(.sbss) *(.scommon) *(COMMON) } end = .; _end = .; }