Skip to content

cmake MSYS2 compile error for poco/net project #4018

@srebrnyp

Description

@srebrnyp

Host Environment:
*Host: x64-windows
*Compiler: GNU 12.2.0

I have compile issues when trying to compile poco under mingw/msys2 env under vcpkg manager.

After isolating problem for Net library:
cmake configuration:
-DPOCO_UNBUNDLED=ON # Define linking feature -DPOCO_MT=${POCO_MT} -DENABLE_TESTS=OFF # Allow enabling and disabling components -DENABLE_ENCODINGS=ON -DENABLE_ENCODINGS_COMPILER=OFF -DENABLE_XML=ON -DENABLE_JSON=ON -DENABLE_MONGODB=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_DATA_SQLITE=OFF -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_ODBC=OFF -DENABLE_REDIS=OFF -DENABLE_UTIL=ON -DENABLE_NET=OFF -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=ON -DENABLE_PROMETHEUS=OFF -DENABLE_ACTIVERECORD_COMPILER=OFF -DENABLE_ACTIVERECORD=OFF -DENABLE_SEVENZIP=OFF -DENABLE_ZIP=ON -DENABLE_CPPPARSER=ON -DENABLE_POCODOC=ON -DENABLE_PAGECOMPILER=OFF -DENABLE_PAGECOMPILER_FILE2PAGE=OFF -DPOCO_DISABLE_INTERNAL_OPENSSL=ON -DENABLE_APACHECONNECTOR=OFF

This is my change to original config: https://github.com/microsoft/vcpkg/blob/master/ports/poco/portfile.cmake
(just disable more components - not needed at the moment)

This is config output:

