X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/waydroid.git/blobdiff_plain/1f0393876d891d0e32a995d0bf7259cc6505afdc..d0ca6a32a9eded6e2fbc7dc1fe2f70b503dde8dc:/tools/helpers/arch.py diff --git a/tools/helpers/arch.py b/tools/helpers/arch.py index 3c0bb76..735d344 100644 --- a/tools/helpers/arch.py +++ b/tools/helpers/arch.py @@ -1,6 +1,7 @@ # Copyright 2021 Oliver Smith # SPDX-License-Identifier: GPL-3.0-or-later import platform +import logging def host(): machine = platform.machine() @@ -9,9 +10,21 @@ def host(): "i686": "x86", "x86_64": "x86_64", "aarch64": "arm64", - "armv7l": "arm" + "armv7l": "arm", + "armv8l": "arm" } if machine in mapping: - return mapping[machine] + return maybe_remap(mapping[machine]) raise ValueError("platform.machine '" + machine + "'" " architecture is not supported") + +def maybe_remap(target): + if target == "x86_64": + with open("/proc/cpuinfo") as f: + if "sse4_2" not in f.read(): + logging.info("x86_64 CPU does not support SSE4.2, falling back to x86...") + return "x86" + elif target == "arm64" and platform.architecture()[0] == "32bit": + return "arm" + + return target