From 4cf80a82b7347e78b80fe5d706ddce425a18a011 Mon Sep 17 00:00:00 2001 From: Dianjin Wang Date: Tue, 30 Dec 2025 11:50:10 +0800 Subject: [PATCH] Fix PAX build failure on GCC 8.x (Rocky Linux 8) 1. Remove explicit -Werror=pessimizing-move flag from CMakeLists.txt. This flag was added in commit e7e07c27a7 to catch pessimizing-move warnings on higher GCC versions, but it breaks compilation on GCC 8.x where this warning option does not exist. The fix is safe because GCC 9+ enables -Wpessimizing-move by default and the existing -Werror flag already converts all warnings to errors. 2. Fix fast_io.cc compatibility issues: - Add missing include for pread() - Define uring_likely macro fallback for older liburing versions See: Issue#1441 --- contrib/pax_storage/CMakeLists.txt | 5 ++++- contrib/pax_storage/src/cpp/comm/fast_io.cc | 7 +++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/contrib/pax_storage/CMakeLists.txt b/contrib/pax_storage/CMakeLists.txt index 5942f3bd913..e45eab560e6 100644 --- a/contrib/pax_storage/CMakeLists.txt +++ b/contrib/pax_storage/CMakeLists.txt @@ -21,7 +21,10 @@ set(CMAKE_CXX_STANDARD 17) set(TOP_DIR ${PROJECT_SOURCE_DIR}/../..) set(CBDB_INCLUDE_DIR ${TOP_DIR}/src/include) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror -Werror=pessimizing-move -Wno-unused-function -Wno-error=ignored-qualifiers -Wno-error=array-bounds -Wuninitialized -Winit-self -Wstrict-aliasing -Wno-missing-field-initializers -Wno-unused-parameter -Wno-clobbered -Wno-sized-deallocation -g") +# Base CXX flags +# Note: -Wpessimizing-move is enabled by default in GCC 9+ and will be caught by -Werror +# No need to explicitly add -Werror=pessimizing-move (which breaks GCC 8.x compatibility) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror -Wno-unused-function -Wno-error=ignored-qualifiers -Wno-error=array-bounds -Wuninitialized -Winit-self -Wstrict-aliasing -Wno-missing-field-initializers -Wno-unused-parameter -Wno-clobbered -Wno-sized-deallocation -g") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-unused-parameter -Wno-parameter-name") option(USE_MANIFEST_API "Use manifest API" OFF) diff --git a/contrib/pax_storage/src/cpp/comm/fast_io.cc b/contrib/pax_storage/src/cpp/comm/fast_io.cc index 5b9e593def9..66709189e33 100644 --- a/contrib/pax_storage/src/cpp/comm/fast_io.cc +++ b/contrib/pax_storage/src/cpp/comm/fast_io.cc @@ -27,6 +27,13 @@ #include "fast_io.h" +#include // for pread + +// uring_likely may not be defined in older liburing versions +#ifndef uring_likely +#define uring_likely(x) __builtin_expect(!!(x), 1) +#endif + namespace pax {