[PATCH] vmlinux.lds: consolidate initcall sections
Add a vmlinux.lds.h helper macro for defining the eight-level initcall table, teach all the architectures to use it. This is a prerequisite for a patch which performs initcall synchronisation for multithreaded-probing. Cc: Greg KH <greg@kroah.com> Signed-off-by: Andrew Morton <akpm@osdl.org> [ Added AVR32 as well ] Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
e803915000
commit
61ce1efe6e
@ -48,13 +48,7 @@ SECTIONS
|
|||||||
. = ALIGN(8);
|
. = ALIGN(8);
|
||||||
__initcall_start = .;
|
__initcall_start = .;
|
||||||
.initcall.init : {
|
.initcall.init : {
|
||||||
*(.initcall1.init)
|
INITCALLS
|
||||||
*(.initcall2.init)
|
|
||||||
*(.initcall3.init)
|
|
||||||
*(.initcall4.init)
|
|
||||||
*(.initcall5.init)
|
|
||||||
*(.initcall6.init)
|
|
||||||
*(.initcall7.init)
|
|
||||||
}
|
}
|
||||||
__initcall_end = .;
|
__initcall_end = .;
|
||||||
|
|
||||||
|
@ -45,13 +45,7 @@ SECTIONS
|
|||||||
*(.early_param.init)
|
*(.early_param.init)
|
||||||
__early_end = .;
|
__early_end = .;
|
||||||
__initcall_start = .;
|
__initcall_start = .;
|
||||||
*(.initcall1.init)
|
INITCALLS
|
||||||
*(.initcall2.init)
|
|
||||||
*(.initcall3.init)
|
|
||||||
*(.initcall4.init)
|
|
||||||
*(.initcall5.init)
|
|
||||||
*(.initcall6.init)
|
|
||||||
*(.initcall7.init)
|
|
||||||
__initcall_end = .;
|
__initcall_end = .;
|
||||||
__con_initcall_start = .;
|
__con_initcall_start = .;
|
||||||
*(.con_initcall.init)
|
*(.con_initcall.init)
|
||||||
|
@ -38,13 +38,7 @@ SECTIONS
|
|||||||
__setup_end = .;
|
__setup_end = .;
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
__initcall_start = .;
|
__initcall_start = .;
|
||||||
*(.initcall1.init)
|
INITCALLS
|
||||||
*(.initcall2.init)
|
|
||||||
*(.initcall3.init)
|
|
||||||
*(.initcall4.init)
|
|
||||||
*(.initcall5.init)
|
|
||||||
*(.initcall6.init)
|
|
||||||
*(.initcall7.init)
|
|
||||||
__initcall_end = .;
|
__initcall_end = .;
|
||||||
__con_initcall_start = .;
|
__con_initcall_start = .;
|
||||||
*(.con_initcall.init)
|
*(.con_initcall.init)
|
||||||
|
@ -44,13 +44,7 @@ SECTIONS
|
|||||||
|
|
||||||
__initcall_start = .;
|
__initcall_start = .;
|
||||||
.initcall.init : {
|
.initcall.init : {
|
||||||
*(.initcall1.init)
|
INITCALLS
|
||||||
*(.initcall2.init)
|
|
||||||
*(.initcall3.init)
|
|
||||||
*(.initcall4.init)
|
|
||||||
*(.initcall5.init)
|
|
||||||
*(.initcall6.init)
|
|
||||||
*(.initcall7.init)
|
|
||||||
}
|
}
|
||||||
__initcall_end = .;
|
__initcall_end = .;
|
||||||
__con_initcall_start = .;
|
__con_initcall_start = .;
|
||||||
|
@ -118,13 +118,7 @@ SECTIONS
|
|||||||
. = ALIGN(0x4) ;
|
. = ALIGN(0x4) ;
|
||||||
___setup_end = .;
|
___setup_end = .;
|
||||||
___initcall_start = .;
|
___initcall_start = .;
|
||||||
*(.initcall1.init)
|
INITCALLS
|
||||||
*(.initcall2.init)
|
|
||||||
*(.initcall3.init)
|
|
||||||
*(.initcall4.init)
|
|
||||||
*(.initcall5.init)
|
|
||||||
*(.initcall6.init)
|
|
||||||
*(.initcall7.init)
|
|
||||||
___initcall_end = .;
|
___initcall_end = .;
|
||||||
___con_initcall_start = .;
|
___con_initcall_start = .;
|
||||||
*(.con_initcall.init)
|
*(.con_initcall.init)
|
||||||
|
@ -126,13 +126,7 @@ SECTIONS
|
|||||||
__setup_end = .;
|
__setup_end = .;
|
||||||
__initcall_start = .;
|
__initcall_start = .;
|
||||||
.initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) {
|
.initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) {
|
||||||
*(.initcall1.init)
|
INITCALLS
|
||||||
*(.initcall2.init)
|
|
||||||
*(.initcall3.init)
|
|
||||||
*(.initcall4.init)
|
|
||||||
*(.initcall5.init)
|
|
||||||
*(.initcall6.init)
|
|
||||||
*(.initcall7.init)
|
|
||||||
}
|
}
|
||||||
__initcall_end = .;
|
__initcall_end = .;
|
||||||
__con_initcall_start = .;
|
__con_initcall_start = .;
|
||||||
|
@ -128,13 +128,7 @@ SECTIONS
|
|||||||
.initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET)
|
.initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET)
|
||||||
{
|
{
|
||||||
__initcall_start = .;
|
__initcall_start = .;
|
||||||
*(.initcall1.init)
|
INITCALLS
|
||||||
*(.initcall2.init)
|
|
||||||
*(.initcall3.init)
|
|
||||||
*(.initcall4.init)
|
|
||||||
*(.initcall5.init)
|
|
||||||
*(.initcall6.init)
|
|
||||||
*(.initcall7.init)
|
|
||||||
__initcall_end = .;
|
__initcall_end = .;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -83,13 +83,7 @@ SECTIONS
|
|||||||
__setup_end = .;
|
__setup_end = .;
|
||||||
__initcall_start = .;
|
__initcall_start = .;
|
||||||
.initcall.init : {
|
.initcall.init : {
|
||||||
*(.initcall1.init)
|
INITCALLS
|
||||||
*(.initcall2.init)
|
|
||||||
*(.initcall3.init)
|
|
||||||
*(.initcall4.init)
|
|
||||||
*(.initcall5.init)
|
|
||||||
*(.initcall6.init)
|
|
||||||
*(.initcall7.init)
|
|
||||||
}
|
}
|
||||||
__initcall_end = .;
|
__initcall_end = .;
|
||||||
__con_initcall_start = .;
|
__con_initcall_start = .;
|
||||||
|
@ -140,13 +140,7 @@ SECTIONS {
|
|||||||
*(.init.setup)
|
*(.init.setup)
|
||||||
__setup_end = .;
|
__setup_end = .;
|
||||||
__initcall_start = .;
|
__initcall_start = .;
|
||||||
*(.initcall1.init)
|
INITCALLS
|
||||||
*(.initcall2.init)
|
|
||||||
*(.initcall3.init)
|
|
||||||
*(.initcall4.init)
|
|
||||||
*(.initcall5.init)
|
|
||||||
*(.initcall6.init)
|
|
||||||
*(.initcall7.init)
|
|
||||||
__initcall_end = .;
|
__initcall_end = .;
|
||||||
__con_initcall_start = .;
|
__con_initcall_start = .;
|
||||||
*(.con_initcall.init)
|
*(.con_initcall.init)
|
||||||
|
@ -91,13 +91,7 @@ SECTIONS
|
|||||||
|
|
||||||
__initcall_start = .;
|
__initcall_start = .;
|
||||||
.initcall.init : {
|
.initcall.init : {
|
||||||
*(.initcall1.init)
|
INITCALLS
|
||||||
*(.initcall2.init)
|
|
||||||
*(.initcall3.init)
|
|
||||||
*(.initcall4.init)
|
|
||||||
*(.initcall5.init)
|
|
||||||
*(.initcall6.init)
|
|
||||||
*(.initcall7.init)
|
|
||||||
}
|
}
|
||||||
__initcall_end = .;
|
__initcall_end = .;
|
||||||
|
|
||||||
|
@ -153,13 +153,7 @@ SECTIONS
|
|||||||
__setup_end = .;
|
__setup_end = .;
|
||||||
__initcall_start = .;
|
__initcall_start = .;
|
||||||
.initcall.init : {
|
.initcall.init : {
|
||||||
*(.initcall1.init)
|
INITCALLS
|
||||||
*(.initcall2.init)
|
|
||||||
*(.initcall3.init)
|
|
||||||
*(.initcall4.init)
|
|
||||||
*(.initcall5.init)
|
|
||||||
*(.initcall6.init)
|
|
||||||
*(.initcall7.init)
|
|
||||||
}
|
}
|
||||||
__initcall_end = .;
|
__initcall_end = .;
|
||||||
__con_initcall_start = .;
|
__con_initcall_start = .;
|
||||||
|
@ -108,13 +108,7 @@ SECTIONS
|
|||||||
|
|
||||||
.initcall.init : {
|
.initcall.init : {
|
||||||
__initcall_start = .;
|
__initcall_start = .;
|
||||||
*(.initcall1.init)
|
INITCALLS
|
||||||
*(.initcall2.init)
|
|
||||||
*(.initcall3.init)
|
|
||||||
*(.initcall4.init)
|
|
||||||
*(.initcall5.init)
|
|
||||||
*(.initcall6.init)
|
|
||||||
*(.initcall7.init)
|
|
||||||
__initcall_end = .;
|
__initcall_end = .;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -115,13 +115,7 @@ SECTIONS
|
|||||||
__setup_end = .;
|
__setup_end = .;
|
||||||
__initcall_start = .;
|
__initcall_start = .;
|
||||||
.initcall.init : {
|
.initcall.init : {
|
||||||
*(.initcall1.init)
|
INITCALLS
|
||||||
*(.initcall2.init)
|
|
||||||
*(.initcall3.init)
|
|
||||||
*(.initcall4.init)
|
|
||||||
*(.initcall5.init)
|
|
||||||
*(.initcall6.init)
|
|
||||||
*(.initcall7.init)
|
|
||||||
}
|
}
|
||||||
__initcall_end = .;
|
__initcall_end = .;
|
||||||
|
|
||||||
|
@ -83,13 +83,7 @@ SECTIONS
|
|||||||
__setup_end = .;
|
__setup_end = .;
|
||||||
__initcall_start = .;
|
__initcall_start = .;
|
||||||
.initcall.init : {
|
.initcall.init : {
|
||||||
*(.initcall1.init)
|
INITCALLS
|
||||||
*(.initcall2.init)
|
|
||||||
*(.initcall3.init)
|
|
||||||
*(.initcall4.init)
|
|
||||||
*(.initcall5.init)
|
|
||||||
*(.initcall6.init)
|
|
||||||
*(.initcall7.init)
|
|
||||||
}
|
}
|
||||||
__initcall_end = .;
|
__initcall_end = .;
|
||||||
__con_initcall_start = .;
|
__con_initcall_start = .;
|
||||||
|
@ -76,13 +76,7 @@ SECTIONS
|
|||||||
__setup_end = .;
|
__setup_end = .;
|
||||||
__initcall_start = .;
|
__initcall_start = .;
|
||||||
.initcall.init : {
|
.initcall.init : {
|
||||||
*(.initcall1.init)
|
INITCALLS
|
||||||
*(.initcall2.init)
|
|
||||||
*(.initcall3.init)
|
|
||||||
*(.initcall4.init)
|
|
||||||
*(.initcall5.init)
|
|
||||||
*(.initcall6.init)
|
|
||||||
*(.initcall7.init)
|
|
||||||
}
|
}
|
||||||
__initcall_end = .;
|
__initcall_end = .;
|
||||||
__con_initcall_start = .;
|
__con_initcall_start = .;
|
||||||
|
@ -108,13 +108,7 @@ SECTIONS
|
|||||||
__setup_end = .;
|
__setup_end = .;
|
||||||
__initcall_start = .;
|
__initcall_start = .;
|
||||||
.initcall.init : C_PHYS(.initcall.init) {
|
.initcall.init : C_PHYS(.initcall.init) {
|
||||||
*(.initcall1.init)
|
INITCALLS
|
||||||
*(.initcall2.init)
|
|
||||||
*(.initcall3.init)
|
|
||||||
*(.initcall4.init)
|
|
||||||
*(.initcall5.init)
|
|
||||||
*(.initcall6.init)
|
|
||||||
*(.initcall7.init)
|
|
||||||
}
|
}
|
||||||
__initcall_end = .;
|
__initcall_end = .;
|
||||||
__con_initcall_start = .;
|
__con_initcall_start = .;
|
||||||
|
@ -49,13 +49,7 @@ SECTIONS
|
|||||||
__setup_end = .;
|
__setup_end = .;
|
||||||
__initcall_start = .;
|
__initcall_start = .;
|
||||||
.initcall.init : {
|
.initcall.init : {
|
||||||
*(.initcall1.init)
|
INITCALLS
|
||||||
*(.initcall2.init)
|
|
||||||
*(.initcall3.init)
|
|
||||||
*(.initcall4.init)
|
|
||||||
*(.initcall5.init)
|
|
||||||
*(.initcall6.init)
|
|
||||||
*(.initcall7.init)
|
|
||||||
}
|
}
|
||||||
__initcall_end = .;
|
__initcall_end = .;
|
||||||
__con_initcall_start = .;
|
__con_initcall_start = .;
|
||||||
|
@ -57,13 +57,7 @@ SECTIONS
|
|||||||
__setup_end = .;
|
__setup_end = .;
|
||||||
__initcall_start = .;
|
__initcall_start = .;
|
||||||
.initcall.init : {
|
.initcall.init : {
|
||||||
*(.initcall1.init)
|
INITCALLS
|
||||||
*(.initcall2.init)
|
|
||||||
*(.initcall3.init)
|
|
||||||
*(.initcall4.init)
|
|
||||||
*(.initcall5.init)
|
|
||||||
*(.initcall6.init)
|
|
||||||
*(.initcall7.init)
|
|
||||||
}
|
}
|
||||||
__initcall_end = .;
|
__initcall_end = .;
|
||||||
__con_initcall_start = .;
|
__con_initcall_start = .;
|
||||||
|
@ -140,13 +140,7 @@
|
|||||||
___setup_end = . ; \
|
___setup_end = . ; \
|
||||||
___initcall_start = . ; \
|
___initcall_start = . ; \
|
||||||
*(.initcall.init) \
|
*(.initcall.init) \
|
||||||
*(.initcall1.init) \
|
INITCALLS \
|
||||||
*(.initcall2.init) \
|
|
||||||
*(.initcall3.init) \
|
|
||||||
*(.initcall4.init) \
|
|
||||||
*(.initcall5.init) \
|
|
||||||
*(.initcall6.init) \
|
|
||||||
*(.initcall7.init) \
|
|
||||||
. = ALIGN (4) ; \
|
. = ALIGN (4) ; \
|
||||||
___initcall_end = . ; \
|
___initcall_end = . ; \
|
||||||
___con_initcall_start = .; \
|
___con_initcall_start = .; \
|
||||||
|
@ -175,13 +175,7 @@ SECTIONS
|
|||||||
__setup_end = .;
|
__setup_end = .;
|
||||||
__initcall_start = .;
|
__initcall_start = .;
|
||||||
.initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) {
|
.initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) {
|
||||||
*(.initcall1.init)
|
INITCALLS
|
||||||
*(.initcall2.init)
|
|
||||||
*(.initcall3.init)
|
|
||||||
*(.initcall4.init)
|
|
||||||
*(.initcall5.init)
|
|
||||||
*(.initcall6.init)
|
|
||||||
*(.initcall7.init)
|
|
||||||
}
|
}
|
||||||
__initcall_end = .;
|
__initcall_end = .;
|
||||||
__con_initcall_start = .;
|
__con_initcall_start = .;
|
||||||
|
@ -184,13 +184,7 @@ SECTIONS
|
|||||||
|
|
||||||
__initcall_start = .;
|
__initcall_start = .;
|
||||||
.initcall.init : {
|
.initcall.init : {
|
||||||
*(.initcall1.init)
|
INITCALLS
|
||||||
*(.initcall2.init)
|
|
||||||
*(.initcall3.init)
|
|
||||||
*(.initcall4.init)
|
|
||||||
*(.initcall5.init)
|
|
||||||
*(.initcall6.init)
|
|
||||||
*(.initcall7.init)
|
|
||||||
}
|
}
|
||||||
__initcall_end = .;
|
__initcall_end = .;
|
||||||
|
|
||||||
|
@ -213,3 +213,13 @@
|
|||||||
|
|
||||||
#define NOTES \
|
#define NOTES \
|
||||||
.notes : { *(.note.*) } :note
|
.notes : { *(.note.*) } :note
|
||||||
|
|
||||||
|
#define INITCALLS \
|
||||||
|
*(.initcall1.init) \
|
||||||
|
*(.initcall2.init) \
|
||||||
|
*(.initcall3.init) \
|
||||||
|
*(.initcall4.init) \
|
||||||
|
*(.initcall5.init) \
|
||||||
|
*(.initcall6.init) \
|
||||||
|
*(.initcall7.init)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user