diff options
| author | Masahiro Yamada <yamada.masahiro@socionext.com> | 2019-01-16 19:10:04 -0500 |
|---|---|---|
| committer | Masahiro Yamada <yamada.masahiro@socionext.com> | 2019-01-27 19:11:17 -0500 |
| commit | d151e9719f184f00d0bb2af864d0aef9beaee7ab (patch) | |
| tree | ba05bfd964071fee52e3d8cbfcad58165c74cb8f /scripts | |
| parent | dee9495303f2c6d63a20c43a26420765909898eb (diff) | |
kbuild: merge KBUILD_VMLINUX_{INIT,MAIN} into KBUILD_VMLINUX_OBJS
The top Makefile does not need to export KBUILD_VMLINUX_INIT and
KBUILD_VMLINUX_MAIN separately.
Put every built-in.a into KBUILD_VMLINUX_OBJS. The order of
$(head-y), $(init-y), $(core-y), ... is still retained.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/link-vmlinux.sh | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh index 4788def71358..bc7f1fc1f55b 100755 --- a/scripts/link-vmlinux.sh +++ b/scripts/link-vmlinux.sh | |||
| @@ -3,22 +3,17 @@ | |||
| 3 | # | 3 | # |
| 4 | # link vmlinux | 4 | # link vmlinux |
| 5 | # | 5 | # |
| 6 | # vmlinux is linked from the objects selected by $(KBUILD_VMLINUX_INIT) and | 6 | # vmlinux is linked from the objects selected by $(KBUILD_VMLINUX_OBJS) and |
| 7 | # $(KBUILD_VMLINUX_MAIN) and $(KBUILD_VMLINUX_LIBS). Most are built-in.a files | 7 | # $(KBUILD_VMLINUX_LIBS). Most are built-in.a files from top-level directories |
| 8 | # from top-level directories in the kernel tree, others are specified in | 8 | # in the kernel tree, others are specified in arch/$(ARCH)/Makefile. |
| 9 | # arch/$(ARCH)/Makefile. Ordering when linking is important, and | 9 | # $(KBUILD_VMLINUX_LIBS) are archives which are linked conditionally |
| 10 | # $(KBUILD_VMLINUX_INIT) must be first. $(KBUILD_VMLINUX_LIBS) are archives | 10 | # (not within --whole-archive), and do not require symbol indexes added. |
| 11 | # which are linked conditionally (not within --whole-archive), and do not | ||
| 12 | # require symbol indexes added. | ||
| 13 | # | 11 | # |
| 14 | # vmlinux | 12 | # vmlinux |
| 15 | # ^ | 13 | # ^ |
| 16 | # | | 14 | # | |
| 17 | # +-< $(KBUILD_VMLINUX_INIT) | 15 | # +--< $(KBUILD_VMLINUX_OBJS) |
| 18 | # | +--< init/version.o + more | 16 | # | +--< init/built-in.a drivers/built-in.a mm/built-in.a + more |
| 19 | # | | ||
| 20 | # +--< $(KBUILD_VMLINUX_MAIN) | ||
| 21 | # | +--< drivers/built-in.a mm/built-in.a + more | ||
| 22 | # | | 17 | # | |
| 23 | # +--< $(KBUILD_VMLINUX_LIBS) | 18 | # +--< $(KBUILD_VMLINUX_LIBS) |
| 24 | # | +--< lib/lib.a + more | 19 | # | +--< lib/lib.a + more |
| @@ -51,8 +46,7 @@ modpost_link() | |||
| 51 | local objects | 46 | local objects |
| 52 | 47 | ||
| 53 | objects="--whole-archive \ | 48 | objects="--whole-archive \ |
| 54 | ${KBUILD_VMLINUX_INIT} \ | 49 | ${KBUILD_VMLINUX_OBJS} \ |
| 55 | ${KBUILD_VMLINUX_MAIN} \ | ||
| 56 | --no-whole-archive \ | 50 | --no-whole-archive \ |
| 57 | --start-group \ | 51 | --start-group \ |
| 58 | ${KBUILD_VMLINUX_LIBS} \ | 52 | ${KBUILD_VMLINUX_LIBS} \ |
| @@ -71,8 +65,7 @@ vmlinux_link() | |||
| 71 | 65 | ||
| 72 | if [ "${SRCARCH}" != "um" ]; then | 66 | if [ "${SRCARCH}" != "um" ]; then |
| 73 | objects="--whole-archive \ | 67 | objects="--whole-archive \ |
| 74 | ${KBUILD_VMLINUX_INIT} \ | 68 | ${KBUILD_VMLINUX_OBJS} \ |
| 75 | ${KBUILD_VMLINUX_MAIN} \ | ||
| 76 | --no-whole-archive \ | 69 | --no-whole-archive \ |
| 77 | --start-group \ | 70 | --start-group \ |
| 78 | ${KBUILD_VMLINUX_LIBS} \ | 71 | ${KBUILD_VMLINUX_LIBS} \ |
| @@ -83,8 +76,7 @@ vmlinux_link() | |||
| 83 | -T ${lds} ${objects} | 76 | -T ${lds} ${objects} |
| 84 | else | 77 | else |
| 85 | objects="-Wl,--whole-archive \ | 78 | objects="-Wl,--whole-archive \ |
| 86 | ${KBUILD_VMLINUX_INIT} \ | 79 | ${KBUILD_VMLINUX_OBJS} \ |
| 87 | ${KBUILD_VMLINUX_MAIN} \ | ||
| 88 | -Wl,--no-whole-archive \ | 80 | -Wl,--no-whole-archive \ |
| 89 | -Wl,--start-group \ | 81 | -Wl,--start-group \ |
| 90 | ${KBUILD_VMLINUX_LIBS} \ | 82 | ${KBUILD_VMLINUX_LIBS} \ |
