diff options
author | Nicholas Piggin <npiggin@gmail.com> | 2017-06-09 07:24:13 +0200 |
---|---|---|
committer | Masahiro Yamada <yamada.masahiro@socionext.com> | 2017-06-30 02:03:02 +0200 |
commit | 1328a1ae0e9048ff4b7f6b60c497db7a2799e1b1 (patch) | |
tree | d12ecc8be3bd763789a9db18e07ed992973fab6b | |
parent | ia64: remove unneeded extra-y in Makefile.gate (diff) | |
download | linux-1328a1ae0e9048ff4b7f6b60c497db7a2799e1b1.tar.xz linux-1328a1ae0e9048ff4b7f6b60c497db7a2799e1b1.zip |
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-x | scripts/link-vmlinux.sh | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh index c80291319cb2..2a062ea130b5 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 \ |