2005-04-16 15:20:36 -07:00
/* ld script to make UltraLinux kernel */
2007-05-29 21:29:00 +02:00
# include < a s m / p a g 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 >
OUTPUT_ F O R M A T ( " e l f64 - s p a r c " , " e l f64 - s p a r c " , " e l f64 - s p a r c " )
OUTPUT_ A R C H ( s p a r c : v9 a )
ENTRY( _ s t a r t )
jiffies = j i f f i e s _ 6 4 ;
SECTIONS
{
2005-09-25 16:46:57 -07:00
swapper_ l o w _ p m d _ d i r = 0 x00 0 0 0 0 0 0 0 0 4 0 2 0 0 0 ;
2005-04-16 15:20:36 -07:00
. = 0 x4 0 0 0 ;
.text 0x0000000000404000 :
{
2006-12-07 02:14:04 +01:00
_ text = . ;
2007-05-13 00:31:33 +02:00
TEXT_ T E X T
2005-04-16 15:20:36 -07:00
SCHED_ T E X T
LOCK_ T E X T
2005-09-06 15:19:30 -07:00
KPROBES_ T E X T
2005-04-16 15:20:36 -07:00
* ( .gnu .warning )
} = 0
_ etext = . ;
PROVIDE ( e t e x t = . ) ;
2007-05-29 21:29:00 +02:00
RO_ D A T A ( P A G E _ S I Z E )
2005-04-16 15:20:36 -07:00
.data :
{
2007-05-17 13:38:44 +02:00
DATA_ D A T A
2005-04-16 15:20:36 -07:00
CONSTRUCTORS
}
.data1 : { * ( .data1 ) }
. = ALIGN( 6 4 ) ;
.data .cacheline_aligned : { * ( .data .cacheline_aligned ) }
2005-07-10 15:45:11 -07:00
. = ALIGN( 6 4 ) ;
.data .read_mostly : { * ( .data .read_mostly ) }
2005-04-16 15:20:36 -07:00
_ edata = . ;
PROVIDE ( e d a t a = . ) ;
.fixup : { * ( .fixup ) }
. = ALIGN( 1 6 ) ;
_ _ 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-07-22 19:19:05 -07:00
NOTES
2007-05-29 21:29:00 +02:00
. = ALIGN( P A G E _ S I Z E ) ;
2005-04-16 15:20:36 -07:00
_ _ 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 = . ;
_ _ 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
2006-02-01 15:55:21 -08:00
. = ALIGN( 4 ) ;
2006-02-06 23:44:37 -08:00
_ _ tsb_ l d q u a d _ p h y s _ p a t c h = . ;
.tsb_ldquad_phys_patch : { * ( .tsb_ldquad_phys_patch ) }
_ _ tsb_ l d q u a d _ p h y s _ p a t c h _ e n d = . ;
2006-02-01 15:55:21 -08:00
_ _ tsb_ p h y s _ p a t c h = . ;
.tsb_phys_patch : { * ( .tsb_phys_patch ) }
_ _ tsb_ p h y s _ p a t c h _ e n d = . ;
2006-02-26 23:27:19 -08:00
_ _ cpuid_ p a t c h = . ;
.cpuid_patch : { * ( .cpuid_patch ) }
_ _ cpuid_ p a t c h _ e n d = . ;
2006-02-07 00:00:16 -08:00
_ _ sun4 v _ 1 i n s n _ p a t c h = . ;
.sun4v_1insn_patch : { * ( .sun4v_1insn_patch ) }
_ _ sun4 v _ 1 i n s n _ p a t c h _ e n d = . ;
_ _ sun4 v _ 2 i n s n _ p a t c h = . ;
.sun4v_2insn_patch : { * ( .sun4v_2insn_patch ) }
_ _ sun4 v _ 2 i n s n _ p a t c h _ e n d = . ;
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
2007-05-29 21:29:00 +02:00
. = ALIGN( P A G E _ S I Z E ) ;
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
2007-07-19 01:48:12 -07:00
PERCPU( P A G E _ S I Z E )
2007-05-29 21:29:00 +02:00
. = ALIGN( P A G E _ S I Z E ) ;
2005-04-16 15:20:36 -07:00
_ _ init_ e n d = . ;
_ _ bss_ s t a r t = . ;
.sbss : { * ( .sbss ) * ( .scommon ) }
.bss :
{
* ( .dynbss )
* ( .bss )
* ( COMMON)
}
_ end = . ;
PROVIDE ( e n d = . ) ;
/ DISCARD/ : { * ( . e x i t . t e x t ) * ( . e x i t . d a t a ) * ( . e x i t c a l l . e x i t ) }
2005-12-28 13:22:54 -08:00
STABS_ D E B U G
DWARF_ D E B U G
2005-04-16 15:20:36 -07:00
}