diff --git a/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/0001-Patch-Photon-after-fetching-to-fix-cross-issues.patch b/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/0001-Patch-Photon-after-fetching-to-fix-cross-issues.patch new file mode 100644 index 0000000000..38aed738bb --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/0001-Patch-Photon-after-fetching-to-fix-cross-issues.patch @@ -0,0 +1,25 @@ +From 72d823c414a1416dffc2276e5a0a17f03c5e4549 Mon Sep 17 00:00:00 2001 +From: James Le Cuirot +Date: Mon, 28 Jul 2025 12:16:50 +0100 +Subject: [PATCH 1/2] Patch Photon after fetching to fix cross issues + +Signed-off-by: James Le Cuirot +--- + CMake/Findphoton.cmake | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/CMake/Findphoton.cmake b/CMake/Findphoton.cmake +index c905bd9..5507f66 100644 +--- a/CMake/Findphoton.cmake ++++ b/CMake/Findphoton.cmake +@@ -6,6 +6,7 @@ FetchContent_Declare( + photon + GIT_REPOSITORY https://github.com/alibaba/PhotonLibOS.git + GIT_TAG v0.6.17 ++ PATCH_COMMAND patch -p1 -i @FILESDIR@/photon-cross.patch + ) + + if(BUILD_TESTING) +-- +2.51.0 + diff --git a/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/0002-Patch-yaml-cpp-after-fetching-to-fix-cmake-issues.patch b/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/0002-Patch-yaml-cpp-after-fetching-to-fix-cmake-issues.patch new file mode 100644 index 0000000000..9a2715b403 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/0002-Patch-yaml-cpp-after-fetching-to-fix-cmake-issues.patch @@ -0,0 +1,25 @@ +From eae89e8432d993417e6f0e17ae519b4e02f72c9b Mon Sep 17 00:00:00 2001 +From: Krzesimir Nowak +Date: Fri, 7 Nov 2025 12:06:05 +0100 +Subject: [PATCH 2/2] Patch yaml-cpp after fetching to fix cmake issues + +Signed-off-by: Krzesimir Nowak +--- + CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 753b081..03b2ab9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -53,6 +53,7 @@ if (NOT yaml-cpp_FOUND) + yaml-cpp + GIT_REPOSITORY https://github.com/jbeder/yaml-cpp.git + GIT_TAG 0.8.0 ++ PATCH_COMMAND patch -p1 -i @FILESDIR@/yaml-cpp-cmake-4.0.patch + ) + FetchContent_MakeAvailable(yaml-cpp) + endif() +-- +2.51.0 + diff --git a/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/overlaybd-cross.patch b/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/overlaybd-cross.patch deleted file mode 100644 index 36a61d98e3..0000000000 --- a/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/overlaybd-cross.patch +++ /dev/null @@ -1,128 +0,0 @@ -From de68119855229db8e457043d86bbb38bbd5d55d9 Mon Sep 17 00:00:00 2001 -From: James Le Cuirot -Date: Fri, 25 Jul 2025 17:12:03 +0100 -Subject: [PATCH 1/3] Fix cross-compiling by using CMAKE_SYSTEM_PROCESSOR - rather than uname -m - -There is no need to check the architecture twice. Also check for arm64 -(MacOS) wherever we check for aarch64 (Linux). - -Signed-off-by: James Le Cuirot ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -9,10 +9,8 @@ enable_language(C) - set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG") - set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -DNDEBUG -g") - --# Get CPU arch --execute_process(COMMAND uname -m OUTPUT_VARIABLE ARCH OUTPUT_STRIP_TRAILING_WHITESPACE) --if (NOT (${ARCH} STREQUAL x86_64) AND NOT (${ARCH} STREQUAL aarch64) AND NOT (${ARCH} STREQUAL arm64)) -- message(FATAL_ERROR "Unknown CPU architecture ${ARCH}") -+if (NOT (CMAKE_SYSTEM_PROCESSOR STREQUAL x86_64) AND NOT (CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64) AND NOT (CMAKE_SYSTEM_PROCESSOR STREQUAL arm64)) -+ message(FATAL_ERROR "Unknown CPU architecture ${CMAKE_SYSTEM_PROCESSOR}") - endif () - - option(OBD_VER "Overlaybd version" "overlaybd/0.0.0-undefined") -@@ -25,7 +23,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/CMake") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fpic -Wall -Werror=sign-compare") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpic -Wall -Werror=sign-compare -DOVERLAYBD_VER=${OBD_VER}") - --if (${ARCH} STREQUAL aarch64) -+if ((CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64) OR (CMAKE_SYSTEM_PROCESSOR STREQUAL arm64)) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv8-a+crc -fsigned-char -fno-stack-protector -fomit-frame-pointer") - endif () - ---- a/src/overlaybd/zfile/CMakeLists.txt -+++ b/src/overlaybd/zfile/CMakeLists.txt -@@ -2,19 +2,13 @@ file(GLOB SOURCE_ZFILE "*.cpp") - file(GLOB SOURCE_LZ4 "lz4/*.c") - file(GLOB SOURCE_CRC32 "crc32/crc32c.cpp") - --# Get CPU arch --execute_process(COMMAND uname -m OUTPUT_VARIABLE ARCH OUTPUT_STRIP_TRAILING_WHITESPACE) --if (NOT (${ARCH} STREQUAL x86_64) AND NOT (${ARCH} STREQUAL aarch64)) -- message(FATAL_ERROR "Unknown CPU architecture ${ARCH}") --endif () -- - set (CMAKE_CXX_STANDARD 17) - add_library(crc32_lib STATIC ${SOURCE_CRC32}) - target_include_directories(crc32_lib PUBLIC - ${PHOTON_INCLUDE_DIR} - ) - --if (${ARCH} STREQUAL x86_64) -+if (CMAKE_SYSTEM_PROCESSOR STREQUAL x86_64) - target_compile_options(crc32_lib PUBLIC -msse4.2 -mcrc32) - else() - target_compile_options(crc32_lib PRIVATE -march=native -mcpu=generic+crc) --- -2.49.0 - - -From ee0e074c256ea1bcbcff2ed5a3e311becaf122cc Mon Sep 17 00:00:00 2001 -From: James Le Cuirot -Date: Mon, 28 Jul 2025 12:05:19 +0100 -Subject: [PATCH 2/3] Respect aarch64 -march=|-mcpu= flag and check whether - -mcpu=native works - -Packagers may specify a target system up front, which should be -respected. The CRC extensions are not strictly necessary as there is a -software fallback. - -Otherwise, use -mcpu=native if it works (it won't when cross-compiling) -or -mcpu=generic+crc. - -Signed-off-by: James Le Cuirot ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -24,7 +24,16 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fpic -Wall -Werror=sign-compare") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpic -Wall -Werror=sign-compare -DOVERLAYBD_VER=${OBD_VER}") - - if ((CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64) OR (CMAKE_SYSTEM_PROCESSOR STREQUAL arm64)) -- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv8-a+crc -fsigned-char -fno-stack-protector -fomit-frame-pointer") -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char -fno-stack-protector -fomit-frame-pointer") -+ if (NOT CMAKE_CXX_FLAGS MATCHES "-march=|-mcpu=") -+ include(CheckCXXCompilerFlag) -+ check_cxx_compiler_flag(-mcpu=native COMPILER_HAS_NATIVE_FLAG) -+ if (COMPILER_HAS_NATIVE_FLAG) -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=native") -+ else () -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=generic+crc") -+ endif () -+ endif () - endif () - - set(CMAKE_CXX_STANDARD_LIBRARIES "-static-libgcc ${CMAKE_CXX_STANDARD_LIBRARIES}") ---- a/src/overlaybd/zfile/CMakeLists.txt -+++ b/src/overlaybd/zfile/CMakeLists.txt -@@ -10,8 +10,6 @@ target_include_directories(crc32_lib PUBLIC - - if (CMAKE_SYSTEM_PROCESSOR STREQUAL x86_64) - target_compile_options(crc32_lib PUBLIC -msse4.2 -mcrc32) --else() -- target_compile_options(crc32_lib PRIVATE -march=native -mcpu=generic+crc) - endif() - - if(ENABLE_DSA OR ENABLE_ISAL) --- -2.49.0 - - -From 2e4edd416a42fad0e8d7ac21855a4e81f34f1e82 Mon Sep 17 00:00:00 2001 -From: James Le Cuirot -Date: Mon, 28 Jul 2025 12:16:50 +0100 -Subject: [PATCH 3/3] Patch Photon after fetching to fix cross issues - -Signed-off-by: James Le Cuirot ---- a/CMake/Findphoton.cmake -+++ b/CMake/Findphoton.cmake -@@ -6,6 +6,7 @@ FetchContent_Declare( - photon - GIT_REPOSITORY https://github.com/alibaba/PhotonLibOS.git - GIT_TAG v0.6.17 -+ PATCH_COMMAND patch -p1 -i @FILESDIR@/photon-cross.patch - ) - - if(BUILD_TESTING) --- -2.49.0 diff --git a/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/overlaybd-pin-tcmu.patch b/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/overlaybd-pin-tcmu.patch deleted file mode 100644 index 321ba3869b..0000000000 --- a/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/overlaybd-pin-tcmu.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/CMake/Findtcmu.cmake -+++ b/CMake/Findtcmu.cmake -@@ -4,7 +4,7 @@ set(FETCHCONTENT_QUIET false) - FetchContent_Declare( - tcmu - GIT_REPOSITORY https://github.com/data-accelerator/photon-libtcmu.git -- GIT_TAG main -+ GIT_TAG 813fd65361bb2f348726b9c41478a44211847614 - ) - - if(BUILD_TESTING) diff --git a/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/yaml-cpp-cmake-4.0.patch b/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/yaml-cpp-cmake-4.0.patch new file mode 100644 index 0000000000..65bc465f0f --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/yaml-cpp-cmake-4.0.patch @@ -0,0 +1,42 @@ +From 10a573aa85db4eeb13df9e9cfa7047a0dc55d334 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Christoph=20Gr=C3=BCninger?= +Date: Mon, 24 Mar 2025 08:32:25 +0100 +Subject: [PATCH] [cmake] Require minimum CMake version 3.5 + +Soon CMake 4.0 will be released. It requires that projects +set a minimum required CMake version of 3.5. There is a +workaround with an additional flag, but it would is better +to increase the minimum required version. +--- + CMakeLists.txt | 5 +++-- + test/CMakeLists.txt | 1 - + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 46dc180..ee04e75 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,5 +1,6 @@ +-# 3.5 is actually available almost everywhere, but this a good minimum +-cmake_minimum_required(VERSION 3.4) ++# 3.5 is actually available almost everywhere. ++# 3.30 as the upper policy limit avoids CMake deprecation warnings. ++cmake_minimum_required(VERSION 3.5...3.30) + + # enable MSVC_RUNTIME_LIBRARY target property + # see https://cmake.org/cmake/help/latest/policy/CMP0091.html +diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt +index 351b03f..210e629 100644 +--- a/test/CMakeLists.txt ++++ b/test/CMakeLists.txt +@@ -2,7 +2,6 @@ find_package(Threads REQUIRED) + + set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) + set(BUILD_MOCK ON CACHE BOOL "" FORCE) +-set(CMAKE_POLICY_DEFAULT_CMP0048 NEW) + + add_subdirectory( + "${CMAKE_CURRENT_SOURCE_DIR}/gtest-1.11.0" +-- +2.51.0 + diff --git a/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/overlaybd-1.0.15.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/overlaybd-1.0.16.ebuild similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/overlaybd-1.0.15.ebuild rename to sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/overlaybd-1.0.16.ebuild diff --git a/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/overlaybd-9999.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/overlaybd-9999.ebuild index e0da60644f..b7a27ba530 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/overlaybd-9999.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/overlaybd-9999.ebuild @@ -44,13 +44,13 @@ RDEPEND=" " PATCHES=( - "${FILESDIR}"/${PN}-cross.patch - "${FILESDIR}"/${PN}-pin-tcmu.patch + "${FILESDIR}"/0001-Patch-Photon-after-fetching-to-fix-cross-issues.patch + "${FILESDIR}"/0002-Patch-yaml-cpp-after-fetching-to-fix-cmake-issues.patch ) src_prepare() { cmake_src_prepare - sed -i "s:@FILESDIR@:${FILESDIR}:g" CMake/Findphoton.cmake || die + sed -i "s:@FILESDIR@:${FILESDIR}:g" CMakeLists.txt CMake/Findphoton.cmake || die } src_configure() { @@ -58,7 +58,7 @@ src_configure() { # runtime. Only DSA hard requires at least AVX2. However, the code doesn't # try especially hard to avoid these instructions from being implicitly used # outside these runtime checks. :( - # ISAL similarly leads to "illegal instruction" termination on QEMU. + # ISAL similarly leads to "illegal instruction" termination on QEMU. local mycmakeargs=( -DBUILD_SHARED_LIBS=no -DBUILD_TESTING=no