Subversion Repositories freemyipod

Rev

Blame | Last modification | View Log | RSS feed


ENTRY (__start)

MEMORY {
        flatmem : ORIGIN = 0x0, LENGTH = 0xfffffff
}

SECTIONS {
        .G6 (DEFINED(G6Base) ? G6Base : 0x0) : {
          *(.G6)
        }
        .G7 (DEFINED(G7Base) ? G7Base : 0x0) : {
          *(.G7)
        }
        .G8 (DEFINED(G8Base) ? G8Base : 0x0) : {
          *(.G8)
        }
        .G9 (DEFINED(G9Base) ? G9Base : 0) : {
          *(.G9)
        }
        .G10 (DEFINED(G10Base) ? G10Base : 0) : {
          *(.G10)
        }
        .G11 (DEFINED(G11Base) ? G11Base : 0) : {
          *(.G11)
        }
        .G12 (DEFINED(G12Base) ? G12Base : 0) : {
          *(.G12)
        }
        .G13 (DEFINED(G13Base) ? G13Base : 0) : {
          *(.G13)
        } 
        .text 0x0 : {
                . = . + 4;
                . = ALIGN(0x4) ;
                _stext = . ;
                *(.text)
                *(.text.*)
                *(.gnu.warning)
                *(.stub)
                *(.gnu.linkonce.t*)
                *(.glue_7t)
                *(.glue_7)
                *(.jcr)
                *(.init)
                *(.fini)

W_RODAT         *(.rodata)
W_RODAT         *(.rodata1)
W_RODAT         *(.rodata.*)

                /* This is special code area at the end of the normal
                   text section.  It contains a small lookup table at
                   the start followed by the code pointed to by entries
                   in the lookup table.  */
                . = ALIGN (4) ;
                PROVIDE(__ctbp = .);
                *(.call_table_data)
                *(.call_table_text)

                . = ALIGN(0x20) ;
                _etext = . ;
        } > flatmem
        .data : {
                . = ALIGN(0x4) ;
                _sdata = . ;
                __data_start = . ;
                data_start = . ;
                *(.got.plt)
                *(.got)
                FILL(0) ;
                . = ALIGN(0x20) ; 
                LONG(-1)
                . = ALIGN(0x20) ; 
R_RODAT         *(.rodata)
R_RODAT         *(.rodata1)
R_RODAT         *(.rodata.*)
                *(.gnu.linkonce.r*)
                *(.data)
                *(.data1)
                *(.data.*)
                *(.gnu.linkonce.d*)
                *(.data1)
                *(.eh_frame)
                *(.gcc_except_table)

                /* Microblaze has .sdata and .sbss (small bss).  They must
                   be contiguous, so please don't move any of this. JW */
                _ssrw = . ;                     
                *(.sdata) 
                *(.sdata.*)
                *(.sbss)                        /* Don't move this! */
                _essrw = . ;

                _ssrw_size = _essrw - _ssrw;
                PROVIDE(_SDA_BASE_ = _ssrw + (_ssrw_size / 2));

                *(.gnu.linkonce.s.*)
                *(__libc_atexit)
                *(__libc_subinit)
                *(__libc_subfreeres)
                *(.note.ABI-tag)

                /* microblaze-specific read-only small data area
                   and associated locating symbols */
                _ssro = . ;
                *(.sdata2)
                _essro = . ;
                _ssro_size = _essro - _ssro;
                PROVIDE(_SDA2_BASE_ = _ssro + (_ssro_size / 2));

                . = ALIGN(4) ;
                __CTOR_LIST__ = .;
                LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
                *(.ctors)
                LONG(0)
                __CTOR_END__ = .;
                __DTOR_LIST__ = .;
                LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
                *(.dtors)
                LONG(0)
                __DTOR_END__ = .;

                . = ALIGN(0x10) ; 
                _edata = . ;
        } > flatmem
        .bss : {
                . = ALIGN(0x4) ;
                _sbss = ALIGN(0x4) ;
                __bss_start = . ;
                *(.dynsbss)
                *(.sbss)
                *(.sbss.*)
                *(.scommon)
                *(.dynbss)
                *(.bss)
                *(.bss.*)
                *(.bss*)
                *(.gnu.linkonce.b*)
                *(COMMON)
                . = ALIGN(0x10) ;
                _ebss = . ;
                _end = . ;
                end = . ;
        } > flatmem

        .junk 0 : { *(.rel*) *(.rela*) }
        /* Stabs debugging sections.    */
        .stab 0 : { *(.stab) }
        .stabstr 0 : { *(.stabstr) }
        .stab.excl 0 : { *(.stab.excl) }
        .stab.exclstr 0 : { *(.stab.exclstr) }
        .stab.index 0 : { *(.stab.index) }
        .stab.indexstr 0 : { *(.stab.indexstr) }
        .comment 0 : { *(.comment) }
        .debug_abbrev 0 : { *(.debug_abbrev) }
        .debug_info 0 : { *(.debug_info) }
        .debug_line 0 : { *(.debug_line) }
        .debug_pubnames 0 : { *(.debug_pubnames) }
        .debug_aranges 0 : { *(.debug_aranges) }
}