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 >
2007-10-16 01:26:35 -07:00
# include < a s m / p a g e . h >
2005-04-16 15:20:36 -07:00
OUTPUT_ F O R M A T ( " e l f64 - a l p h a " )
OUTPUT_ A R C H ( a l p h a )
ENTRY( _ _ s t a r t )
2007-07-19 01:48:37 -07:00
PHDRS { k e r n e l P T _ L O A D ; note PT_NOTE; }
2005-04-16 15:20:36 -07:00
jiffies = j i f f i e s _ 6 4 ;
SECTIONS
{
# ifdef C O N F I G _ A L P H A _ L E G A C Y _ S T A R T _ A D D R E S S
2007-10-16 01:26:35 -07:00
. = 0 xfffffc0 0 0 0 3 1 0 0 0 0 ;
2005-04-16 15:20:36 -07:00
# else
2007-10-16 01:26:35 -07:00
. = 0 xfffffc0 0 0 1 0 1 0 0 0 0 ;
2005-04-16 15:20:36 -07:00
# endif
2007-10-16 01:26:35 -07:00
_ text = . ; /* Text and read-only data */
.text : {
2007-07-26 17:34:19 +01:00
* ( .text .head )
2007-10-16 01:26:35 -07:00
TEXT_ T E X T
SCHED_ T E X T
LOCK_ T E X T
* ( .fixup )
* ( .gnu .warning )
} : kernel
_ etext = . ; /* End of text section */
/* Exception table */
. = 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 : k e r n e l : n o t e
.dummy : {
* ( .dummy )
} : kernel
RODATA
/* Will be freed after init */
. = ALIGN( P A G E _ S I Z E ) ;
/* Init code and data */
_ _ init_ b e g i n = . ;
.init .text : {
_ sinittext = . ;
* ( .init .text )
_ einittext = . ;
}
.init .data : {
* ( .init .data )
}
. = ALIGN( 1 6 ) ;
.init .setup : {
_ _ setup_ s t a r t = . ;
* ( .init .setup )
_ _ setup_ e n d = . ;
}
. = ALIGN( 8 ) ;
.initcall .init : {
_ _ initcall_ s t a r t = . ;
INITCALLS
_ _ initcall_ e n d = . ;
}
2005-04-16 15:20:36 -07:00
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-10-16 01:26:35 -07: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 01:44:44 -08:00
# endif
2005-04-16 15:20:36 -07:00
2007-10-16 01:26:35 -07:00
. = ALIGN( 8 ) ;
.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 = . ;
}
. = ALIGN( 8 ) ;
SECURITY_ I N I T
PERCPU( P A G E _ S I Z E )
. = ALIGN( 2 * P A G E _ S I Z E ) ;
_ _ init_ e n d = . ;
/* Freed after init ends here */
/* Note 2 page alignment above. */
.data .init_thread : {
* ( .data .init_thread )
}
. = ALIGN( P A G E _ S I Z E ) ;
.data .page_aligned : {
* ( .data .page_aligned )
}
. = ALIGN( 6 4 ) ;
.data .cacheline_aligned : {
* ( .data .cacheline_aligned )
}
_ data = . ;
/* Data */
.data : {
DATA_ D A T A
CONSTRUCTORS
}
.got : {
* ( .got )
}
.sdata : {
* ( .sdata )
}
_ edata = . ; /* End of data section */
_ _ bss_ s t a r t = . ;
.sbss : {
* ( .sbss )
* ( .scommon )
}
.bss : {
* ( .bss )
* ( COMMON)
}
_ _ bss_ s t o p = . ;
_ end = . ;
/* Sections to be discarded */
/ DISCARD/ : {
* ( .exit .text )
* ( .exit .data )
* ( .exitcall .exit )
}
.mdebug 0 : {
* ( .mdebug )
}
.note 0 : {
* ( .note )
}
STABS_ D E B U G
DWARF_ D E B U G
2005-04-16 15:20:36 -07:00
}