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>
This commit is contained in:
Nicholas Piggin 2017-06-09 15:24:13 +10:00 committed by Masahiro Yamada
parent df91b0262e
commit 1328a1ae0e

View File

@ -63,7 +63,7 @@ modpost_link()
local objects local objects
if [ -n "${CONFIG_THIN_ARCHIVES}" ]; then if [ -n "${CONFIG_THIN_ARCHIVES}" ]; then
objects="--whole-archive built-in.o" objects="--whole-archive built-in.o --no-whole-archive"
else else
objects="${KBUILD_VMLINUX_INIT} \ objects="${KBUILD_VMLINUX_INIT} \
--start-group \ --start-group \
@ -83,7 +83,7 @@ vmlinux_link()
if [ "${SRCARCH}" != "um" ]; then if [ "${SRCARCH}" != "um" ]; then
if [ -n "${CONFIG_THIN_ARCHIVES}" ]; 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 else
objects="${KBUILD_VMLINUX_INIT} \ objects="${KBUILD_VMLINUX_INIT} \
--start-group \ --start-group \
@ -96,7 +96,7 @@ vmlinux_link()
-T ${lds} ${objects} -T ${lds} ${objects}
else else
if [ -n "${CONFIG_THIN_ARCHIVES}" ]; then 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 else
objects="${KBUILD_VMLINUX_INIT} \ objects="${KBUILD_VMLINUX_INIT} \
-Wl,--start-group \ -Wl,--start-group \