summaryrefslogtreecommitdiff
path: root/scripts/build/check-kernel-elf.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build/check-kernel-elf.sh')
-rwxr-xr-xscripts/build/check-kernel-elf.sh47
1 files changed, 0 insertions, 47 deletions
diff --git a/scripts/build/check-kernel-elf.sh b/scripts/build/check-kernel-elf.sh
deleted file mode 100755
index eb92b33..0000000
--- a/scripts/build/check-kernel-elf.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-set -eu
-elf=$1
-readelf=$2
-nm=$3
-arch=$4
-
-case "$arch" in
- riscv) expected_machine='RISC-V' ;;
- aarch64) expected_machine='AArch64' ;;
- x86_64) expected_machine='Advanced Micro Devices X86-64' ;;
- *) echo "ELF check: unsupported architecture: $arch" >&2; exit 2 ;;
-esac
-
-machine=$($readelf -h "$elf" | sed -n 's/^[[:space:]]*Machine:[[:space:]]*//p')
-[ "$machine" = "$expected_machine" ] || {
- echo "ELF check: expected machine '$expected_machine', got '$machine'" >&2
- exit 1
-}
-
-entry=$($readelf -h "$elf" | sed -n 's/^[[:space:]]*Entry point address:[[:space:]]*//p')
-[ -n "$entry" ] && [ "$entry" != 0x0 ] || {
- echo "ELF check: kernel has no entry point" >&2
- exit 1
-}
-
-undefined=$($nm -u "$elf" || true)
-[ -z "$undefined" ] || {
- echo "ELF check: undefined symbols:" >&2
- printf '%s\n' "$undefined" >&2
- exit 1
-}
-
-if $readelf -W -l "$elf" | awk '$1 == "LOAD" && $0 ~ /W/ && $0 ~ /E/ { found=1 } END { exit !found }'; then
- echo "ELF check: writable and executable LOAD segment" >&2
- exit 1
-fi
-
-$readelf -S "$elf" | grep -q '[.]rela[.]dyn' || {
- echo "ELF check: missing relocation section .rela.dyn" >&2
- exit 1
-}
-
-echo "Kernel ELF OK: $machine, entry $entry"
-