@@ -267,7 +267,7 @@ find_core_symvers() {
267267}
268268
269269gcc_version_from_file () {
270- readelf -p .comment " $1 " | grep -m 1 -o ' GCC:.*'
270+ " $CROSS_COMPILE " readelf -p .comment " $1 " | grep -m 1 -o ' GCC:.*'
271271}
272272
273273gcc_version_check () {
@@ -278,7 +278,7 @@ gcc_version_check() {
278278 # gcc --version varies between distributions therefore extract version
279279 # by compiling a test file and compare it to vmlinux's version.
280280 echo ' void main(void) {}' > " $c "
281- out=" $( gcc -c -pg -ffunction-sections -o " $o " " $c " 2>&1 ) "
281+ out=" $( " ${CROSS_COMPILE} " gcc -c -pg -ffunction-sections -o " $o " " $c " 2>&1 ) "
282282 gccver=" $( gcc_version_from_file " $o " ) "
283283 kgccver=" $( gcc_version_from_file " $target " ) "
284284
@@ -288,7 +288,7 @@ gcc_version_check() {
288288 return 1
289289 fi
290290
291- out=" $( gcc -c -gz=none -o " $o " " $c " 2>&1 ) "
291+ out=" $( " $CROSS_COMPILE " gcc -c -gz=none -o " $o " " $c " 2>&1 ) "
292292 if [[ -z " $out " ]]; then
293293 DEBUG_KCFLAGS=" -gz=none"
294294 fi
@@ -360,7 +360,7 @@ find_special_section_data() {
360360 local SPECIAL_VARS
361361 # If $AWK_OPTIONS are blank gawk would treat "" as a blank script
362362 # shellcheck disable=SC2086
363- SPECIAL_VARS=" $( readelf -wi " $VMLINUX " |
363+ SPECIAL_VARS=" $( " $CROSS_COMPILE " readelf -wi " $VMLINUX " |
364364 gawk --non-decimal-data $AWK_OPTIONS '
365365 BEGIN { a = b = e = f = i = j = o = p = s = 0 }
366366
@@ -656,6 +656,8 @@ mkdir -p "$TEMPDIR" || die "Couldn't create $TEMPDIR"
656656rm -rf " ${TEMPDIR:? } " /*
657657rm -f " $LOGFILE "
658658
659+
660+
659661if [[ -n " $USERSRCDIR " ]]; then
660662 if [[ -n " $ARCHVERSION " ]]; then
661663 warn " --archversion is incompatible with --sourcedir"
698700
699701# Don't check external file.
700702# shellcheck disable=SC1090
701- [[ -f " $RELEASE_FILE " ]] && source " $RELEASE_FILE "
702- DISTRO=" $ID "
703+ if [[ -z " $USERSRCDIR " ]] && [[ -f " $RELEASE_FILE " ]]; then
704+ source " $RELEASE_FILE "
705+ DISTRO=" $ID "
706+ fi
707+
708+
703709if [[ " $DISTRO " = fedora ]] || [[ " $DISTRO " = rhel ]] || [[ " $DISTRO " = ol ]] || [[ " $DISTRO " = centos ]] || [[ " $DISTRO " = openEuler ]]; then
704710 [[ -z " $VMLINUX " ]] && VMLINUX=" /usr/lib/debug/lib/modules/$ARCHVERSION /vmlinux"
705711 [[ -e " $VMLINUX " ]] || die " kernel-debuginfo-$ARCHVERSION not installed"
@@ -929,17 +935,17 @@ unset KPATCH_GCC_TEMPDIR
929935KPATCH_CC_PREFIX=" $TOOLSDIR /kpatch-cc "
930936declare -a MAKEVARS
931937if [[ -n " $CONFIG_CC_IS_CLANG " ]]; then
932- MAKEVARS+=(" CC=${KPATCH_CC_PREFIX} clang" )
938+ MAKEVARS+=(" CC=${KPATCH_CC_PREFIX}${CROSS_COMPILE} clang" )
933939 MAKEVARS+=(" HOSTCC=clang" )
934940else
935- MAKEVARS+=(" CC=${KPATCH_CC_PREFIX} gcc" )
941+ MAKEVARS+=(" CC=${KPATCH_CC_PREFIX}${CROSS_COMPILE} gcc" )
936942fi
937943
938944if [[ -n " $CONFIG_LD_IS_LLD " ]]; then
939- MAKEVARS+=(" LD=${KPATCH_CC_PREFIX} ld.lld" )
945+ MAKEVARS+=(" LD=${KPATCH_CC_PREFIX}${CROSS_COMPILE} ld.lld" )
940946 MAKEVARS+=(" HOSTLD=ld.lld" )
941947else
942- MAKEVARS+=(" LD=${KPATCH_CC_PREFIX} ld" )
948+ MAKEVARS+=(" LD=${KPATCH_CC_PREFIX}${CROSS_COMPILE} ld" )
943949fi
944950
945951
@@ -1072,7 +1078,7 @@ for i in $FILES; do
10721078 SYMVERS_FILE=" $BUILDDIR /Module.symvers"
10731079 fi
10741080
1075- readelf -s --wide " $KOBJFILE_PATH " > " $SYMTAB "
1081+ " $CROSS_COMPILE " readelf -s --wide " $KOBJFILE_PATH " > " $SYMTAB "
10761082 if [[ " $ARCH " = " ppc64le" ]]; then
10771083 sed -ri ' s/\s+\[<localentry>: 8\]//' " $SYMTAB "
10781084 fi
11291135cd " $TEMPDIR /output" || die
11301136# $KPATCH_LDFLAGS and result of find used as list, no quotes.
11311137# shellcheck disable=SC2086,SC2046
1132- ld -r $KPATCH_LDFLAGS -o ../patch/tmp_output.o $( find . -name " *.o" ) 2>&1 | logger || die
1138+ " $CROSS_COMPILE " ld -r $KPATCH_LDFLAGS -o ../patch/tmp_output.o $( find . -name " *.o" ) 2>&1 | logger || die
11331139
11341140if [[ " $USE_KLP " -eq 1 ]]; then
11351141 cp -f " $TEMPDIR " /patch/tmp_output.o " $TEMPDIR " /patch/output.o || die
@@ -1138,7 +1144,7 @@ if [[ "$USE_KLP" -eq 1 ]]; then
11381144else
11391145 # Add .kpatch.checksum for kpatch script
11401146 md5sum ../patch/tmp_output.o | awk ' {printf "%s\0", $1}' > checksum.tmp || die
1141- objcopy --add-section .kpatch.checksum=checksum.tmp --set-section-flags .kpatch.checksum=alloc,load,contents,readonly ../patch/tmp_output.o || die
1147+ " $CROSS_COMPILE " objcopy --add-section .kpatch.checksum=checksum.tmp --set-section-flags .kpatch.checksum=alloc,load,contents,readonly ../patch/tmp_output.o || die
11421148 rm -f checksum.tmp
11431149 " $TOOLSDIR " /create-kpatch-module " $TEMPDIR " /patch/tmp_output.o " $TEMPDIR " /patch/output.o 2>&1 | logger 1
11441150 check_pipe_status create-kpatch-module
@@ -1154,7 +1160,8 @@ done
11541160
11551161export KPATCH_BUILD=" $KERNEL_SRCDIR " KPATCH_NAME=" $MODNAME " \
11561162KBUILD_EXTRA_SYMBOLS=" $KBUILD_EXTRA_SYMBOLS " \
1157- KPATCH_LDFLAGS=" $KPATCH_LDFLAGS "
1163+ KPATCH_LDFLAGS=" $KPATCH_LDFLAGS " \
1164+ CROSS_COMPILE=" $CROSS_COMPILE "
11581165save_env
11591166
11601167make " ${MAKEVARS[@]} " 2>&1 | logger || die
@@ -1192,7 +1199,7 @@ if [[ -n "$CONFIG_MODVERSIONS" ]]; then
11921199 fi
11931200fi
11941201
1195- readelf --wide --symbols " $TEMPDIR /patch/$MODNAME .ko" 2> /dev/null | \
1202+ " $CROSS_COMPILE " readelf --wide --symbols " $TEMPDIR /patch/$MODNAME .ko" 2> /dev/null | \
11961203 sed -r ' s/\s+\[<localentry>: 8\]//' | \
11971204 awk ' ($4=="FUNC" || $4=="OBJECT") && ($5=="GLOBAL" || $5=="WEAK") && $7!="UND" {print $NF}' \
11981205 > " ${TEMPDIR} " /new_symbols
0 commit comments