diff options
author | Michael Olbrich <m.olbrich@pengutronix.de> | 2023-02-03 10:03:31 +0100 |
---|---|---|
committer | Michael Olbrich <m.olbrich@pengutronix.de> | 2023-02-03 10:03:31 +0100 |
commit | fff4d148603c30c07c6b28d2d7e333f8a0670de0 (patch) | |
tree | 396a5b8d802eb33086814ce8202d996c16078877 | |
parent | 7bac21b3d03a8069da366ef56aa8ad87f07a6a78 (diff) | |
download | ptxdist-fff4d148603c30c07c6b28d2d7e333f8a0670de0.tar.gz ptxdist-fff4d148603c30c07c6b28d2d7e333f8a0670de0.tar.xz |
ptxd_make_world_lint: add architecture sanity check
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rw-r--r-- | scripts/lib/ptxd_make_world_lint.sh | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/scripts/lib/ptxd_make_world_lint.sh b/scripts/lib/ptxd_make_world_lint.sh index 0d55981ec..ceb9e8d21 100644 --- a/scripts/lib/ptxd_make_world_lint.sh +++ b/scripts/lib/ptxd_make_world_lint.sh @@ -358,6 +358,43 @@ ptxd_make_world_lint_menu() { export -f ptxd_make_world_lint_menu PTXDIST_LINT_COMMANDS="${PTXDIST_LINT_COMMANDS} menu" +ptxd_make_world_lint_arch() { + + echo "Checking that toolchain and architecture settings match ..." + + if echo | ptxd_cross_cc -dM -E - | grep -q __x86_64__; then + if ! ptxd_get_ptxconf PTXCONF_ARCH_X86_64; then + ptxd_lint_error "x86-64 toolchain but PTXCONF_ARCH_X86_64 is not set" + fi + return + fi + if echo | ptxd_cross_cc -dM -E - | grep -q __i386__; then + if ! ptxd_get_ptxconf PTXCONF_ARCH_X86; then + ptxd_lint_error "x86 toolchain but PTXCONF_ARCH_X86 is not set" + fi + if ptxd_get_ptxconf PTXCONF_ARCH_X86_64; then + ptxd_lint_error "i*86 toolchain but PTXCONF_ARCH_X86_64 is set" + fi + return + fi + arm_arch="$(echo | ptxd_cross_cc -dM -E - | sed -n 's/#define __ARM_ARCH \(.*\)/\1/p')" + if [ -n "${arm_arch}" ]; then + if [ "${arm_arch}" = "7" -a -z "$(ptxd_get_ptxconf PTXCONF_ARCH_ARM_V7)" ]; then + ptxd_lint_error "ARMv7 toolchain but PTXCONF_ARCH_ARM_V7 is not set" + elif [ "${arm_arch}" != "7" -a -n "$(ptxd_get_ptxconf PTXCONF_ARCH_ARM_V7)" ]; then + ptxd_lint_error "ARMv${arm_arch} toolchain but PTXCONF_ARCH_ARM_V7 is set" + fi + if [ "${arm_arch}" = "6" -a -z "$(ptxd_get_ptxconf PTXCONF_ARCH_ARM_V6)" ]; then + ptxd_lint_error "ARMv6 toolchain but PTXCONF_ARCH_ARM_V6 is not set" + elif [ "${arm_arch}" -lt 6 -a -n "$(ptxd_get_ptxconf PTXCONF_ARCH_ARM_V6)" ]; then + ptxd_lint_error "ARMv${arm_arch} toolchain but PTXCONF_ARCH_ARM_V6 is set" + fi + return + fi +} +export -f ptxd_make_world_lint_arch +PTXDIST_LINT_COMMANDS="${PTXDIST_LINT_COMMANDS} arch" + ptxd_make_world_lint() { local command |