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]

Reply via email to