Files
TheRock/build_tools/third_party/implib/tests/common.sh
T
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

114 lines
3.0 KiB
Bash

# Copyright 2019-2025 Yury Gribov
#
# The MIT License (MIT)
#
# Use of this source code is governed by MIT license that can be
# found in the LICENSE.txt file.
if test -n "${TRAVIS:-}"; then
set -x
fi
if test -z "${ARCH:-}"; then
ARCH=$(uname -m)
fi
CFLAGS="-Wall -Wextra -Wconversion -Wsign-conversion -Wuninitialized -Werror ${CFLAGS:-}"
if test $ARCH = $(uname -m); then
# Native
TARGET=$ARCH
PREFIX=
INTERP=
else
# Simulate
# (see .github/workflows/ci.yml for list of needed packages)
case "$ARCH" in
arm*hf | armhf-*)
TARGET=armhf
PREFIX=arm-linux-gnueabihf-
INTERP="qemu-arm -L /usr/arm-linux-gnueabihf -E LD_LIBRARY_PATH=.${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
CFLAGS="$CFLAGS -mthumb-interwork -mfpu=neon"
;;
arm | arm-* | armel-*)
TARGET=arm
PREFIX=arm-linux-gnueabi-
INTERP="qemu-arm -L /usr/arm-linux-gnueabi -E LD_LIBRARY_PATH=.${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
;;
aarch64*)
TARGET=aarch64
PREFIX=aarch64-linux-gnu-
INTERP="qemu-aarch64 -L /usr/aarch64-linux-gnu -E LD_LIBRARY_PATH=.${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
;;
i[0-9]86*)
TARGET=i686
PREFIX=
INTERP=
CFLAGS="$CFLAGS -m32"
;;
mips | mips-*)
TARGET=mips
PREFIX=mips-linux-gnu-
INTERP="qemu-mips -L /usr/mips-linux-gnu -E LD_LIBRARY_PATH=.${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
;;
mipsel | mipsel-*)
TARGET=mipsel
PREFIX=mipsel-linux-gnu-
INTERP="qemu-mipsel -L /usr/mipsel-linux-gnu -E LD_LIBRARY_PATH=.${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
;;
mips64el | mips64el-*)
TARGET=mips64el
PREFIX=mips64el-linux-gnuabi64-
INTERP="qemu-mips64el -L /usr/mips64el-linux-gnuabi64 -E LD_LIBRARY_PATH=.${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
;;
ppc64 | powerpc64 | powerpc64-*)
TARGET=powerpc64
PREFIX=powerpc64-linux-gnu-
INTERP="qemu-ppc64 -L /usr/powerpc64-linux-gnu -E LD_LIBRARY_PATH=.${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
;;
ppc64le | powerpc64le | powerpc64le-*)
TARGET=powerpc64le
PREFIX=powerpc64le-linux-gnu-
INTERP="qemu-ppc64le -L /usr/powerpc64le-linux-gnu -E LD_LIBRARY_PATH=.${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
;;
rv64 | riscv4 | riscv64-*)
TARGET=riscv64
PREFIX=riscv64-linux-gnu-
INTERP="qemu-riscv64 -L /usr/riscv64-linux-gnu -E LD_LIBRARY_PATH=.${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
;;
*)
echo >&2 "Unsupported target: $ARCH"
exit 1
;;
esac
fi
CFLAGS="-Wall -Wextra -Werror ${CFLAGS:-}"
if uname | grep -q BSD; then
CC=$PREFIX${CC:-cc}
CXX=$PREFIX${CXX:-c++}
else
CC=$PREFIX${CC:-gcc}
CXX=$PREFIX${CXX:-g++}
fi
if uname | grep -q BSD; then
LIBS='-pthread'
elif echo "$CC" | grep -q musl-gcc; then
# Just libc.so in musl
LIBS=
else
LIBS='-ldl -pthread'
fi
# Do not bother with non-native targets
if test -z "$INTERP" \
&& ! echo "$CC" | grep -q musl-gcc \
&& uname | grep -q Linux \
&& echo 'int main() {}' | $CC $CFLAGS -fsanitize=thread -x c - -o /dev/null 2> /dev/null; then
TSAN_AVAILABLE=1
else
TSAN_AVAILABLE=
fi