diff options
author | Nicholas Piggin <npiggin@gmail.com> | 2016-09-14 12:24:03 +1000 |
---|---|---|
committer | Michal Marek <mmarek@suse.com> | 2016-09-22 14:37:14 +0200 |
commit | 0f4c4af06eec5717041d6fe568b80ee4cf3c1475 (patch) | |
tree | 6e6960b1b8fdda70d042f4edda0001818db0c8e3 /arch/Kconfig | |
parent | fbe6e37dab974dd0fc3660c001895f7bfd771c9a (diff) | |
download | linux-0f4c4af06eec5717041d6fe568b80ee4cf3c1475.tar.gz linux-0f4c4af06eec5717041d6fe568b80ee4cf3c1475.tar.bz2 linux-0f4c4af06eec5717041d6fe568b80ee4cf3c1475.zip |
kbuild: -ffunction-sections fix for archs with conflicting sections
Enabling -ffunction-sections modified the generic linker script to
pull .text.* sections into regular TEXT_TEXT section, conflicting
with some architectures. Revert that change and require archs that
enable the option to ensure they have no conflicting section names,
and do the appropriate merging.
Reported-by: Guenter Roeck <linux@roeck-us.net>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Fixes: b67067f1176d ("kbuild: allow archs to select link dead code/data elimination")
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michal Marek <mmarek@suse.com>
Diffstat (limited to 'arch/Kconfig')
-rw-r--r-- | arch/Kconfig | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/Kconfig b/arch/Kconfig index 3f948c422d9d..48d1e76a1ee3 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -478,7 +478,9 @@ config LD_DEAD_CODE_DATA_ELIMINATION This requires that the arch annotates or otherwise protects its external entry points from being discarded. Linker scripts must also merge .text.*, .data.*, and .bss.* correctly into - output sections. + output sections. Care must be taken not to pull in unrelated + sections (e.g., '.text.init'). Typically '.' in section names + is used to distinguish them from label names / C identifiers. config HAVE_CONTEXT_TRACKING bool |