Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 861e37da authored by Nicolas Pitre's avatar Nicolas Pitre
Browse files

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: default avatarNicolas Pitre <nico@linaro.org>
Acked-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
Tested-by: default avatarChris Brandt <Chris.Brandt@renesas.com>
parent 88cac29f
Loading
Loading
Loading
Loading
+6 −32
Original line number Diff line number Diff line
@@ -214,14 +214,9 @@ SECTIONS
		*(.pv_table)
		__pv_table_end = .;
	}
	.init.data : {
		INIT_DATA
		INIT_SETUP(16)
		INIT_CALLS
		CON_INITCALL
		SECURITY_INITCALL
		INIT_RAM_FS
	}

	INIT_DATA_SECTION(16)

	.exit.data : {
		ARM_EXIT_KEEP(EXIT_DATA)
	}
@@ -237,30 +232,9 @@ SECTIONS
#endif
	__init_end = .;

	.data : {
		_data = .;		/* address in memory */
	_sdata = .;

		/*
		 * 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

	RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)
	_edata = .;
	}

	BUG_TABLE

#ifdef CONFIG_HAVE_TCM
        /*