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 |