2005-04-17 02:20:36 +04:00
/* ld script to make SparcLinux kernel */
# include < a s m - g e n e r i c / v m l i n u x . l d s . h >
2007-09-18 06:02:30 +04:00
# include < a s m / p a g e . h >
2005-04-17 02:20:36 +04:00
OUTPUT_ F O R M A T ( " e l f32 - s p a r c " , " e l f32 - s p a r c " , " e l f32 - s p a r c " )
OUTPUT_ A R C H ( s p a r c )
ENTRY( _ s t a r t )
jiffies = j i f f i e s _ 6 4 + 4 ;
SECTIONS
{
2007-09-18 06:02:30 +04:00
. = 0 x1 0 0 0 0 + S I Z E O F _ H E A D E R S ;
.text 0xf0004000 :
{
_ text = . ;
TEXT_ T E X T
SCHED_ T E X T
LOCK_ T E X T
* ( .gnu .warning )
} = 0
_ etext = . ;
PROVIDE ( e t e x t = . ) ;
RODATA
.data : {
DATA_ D A T A
CONSTRUCTORS
}
.data1 : {
* ( .data1 )
}
_ edata = . ;
PROVIDE ( e d a t a = . ) ;
2005-04-17 02:20:36 +04:00
2007-09-18 06:02:30 +04:00
.fixup : {
_ _ start_ _ _ f i x u p = . ;
* ( .fixup )
_ _ stop_ _ _ f i x u p = . ;
}
_ _ ex_ t a b l e : {
_ _ start_ _ _ e x _ t a b l e = . ;
* ( _ _ ex_ t a b l e )
_ _ stop_ _ _ e x _ t a b l e = . ;
}
2007-07-23 06:19:05 +04:00
2007-09-18 06:02:30 +04:00
NOTES
. = ALIGN( P A G E _ S I Z E ) ;
_ _ init_ b e g i n = . ;
.init .text : {
_ sinittext = . ;
2008-01-20 16:15:03 +03:00
INIT_ T E X T
2007-09-18 06:02:30 +04:00
_ einittext = . ;
}
_ _ init_ t e x t _ e n d = . ;
.init .data : {
2008-01-20 16:15:03 +03:00
INIT_ D A T A
2007-09-18 06:02:30 +04:00
}
. = ALIGN( 1 6 ) ;
.init .setup : {
_ _ setup_ s t a r t = . ;
* ( .init .setup )
_ _ setup_ e n d = . ;
}
.initcall .init : {
_ _ initcall_ s t a r t = . ;
INITCALLS
_ _ initcall_ e n d = . ;
}
.con_initcall .init : {
_ _ con_ i n i t c a l l _ s t a r t = . ;
* ( .con_initcall .init )
_ _ con_ i n i t c a l l _ e n d = . ;
}
SECURITY_ I N I T
2007-02-10 12:44:44 +03:00
# ifdef C O N F I G _ B L K _ D E V _ I N I T R D
2007-09-18 06:02:30 +04:00
. = ALIGN( P A G E _ S I Z E ) ;
.init .ramfs : {
_ _ initramfs_ s t a r t = . ;
* ( .init .ramfs )
_ _ initramfs_ e n d = . ;
}
2007-02-10 12:44:44 +03:00
# endif
2007-09-18 06:02:30 +04:00
PERCPU( P A G E _ S I Z E )
. = ALIGN( P A G E _ S I Z E ) ;
_ _ init_ e n d = . ;
. = ALIGN( 3 2 ) ;
.data .cacheline_aligned : {
* ( .data .cacheline_aligned )
}
2007-11-16 14:06:07 +03:00
. = ALIGN( 3 2 ) ;
.data .read_mostly : {
* ( .data .read_mostly )
}
2005-12-29 00:22:54 +03:00
2007-09-18 06:02:30 +04:00
_ _ bss_ s t a r t = . ;
.sbss : {
* ( .sbss )
* ( .scommon ) }
.bss : {
* ( .dynbss )
* ( .bss )
* ( COMMON)
}
_ end = . ;
PROVIDE ( e n d = . ) ;
/ DISCARD/ : {
2008-01-20 16:15:03 +03:00
EXIT_ T E X T
EXIT_ D A T A
2007-09-18 06:02:30 +04:00
* ( .exitcall .exit )
}
2005-12-29 00:22:54 +03:00
2007-09-18 06:02:30 +04:00
STABS_ D E B U G
DWARF_ D E B U G
2005-04-17 02:20:36 +04:00
}