loongbedrocklinux-userlandd/detect_arch.sh

107 lines
1.8 KiB
Bash
Executable File

#!/bin/sh
#
# detect_arch.sh
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# version 2 as published by the Free Software Foundation.
#
# Copyright (c) 2019 Daniel Thau <danthau@bedrocklinux.org>
#
# Detects which CPU architecture Bedrock Linux's build system is producing.
# Outputs two lines:
# - First line is Bedrock's name for the architecture. This is used, for
# example, in the output installer/updater file name.
# - Second line is context expected in `file` output on one of the binaries.
# This is used to sanity check the resulting binaries are in fact of the
# expected type.
# - Third line is CPU bit depth.
if ! gcc --version >/dev/null 2>&1; then
echo "ERROR: gcc not found" >&2
exit 1
fi
case "$(gcc -dumpmachine)" in
aarch64-*)
echo "aarch64"
echo "ARM aarch64"
echo "64"
;;
arm-*abi)
echo "armv7l"
echo "EABI5"
echo "32"
;;
arm-*abihf)
echo "armv7hl"
echo "EABI5"
echo "32"
;;
i386-*)
echo "i386"
echo "Intel 80386"
echo "32"
;;
i486-*)
echo "i486"
echo "Intel 80386"
echo "32"
;;
i586-*)
echo "i586"
echo "Intel 80386"
echo "32"
;;
i686-*)
echo "i686"
echo "Intel 80386"
echo "32"
;;
mips-*)
echo "mips"
echo "MIPS32"
echo "32"
;;
mipsel-*)
echo "mipsel"
echo "MIPS32"
echo "32"
;;
mips64el-*)
echo "mips64el"
echo "MIPS64"
echo "64"
;;
powerpc-*)
echo "ppc"
echo "32-bit.*PowerPC"
echo "32"
;;
powerpc64-*)
echo "ppc64"
echo "64-bit PowerPC"
echo "64"
;;
powerpc64le-*)
echo "ppc64le"
echo "64-bit PowerPC"
echo "64"
;;
s390x-*)
echo "s390x"
echo "IBM S/390"
echo "64" # the x in s390x indicates 64 bit
;;
x86_64-*)
echo "x86_64"
echo "x86-64"
echo "64"
;;
loongarch64-*)
echo "loongarch64"
echo "loongarch64"
echo "64"
;;
esac