microsoft / vcpkg

C++ Library Manager for Windows, Linux, and MacOS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[libmodbus] Build error on x64-linux

balamuruganky opened this issue · comments

Copy issue body from /root/build/build/.vcpkg/installed/vcpkg/issue_body.md

Package: libmodbus:x64-linux@3.1.10

Host Environment

  • Host: x64-linux
  • Compiler: GNU 4.8.5
  • vcpkg-tool version: 2024-04-23-d6945642ee5c3076addd1a42c331bbf4cfc97457
    vcpkg-scripts version: b323a59 2024-05-07 (12 hours ago)

To Reproduce

vcpkg install libmodbus

Failure logs

-- Downloading https://github.com/stephane/libmodbus/archive/v3.1.10.tar.gz -> stephane-libmodbus-v3.1.10.tar.gz...
-- Extracting source /root/build/build/.vcpkg/downloads/stephane-libmodbus-v3.1.10.tar.gz
-- Applying patch fix-static-linkage.patch
-- Using source at /root/build/build/.vcpkg/buildtrees/libmodbus/src/v3.1.10-48a62997ab.clean
-- Configuring x64-linux
-- Building x64-linux-dbg
CMake Error at scripts/cmake/vcpkg_execute_build_process.cmake:134 (message):
    Command failed: /root/build/build/.vcpkg/downloads/tools/cmake-3.29.2-linux/cmake-3.29.2-linux-x86_64/bin/cmake --build . --config Debug --target install -- -v -j7
    Working Directory: /root/build/build/.vcpkg/buildtrees/libmodbus/x64-linux-dbg
    See logs for more information:
      /root/build/build/.vcpkg/buildtrees/libmodbus/install-x64-linux-dbg-out.log

Call Stack (most recent call first):
  installed/x64-linux/share/vcpkg-cmake/vcpkg_cmake_build.cmake:74 (vcpkg_execute_build_process)
  installed/x64-linux/share/vcpkg-cmake/vcpkg_cmake_install.cmake:16 (vcpkg_cmake_build)
  ports/libmodbus/portfile.cmake:20 (vcpkg_cmake_install)
  scripts/ports.cmake:175 (include)



/root/build/build/.vcpkg/buildtrees/libmodbus/install-x64-linux-dbg-out.log
Change Dir: '/root/build/build/.vcpkg/buildtrees/libmodbus/x64-linux-dbg'

Run Build Command(s): /root/build/build/.vcpkg/downloads/tools/ninja/1.10.2-linux/ninja -v -v -j7 install
[1/6] /usr/bin/cc  -I/root/build/build/.vcpkg/buildtrees/libmodbus/x64-linux-dbg -fPIC -g -DLIBBUILD=ON -D_GNU_SOURCE -MD -MT CMakeFiles/modbus.dir/src/modbus.c.o -MF CMakeFiles/modbus.dir/src/modbus.c.o.d -o CMakeFiles/modbus.dir/src/modbus.c.o -c /root/build/build/.vcpkg/buildtrees/libmodbus/src/v3.1.10-48a62997ab.clean/src/modbus.c
FAILED: CMakeFiles/modbus.dir/src/modbus.c.o
/usr/bin/cc  -I/root/build/build/.vcpkg/buildtrees/libmodbus/x64-linux-dbg -fPIC -g -DLIBBUILD=ON -D_GNU_SOURCE -MD -MT CMakeFiles/modbus.dir/src/modbus.c.o -MF CMakeFiles/modbus.dir/src/modbus.c.o.d -o CMakeFiles/modbus.dir/src/modbus.c.o -c /root/build/build/.vcpkg/buildtrees/libmodbus/src/v3.1.10-48a62997ab.clean/src/modbus.c
/root/build/build/.vcpkg/buildtrees/libmodbus/src/v3.1.10-48a62997ab.clean/src/modbus.c: In function ‘read_io_status’:
/root/build/build/.vcpkg/buildtrees/libmodbus/src/v3.1.10-48a62997ab.clean/src/modbus.c:1202:9: error: ‘for’ loop initial declarations are only allowed in C99 mode
         for (unsigned int i = offset; i < offset_end; i++) {
         ^
/root/build/build/.vcpkg/buildtrees/libmodbus/src/v3.1.10-48a62997ab.clean/src/modbus.c:1202:9: note: use option -std=c99 or -std=gnu99 to compile your code

[2/6] /usr/bin/cc  -I/root/build/build/.vcpkg/buildtrees/libmodbus/x64-linux-dbg -fPIC -g -DLIBBUILD=ON -D_GNU_SOURCE -MD -MT CMakeFiles/modbus.dir/src/modbus-data.c.o -MF CMakeFiles/modbus.dir/src/modbus-data.c.o.d -o CMakeFiles/modbus.dir/src/modbus-data.c.o -c /root/build/build/.vcpkg/buildtrees/libmodbus/src/v3.1.10-48a62997ab.clean/src/modbus-data.c
[3/6] /usr/bin/cc  -I/root/build/build/.vcpkg/buildtrees/libmodbus/x64-linux-dbg -fPIC -g -DLIBBUILD=ON -D_GNU_SOURCE -MD -MT CMakeFiles/modbus.dir/src/modbus-rtu.c.o -MF CMakeFiles/modbus.dir/src/modbus-rtu.c.o.d -o CMakeFiles/modbus.dir/src/modbus-rtu.c.o -c /root/build/build/.vcpkg/buildtrees/libmodbus/src/v3.1.10-48a62997ab.clean/src/modbus-rtu.c
[4/6] /usr/bin/cc  -I/root/build/build/.vcpkg/buildtrees/libmodbus/x64-linux-dbg -fPIC -g -DLIBBUILD=ON -D_GNU_SOURCE -MD -MT CMakeFiles/modbus.dir/src/modbus-tcp.c.o -MF CMakeFiles/modbus.dir/src/modbus-tcp.c.o.d -o CMakeFiles/modbus.dir/src/modbus-tcp.c.o -c /root/build/build/.vcpkg/buildtrees/libmodbus/src/v3.1.10-48a62997ab.clean/src/modbus-tcp.c
ninja: build stopped: subcommand failed.

I'm unable to reproduce this issue locally. It seems that the problem arises from the older version of the compiler you're using. You might want to try using a more recent version of GNU compiler.

I am on CentOS 7. I switched to other version. All good now. Thank you.