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
114 lines
3.0 KiB
Bash
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
|