corningsun opened a new issue, #785: URL: https://github.com/apache/incubator-kvrocks/issues/785
### Search before asking - [X] I had searched in the [issues](https://github.com/apache/incubator-kvrocks/issues) and found no similar issues. ### Version V2.1 `git clone [email protected]:apache/incubator-kvrocks.git -b 2.1` ### Minimal reproduce step # upgrade cmake2 to cmake3 yum remove cmake -y wget https://cmake.org/files/v3.24/cmake-3.24.0-linux-x86_64.tar.gz tar -zxvf cmake-3.24.1.tar.gz cd cmake-3.24.1 yum install -y openssl-devel ./configure --prefix=/usr/local/cmake make && make install ln -s /usr/local/cmake/bin/cmake /usr/bin/cmake cmake -version # build kvrocks 2.1 git clone [email protected]:apache/incubator-kvrocks.git -b 2.1 cd incubator-kvrocks/ yum install -y epel-release yum install -y git gcc gcc-c++ make cmake autoconf automake libtool which yum install -y libunwind-devel nohup ./x.py build --ghproxy > build.log 2>&1 & ### What did you expect to see? build success ### What did you see instead? * build.log ``` nohup: ignoring input CMake Warning (dev) at /usr/local/cmake/share/cmake-3.24/Modules/FetchContent.cmake:1264 (message): The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is not set. The policy's OLD behavior will be used. When using a URL download, the timestamps of extracted files should preferably be that of the time of extraction, otherwise code that depends on the extracted contents might not be rebuilt if the URL changes. The OLD behavior preserves the timestamps from the archive instead, but this is usually not what you want. Update your project to the NEW behavior or specify the DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this robustness issue. Call Stack (most recent call first): cmake/utils.cmake:48 (FetchContent_Declare) cmake/utils.cmake:55 (FetchContent_DeclareWithMirror) cmake/jemalloc.cmake:22 (FetchContent_DeclareGitHubWithMirror) CMakeLists.txt:50 (include) This warning is for project developers. Use -Wno-dev to suppress it. configure: loading cache config.cache configure: error: `CC' has changed since the previous run: configure: former value: `' configure: current value: `/usr/bin/cc' configure: error: `CXX' was set to `/usr/bin/c++' in the previous run configure: error: in `/root/incubator-kvrocks/build/_deps/jemalloc-build': configure: error: changes in the environment can compromise the build configure: error: run `make distclean' and/or `rm config.cache' and start over CMake Warning (dev) at /usr/local/cmake/share/cmake-3.24/Modules/FetchContent.cmake:1264 (message): The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is not set. The policy's OLD behavior will be used. When using a URL download, the timestamps of extracted files should preferably be that of the time of extraction, otherwise code that depends on the extracted contents might not be rebuilt if the URL changes. The OLD behavior preserves the timestamps from the archive instead, but this is usually not what you want. Update your project to the NEW behavior or specify the DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this robustness issue. Call Stack (most recent call first): cmake/utils.cmake:48 (FetchContent_Declare) cmake/utils.cmake:55 (FetchContent_DeclareWithMirror) cmake/gtest.cmake:22 (FetchContent_DeclareGitHubWithMirror) CMakeLists.txt:56 (include) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/local/cmake/share/cmake-3.24/Modules/FetchContent.cmake:1264 (message): The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is not set. The policy's OLD behavior will be used. When using a URL download, the timestamps of extracted files should preferably be that of the time of extraction, otherwise code that depends on the extracted contents might not be rebuilt if the URL changes. The OLD behavior preserves the timestamps from the archive instead, but this is usually not what you want. Update your project to the NEW behavior or specify the DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this robustness issue. Call Stack (most recent call first): cmake/utils.cmake:48 (FetchContent_Declare) cmake/utils.cmake:55 (FetchContent_DeclareWithMirror) cmake/glog.cmake:22 (FetchContent_DeclareGitHubWithMirror) CMakeLists.txt:57 (include) This warning is for project developers. Use -Wno-dev to suppress it. -- Found Unwind: /usr/include (found version "1.2") CMake Warning (dev) at /usr/local/cmake/share/cmake-3.24/Modules/FetchContent.cmake:1264 (message): The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is not set. The policy's OLD behavior will be used. When using a URL download, the timestamps of extracted files should preferably be that of the time of extraction, otherwise code that depends on the extracted contents might not be rebuilt if the URL changes. The OLD behavior preserves the timestamps from the archive instead, but this is usually not what you want. Update your project to the NEW behavior or specify the DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this robustness issue. Call Stack (most recent call first): cmake/utils.cmake:48 (FetchContent_Declare) cmake/utils.cmake:55 (FetchContent_DeclareWithMirror) cmake/snappy.cmake:22 (FetchContent_DeclareGitHubWithMirror) CMakeLists.txt:58 (include) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/local/cmake/share/cmake-3.24/Modules/FetchContent.cmake:1264 (message): The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is not set. The policy's OLD behavior will be used. When using a URL download, the timestamps of extracted files should preferably be that of the time of extraction, otherwise code that depends on the extracted contents might not be rebuilt if the URL changes. The OLD behavior preserves the timestamps from the archive instead, but this is usually not what you want. Update your project to the NEW behavior or specify the DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this robustness issue. Call Stack (most recent call first): cmake/utils.cmake:48 (FetchContent_Declare) cmake/utils.cmake:55 (FetchContent_DeclareWithMirror) cmake/lz4.cmake:22 (FetchContent_DeclareGitHubWithMirror) CMakeLists.txt:59 (include) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/local/cmake/share/cmake-3.24/Modules/FetchContent.cmake:1264 (message): The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is not set. The policy's OLD behavior will be used. When using a URL download, the timestamps of extracted files should preferably be that of the time of extraction, otherwise code that depends on the extracted contents might not be rebuilt if the URL changes. The OLD behavior preserves the timestamps from the archive instead, but this is usually not what you want. Update your project to the NEW behavior or specify the DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this robustness issue. Call Stack (most recent call first): cmake/utils.cmake:48 (FetchContent_Declare) cmake/utils.cmake:55 (FetchContent_DeclareWithMirror) cmake/rocksdb.cmake:28 (FetchContent_DeclareGitHubWithMirror) CMakeLists.txt:60 (include) This warning is for project developers. Use -Wno-dev to suppress it. -- Found JeMalloc in /root/incubator-kvrocks/build/_deps/jemalloc-src -- Found Snappy in /root/incubator-kvrocks/build/_deps/snappy-src -- Found lz4 in /root/incubator-kvrocks/build/_deps/lz4-src -- Could NOT find uring (missing: uring_LIBRARIES uring_INCLUDE_DIR) -- Enabling RTTI -- ROCKSDB_PLUGINS: -- JNI library is disabled CMake Warning (dev) at /usr/local/cmake/share/cmake-3.24/Modules/FetchContent.cmake:1264 (message): The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is not set. The policy's OLD behavior will be used. When using a URL download, the timestamps of extracted files should preferably be that of the time of extraction, otherwise code that depends on the extracted contents might not be rebuilt if the URL changes. The OLD behavior preserves the timestamps from the archive instead, but this is usually not what you want. Update your project to the NEW behavior or specify the DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this robustness issue. Call Stack (most recent call first): cmake/utils.cmake:48 (FetchContent_Declare) cmake/utils.cmake:55 (FetchContent_DeclareWithMirror) cmake/libevent.cmake:22 (FetchContent_DeclareGitHubWithMirror) CMakeLists.txt:61 (include) This warning is for project developers. Use -Wno-dev to suppress it. -- Found Git: /usr/bin/git CMake Warning at build/_deps/libevent-src/CMakeLists.txt:1492 (message): The doxygen target will not support since doxygen command was not found! -- -- ---( Libevent 2.1.11-stable )--- -- -- Available event backends: -- CMAKE_BINARY_DIR: /root/incubator-kvrocks/build -- CMAKE_CURRENT_BINARY_DIR: /root/incubator-kvrocks/build/_deps/libevent-build -- CMAKE_SOURCE_DIR: /root/incubator-kvrocks -- CMAKE_CURRENT_SOURCE_DIR: /root/incubator-kvrocks/build/_deps/libevent-src -- PROJECT_BINARY_DIR: /root/incubator-kvrocks/build/_deps/libevent-build -- PROJECT_SOURCE_DIR: /root/incubator-kvrocks/build/_deps/libevent-src -- CMAKE_MODULE_PATH: /root/incubator-kvrocks/build/_deps/libevent-src/cmake/ -- CMAKE_COMMAND: /usr/local/cmake/bin/cmake -- CMAKE_ROOT: /usr/local/cmake/share/cmake-3.24 -- CMAKE_SYSTEM: Linux-3.10.0-1127.19.1.el7.x86_64 -- CMAKE_SYSTEM_NAME: Linux -- CMAKE_SYSTEM_VERSION: 3.10.0-1127.19.1.el7.x86_64 -- CMAKE_SYSTEM_PROCESSOR: x86_64 -- CMAKE_SKIP_RPATH: NO -- CMAKE_VERBOSE_MAKEFILE: FALSE -- CMAKE_C_FLAGS: -Wall -Wextra -Wno-unused-parameter -Wstrict-aliasing -Wstrict-prototypes -fno-strict-aliasing -Wmissing-prototypes -Winit-self -Wmissing-field-initializers -Wdeclaration-after-statement -Waddress -Wnormalized=id -Woverride-init -Wlogical-op -Wwrite-strings -- CMAKE_BUILD_TYPE: RelWithDebInfo -- CMAKE_C_COMPILER: /usr/bin/cc (id GNU, clang 0, GNUC 1) -- CMAKE_AR: /usr/bin/ar -- CMAKE_RANLIB: /usr/bin/ranlib -- CMake Warning (dev) at /usr/local/cmake/share/cmake-3.24/Modules/FetchContent.cmake:1264 (message): The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is not set. The policy's OLD behavior will be used. When using a URL download, the timestamps of extracted files should preferably be that of the time of extraction, otherwise code that depends on the extracted contents might not be rebuilt if the URL changes. The OLD behavior preserves the timestamps from the archive instead, but this is usually not what you want. Update your project to the NEW behavior or specify the DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this robustness issue. Call Stack (most recent call first): cmake/utils.cmake:48 (FetchContent_Declare) cmake/utils.cmake:55 (FetchContent_DeclareWithMirror) cmake/lua.cmake:22 (FetchContent_DeclareGitHubWithMirror) CMakeLists.txt:62 (include) This warning is for project developers. Use -Wno-dev to suppress it. -- Found Git: /usr/bin/git (found version "1.8.3.1") CMake Error at CMakeLists.txt:91 (message): cannot find static library of libstdc++, please add ENABLE_STATIC_LIBSTDCXX=OFF to disable -- Configuring incomplete, errors occurred! See also "/root/incubator-kvrocks/build/CMakeFiles/CMakeOutput.log". See also "/root/incubator-kvrocks/build/CMakeFiles/CMakeError.log". Traceback (most recent call last): File "./x.py", line 221, in <module> args.func(args) File "./x.py", line 105, in build run([cmake, basedir, *cmake_options]) File "./x.py", line 60, in run raise RuntimeError(err) RuntimeError: failed to run: ['/usr/bin/cmake', PosixPath('/root/incubator-kvrocks'), '-DCMAKE_BUILD_TYPE=RelWithDebInfo', '-DDEPS_FETCH_PROXY=https://ghproxy.com/'] exit with code: 1 error message: None ``` ### Anything Else? * CMakeError.log ``` Performing C SOURCE FILE Test EVENT__HAVE_STRUCT_SOCKADDR_IN_SIN_LEN failed with the following output: Change Dir: /root/incubator-kvrocks/build/CMakeFiles/CMakeTmp Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_4b3e1/fast && /usr/bin/gmake -f CMakeFiles/cmTC_4b3e1.dir/build.make CMakeFiles/cmTC_4b3e1.dir/build gmake[1]: Entering directory `/root/incubator-kvrocks/build/CMakeFiles/CMakeTmp' Building C object CMakeFiles/cmTC_4b3e1.dir/src.c.o /usr/bin/cc -DEVENT__HAVE_STRUCT_SOCKADDR_IN_SIN_LEN -Wall -Wextra -Wno-unused-parameter -Wstrict-aliasing -Wstrict-prototypes -fno-strict-aliasing -Wmissing-prototypes -Winit-self -Wmissing-field-initializers -Wdeclaration-after-statement -Waddress -Wnormalized=id -Woverride-init -Wlogical-op -Wwrite-strings -o CMakeFiles/cmTC_4b3e1.dir/src.c.o -c /root/incubator-kvrocks/build/CMakeFiles/CMakeTmp/src.c /root/incubator-kvrocks/build/CMakeFiles/CMakeTmp/src.c:6:5: warning: function declaration isn’t a prototype [-Wstrict-prototypes] int main() ^ /root/incubator-kvrocks/build/CMakeFiles/CMakeTmp/src.c: In function ‘main’: /root/incubator-kvrocks/build/CMakeFiles/CMakeTmp/src.c:8:42: error: ‘struct sockaddr_in6’ has no member named ‘sin_len’ (void)sizeof(((struct sockaddr_in6 *)0)->sin_len); ^ gmake[1]: *** [CMakeFiles/cmTC_4b3e1.dir/src.c.o] Error 1 gmake[1]: Leaving directory `/root/incubator-kvrocks/build/CMakeFiles/CMakeTmp' gmake: *** [cmTC_4b3e1/fast] Error 2 Source file was: #include <netinet/in.h> #include <sys/socket.h> #include <netdb.h> int main() { (void)sizeof(((struct sockaddr_in6 *)0)->sin_len); return 0; } Performing C SOURCE FILE Test EVENT__HAVE_STRUCT_SOCKADDR_STORAGE___SS_FAMILY failed with the following output: Change Dir: /root/incubator-kvrocks/build/CMakeFiles/CMakeTmp Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_fa186/fast && /usr/bin/gmake -f CMakeFiles/cmTC_fa186.dir/build.make CMakeFiles/cmTC_fa186.dir/build gmake[1]: Entering directory `/root/incubator-kvrocks/build/CMakeFiles/CMakeTmp' Building C object CMakeFiles/cmTC_fa186.dir/src.c.o /usr/bin/cc -DEVENT__HAVE_STRUCT_SOCKADDR_STORAGE___SS_FAMILY -Wall -Wextra -Wno-unused-parameter -Wstrict-aliasing -Wstrict-prototypes -fno-strict-aliasing -Wmissing-prototypes -Winit-self -Wmissing-field-initializers -Wdeclaration-after-statement -Waddress -Wnormalized=id -Woverride-init -Wlogical-op -Wwrite-strings -o CMakeFiles/cmTC_fa186.dir/src.c.o -c /root/incubator-kvrocks/build/CMakeFiles/CMakeTmp/src.c /root/incubator-kvrocks/build/CMakeFiles/CMakeTmp/src.c:6:5: warning: function declaration isn’t a prototype [-Wstrict-prototypes] int main() ^ /root/incubator-kvrocks/build/CMakeFiles/CMakeTmp/src.c: In function ‘main’: /root/incubator-kvrocks/build/CMakeFiles/CMakeTmp/src.c:8:46: error: ‘struct sockaddr_storage’ has no member named ‘__ss_family’ (void)sizeof(((struct sockaddr_storage *)0)->__ss_family); ^ gmake[1]: *** [CMakeFiles/cmTC_fa186.dir/src.c.o] Error 1 gmake[1]: Leaving directory `/root/incubator-kvrocks/build/CMakeFiles/CMakeTmp' gmake: *** [cmTC_fa186/fast] Error 2 Source file was: #include <netinet/in.h> #include <sys/socket.h> #include <netdb.h> int main() { (void)sizeof(((struct sockaddr_storage *)0)->__ss_family); return 0; } ``` ### Are you willing to submit a PR? - [ ] I'm willing to submit a PR! -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
