diff options
author | Patrick McLean <patrick.mclean@sony.com> | 2020-08-04 17:14:59 -0700 |
---|---|---|
committer | Patrick McLean <chutzpah@gentoo.org> | 2020-08-04 17:16:30 -0700 |
commit | 113190b93664650497e2a1ee8e503b27ca19a199 (patch) | |
tree | 77c0da0411d8588b6d183d55ad76c26f07d4ea55 /sys-cluster/ceph | |
parent | sys-libs/efivar: arm64 stable (bug #730184) (diff) | |
download | gentoo-113190b93664650497e2a1ee8e503b27ca19a199.tar.gz gentoo-113190b93664650497e2a1ee8e503b27ca19a199.tar.bz2 gentoo-113190b93664650497e2a1ee8e503b27ca19a199.zip |
sys-cluster/ceph-15.2.4-r3: revbump, fix deps, fix build with USE=uring
Copyright: Sony Interactive Entertainment Inc.
Package-Manager: Portage-3.0.1, Repoman-2.3.23
Signed-off-by: Patrick McLean <chutzpah@gentoo.org>
Diffstat (limited to 'sys-cluster/ceph')
-rw-r--r-- | sys-cluster/ceph/ceph-15.2.4-r3.ebuild (renamed from sys-cluster/ceph/ceph-15.2.4-r2.ebuild) | 5 | ||||
-rw-r--r-- | sys-cluster/ceph/files/ceph-15.2.4-system-uring.patch | 66 |
2 files changed, 69 insertions, 2 deletions
diff --git a/sys-cluster/ceph/ceph-15.2.4-r2.ebuild b/sys-cluster/ceph/ceph-15.2.4-r3.ebuild index b497a432952e..a81fe959935e 100644 --- a/sys-cluster/ceph/ceph-15.2.4-r2.ebuild +++ b/sys-cluster/ceph/ceph-15.2.4-r3.ebuild @@ -32,7 +32,7 @@ IUSE="babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana jemalloc rbd-rwl +ssl spdk system-boost systemd +tcmalloc test uring xfs zfs" IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})" -COMMON_DEPEND=" +DEPEND=" acct-group/ceph acct-user/ceph virtual/libudev:= @@ -124,7 +124,7 @@ BDEPEND=" sys-fs/btrfs-progs ) " -RDEPEND="${COMMON_DEPEND} +RDEPEND="${DEPEND} app-admin/sudo net-misc/socat sys-apps/gptfdisk @@ -198,6 +198,7 @@ PATCHES=( "${FILESDIR}/ceph-15.2.2-systemd-unit.patch" "${FILESDIR}/ceph-15.2.3-spdk-compile.patch" "${FILESDIR}/ceph-14.2.10-python-warnings.patch" + "${FILESDIR}/ceph-15.2.4-system-uring.patch" ) check-reqs_export_vars() { diff --git a/sys-cluster/ceph/files/ceph-15.2.4-system-uring.patch b/sys-cluster/ceph/files/ceph-15.2.4-system-uring.patch new file mode 100644 index 000000000000..64df81bf97b5 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-15.2.4-system-uring.patch @@ -0,0 +1,66 @@ +diff --git a/src/os/CMakeLists.txt b/src/os/CMakeLists.txt +index 760244b9b4..7f83923671 100644 +--- a/src/os/CMakeLists.txt ++++ b/src/os/CMakeLists.txt +@@ -134,27 +134,6 @@ if(WITH_EVENTTRACE) + endif() + + if(WITH_LIBURING) +- include(ExternalProject) +- if("${CMAKE_GENERATOR}" MATCHES "Make") +- set(make_cmd "$(MAKE)") +- else() +- set(make_cmd "make") +- endif() +- ExternalProject_Add(liburing_ext +- DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/src/ +- GIT_REPOSITORY http://git.kernel.dk/liburing +- GIT_TAG "4e360f71131918c36774f51688e5c65dea8d43f2" +- SOURCE_DIR ${CMAKE_BINARY_DIR}/src/liburing +- CONFIGURE_COMMAND <SOURCE_DIR>/configure +- BUILD_COMMAND env CC=${CMAKE_C_COMPILER} ${make_cmd} -C src -s +- BUILD_IN_SOURCE 1 +- INSTALL_COMMAND "") +- unset(make_cmd) +- add_library(liburing STATIC IMPORTED GLOBAL) +- add_dependencies(liburing liburing_ext) +- set_target_properties(liburing PROPERTIES +- IMPORTED_LINK_INTERFACE_LANGUAGES "C" +- IMPORTED_LOCATION "${CMAKE_BINARY_DIR}/src/liburing/src/liburing.a") +- target_link_libraries(os liburing) +- target_include_directories(os SYSTEM PRIVATE "${CMAKE_BINARY_DIR}/src/liburing/src/include") ++ pkg_check_modules(LIBURING REQUIRED IMPORTED_TARGET liburing) ++ target_link_libraries(os uring) + endif(WITH_LIBURING) +diff --git a/src/os/bluestore/io_uring.cc b/src/os/bluestore/io_uring.cc +index 54fa0f9535..4ba83cf172 100644 +--- a/src/os/bluestore/io_uring.cc ++++ b/src/os/bluestore/io_uring.cc +@@ -7,6 +7,8 @@ + + #include "liburing.h" + #include <sys/epoll.h> ++#include <unistd.h> ++#include <sys/syscall.h> + + /* Options */ + +@@ -134,8 +136,7 @@ int ioring_queue_t::init(std::vector<int> &fds) + if (ret < 0) + return ret; + +- ret = io_uring_register(d->io_uring.ring_fd, IORING_REGISTER_FILES, +- &fds[0], fds.size()); ++ ret = io_uring_register_files(&d->io_uring, &fds[0], fds.size()); + if (ret < 0) { + ret = -errno; + goto close_ring_fd; +@@ -214,7 +215,7 @@ bool ioring_queue_t::supported() + struct io_uring_params p; + + memset(&p, 0, sizeof(p)); +- int fd = io_uring_setup(16, &p); ++ int fd = syscall(SYS_io_uring_setup, 16, &p); + if (fd < 0) + return false; + |