2005-04-17 02:20:36 +04:00
/* ld script to make UltraLinux kernel */
2007-05-29 23:29:00 +04:00
# include < a s m / p a g e . h >
2005-04-17 02:20:36 +04: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
{
2007-09-18 06:02:57 +04: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 ;
. = 0 x4 0 0 0 ;
.text 0x0000000000404000 : {
_ text = . ;
TEXT_ T E X T
SCHED_ T E X T
LOCK_ T E X T
KPROBES_ T E X T
* ( .gnu .warning )
} = 0
_ etext = . ;
PROVIDE ( e t e x t = . ) ;
2005-04-17 02:20:36 +04:00
2007-09-18 06:02:57 +04:00
RO_ D A T A ( P A G E _ S I Z E )
.data : {
DATA_ D A T A
CONSTRUCTORS
}
.data1 : {
* ( .data1 )
}
. = ALIGN( 6 4 ) ;
.data .cacheline_aligned : {
* ( .data .cacheline_aligned )
}
. = ALIGN( 6 4 ) ;
.data .read_mostly : {
* ( .data .read_mostly )
}
_ edata = . ;
PROVIDE ( e d a t a = . ) ;
.fixup : {
* ( .fixup )
}
. = ALIGN( 1 6 ) ;
_ _ 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 = . ;
}
NOTES
2005-04-17 02:20:36 +04:00
2007-09-18 06:02:57 +04:00
. = ALIGN( P A G E _ S I Z E ) ;
.init .text : {
_ _ init_ b e g i n = . ;
_ sinittext = . ;
2008-01-20 16:15:03 +03:00
INIT_ T E X T
2007-09-18 06:02:57 +04:00
_ einittext = . ;
}
.init .data : {
2008-01-20 16:15:03 +03:00
INIT_ D A T A
2007-09-18 06:02:57 +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
2005-04-17 02:20:36 +04:00
2007-09-18 06:02:57 +04:00
. = ALIGN( 4 ) ;
.tsb_ldquad_phys_patch : {
_ _ tsb_ l d q u a d _ p h y s _ p a t c h = . ;
* ( .tsb_ldquad_phys_patch )
_ _ tsb_ l d q u a d _ p h y s _ p a t c h _ e n d = . ;
}
2005-04-17 02:20:36 +04:00
2007-09-18 06:02:57 +04:00
.tsb_phys_patch : {
_ _ tsb_ p h y s _ p a t c h = . ;
* ( .tsb_phys_patch )
_ _ tsb_ p h y s _ p a t c h _ e n d = . ;
}
2007-07-23 06:19:05 +04:00
2007-09-18 06:02:57 +04:00
.cpuid_patch : {
_ _ cpuid_ p a t c h = . ;
* ( .cpuid_patch )
_ _ cpuid_ p a t c h _ e n d = . ;
}
.sun4v_1insn_patch : {
_ _ sun4 v _ 1 i n s n _ p a t c h = . ;
* ( .sun4v_1insn_patch )
_ _ sun4 v _ 1 i n s n _ p a t c h _ e n d = . ;
}
.sun4v_2insn_patch : {
_ _ sun4 v _ 2 i n s n _ p a t c h = . ;
* ( .sun4v_2insn_patch )
_ _ sun4 v _ 2 i n s n _ p a t c h _ e n d = . ;
}
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:57 +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:57 +04:00
PERCPU( P A G E _ S I Z E )
2007-07-19 12:48:12 +04:00
2007-09-18 06:02:57 +04:00
. = ALIGN( P A G E _ S I Z E ) ;
_ _ init_ e n d = . ;
_ _ bss_ s t a r t = . ;
.sbss : {
* ( .sbss )
* ( .scommon )
}
.bss : {
* ( .dynbss )
* ( .bss )
* ( COMMON)
}
_ end = . ;
PROVIDE ( e n d = . ) ;
2005-12-29 00:22:54 +03:00
2007-09-18 06:02:57 +04:00
/ DISCARD/ : {
2008-01-20 16:15:03 +03:00
EXIT_ T E X T
EXIT_ D A T A
2007-09-18 06:02:57 +04:00
* ( .exitcall .exit )
}
2005-12-29 00:22:54 +03:00
2007-09-18 06:02:57 +04:00
STABS_ D E B U G
DWARF_ D E B U G
2005-04-17 02:20:36 +04:00
}