link-vmlinux.sh (4b3d049f1c567560191884d4bd8f6e99ab885e20) link-vmlinux.sh (ca09bf48f99bdc08e17da11aeae56b7ea132b7c8)
1#!/bin/sh
2# SPDX-License-Identifier: GPL-2.0
3#
4# link vmlinux
5#
6# vmlinux is linked from the objects in vmlinux.a and $(KBUILD_VMLINUX_LIBS).
7# vmlinux.a contains objects that are linked unconditionally.
8# $(KBUILD_VMLINUX_LIBS) are archives which are linked conditionally

--- 160 unchanged lines hidden (view full) ---

169kallsyms_step()
170{
171 kallsymso_prev=${kallsymso}
172 kallsyms_vmlinux=.tmp_vmlinux.kallsyms${1}
173 kallsymso=${kallsyms_vmlinux}.o
174 kallsyms_S=${kallsyms_vmlinux}.S
175
176 vmlinux_link ${kallsyms_vmlinux} "${kallsymso_prev}" ${btf_vmlinux_bin_o}
1#!/bin/sh
2# SPDX-License-Identifier: GPL-2.0
3#
4# link vmlinux
5#
6# vmlinux is linked from the objects in vmlinux.a and $(KBUILD_VMLINUX_LIBS).
7# vmlinux.a contains objects that are linked unconditionally.
8# $(KBUILD_VMLINUX_LIBS) are archives which are linked conditionally

--- 160 unchanged lines hidden (view full) ---

169kallsyms_step()
170{
171 kallsymso_prev=${kallsymso}
172 kallsyms_vmlinux=.tmp_vmlinux.kallsyms${1}
173 kallsymso=${kallsyms_vmlinux}.o
174 kallsyms_S=${kallsyms_vmlinux}.S
175
176 vmlinux_link ${kallsyms_vmlinux} "${kallsymso_prev}" ${btf_vmlinux_bin_o}
177 mksysmap ${kallsyms_vmlinux} ${kallsyms_vmlinux}.syms
177 mksysmap ${kallsyms_vmlinux} ${kallsyms_vmlinux}.syms ${kallsymso_prev}
178 kallsyms ${kallsyms_vmlinux}.syms ${kallsyms_S}
179
180 info AS ${kallsyms_S}
181 ${CC} ${NOSTDINC_FLAGS} ${LINUXINCLUDE} ${KBUILD_CPPFLAGS} \
182 ${KBUILD_AFLAGS} ${KBUILD_AFLAGS_KERNEL} \
183 -c -o ${kallsymso} ${kallsyms_S}
184}
185
186# Create map file with all symbols from ${1}
187# See mksymap for additional details
188mksysmap()
189{
190 info NM ${2}
178 kallsyms ${kallsyms_vmlinux}.syms ${kallsyms_S}
179
180 info AS ${kallsyms_S}
181 ${CC} ${NOSTDINC_FLAGS} ${LINUXINCLUDE} ${KBUILD_CPPFLAGS} \
182 ${KBUILD_AFLAGS} ${KBUILD_AFLAGS_KERNEL} \
183 -c -o ${kallsymso} ${kallsyms_S}
184}
185
186# Create map file with all symbols from ${1}
187# See mksymap for additional details
188mksysmap()
189{
190 info NM ${2}
191 ${CONFIG_SHELL} "${srctree}/scripts/mksysmap" ${1} ${2}
191 ${CONFIG_SHELL} "${srctree}/scripts/mksysmap" ${1} ${2} ${3}
192}
193
194sorttable()
195{
196 ${objtree}/scripts/sorttable ${1}
197}
198
199# Delete output files in case of error

--- 72 unchanged lines hidden (view full) ---

272vmlinux_link vmlinux "${kallsymso}" ${btf_vmlinux_bin_o}
273
274# fill in BTF IDs
275if is_enabled CONFIG_DEBUG_INFO_BTF && is_enabled CONFIG_BPF; then
276 info BTFIDS vmlinux
277 ${RESOLVE_BTFIDS} vmlinux
278fi
279
192}
193
194sorttable()
195{
196 ${objtree}/scripts/sorttable ${1}
197}
198
199# Delete output files in case of error

--- 72 unchanged lines hidden (view full) ---

272vmlinux_link vmlinux "${kallsymso}" ${btf_vmlinux_bin_o}
273
274# fill in BTF IDs
275if is_enabled CONFIG_DEBUG_INFO_BTF && is_enabled CONFIG_BPF; then
276 info BTFIDS vmlinux
277 ${RESOLVE_BTFIDS} vmlinux
278fi
279
280mksysmap vmlinux System.map
280mksysmap vmlinux System.map ${kallsymso}
281
282if is_enabled CONFIG_BUILDTIME_TABLE_SORT; then
283 info SORTTAB vmlinux
284 if ! sorttable vmlinux; then
285 echo >&2 Failed to sort kernel tables
286 exit 1
287 fi
288fi
289
290# step a (see comment above)
291if is_enabled CONFIG_KALLSYMS; then
292 if ! cmp -s System.map ${kallsyms_vmlinux}.syms; then
293 echo >&2 Inconsistent kallsyms data
281
282if is_enabled CONFIG_BUILDTIME_TABLE_SORT; then
283 info SORTTAB vmlinux
284 if ! sorttable vmlinux; then
285 echo >&2 Failed to sort kernel tables
286 exit 1
287 fi
288fi
289
290# step a (see comment above)
291if is_enabled CONFIG_KALLSYMS; then
292 if ! cmp -s System.map ${kallsyms_vmlinux}.syms; then
293 echo >&2 Inconsistent kallsyms data
294 echo >&2 'Try "make KALLSYMS_EXTRA_PASS=1" as a workaround'
294 echo >&2 Try "make KALLSYMS_EXTRA_PASS=1" as a workaround
295 exit 1
296 fi
297fi
298
299# For fixdep
300echo "vmlinux: $0" > .vmlinux.d
295 exit 1
296 fi
297fi
298
299# For fixdep
300echo "vmlinux: $0" > .vmlinux.d