| # Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file | |
| # for details. All rights reserved. Use of this source code is governed by a | |
| # BSD-style license that can be found in the LICENSE file. | |
| # Shared functions for both precompiler2 and dart_precompiled_runtime2. | |
| function host_arch() { | |
| # Use uname to determine the host architecture. | |
| case `uname -m` in | |
| x86_64) | |
| echo "X64" | |
| ;; | |
| aarch64 | arm64 | armv8*) | |
| echo "ARM64" | |
| ;; | |
| arm | arm7*) | |
| echo "ARM" | |
| ;; | |
| *) | |
| echo "Unknown host architecture" `uname -m` >&2 | |
| exit 1 | |
| ;; | |
| esac | |
| } | |
| function parse_target_arch() { | |
| case "$1" in | |
| *X64 | \ | |
| *X64C) | |
| echo "X64" | |
| ;; | |
| *ARM64 | \ | |
| *ARM64C) | |
| echo "ARM64" | |
| ;; | |
| *ARM) | |
| echo "ARM" | |
| ;; | |
| *IA32) | |
| echo "IA32" | |
| ;; | |
| *RISCV32) | |
| echo "RISCV32" | |
| ;; | |
| *RISCV64) | |
| echo "RISCV64" | |
| ;; | |
| *) | |
| echo "Cannot deduce target architecture from $1" >&2 | |
| exit 1 | |
| ;; | |
| esac | |
| } | |
| function is_cross_compiled() { | |
| local host_arch="$1" | |
| local target_arch="$2" | |
| [[ ("$host_arch" != "ARM64" || "$target_arch" != "ARM") && \ | |
| ("$host_arch" != "$target_arch") ]] | |
| } |