This is an automated email from the ASF dual-hosted git repository.
wangdan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pegasus.git
The following commit(s) were added to refs/heads/master by this push:
new b4ec7cfd4 fix(build): fix build failure on MacOS (#1049)
b4ec7cfd4 is described below
commit b4ec7cfd4335f00b1101d703b06d0dbe328113cf
Author: Yingchun Lai <[email protected]>
AuthorDate: Mon Jul 18 11:51:04 2022 +0800
fix(build): fix build failure on MacOS (#1049)
---
.licenserc.yaml | 1 +
.../src/block_service/directio_writable_file.cpp | 5 +-
src/rdsn/src/meta/CMakeLists.txt | 1 +
.../test/nth_element_bench/nth_element_bench.cpp | 4 +-
thirdparty/CMakeLists.txt | 68 +++++++++++++---------
thirdparty/fix_libevent_for_macos.patch | 39 +++++++++++++
6 files changed, 87 insertions(+), 31 deletions(-)
diff --git a/.licenserc.yaml b/.licenserc.yaml
index 43adfafc2..3a1dd9e2f 100644
--- a/.licenserc.yaml
+++ b/.licenserc.yaml
@@ -84,6 +84,7 @@ header:
- 'src/rdsn/src/nfs/test/nfs_test_file2'
- 'src/rdsn/src/runtime/test/gtest.filter'
- 'thirdparty/fix_fds_for_macos.patch'
+ - 'thirdparty/fix_libevent_for_macos.patch'
- 'thirdparty/fix_s2_for_aarch64.patch'
- 'thirdparty/fix_thrift_for_cpp11.patch'
# should be empty, or ignore all comment lines
diff --git a/src/rdsn/src/block_service/directio_writable_file.cpp
b/src/rdsn/src/block_service/directio_writable_file.cpp
index c0cf6e6b6..15544cc82 100644
--- a/src/rdsn/src/block_service/directio_writable_file.cpp
+++ b/src/rdsn/src/block_service/directio_writable_file.cpp
@@ -76,7 +76,10 @@ bool direct_io_writable_file::initialize()
return false;
}
- int flag = O_WRONLY | O_TRUNC | O_CREAT | O_DIRECT;
+ int flag = O_WRONLY | O_TRUNC | O_CREAT;
+#if !defined(__APPLE__)
+ flag |= O_DIRECT;
+#endif
_fd = open(_file_path.c_str(), flag, S_IRUSR | S_IWUSR | S_IRGRP);
if (_fd < 0) {
derror_f("Failed to open {} with flag {}, errno = {}", _file_path,
flag, errno);
diff --git a/src/rdsn/src/meta/CMakeLists.txt b/src/rdsn/src/meta/CMakeLists.txt
index 9f9197ac5..ae6f1bb33 100644
--- a/src/rdsn/src/meta/CMakeLists.txt
+++ b/src/rdsn/src/meta/CMakeLists.txt
@@ -28,6 +28,7 @@ set(MY_PROJ_LIBS
PocoNetSSL
PocoJSON
crypto
+ hashtable
hdfs
)
diff --git a/src/rdsn/src/utils/test/nth_element_bench/nth_element_bench.cpp
b/src/rdsn/src/utils/test/nth_element_bench/nth_element_bench.cpp
index c1c5a2382..6a2b15444 100644
--- a/src/rdsn/src/utils/test/nth_element_bench/nth_element_bench.cpp
+++ b/src/rdsn/src/utils/test/nth_element_bench/nth_element_bench.cpp
@@ -205,7 +205,7 @@ int main(int argc, char **argv)
std::vector<std::string> nth_strs;
dsn::utils::split_args(argv[4], nth_strs, ',');
for (const auto &s : nth_strs) {
- size_t nth;
+ uint64_t nth;
if (!dsn::buf2uint64(s, nth)) {
fmt::print(stderr, "Invalid nth number: {}\n\n", s);
@@ -224,7 +224,7 @@ int main(int argc, char **argv)
}
}
- run_bench(num_operations, array_size, range_size, nths);
+ run_bench(num_operations, static_cast<size_t>(array_size), range_size,
nths);
return 0;
}
diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt
index a02b005bd..1d153f82f 100644
--- a/thirdparty/CMakeLists.txt
+++ b/thirdparty/CMakeLists.txt
@@ -159,43 +159,52 @@ ExternalProject_Add(thrift
DEPENDS boost
)
-# kerberos
-ExternalProject_Add(krb5
- URL ${OSS_URL_PREFIX}/krb5-1.16.1.tar.gz
- http://web.mit.edu/kerberos/dist/krb5/1.16/krb5-1.16.1.tar.gz
- URL_MD5 848e9b80d6aaaa798e3f3df24b83c407
- CONFIGURE_COMMAND cd src && ./configure --prefix=${TP_OUTPUT}
- BUILD_COMMAND cd src && make
- INSTALL_COMMAND cd src && make install
- BUILD_IN_SOURCE 1
- )
-
-# cyrus-sasl
-ExternalProject_Add(cyrus-sasl
- URL ${OSS_URL_PREFIX}/cyrus-sasl-2.1.27.tar.gz
- http://www.cyrusimap.org/releases/cyrus-sasl-2.1.27.tar.gz
- URL_MD5 a33820c66e0622222c5aefafa1581083
- CONFIGURE_COMMAND ./configure --prefix=${TP_OUTPUT}
- --enable-gssapi=${TP_OUTPUT}
- --enable-scram=no
- --enable-digest=no
- --enable-cram=no
- --enable-otp=no
- BUILD_COMMAND make
- INSTALL_COMMAND make install
- BUILD_IN_SOURCE 1
- )
+if (NOT APPLE)
+ # kerberos
+ ExternalProject_Add(krb5
+ URL ${OSS_URL_PREFIX}/krb5-1.16.1.tar.gz
+ http://web.mit.edu/kerberos/dist/krb5/1.16/krb5-1.16.1.tar.gz
+ URL_MD5 848e9b80d6aaaa798e3f3df24b83c407
+ CONFIGURE_COMMAND cd src && ./configure --prefix=${TP_OUTPUT}
+ BUILD_COMMAND cd src && make
+ INSTALL_COMMAND cd src && make install
+ BUILD_IN_SOURCE 1
+ )
+
+ # cyrus-sasl
+ ExternalProject_Add(cyrus-sasl
+ URL ${OSS_URL_PREFIX}/cyrus-sasl-2.1.27.tar.gz
+ http://www.cyrusimap.org/releases/cyrus-sasl-2.1.27.tar.gz
+ URL_MD5 a33820c66e0622222c5aefafa1581083
+ CONFIGURE_COMMAND ./configure --prefix=${TP_OUTPUT}
+ --enable-gssapi=${TP_OUTPUT}
+ --enable-scram=no
+ --enable-digest=no
+ --enable-cram=no
+ --enable-otp=no
+ BUILD_COMMAND make
+ INSTALL_COMMAND make install
+ BUILD_IN_SOURCE 1
+ )
+endif()
check_cxx_compiler_flag(-Wformat-overflow COMPILER_SUPPORTS_FORMAT_OVERFLOW)
if (COMPILER_SUPPORTS_FORMAT_OVERFLOW)
set(ZOOKEEPER_CFLAGS -Wno-error=format-overflow)
endif ()
+
+if (NOT APPLE)
+ set(ZOOKEEPER_WITH_CYRUS_SASL ${TP_OUTPUT})
+else ()
+ set(ZOOKEEPER_WITH_CYRUS_SASL /usr/local/opt/cyrus-sasl/lib)
+endif ()
+
ExternalProject_Add(zookeeper
URL ${OSS_URL_PREFIX}/apache-zookeeper-3.7.0.tar.gz
http://downloads.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0.tar.gz
URL_MD5 44c2a33e01931aed94ef7f3d39d0963e
PATCH_COMMAND ""
- COMMAND cd zookeeper-jute && mvn compile && cd
../zookeeper-client/zookeeper-client-c && cmake -DCMAKE_BUILD_TYPE=release
-DWANT_CPPUNIT=OFF -WITH_OPENSSL=OFF -DWITH_CYRUS_SASL=${TP_OUTPUT}
-DCMAKE_INSTALL_PREFIX=${TP_OUTPUT}
+ COMMAND cd zookeeper-jute && mvn compile && cd
../zookeeper-client/zookeeper-client-c && cmake -DCMAKE_BUILD_TYPE=release
-DWANT_CPPUNIT=OFF -DWITH_OPENSSL=OFF
-DWITH_CYRUS_SASL=${ZOOKEEPER_WITH_CYRUS_SASL}
-DCMAKE_INSTALL_PREFIX=${TP_OUTPUT}
COMMAND cd zookeeper-client/zookeeper-client-c && make
COMMAND cp -R zookeeper-client/zookeeper-client-c/include/.
${TP_OUTPUT}/include/zookeeper && cp
zookeeper-client/zookeeper-client-c/generated/zookeeper.jute.h
${TP_OUTPUT}/include/zookeeper && cp
zookeeper-client/zookeeper-client-c/libzookeeper.a ${TP_OUTPUT}/lib && cp
zookeeper-client/zookeeper-client-c/libhashtable.a ${TP_OUTPUT}/lib
CONFIGURE_COMMAND ""
@@ -203,12 +212,15 @@ ExternalProject_Add(zookeeper
INSTALL_COMMAND ""
BUILD_IN_SOURCE 1
)
-add_dependencies(zookeeper cyrus-sasl krb5)
+if (NOT APPLE)
+ add_dependencies(zookeeper cyrus-sasl krb5)
+endif ()
ExternalProject_Add(libevent
URL ${OSS_URL_PREFIX}/libevent-release-2.1.8-stable.tar.gz
https://github.com/libevent/libevent/archive/release-2.1.8-stable.tar.gz
URL_MD5 80f8652e4b08d2ec86a5f5eb46b74510
+ PATCH_COMMAND patch -p1 < ${TP_DIR}/fix_libevent_for_macos.patch
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${TP_OUTPUT}
-DEVENT__DISABLE_DEBUG_MODE=On
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
diff --git a/thirdparty/fix_libevent_for_macos.patch
b/thirdparty/fix_libevent_for_macos.patch
new file mode 100644
index 000000000..b0e8dbc29
--- /dev/null
+++ b/thirdparty/fix_libevent_for_macos.patch
@@ -0,0 +1,39 @@
+diff --git a/cmake/VersionViaGit.cmake b/cmake/VersionViaGit.cmake
+index a9882d8a..043458d0 100644
+--- a/cmake/VersionViaGit.cmake
++++ b/cmake/VersionViaGit.cmake
+@@ -19,8 +19,6 @@
+ # message(" stage=${EVENT_GIT___VERSION_STAGE}")
+ # endif()
+
+-include(FindGit)
+-
+ macro(event_fuzzy_version_from_git)
+ set(EVENT_GIT___VERSION_FOUND FALSE)
+
+@@ -29,25 +27,4 @@ macro(event_fuzzy_version_from_git)
+ set(EVENT_GIT___VERSION_MINOR 1)
+ set(EVENT_GIT___VERSION_PATCH 8)
+ set(EVENT_GIT___VERSION_STAGE "beta")
+-
+- find_package(Git)
+-
+- if (GIT_FOUND)
+- execute_process(
+- COMMAND
+- ${GIT_EXECUTABLE} describe --abbrev=0
+- WORKING_DIRECTORY
+- ${PROJECT_SOURCE_DIR}
+- RESULT_VARIABLE
+- GITRET
+- OUTPUT_VARIABLE
+- GITVERSION)
+-
+- if (GITRET EQUAL 0)
+- string(REGEX REPLACE
"^release-([0-9]+)\\.([0-9]+)\\.([0-9]+)-(.*)" "\\1"
EVENT_GIT___VERSION_MAJOR ${GITVERSION})
+- string(REGEX REPLACE
"^release-([0-9]+)\\.([0-9]+)\\.([0-9]+)-(.*)" "\\2"
EVENT_GIT___VERSION_MINOR ${GITVERSION})
+- string(REGEX REPLACE
"^release-([0-9]+)\\.([0-9]+)\\.([0-9]+)-(.*)" "\\3"
EVENT_GIT___VERSION_PATCH ${GITVERSION})
+- string(REGEX REPLACE
"^release-([0-9]+)\\.([0-9]+)\\.([0-9]+)-([aA-zZ]+)" "\\4"
EVENT_GIT___VERSION_STAGE ${GITVERSION})
+- endif()
+- endif()
+ endmacro()
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]