ARM: vmlinux.lds.S: replace open coded .data sections with generic macros
Our .data section is missing PAGE_ALIGNED_DATA() which contains, amongst other things, the vdso page. This creates a System.map that looks like this: c15769a8 D _edata c1577000 d vdso_data_store c1578000 D __start___bug_table c1580544 D __stop___bug_table c1580544 B __bss_start By using RW_DATA_SECTION() we pick whatever generic sections might be added in the future and have page-aligned data next to other strongly aligned data. Furthermore we now include the entire thing, including the bug table, in the data accounting surrounded by _sdata/_edata. While at it let's also remplace the open coded .init.data by its equivalent INIT_DATA_SECTION(). Signed-off-by: Nicolas Pitre <nico@linaro.org> Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Tested-by: Chris Brandt <Chris.Brandt@renesas.com>
This commit is contained in:
parent
88cac29f42
commit
861e37da6a
@ -214,14 +214,9 @@ SECTIONS
|
|||||||
*(.pv_table)
|
*(.pv_table)
|
||||||
__pv_table_end = .;
|
__pv_table_end = .;
|
||||||
}
|
}
|
||||||
.init.data : {
|
|
||||||
INIT_DATA
|
INIT_DATA_SECTION(16)
|
||||||
INIT_SETUP(16)
|
|
||||||
INIT_CALLS
|
|
||||||
CON_INITCALL
|
|
||||||
SECURITY_INITCALL
|
|
||||||
INIT_RAM_FS
|
|
||||||
}
|
|
||||||
.exit.data : {
|
.exit.data : {
|
||||||
ARM_EXIT_KEEP(EXIT_DATA)
|
ARM_EXIT_KEEP(EXIT_DATA)
|
||||||
}
|
}
|
||||||
@ -237,30 +232,9 @@ SECTIONS
|
|||||||
#endif
|
#endif
|
||||||
__init_end = .;
|
__init_end = .;
|
||||||
|
|
||||||
.data : {
|
_sdata = .;
|
||||||
_data = .; /* address in memory */
|
RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)
|
||||||
_sdata = .;
|
_edata = .;
|
||||||
|
|
||||||
/*
|
|
||||||
* first, the init task union, aligned
|
|
||||||
* to an 8192 byte boundary.
|
|
||||||
*/
|
|
||||||
INIT_TASK_DATA(THREAD_SIZE)
|
|
||||||
|
|
||||||
NOSAVE_DATA
|
|
||||||
CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES)
|
|
||||||
READ_MOSTLY_DATA(L1_CACHE_BYTES)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* and the usual data section
|
|
||||||
*/
|
|
||||||
DATA_DATA
|
|
||||||
CONSTRUCTORS
|
|
||||||
|
|
||||||
_edata = .;
|
|
||||||
}
|
|
||||||
|
|
||||||
BUG_TABLE
|
|
||||||
|
|
||||||
#ifdef CONFIG_HAVE_TCM
|
#ifdef CONFIG_HAVE_TCM
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user