From ca8d4e6d82c03ff7089b01aa84d1beda59008358 Mon Sep 17 00:00:00 2001 From: sekaiacg Date: Thu, 21 Mar 2024 10:25:43 +0800 Subject: [PATCH] cmake: Enable multi-threading compression Signed-off-by: sekaiacg --- build/cmake/lib/liberofs.cmake | 5 +++++ build/cmake/lib/liberofs_config.h.in | 3 +++ mkfs/main.c | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/build/cmake/lib/liberofs.cmake b/build/cmake/lib/liberofs.cmake index b1eda5ad..22a5cf88 100644 --- a/build/cmake/lib/liberofs.cmake +++ b/build/cmake/lib/liberofs.cmake @@ -10,13 +10,16 @@ set(liberofs_include_list "linux/fs.h" "linux/types.h" "linux/xattr.h" + "pthread.h" "sys/ioctl.h" "sys/sysmacros.h" + "unistd.h" ) set(liberofs_function_list "backtrace" "utimensat" + "sysconf" ) if (CMAKE_SYSTEM_NAME MATCHES "Linux|Android") list(APPEND liberofs_include_list @@ -67,6 +70,7 @@ set(LIBEROFS_STATIC_DEFAULTS_CFLAGS "-DHAVE_ZLIB" "-DHAVE_LIBLZMA" "-DWITH_ANDROID" + "-DEROFS_MT_ENABLED" "${DARWIN_CFLAGS}" CACHE INTERNAL "liberofs_static_defaults_cflags" ) @@ -104,6 +108,7 @@ set(liberofs_srcs "${TARGET_SRC_DIR}/compressor_liblzma.c" "${TARGET_SRC_DIR}/kite_deflate.c" "${TARGET_SRC_DIR}/compressor_deflate.c" + "${TARGET_SRC_DIR}/workqueue.c" ) include(CheckCXXCompilerFlag) diff --git a/build/cmake/lib/liberofs_config.h.in b/build/cmake/lib/liberofs_config.h.in index 7049188b..db88ed9b 100644 --- a/build/cmake/lib/liberofs_config.h.in +++ b/build/cmake/lib/liberofs_config.h.in @@ -7,9 +7,11 @@ #cmakedefine HAVE_LINUX_FS_H 1 #cmakedefine HAVE_LINUX_TYPES_H 1 #cmakedefine HAVE_LINUX_XATTR_H 1 +#cmakedefine HAVE_PTHREAD_H 1 #cmakedefine HAVE_SYS_IOCTL_H 1 #cmakedefine HAVE_SYS_SYSMACROS_H 1 #cmakedefine HAVE_SYS_RANDOM_H 1 +#cmakedefine HAVE_UNISTD_H 1 // Functions #cmakedefine HAVE_BACKTRACE 1 @@ -24,6 +26,7 @@ #cmakedefine HAVE_PWRITE64 1 #cmakedefine HAVE_POSIX_FADVISE 1 #cmakedefine HAVE_TMPFILE64 1 +#cmakedefine HAVE_SYSCONF 1 #cmakedefine HAVE_UTIMENSAT 1 // Symbols diff --git a/mkfs/main.c b/mkfs/main.c index 53d330bb..cad87de2 100644 --- a/mkfs/main.c +++ b/mkfs/main.c @@ -813,7 +813,7 @@ static int mkfs_parse_options_cfg(int argc, char *argv[]) #ifdef EROFS_MT_ENABLED case 520: { unsigned int processors; - + errno = 0; cfg.c_mt_workers = strtoul(optarg, &endptr, 0); if (errno || *endptr != '\0') { erofs_err("invalid worker number %s", optarg);