Subversion Repositories HelenOS

Rev

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);
    dynamic PT_DYNAMIC;
}

SECTIONS {
    . = 0x4000 + SIZEOF_HEADERS;

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

    /* Align on word boundary -- instructions will follow. */
    . = ALIGN(4);
    
    .init : {
        *(.init);
    } :text
    .text : {
            *(.text);
        *(.rodata*);
        *(.MIPS.stubs);
    } :text

    .hash : {
        *(.hash);
    } : text

    .reginfo : {
        *(.reginfo);
    } : text

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

    .plt : {
        *(.plt);
    } : text

    .dynsym : {
        *(.dynsym);
    } : text

    .dynstr : {
        *(.dynstr);
    } : text

    . = . + 0x4000;

    .dynamic : {
        *(.dynamic);
    } :data :dynamic

    .data : {
        *(.data);
        *(.data.rel*);
    } :data

    .got : {
        _gp = .;
        *(.got);
    } :data
/*
    .tdata : {
        _tdata_start = .;
        *(.tdata);
        _tdata_end = .;
    } :data
    .tbss : {
        _tbss_start = .;
        *(.tbss);
        _tbss_end = .;
    } :data
    _tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
*/
    .sbss : {
        *(.scommon);
        *(.sbss);
    }   
    .bss : {
        *(.bss);
        *(COMMON);
    } :data

    . = ALIGN(0x4000);
    _heap = .;

/*  /DISCARD/ : {
        *(*);
    }*/
}