MEMORY { codearea : origin = 0x02000000, length = 0x0E000000 dataarea : origin = 0x10000000, length = 0xB0000000 // maximum virtual size (to start of r/o area) dynlarea : origin = 0xC0000000, length = 0x08000000 // dynamic loader info not_allowed : origin = 0, length = 0 } OPTION("-append") SECTIONS { .text ALIGN(0x20) : > codearea .fexports ALIGN(0x20) : > dynlarea .dexports ALIGN(0x20) : > dynlarea .rodata ALIGN(0x20) : > dataarea .secinfo ALIGN(0x20) : > dataarea .data ALIGN(0x20) : > dataarea .module_id ALIGN(0x20) : > dataarea .bss ALIGN(0x40) : { *(.bss2) } > dataarea .ipc_smem ALIGN(0x20) : > dataarea .thrdata ALIGN(0x20) : > dataarea // default initialized TLS sections must be in this order // user defined initialized TLS sections should go here .thrbss ALIGN(0x20) : > dataarea // default uninitialized TLS sections must be in this order // user defined uninitialized TLS sections should go here .sdata ALIGN(0x20) : > not_allowed .sbss ALIGN(0x20) : > not_allowed .sdata2 ALIGN(0x20) : > not_allowed // this should be the last line .appended ALIGN(0x20) : > codearea // import sections }