diff --git a/kernel_build.sh b/kernel_build.sh index 365ded2..551b7bf 100755 --- a/kernel_build.sh +++ b/kernel_build.sh @@ -3,7 +3,25 @@ pwd -BRANCH=$(git branch | grep \* | cut -d ' ' -f2 | sed -r 's/[{}/]/_/g') +REAL_BRANCH="$(git branch --show-current)" +# Enforce branch naming so that we can determine +# 1. If a kABI check is even necessary +# 2. Which git tag to checkout in the kernel-dist-git +# Can do with an if but I always get it wrong +if ! echo "$REAL_BRANCH" | grep -q -E '((ciqlts[0-9]+_[0-9]+(-rt)?|ciqcbr7_9)$|fips-([0-9]+|legacy-[0-9]+)(-compliant|-certified)?/)'; then + echo "Unexpected branch name." + echo "Either of the following must be present (part of) in the branch name, enforced for kABI check." + echo "- 'ciqcbr7_9'" + echo "- 'ciqltsX_Y'" + echo "- 'ciqltsX_Y-rt'" + echo "- 'fips-legacy-X-compliant/'" + echo "- 'fips-legacy-X/'" + echo "- 'fips-X/'" + echo "- 'fips-X-compliant/'" + echo "- 'fips-X-certified/'" + exit 1 +fi +BRANCH=$(echo "$REAL_BRANCH" | sed -r 's/[{}/]/_/g') START=$(date +%s) START_MRPROPER=$(date +%s) @@ -86,14 +104,28 @@ fi END_INSTALL=$(date +%s) echo "[TIMER]{INSTALL}: $(( $END_INSTALL - $START_INSTALL ))s" -echo "Checking kABI" -# ../kernel-dist-git/SOURCES/check-kabi -k ../kernel-dist-git/SOURCES/Module.kabi_x86_64 -s Module.symvers || echo "kABI failed" -KABI_CHECK=$(../kernel-dist-git/SOURCES/check-kabi -k ../kernel-dist-git/SOURCES/Module.kabi_${ARCH} -s Module.symvers) -if [ $? -ne 0 ]; then - echo "Error: kABI check failed" - exit 1 +CHECK_KABI=true +# We disable kABI checks only on RT kernels up-to 9.4 +if echo "$REAL_BRANCH" | grep -q 'ciqlts8_6-rt'; then + CHECK_KABI=false + +elif echo "$REAL_BRANCH" | grep -q 'ciqlts8_8-rt'; then + CHECK_KABI=false + +elif echo "$REAL_BRANCH" | grep -q 'ciqlts9_2-rt'; then + CHECK_KABI=false +fi + +if [ $CHECK_KABI == 'true' ]; then + echo "Checking kABI" + KABI_CHECK=$(../kernel-dist-git/SOURCES/check-kabi -k ../kernel-dist-git/SOURCES/Module.kabi_${ARCH} -s Module.symvers) + if [ $? -ne 0 ]; then + echo -e "Error: kABI check failed for following symbols:\n$KABI_CHECK" + exit 1 + else + echo "kABI check passed" + fi fi -echo "kABI check passed" GRUB_INFO=$(sudo grubby --info=ALL | grep -E "^kernel|^index")