[1/1] "C:/Program Files/CMake/bin/cmake.exe" -E chdir ".." "C:/Program Files/CMake/bin/cmake.exe" "C:/msys64/home/psrebrny/one/bt/poco/src/cd25ece3b9-a268e1a6d9.clean" "-G" "Ninja" "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX=C:/msys64/home/psrebrny/one/packages/poco_x64-mingw" "-DFETCHCONTENT_FULLY_DISCONNECTED=ON" "-DENABLE_CRYPTO=OFF" "-DENABLE_NETSSL=OFF" "-DENABLE_PDF=OFF" "-DENABLE_DATA_SQLITE=OFF" "-DENABLE_DATA_POSTGRESQL=OFF" "-DPOCO_UNBUNDLED=ON" "-DPOCO_MT=0" "-DENABLE_TESTS=OFF" "-DENABLE_ENCODINGS=ON" "-DENABLE_ENCODINGS_COMPILER=OFF" "-DENABLE_XML=ON" "-DENABLE_JSON=ON" "-DENABLE_MONGODB=OFF" "-DENABLE_DATA_POSTGRESQL=OFF" "-DENABLE_DATA_SQLITE=OFF" "-DENABLE_DATA_MYSQL=OFF" "-DENABLE_DATA_ODBC=OFF" "-DENABLE_REDIS=OFF" "-DENABLE_UTIL=ON" "-DENABLE_NET=ON" "-DENABLE_NETSSL=OFF" "-DENABLE_CRYPTO=ON" "-DENABLE_PROMETHEUS=OFF" "-DENABLE_ACTIVERECORD_COMPILER=OFF" "-DENABLE_ACTIVERECORD=OFF" "-DENABLE_SEVENZIP=OFF" "-DENABLE_ZIP=ON" "-DENABLE_CPPPARSER=ON" "-DENABLE_POCODOC=ON" "-DENABLE_PAGECOMPILER=OFF" "-DENABLE_PAGECOMPILER_FILE2PAGE=OFF" "-DPOCO_DISABLE_INTERNAL_OPENSSL=ON" "-DENABLE_APACHECONNECTOR=OFF" "-DCMAKE_MAKE_PROGRAM=C:/msys64/home/psrebrny/one/downloads/tools/ninja/1.10.2-windows/ninja.exe" "-DCMAKE_SYSTEM_NAME=MinGW" "-DBUILD_SHARED_LIBS=ON" "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=C:/msys64/home/psrebrny/one/scripts/toolchains/mingw.cmake" "-DVCPKG_TARGET_TRIPLET=x64-mingw" "-DVCPKG_SET_CHARSET_FLAG=ON" "-DVCPKG_PLATFORM_TOOLSET=external" "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON" "-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DVCPKG_APPLOCAL_DEPS=OFF" "-DCMAKE_TOOLCHAIN_FILE=C:/msys64/home/psrebrny/one/scripts/buildsystems/vcpkg.cmake" "-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON" "-DVCPKG_CXX_FLAGS=-std=gnu++20 -m64" "-DVCPKG_CXX_FLAGS_RELEASE=" "-DVCPKG_CXX_FLAGS_DEBUG=" "-DVCPKG_C_FLAGS=-m64" "-DVCPKG_C_FLAGS_RELEASE=" "-DVCPKG_C_FLAGS_DEBUG=" "-DVCPKG_CRT_LINKAGE=dynamic" "-DVCPKG_LINKER_FLAGS=" "-DVCPKG_LINKER_FLAGS_RELEASE=" "-DVCPKG_LINKER_FLAGS_DEBUG=" "-DVCPKG_TARGET_ARCHITECTURE=x64" "-DCMAKE_INSTALL_LIBDIR:STRING=lib" "-DCMAKE_INSTALL_BINDIR:STRING=bin" "-D_VCPKG_ROOT_DIR=C:/msys64/home/psrebrny/one" "-D_VCPKG_INSTALLED_DIR=C:/msys64/home/psrebrny/one/onespin/2023.2/install" "-DVCPKG_MANIFEST_INSTALL=OFF"
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/msys64/mingw64/bin/x86_64-w64-mingw32-gcc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/msys64/mingw64/bin/x86_64-w64-mingw32-g++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Checking for C++14 compiler
-- Checking for C++14 compiler - available
-- Found message compiler: C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x64/mc.exe
-- Found OpenSSL: C:/msys64/home/psrebrny/one/onespin/2023.2/install/x64-mingw/lib/libcrypto.dll.a (found version "3.0.7")  
-- Could NOT find APR (missing: APR_INCLUDE_DIR APR_LIBRARY) 
-- Could NOT find APRUTIL (missing: APRUTIL_INCLUDE_DIR APRUTIL_LIBRARY) 
-- Could NOT find Apache2 (missing: APACHE2_INCLUDE_DIR) 
-- Found ODBC: C:/msys64/mingw64/lib/libodbc32.a  
-- Building without tests & samples
-- Using external sqlite, zlib, pcre2, expat, ...
-- Found ZLIB: C:/msys64/home/psrebrny/one/onespin/2023.2/install/x64-mingw/lib/libzlib.dll.a (found version "1.2.13") 
-- CMake 3.25.1 successfully configured Poco using Ninja generator
-- Poco package version: 1.12.4
-- Building dynamic libraries
-- [cmake] Installation target path: C:/msys64/home/psrebrny/one/packages/poco_x64-mingw
-- [cmake] Use toolchain file:		C:/msys64/home/psrebrny/one/scripts/buildsystems/vcpkg.cmake
-- [cmake] Build for OS type:      Windows
-- [cmake] Build for OS version:   
-- [cmake] Build for CPU type:     x86_64
-- [cmake] Build type:             Release
-- [cmake] Build with cxx flags:   -O3 -DNDEBUG -std=gnu++20 -m64
-- [cmake] Build with c flags:     -O3 -DNDEBUG -m64
-- Building: Encodings
-- Building: XML
-- Building: JSON
-- Building: Util
-- Building: Net
-- Building: JWT
-- Building: Crypto
-- Building: Zip
-- Building: CppParser
-- Building: PocoDoc
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    FETCHCONTENT_FULLY_DISCONNECTED
    POCO_MT
    VCPKG_PLATFORM_TOOLSET
    VCPKG_SET_CHARSET_FLAG
    _VCPKG_ROOT_DIR


-- Build files have been written to: C:/msys64/home/psrebrny/one/bt/poco/x64-mingw-rel

And the compile errors:

