2005-04-16 15:20:36 -07:00
# ifndef LOAD_OFFSET
# define LOAD_OFFSET 0
# endif
# ifndef VMLINUX_SYMBOL
# define VMLINUX_SYMBOL(_sym_) _sym_
# endif
2005-07-14 20:15:44 +00:00
/* Align . to a 8 byte boundary equals to maximum function alignment. */
# define ALIGN_FUNCTION() . = ALIGN(8)
2005-04-16 15:20:36 -07:00
# define RODATA \
. rodata : AT ( ADDR ( . rodata ) - LOAD_OFFSET ) { \
* ( . rodata ) * ( . rodata . * ) \
* ( __vermagic ) /* Kernel version magic */ \
} \
\
. rodata1 : AT ( ADDR ( . rodata1 ) - LOAD_OFFSET ) { \
* ( . rodata1 ) \
} \
\
/* PCI quirks */ \
. pci_fixup : AT ( ADDR ( . pci_fixup ) - LOAD_OFFSET ) { \
VMLINUX_SYMBOL ( __start_pci_fixups_early ) = . ; \
* ( . pci_fixup_early ) \
VMLINUX_SYMBOL ( __end_pci_fixups_early ) = . ; \
VMLINUX_SYMBOL ( __start_pci_fixups_header ) = . ; \
* ( . pci_fixup_header ) \
VMLINUX_SYMBOL ( __end_pci_fixups_header ) = . ; \
VMLINUX_SYMBOL ( __start_pci_fixups_final ) = . ; \
* ( . pci_fixup_final ) \
VMLINUX_SYMBOL ( __end_pci_fixups_final ) = . ; \
VMLINUX_SYMBOL ( __start_pci_fixups_enable ) = . ; \
* ( . pci_fixup_enable ) \
VMLINUX_SYMBOL ( __end_pci_fixups_enable ) = . ; \
} \
\
/* Kernel symbol table: Normal symbols */ \
__ksymtab : AT ( ADDR ( __ksymtab ) - LOAD_OFFSET ) { \
VMLINUX_SYMBOL ( __start___ksymtab ) = . ; \
* ( __ksymtab ) \
VMLINUX_SYMBOL ( __stop___ksymtab ) = . ; \
} \
\
/* Kernel symbol table: GPL-only symbols */ \
__ksymtab_gpl : AT ( ADDR ( __ksymtab_gpl ) - LOAD_OFFSET ) { \
VMLINUX_SYMBOL ( __start___ksymtab_gpl ) = . ; \
* ( __ksymtab_gpl ) \
VMLINUX_SYMBOL ( __stop___ksymtab_gpl ) = . ; \
} \
\
/* Kernel symbol table: Normal symbols */ \
__kcrctab : AT ( ADDR ( __kcrctab ) - LOAD_OFFSET ) { \
VMLINUX_SYMBOL ( __start___kcrctab ) = . ; \
* ( __kcrctab ) \
VMLINUX_SYMBOL ( __stop___kcrctab ) = . ; \
} \
\
/* Kernel symbol table: GPL-only symbols */ \
__kcrctab_gpl : AT ( ADDR ( __kcrctab_gpl ) - LOAD_OFFSET ) { \
VMLINUX_SYMBOL ( __start___kcrctab_gpl ) = . ; \
* ( __kcrctab_gpl ) \
VMLINUX_SYMBOL ( __stop___kcrctab_gpl ) = . ; \
} \
\
/* Kernel symbol table: strings */ \
__ksymtab_strings : AT ( ADDR ( __ksymtab_strings ) - LOAD_OFFSET ) { \
* ( __ksymtab_strings ) \
} \
\
/* Built-in module parameters. */ \
__param : AT ( ADDR ( __param ) - LOAD_OFFSET ) { \
VMLINUX_SYMBOL ( __start___param ) = . ; \
* ( __param ) \
VMLINUX_SYMBOL ( __stop___param ) = . ; \
}
# define SECURITY_INIT \
2005-06-25 14:57:46 -07:00
. security_initcall . init : AT ( ADDR ( . security_initcall . init ) - LOAD_OFFSET ) { \
2005-04-16 15:20:36 -07:00
VMLINUX_SYMBOL ( __security_initcall_start ) = . ; \
* ( . security_initcall . init ) \
VMLINUX_SYMBOL ( __security_initcall_end ) = . ; \
}
2005-07-14 20:15:44 +00:00
/* sched.text is aling to function alignment to secure we have same
* address even at second ld pass when generating System . map */
2005-04-16 15:20:36 -07:00
# define SCHED_TEXT \
2005-07-14 20:15:44 +00:00
ALIGN_FUNCTION ( ) ; \
2005-04-16 15:20:36 -07:00
VMLINUX_SYMBOL ( __sched_text_start ) = . ; \
* ( . sched . text ) \
VMLINUX_SYMBOL ( __sched_text_end ) = . ;
2005-07-14 20:15:44 +00:00
/* spinlock.text is aling to function alignment to secure we have same
* address even at second ld pass when generating System . map */
2005-04-16 15:20:36 -07:00
# define LOCK_TEXT \
2005-07-14 20:15:44 +00:00
ALIGN_FUNCTION ( ) ; \
2005-04-16 15:20:36 -07:00
VMLINUX_SYMBOL ( __lock_text_start ) = . ; \
* ( . spinlock . text ) \
VMLINUX_SYMBOL ( __lock_text_end ) = . ;