aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/link-vmlinux.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/link-vmlinux.sh')
-rwxr-xr-xscripts/link-vmlinux.sh30
1 files changed, 6 insertions, 24 deletions
diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh
index c8cf45362bd6..4788def71358 100755
--- a/scripts/link-vmlinux.sh
+++ b/scripts/link-vmlinux.sh
@@ -44,24 +44,6 @@ info()
44 fi 44 fi
45} 45}
46 46
47# Thin archive build here makes a final archive with symbol table and indexes
48# from vmlinux objects INIT and MAIN, which can be used as input to linker.
49# KBUILD_VMLINUX_LIBS archives should already have symbol table and indexes
50# added.
51#
52# Traditional incremental style of link does not require this step
53#
54# built-in.a output file
55#
56archive_builtin()
57{
58 info AR built-in.a
59 rm -f built-in.a;
60 ${AR} rcsTP${KBUILD_ARFLAGS} built-in.a \
61 ${KBUILD_VMLINUX_INIT} \
62 ${KBUILD_VMLINUX_MAIN}
63}
64
65# Link of vmlinux.o used for section mismatch analysis 47# Link of vmlinux.o used for section mismatch analysis
66# ${1} output file 48# ${1} output file
67modpost_link() 49modpost_link()
@@ -69,7 +51,8 @@ modpost_link()
69 local objects 51 local objects
70 52
71 objects="--whole-archive \ 53 objects="--whole-archive \
72 built-in.a \ 54 ${KBUILD_VMLINUX_INIT} \
55 ${KBUILD_VMLINUX_MAIN} \
73 --no-whole-archive \ 56 --no-whole-archive \
74 --start-group \ 57 --start-group \
75 ${KBUILD_VMLINUX_LIBS} \ 58 ${KBUILD_VMLINUX_LIBS} \
@@ -88,7 +71,8 @@ vmlinux_link()
88 71
89 if [ "${SRCARCH}" != "um" ]; then 72 if [ "${SRCARCH}" != "um" ]; then
90 objects="--whole-archive \ 73 objects="--whole-archive \
91 built-in.a \ 74 ${KBUILD_VMLINUX_INIT} \
75 ${KBUILD_VMLINUX_MAIN} \
92 --no-whole-archive \ 76 --no-whole-archive \
93 --start-group \ 77 --start-group \
94 ${KBUILD_VMLINUX_LIBS} \ 78 ${KBUILD_VMLINUX_LIBS} \
@@ -99,7 +83,8 @@ vmlinux_link()
99 -T ${lds} ${objects} 83 -T ${lds} ${objects}
100 else 84 else
101 objects="-Wl,--whole-archive \ 85 objects="-Wl,--whole-archive \
102 built-in.a \ 86 ${KBUILD_VMLINUX_INIT} \
87 ${KBUILD_VMLINUX_MAIN} \
103 -Wl,--no-whole-archive \ 88 -Wl,--no-whole-archive \
104 -Wl,--start-group \ 89 -Wl,--start-group \
105 ${KBUILD_VMLINUX_LIBS} \ 90 ${KBUILD_VMLINUX_LIBS} \
@@ -160,7 +145,6 @@ cleanup()
160 rm -f .tmp_System.map 145 rm -f .tmp_System.map
161 rm -f .tmp_kallsyms* 146 rm -f .tmp_kallsyms*
162 rm -f .tmp_vmlinux* 147 rm -f .tmp_vmlinux*
163 rm -f built-in.a
164 rm -f System.map 148 rm -f System.map
165 rm -f vmlinux 149 rm -f vmlinux
166 rm -f vmlinux.o 150 rm -f vmlinux.o
@@ -217,8 +201,6 @@ fi;
217# final build of init/ 201# final build of init/
218${MAKE} -f "${srctree}/scripts/Makefile.build" obj=init 202${MAKE} -f "${srctree}/scripts/Makefile.build" obj=init
219 203
220archive_builtin
221
222#link vmlinux.o 204#link vmlinux.o
223info LD vmlinux.o 205info LD vmlinux.o
224modpost_link vmlinux.o 206modpost_link vmlinux.o