summaryrefslogtreecommitdiffstats
path: root/scripts/link-vmlinux.sh
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2018-02-10 09:25:03 -0500
committerMasahiro Yamada <yamada.masahiro@socionext.com>2018-03-25 13:01:19 -0400
commit6358d6e8b9846c2ff6fd1d4ad2809145635dd813 (patch)
tree3e2ac4f41fef7aaa4207eec852b992f0cfa3b73c /scripts/link-vmlinux.sh
parent1fe7d2bb24d7db6175e0b0a31d8fe03dc6ffb16e (diff)
kbuild: remove incremental linking option
This removes the old `ld -r` incremental link option, which has not been selected by any architecture since June 2017. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Diffstat (limited to 'scripts/link-vmlinux.sh')
-rwxr-xr-xscripts/link-vmlinux.sh91
1 files changed, 32 insertions, 59 deletions
diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh
index be56a1153014..601ca8b528b3 100755
--- a/scripts/link-vmlinux.sh
+++ b/scripts/link-vmlinux.sh
@@ -55,13 +55,11 @@ info()
55# 55#
56archive_builtin() 56archive_builtin()
57{ 57{
58 if [ -n "${CONFIG_THIN_ARCHIVES}" ]; then 58 info AR built-in.o
59 info AR built-in.o 59 rm -f built-in.o;
60 rm -f built-in.o; 60 ${AR} rcsTP${KBUILD_ARFLAGS} built-in.o \
61 ${AR} rcsTP${KBUILD_ARFLAGS} built-in.o \ 61 ${KBUILD_VMLINUX_INIT} \
62 ${KBUILD_VMLINUX_INIT} \ 62 ${KBUILD_VMLINUX_MAIN}
63 ${KBUILD_VMLINUX_MAIN}
64 fi
65} 63}
66 64
67# Link of vmlinux.o used for section mismatch analysis 65# Link of vmlinux.o used for section mismatch analysis
@@ -70,20 +68,13 @@ modpost_link()
70{ 68{
71 local objects 69 local objects
72 70
73 if [ -n "${CONFIG_THIN_ARCHIVES}" ]; then 71 objects="--whole-archive \
74 objects="--whole-archive \ 72 built-in.o \
75 built-in.o \ 73 --no-whole-archive \
76 --no-whole-archive \ 74 --start-group \
77 --start-group \ 75 ${KBUILD_VMLINUX_LIBS} \
78 ${KBUILD_VMLINUX_LIBS} \ 76 --end-group"
79 --end-group" 77
80 else
81 objects="${KBUILD_VMLINUX_INIT} \
82 --start-group \
83 ${KBUILD_VMLINUX_MAIN} \
84 ${KBUILD_VMLINUX_LIBS} \
85 --end-group"
86 fi
87 ${LD} ${LDFLAGS} -r -o ${1} ${objects} 78 ${LD} ${LDFLAGS} -r -o ${1} ${objects}
88} 79}
89 80
@@ -96,46 +87,28 @@ vmlinux_link()
96 local objects 87 local objects
97 88
98 if [ "${SRCARCH}" != "um" ]; then 89 if [ "${SRCARCH}" != "um" ]; then
99 if [ -n "${CONFIG_THIN_ARCHIVES}" ]; then 90 objects="--whole-archive \
100 objects="--whole-archive \ 91 built-in.o \
101 built-in.o \ 92 --no-whole-archive \
102 --no-whole-archive \ 93 --start-group \
103 --start-group \ 94 ${KBUILD_VMLINUX_LIBS} \
104 ${KBUILD_VMLINUX_LIBS} \ 95 --end-group \
105 --end-group \ 96 ${1}"
106 ${1}" 97
107 else 98 ${LD} ${LDFLAGS} ${LDFLAGS_vmlinux} -o ${2} \
108 objects="${KBUILD_VMLINUX_INIT} \
109 --start-group \
110 ${KBUILD_VMLINUX_MAIN} \
111 ${KBUILD_VMLINUX_LIBS} \
112 --end-group \
113 ${1}"
114 fi
115
116 ${LD} ${LDFLAGS} ${LDFLAGS_vmlinux} -o ${2} \
117 -T ${lds} ${objects} 99 -T ${lds} ${objects}
118 else 100 else
119 if [ -n "${CONFIG_THIN_ARCHIVES}" ]; then 101 objects="-Wl,--whole-archive \
120 objects="-Wl,--whole-archive \ 102 built-in.o \
121 built-in.o \ 103 -Wl,--no-whole-archive \
122 -Wl,--no-whole-archive \ 104 -Wl,--start-group \
123 -Wl,--start-group \ 105 ${KBUILD_VMLINUX_LIBS} \
124 ${KBUILD_VMLINUX_LIBS} \ 106 -Wl,--end-group \
125 -Wl,--end-group \ 107 ${1}"
126 ${1}" 108
127 else 109 ${CC} ${CFLAGS_vmlinux} -o ${2} \
128 objects="${KBUILD_VMLINUX_INIT} \ 110 -Wl,-T,${lds} \
129 -Wl,--start-group \ 111 ${objects} \
130 ${KBUILD_VMLINUX_MAIN} \
131 ${KBUILD_VMLINUX_LIBS} \
132 -Wl,--end-group \
133 ${1}"
134 fi
135
136 ${CC} ${CFLAGS_vmlinux} -o ${2} \
137 -Wl,-T,${lds} \
138 ${objects} \
139 -lutil -lrt -lpthread 112 -lutil -lrt -lpthread
140 rm -f linux 113 rm -f linux
141 fi 114 fi