summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2017-06-09 15:24:13 +1000
committerMasahiro Yamada <yamada.masahiro@socionext.com>2017-06-30 09:03:02 +0900
commit1328a1ae0e9048ff4b7f6b60c497db7a2799e1b1 (patch)
treed12ecc8be3bd763789a9db18e07ed992973fab6b
parentdf91b0262e2cff23db5eac77126ea0bef06d54d2 (diff)
downloadop-kernel-dev-1328a1ae0e9048ff4b7f6b60c497db7a2799e1b1.zip
op-kernel-dev-1328a1ae0e9048ff4b7f6b60c497db7a2799e1b1.tar.gz
kbuild: thin archives final link close --whole-archives option
Close the --whole-archives option with --no-whole-archive. Some architectures end up including additional .o and files multiple times after this, and they get duplicate symbols when they are brought under the --whole-archives option. This matches more closely with the incremental final link. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
-rwxr-xr-xscripts/link-vmlinux.sh6
1 files changed, 3 insertions, 3 deletions
diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh
index c802913..2a062ea 100755
--- a/scripts/link-vmlinux.sh
+++ b/scripts/link-vmlinux.sh
@@ -63,7 +63,7 @@ modpost_link()
local objects
if [ -n "${CONFIG_THIN_ARCHIVES}" ]; then
- objects="--whole-archive built-in.o"
+ objects="--whole-archive built-in.o --no-whole-archive"
else
objects="${KBUILD_VMLINUX_INIT} \
--start-group \
@@ -83,7 +83,7 @@ vmlinux_link()
if [ "${SRCARCH}" != "um" ]; then
if [ -n "${CONFIG_THIN_ARCHIVES}" ]; then
- objects="--whole-archive built-in.o ${1}"
+ objects="--whole-archive built-in.o ${1} --no-whole-archive"
else
objects="${KBUILD_VMLINUX_INIT} \
--start-group \
@@ -96,7 +96,7 @@ vmlinux_link()
-T ${lds} ${objects}
else
if [ -n "${CONFIG_THIN_ARCHIVES}" ]; then
- objects="-Wl,--whole-archive built-in.o ${1}"
+ objects="-Wl,--whole-archive built-in.o ${1} -Wl,--no-whole-archive"
else
objects="${KBUILD_VMLINUX_INIT} \
-Wl,--start-group \
OpenPOWER on IntegriCloud