C:\msys64\mingw64\bin\x86_64-w64-mingw32-g++.exe -DNet_EXPORTS -DPOCO_ENABLE_CPP11 -DPOCO_ENABLE_CPP14 -DPOCO_NO_AUTOMATIC_LIBS -DPOCO_OS_FAMILY_WINDOWS -DPOCO_UNBUNDLED -DUNICODE -D_UNICODE -IC:/msys64/home/psrebrny/one/bt/poco/src/cd25ece3b9-a268e1a6d9.clean/Net/include -IC:/msys64/home/psrebrny/one/bt/poco/src/cd25ece3b9-a268e1a6d9.clean/Net/src -IC:/msys64/home/psrebrny/one/bt/poco/src/cd25ece3b9-a268e1a6d9.clean/Foundation/include -isystem C:/msys64/home/psrebrny/one/onespin/2023.2/install/x64-mingw/include -std=gnu++20 -m64 -O3 -DNDEBUG -std=gnu++14 -MD -MT Net/CMakeFiles/Net.dir/src/PollSet.cpp.obj -MF Net\CMakeFiles\Net.dir\src\PollSet.cpp.obj.d -o Net/CMakeFiles/Net.dir/src/PollSet.cpp.obj -c C:/msys64/home/psrebrny/one/bt/poco/src/cd25ece3b9-a268e1a6d9.clean/Net/src/PollSet.cpp
C:/msys64/home/psrebrny/one/bt/poco/src/cd25ece3b9-a268e1a6d9.clean/Net/src/PollSet.cpp: In destructor 'Poco::Net::PollSetImpl::~PollSetImpl()':
C:/msys64/home/psrebrny/one/bt/poco/src/cd25ece3b9-a268e1a6d9.clean/Net/src/PollSet.cpp:94:30: error: ordered comparison of pointer with integer zero ('std::atomic<void*>::__pointer_type' {aka 'void*'} and 'int')
   94 |                 if (_epollfd >= 0) close(_epollfd);
      |                     ~~~~~~~~~^~~~
C:/msys64/home/psrebrny/one/bt/poco/src/cd25ece3b9-a268e1a6d9.clean/Net/src/PollSet.cpp: In member function 'void Poco::Net::PollSetImpl::clear()':
C:/msys64/home/psrebrny/one/bt/poco/src/cd25ece3b9-a268e1a6d9.clean/Net/src/PollSet.cpp:149:38: error: ordered comparison of pointer with integer zero ('std::atomic<void*>::__pointer_type' {aka 'void*'} and 'int')
  149 |                         if (_epollfd < 0) SocketImpl::error();
      |                             ~~~~~~~~~^~~
C:\msys64\mingw64\bin\x86_64-w64-mingw32-g++.exe -DNet_EXPORTS -DPOCO_ENABLE_CPP11 -DPOCO_ENABLE_CPP14 -DPOCO_NO_AUTOMATIC_LIBS -DPOCO_OS_FAMILY_WINDOWS -DPOCO_UNBUNDLED -DUNICODE -D_UNICODE -IC:/msys64/home/psrebrny/one/bt/poco/src/cd25ece3b9-a268e1a6d9.clean/Net/include -IC:/msys64/home/psrebrny/one/bt/poco/src/cd25ece3b9-a268e1a6d9.clean/Net/src -IC:/msys64/home/psrebrny/one/bt/poco/src/cd25ece3b9-a268e1a6d9.clean/Foundation/include -isystem C:/msys64/home/psrebrny/one/onespin/2023.2/install/x64-mingw/include -std=gnu++20 -m64 -O3 -DNDEBUG -std=gnu++14 -MD -MT Net/CMakeFiles/Net.dir/src/SocketImpl.cpp.obj -MF Net\CMakeFiles\Net.dir\src\SocketImpl.cpp.obj.d -o Net/CMakeFiles/Net.dir/src/SocketImpl.cpp.obj -c C:/msys64/home/psrebrny/one/bt/poco/src/cd25ece3b9-a268e1a6d9.clean/Net/src/SocketImpl.cpp
C:/msys64/home/psrebrny/one/bt/poco/src/cd25ece3b9-a268e1a6d9.clean/Net/src/SocketImpl.cpp: In member function 'virtual bool Poco::Net::SocketImpl::poll(const Poco::Timespan&, int)':
C:/msys64/home/psrebrny/one/bt/poco/src/cd25ece3b9-a268e1a6d9.clean/Net/src/SocketImpl.cpp:649:21: error: ordered comparison of pointer with integer zero ('HANDLE' {aka 'void*'} and 'int')
  649 |         if (epollfd < 0)
      |             ~~~~~~~~^~~

Any ideas how can i solve that issue?

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Relationships

None yet

Development

No branches or pull requests

Issue actions