From b7566d4411c1482b4d89776bfc1e38530818d243 Mon Sep 17 00:00:00 2001 From: Stephan Bauroth Date: Thu, 12 Nov 2026 12:11:24 +0100 Subject: [PATCH] rocksdb: build db_bench portable The bench-env image is cached per platform (type=gha, scope=buildkit_) and later jobs reuse it on other machines, but RocksDB compiles with -march=native when PORTABLE is unset (it ends up in make_config.mk). A db_bench built on a machine with AVX-512 therefore dies with SIGILL on a runner without it, before it prints a single line. That is the rocksdb:mi and rocksdb:ff failures in the current runs: the same cached binary is gone after 0.1 s with no output on some jobs, while others pass the test. PORTABLE=1 keeps the binary runnable wherever the cache delivers it, and the measured time no longer depends on which machine built the cache: locally fillrandom takes 10.0 s native and 10.2 s portable. --- build-bench-env.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-bench-env.sh b/build-bench-env.sh index 9b98cc4..0fe766c 100755 --- a/build-bench-env.sh +++ b/build-bench-env.sh @@ -872,7 +872,7 @@ if test "$setup_rocksdb" = "1"; then set +e patch -p1 -N -r- < ../../patches/rocksdb_cacheline_alloc.patch set -e - DISABLE_WARNING_AS_ERROR=1 DISABLE_JEMALLOC=1 ROCKSDB_DISABLE_TCMALLOC=1 make db_bench -j $procs + DISABLE_WARNING_AS_ERROR=1 DISABLE_JEMALLOC=1 ROCKSDB_DISABLE_TCMALLOC=1 PORTABLE=1 make db_bench -j $procs [ "$CI" ] && find . -name '*.o' -delete popd fi