Subversion Repositories HelenOS

Rev

Rev 3555 | Rev 3690 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

STARTUP(LIBC_PREFIX/arch/ARCH/src/entry.o)
ENTRY(__entry)

PHDRS {
    interp PT_INTERP;
        text PT_LOAD FLAGS(5);
    data PT_LOAD FLAGS(6);
}

SECTIONS {
    .interp : {
        *(.interp);
    } :interp

    . = 0x1000;

    .init ALIGN(0x1000) : SUBALIGN(0x1000) {
        *(.init);
    } :text
    .text : {
        *(.text);
        *(.text.*);
        *(.rodata*);
    } :text

    .rel.plt ALIGN(0x1000) : {
        *(.rel.plt);
    }
    /* 
     *.rel.dyn MUST FOLLOW IMMEDIATELY after .rel.plt 
     * without alignment gap or DT_REL will be broken
     */
    .rel.dyn : {
        *(.rel.*);
    } :text

    .plt ALIGN(0x1000) : SUBALIGN(0x1000) {
        *(.plt);
    } :text


    .dynamic ALIGN(0x1000) : {
        *(.dynamic);
    } :text

    .dynsym ALIGN(0x1000) : {
        *(.dynsym);
    } :text

    .dynstr ALIGN(0x1000) : {
        *(.dynstr);
    } :text

    .data ALIGN(0x1000) : SUBALIGN(0x1000) {
        *(.data);
    } :data

    .data.rel ALIGN(0x1000) : {
                *(.data.rel);
    } :data

    .got ALIGN(0x1000) : SUBALIGN(0x1000) {
                *(.got);
    } :data
    .got.plt ALIGN(0x1000) : SUBALIGN(0x1000) {
                *(.got.plt);
    } :data

    .bss : {
                *(COMMON);
                *(.bss);
    } :data

/*  .tdata : {
        _tdata_start = .;
        *(.tdata);
        _tdata_end = .;
    } :data
    .tbss : {
        _tbss_start = .;
        *(.tbss);
        _tbss_end = .;
    } :data
    _tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
*/  
    . = ALIGN(0x1000);
    _heap = .;

}