2005-04-16 15:20:36 -07:00
# include < l i n u x / c o n f i g . h >
# include < a s m - g e n e r i c / v m l i n u x . l d s . h >
# undef m i p s / * C P P r e a l l y s u c k s f o r t h i s j o b * /
# define m i p s m i p s
OUTPUT_ A R C H ( m i p s )
ENTRY( k e r n e l _ e n t r y )
jiffies = J I F F I E S ;
SECTIONS
{
# ifdef C O N F I G _ B O O T _ E L F 6 4
/* Read-only sections, merged into text segment: */
/* . = 0xc000000000000000; */
/* This is the value for an Origin kernel, taken from an IRIX kernel. */
/* . = 0xc00000000001c000; */
2005-09-03 15:56:17 -07:00
/ * Set t h e v a d d r f o r t h e t e x t s e g m e n t t o a v a l u e
2005-04-16 15:20:36 -07:00
> = 0 xa8 0 0 0 0 0 0 0 0 0 1 9 0 0 0 i f n o s y m m o n i s g o i n g t o c o n f i g u r e d
> = 0 xa8 0 0 0 0 0 0 0 0 3 0 0 0 0 0 o t h e r w i s e * /
/* . = 0xa800000000300000; */
/* . = 0xa800000000300000; */
. = 0 xffffffff8 0 3 0 0 0 0 0 ;
# endif
. = LOADADDR;
/* read-only */
_ text = . ; /* Text and read-only data */
.text : {
* ( .text )
SCHED_ T E X T
LOCK_ T E X T
* ( .fixup )
* ( .gnu .warning )
} = 0
_ etext = . ; /* End of text section */
. = ALIGN( 1 6 ) ; /* Exception table */
_ _ start_ _ _ e x _ t a b l e = . ;
_ _ ex_ t a b l e : { * ( _ _ e x _ t a b l e ) }
_ _ stop_ _ _ e x _ t a b l e = . ;
_ _ start_ _ _ d b e _ t a b l e = . ; /* Exception table for data bus errors */
_ _ dbe_ t a b l e : { * ( _ _ d b e _ t a b l e ) }
_ _ stop_ _ _ d b e _ t a b l e = . ;
RODATA
/* writeable */
.data : { /* Data */
. = . + DATAOFFSET; /* for CONFIG_MAPPED_KERNEL */
* ( .data .init_task )
* ( .data )
/* Align the initial ramdisk image (INITRD) on page boundaries. */
. = ALIGN( 4 0 9 6 ) ;
_ _ rd_ s t a r t = . ;
* ( .initrd )
. = ALIGN( 4 0 9 6 ) ;
_ _ rd_ e n d = . ;
CONSTRUCTORS
}
_ gp = . + 0 x80 0 0 ;
.lit8 : { * ( .lit8 ) }
.lit4 : { * ( .lit4 ) }
/ * We w a n t t h e s m a l l d a t a s e c t i o n s t o g e t h e r , s o s i n g l e - i n s t r u c t i o n o f f s e t s
can a c c e s s t h e m a l l , a n d i n i t i a l i z e d d a t a a l l b e f o r e u n i n i t i a l i z e d , s o
we c a n s h o r t e n t h e o n - d i s k s e g m e n t s i z e . * /
.sdata : { * ( .sdata ) }
. = ALIGN( 4 0 9 6 ) ;
_ _ nosave_ b e g i n = . ;
.data_nosave : { * ( .data .nosave ) }
. = ALIGN( 4 0 9 6 ) ;
_ _ nosave_ e n d = . ;
. = ALIGN( 3 2 ) ;
.data .cacheline_aligned : { * ( .data .cacheline_aligned ) }
_ edata = . ; /* End of data section */
/* will be freed after init */
. = ALIGN( 4 0 9 6 ) ; /* Init code and data */
_ _ init_ b e g i n = . ;
.init .text : {
_ sinittext = . ;
* ( .init .text )
_ einittext = . ;
}
.init .data : { * ( .init .data ) }
. = ALIGN( 1 6 ) ;
_ _ setup_ s t a r t = . ;
.init .setup : { * ( .init .setup ) }
_ _ setup_ e n d = . ;
.early_initcall .init : {
_ _ earlyinitcall_ s t a r t = . ;
* ( .initcall .early1 .init )
}
_ _ earlyinitcall_ e n d = . ;
_ _ initcall_ s t a r t = . ;
.initcall .init : {
* ( .initcall1 .init )
* ( .initcall2 .init )
* ( .initcall3 .init )
* ( .initcall4 .init )
* ( .initcall5 .init )
* ( .initcall6 .init )
* ( .initcall7 .init )
}
_ _ initcall_ e n d = . ;
_ _ con_ i n i t c a l l _ s t a r t = . ;
.con_initcall .init : { * ( .con_initcall .init ) }
_ _ con_ i n i t c a l l _ e n d = . ;
SECURITY_ I N I T
. = ALIGN( 4 0 9 6 ) ;
_ _ initramfs_ s t a r t = . ;
.init .ramfs : { * ( .init .ramfs ) }
_ _ initramfs_ e n d = . ;
. = ALIGN( 3 2 ) ;
_ _ per_ c p u _ s t a r t = . ;
.data .percpu : { * ( .data .percpu ) }
_ _ per_ c p u _ e n d = . ;
. = ALIGN( 4 0 9 6 ) ;
_ _ init_ e n d = . ;
/* freed after init ends here */
_ _ bss_ s t a r t = . ; /* BSS */
.sbss : {
* ( .sbss )
* ( .scommon )
}
.bss : {
* ( .bss )
* ( COMMON)
}
_ _ bss_ s t o p = . ;
_ end = . ;
/* Sections to be discarded */
/ DISCARD/ : {
* ( .exit .text )
* ( .exit .data )
* ( .exitcall .exit )
/* ABI crap starts here */
* ( .comment )
* ( .MIPS .options )
* ( .note )
* ( .options )
* ( .pdr )
* ( .reginfo )
* ( .mdebug * )
}
/* This is the MIPS specific mdebug section. */
.mdebug : { * ( .mdebug ) }
/ * These a r e n e e d e d f o r E L F b a c k e n d s w h i c h h a v e n o t y e t b e e n
converted t o t h e n e w s t y l e l i n k e r . * /
.stab 0 : { * ( .stab ) }
.stabstr 0 : { * ( .stabstr ) }
/ * DWARF d e b u g s e c t i o n s .
Symbols i n t h e . d e b u g D W A R F s e c t i o n a r e r e l a t i v e t o t h e b e g i n n i n g o f t h e
section s o w e b e g i n . d e b u g a t 0 . I t ' s n o t c l e a r y e t w h a t n e e d s t o h a p p e n
for t h e o t h e r s . * /
.debug 0 : { * ( .debug ) }
.debug_srcinfo 0 : { * ( .debug_srcinfo ) }
.debug_aranges 0 : { * ( .debug_aranges ) }
.debug_pubnames 0 : { * ( .debug_pubnames ) }
.debug_sfnames 0 : { * ( .debug_sfnames ) }
.line 0 : { * ( .line ) }
/* These must appear regardless of . */
.gptab .sdata : { * ( .gptab .data ) * ( .gptab .sdata ) }
.gptab .sbss : { * ( .gptab .bss ) * ( .gptab .sbss ) }
.comment : { * ( .comment ) }
.note : { * ( .note ) }
}