diff --git a/.github/workflows/build_linux_arm64_wheels-gh.yml b/.github/workflows/build_linux_arm64_wheels-gh.yml index fe9e78277a5..0e6bb456703 100644 --- a/.github/workflows/build_linux_arm64_wheels-gh.yml +++ b/.github/workflows/build_linux_arm64_wheels-gh.yml @@ -25,6 +25,20 @@ jobs: name: Build Universal Wheel (Linux ARM64) runs-on: GH-Linux-ARM64 steps: + - name: Check CPU capabilities and requirements + run: | + echo "=== CPU Information ===" + cat /proc/cpuinfo + echo "" + echo "=== Checking CPU requirements ===" + + if grep -P "^(?=.*atomic)(?=.*ssbs)" /proc/cpuinfo > /dev/null; then + echo "CPU meets minimum requirements (atomic and ssbs flags found)" + else + echo "CPU does not meet minimum requirements" + echo "Missing required flags: atomic and/or ssbs" + echo "This may cause build failures. Consider using -DNO_ARMV81_OR_HIGHER=1" + fi - name: Install Python build dependencies run: | sudo apt-get update diff --git a/chdb/build.sh b/chdb/build.sh index f31e904e964..5b2c7cc318e 100755 --- a/chdb/build.sh +++ b/chdb/build.sh @@ -62,21 +62,21 @@ elif [ "$(uname)" == "Linux" ]; then if [ "$(uname -m)" == "x86_64" ]; then CPU_FEATURES="-DENABLE_AVX=1 -DENABLE_AVX2=0" LLVM="-DENABLE_EMBEDDED_COMPILER=1 -DENABLE_DWARF_PARSER=1" - RUST_FEATURES="-DENABLE_RUST=1 -DENABLE_DELTA_KERNEL_RS=1" - CORROSION_CMAKE_FILE="${PROJ_DIR}/contrib/corrosion-cmake/CMakeLists.txt" - if [ -f "${CORROSION_CMAKE_FILE}" ]; then - if ! grep -q 'OPENSSL_NO_DEPRECATED_3_0' "${CORROSION_CMAKE_FILE}"; then - echo "Modifying corrosion CMakeLists.txt for Linux x86_64..." - ${SED_INPLACE} 's/corrosion_set_env_vars(${target_name} "RUSTFLAGS=${RUSTFLAGS}")/corrosion_set_env_vars(${target_name} "RUSTFLAGS=${RUSTFLAGS} --cfg osslconf=\\\"OPENSSL_NO_DEPRECATED_3_0\\\"")/g' "${CORROSION_CMAKE_FILE}" - else - echo "corrosion CMakeLists.txt already modified, skipping..." - fi + else + CPU_FEATURES="-DENABLE_AVX=0 -DENABLE_AVX2=0" + LLVM="-DENABLE_EMBEDDED_COMPILER=0 -DENABLE_DWARF_PARSER=0" + fi + RUST_FEATURES="-DENABLE_RUST=1 -DENABLE_DELTA_KERNEL_RS=1" + CORROSION_CMAKE_FILE="${PROJ_DIR}/contrib/corrosion-cmake/CMakeLists.txt" + if [ -f "${CORROSION_CMAKE_FILE}" ]; then + if ! grep -q 'OPENSSL_NO_DEPRECATED_3_0' "${CORROSION_CMAKE_FILE}"; then + echo "Modifying corrosion CMakeLists.txt for Linux x86_64..." + ${SED_INPLACE} 's/corrosion_set_env_vars(${target_name} "RUSTFLAGS=${RUSTFLAGS}")/corrosion_set_env_vars(${target_name} "RUSTFLAGS=${RUSTFLAGS} --cfg osslconf=\\\"OPENSSL_NO_DEPRECATED_3_0\\\"")/g' "${CORROSION_CMAKE_FILE}" else - echo "Warning: corrosion CMakeLists.txt not found at ${CORROSION_CMAKE_FILE}" + echo "corrosion CMakeLists.txt already modified, skipping..." fi else - CPU_FEATURES="-DENABLE_AVX=0 -DENABLE_AVX2=0 -DNO_ARMV81_OR_HIGHER=1" - LLVM="-DENABLE_EMBEDDED_COMPILER=0 -DENABLE_DWARF_PARSER=0" + echo "Warning: corrosion CMakeLists.txt not found at ${CORROSION_CMAKE_FILE}" fi else echo "OS not supported" diff --git a/tests/test_delta_lake.py b/tests/test_delta_lake.py index c89d2787341..df611cf32f3 100644 --- a/tests/test_delta_lake.py +++ b/tests/test_delta_lake.py @@ -6,7 +6,7 @@ import chdb from chdb import session -@unittest.skipUnless(sys.platform.startswith("linux") and platform.machine() in ["x86_64", "AMD64"], "Runs only in the Linux x86 environment") +@unittest.skipUnless(sys.platform.startswith("linux"), "Runs only on Linux platforms") class TestDeltaLake(unittest.TestCase): def setUp(self) -> None: return super().setUp()