2005-04-16 15:20:36 -07:00
/ * $ Id : vmlinux. l d s . S ,v 1 . 8 2 0 0 3 / 0 5 / 1 6 1 7 : 1 8 : 1 4 l e t h a l E x p $
* ld s c r i p t t o m a k e S u p e r H L i n u x k e r n e l
* Written b y N i i b e Y u t a k a
* /
2006-09-27 18:20:16 +09:00
# include < a s m / t h r e a d _ i n f o . h >
2007-03-01 15:56:31 +09:00
# include < a s m / c a c h e . h >
2005-04-16 15:20:36 -07:00
# include < a s m - g e n e r i c / v m l i n u x . l d s . h >
# ifdef C O N F I G _ C P U _ L I T T L E _ E N D I A N
OUTPUT_ F O R M A T ( " e l f32 - s h - l i n u x " , " e l f32 - s h - l i n u x " , " e l f32 - s h - l i n u x " )
# else
OUTPUT_ F O R M A T ( " e l f32 - s h b i g - l i n u x " , " e l f32 - s h b i g - l i n u x " , " e l f32 - s h b i g - l i n u x " )
# endif
OUTPUT_ A R C H ( s h )
ENTRY( _ s t a r t )
SECTIONS
{
2006-09-27 17:19:13 +09:00
. = CONFIG_ P A G E _ O F F S E T + C O N F I G _ M E M O R Y _ S T A R T + C O N F I G _ Z E R O _ P A G E _ O F F S E T ;
2005-04-16 15:20:36 -07:00
_ text = . ; /* Text and read-only data */
text = . ; /* Text and read-only data */
.empty_zero_page : {
* ( .empty_zero_page )
} = 0
.text : {
* ( .text )
SCHED_ T E X T
LOCK_ T E X T
* ( .fixup )
* ( .gnu .warning )
} = 0 x0 0 0 9
. = 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 = . ;
2007-03-08 19:41:21 +09:00
_ etext = . ; /* End of text section */
2005-04-16 15:20:36 -07:00
RODATA
2007-03-08 19:41:21 +09:00
BUG_ T A B L E
2005-04-16 15:20:36 -07:00
.data : { /* Data */
* ( .data )
/* Align the initial ramdisk image (INITRD) on page boundaries. */
2006-09-27 18:20:16 +09:00
. = ALIGN( P A G E _ S I Z E ) ;
2005-04-16 15:20:36 -07:00
_ _ rd_ s t a r t = . ;
* ( .initrd )
2006-09-27 18:20:16 +09:00
. = ALIGN( P A G E _ S I Z E ) ;
2005-04-16 15:20:36 -07:00
_ _ rd_ e n d = . ;
CONSTRUCTORS
}
2006-09-27 18:20:16 +09:00
. = ALIGN( P A G E _ S I Z E ) ;
2006-12-12 08:50:36 +09:00
.data .page_aligned : { * ( .data .page_aligned ) }
2007-03-08 19:41:21 +09:00
_ _ nosave_ b e g i n = . ;
.data_nosave : { * ( .data .nosave ) }
. = ALIGN( P A G E _ S I Z E ) ;
_ _ nosave_ e n d = . ;
2005-04-16 15:20:36 -07:00
2007-05-02 19:27:12 +02:00
. = ALIGN( P A G E _ S I Z E ) ;
2005-04-16 15:20:36 -07:00
_ _ per_ c p u _ s t a r t = . ;
.data .percpu : { * ( .data .percpu ) }
_ _ per_ c p u _ e n d = . ;
.data .cacheline_aligned : { * ( .data .cacheline_aligned ) }
_ edata = . ; /* End of data section */
2006-09-27 18:20:16 +09:00
. = ALIGN( T H R E A D _ S I Z E ) ; /* init_task */
2005-04-16 15:20:36 -07:00
.data .init_task : { * ( .data .init_task ) }
2006-09-27 18:20:16 +09:00
. = ALIGN( P A G E _ S I Z E ) ; /* Init code and data */
2005-04-16 15:20:36 -07:00
_ _ init_ b e g i n = . ;
_ sinittext = . ;
.init .text : { * ( .init .text ) }
_ einittext = . ;
.init .data : { * ( .init .data ) }
. = ALIGN( 1 6 ) ;
_ _ setup_ s t a r t = . ;
.init .setup : { * ( .init .setup ) }
_ _ setup_ e n d = . ;
_ _ initcall_ s t a r t = . ;
.initcall .init : {
2006-10-27 11:41:44 -07:00
INITCALLS
2005-04-16 15:20:36 -07:00
}
_ _ 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
2007-02-10 01:44:44 -08:00
# ifdef C O N F I G _ B L K _ D E V _ I N I T R D
2005-04-16 15:20:36 -07:00
_ _ initramfs_ s t a r t = . ;
.init .ramfs : { * ( .init .ramfs ) }
_ _ initramfs_ e n d = . ;
2007-02-10 01:44:44 -08:00
# endif
2005-04-16 15:20:36 -07:00
_ _ machvec_ s t a r t = . ;
.init .machvec : { * ( .init .machvec ) }
_ _ machvec_ e n d = . ;
2006-09-27 18:20:16 +09:00
. = ALIGN( P A G E _ S I Z E ) ;
2005-04-16 15:20:36 -07:00
_ _ init_ e n d = . ;
. = ALIGN( 4 ) ;
_ _ bss_ s t a r t = . ; /* BSS */
.bss : { * ( .bss ) }
. = ALIGN( 4 ) ;
_ end = . ;
/ * When s o m e t h i n g i n t h e k e r n e l i s N O T c o m p i l e d a s a m o d u l e , t h e
* module c l e a n u p c o d e a n d d a t a a r e p u t i n t o t h e s e s e g m e n t s . B o t h
* can t h e n b e t h r o w n a w a y , a s c l e a n u p c o d e i s n e v e r c a l l e d u n l e s s
* it' s a m o d u l e .
* /
/ DISCARD/ : {
* ( .exitcall .exit )
}
2007-03-08 19:41:21 +09:00
STABS_ D E B U G
DWARF_ D E B U G
2005-04-16 15:20:36 -07:00
}