warzone2100 icon indicating copy to clipboard operation
warzone2100 copied to clipboard

4.4.2: build fails

Open kloczek opened this issue 1 year ago • 7 comments

I'm not sure is it caused by use gcc 14 (cementy it is available in fedora rawhide). Nevertheless ..

Build fails with
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/warzone2100/x86_64-redhat-linux-gnu'
[ 89%] Building CXX object 3rdparty/discord-rpc/src/CMakeFiles/discord-rpc.dir/discord_rpc.cpp.o
cd /home/tkloczko/rpmbuild/BUILD/warzone2100/x86_64-redhat-linux-gnu/3rdparty/discord-rpc/src && /usr/bin/g++ -DDISCORD_LINUX -I/home/tkloczko/rpmbuild/BUILD/warzone2100/x86_64-redhat-linux-gnu -I/home/tkloczko/rpmbuild/BUILD/warzone2100/. -I/home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty -I/home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/discord-rpc/include -isystem /home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/glm -isystem /home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/date/include -isystem /home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/discord-rpc/thirdparty/rapidjson/include -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -g -grecord-gcc-switches -pipe -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fdata-sections -ffunction-sections -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -flto=auto -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -Wall -Werror=format-security -fstack-protector-strong -fstack-clash-protection -DNDEBUG -std=c++14 -fPIC -g -Wall -Wextra -Wpedantic -Wno-unknown-pragmas -Wno-old-style-cast -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-missing-noreturn -Wno-padded -Wno-covered-switch-default -Wno-exit-time-destructors -Wno-global-constructors -MD -MT 3rdparty/discord-rpc/src/CMakeFiles/discord-rpc.dir/discord_rpc.cpp.o -MF CMakeFiles/discord-rpc.dir/discord_rpc.cpp.o.d -o CMakeFiles/discord-rpc.dir/discord_rpc.cpp.o -c /home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/discord-rpc/src/discord_rpc.cpp
In file included from /home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/discord-rpc/src/serialization.h:15,
                 from /home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/discord-rpc/src/rpc_connection.h:4,
                 from /home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/discord-rpc/src/discord_rpc.cpp:6:
/home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/discord-rpc/thirdparty/rapidjson/include/rapidjson/document.h: In member function ‘rapidjson::GenericStringRef<CharType>& rapidjson::GenericStringRef<CharType>::operator=(const rapidjson::GenericStringRef<CharType>&)’:
/home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/discord-rpc/thirdparty/rapidjson/include/rapidjson/document.h:319:82: error: assignment of read-only member ‘rapidjson::GenericStringRef<CharType>::length’
  319 |     GenericStringRef& operator=(const GenericStringRef& rhs) { s = rhs.s; length = rhs.length; }
      |                                                                           ~~~~~~~^~~~~~~~~~~~
At global scope:
cc1plus: note: unrecognized command-line option ‘-Wno-global-constructors’ may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option ‘-Wno-exit-time-destructors’ may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option ‘-Wno-covered-switch-default’ may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option ‘-Wno-c++98-compat-pedantic’ may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option ‘-Wno-c++98-compat’ may have been intended to silence earlier diagnostics
make[2]: *** [3rdparty/discord-rpc/src/CMakeFiles/discord-rpc.dir/build.make:79: 3rdparty/discord-rpc/src/CMakeFiles/discord-rpc.dir/discord_rpc.cpp.o] Error 1
[ 89%] Building CXX object 3rdparty/discord-rpc/src/CMakeFiles/discord-rpc.dir/rpc_connection.cpp.o
cd /home/tkloczko/rpmbuild/BUILD/warzone2100/x86_64-redhat-linux-gnu/3rdparty/discord-rpc/src && /usr/bin/g++ -DDISCORD_LINUX -I/home/tkloczko/rpmbuild/BUILD/warzone2100/x86_64-redhat-linux-gnu -I/home/tkloczko/rpmbuild/BUILD/warzone2100/. -I/home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty -I/home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/discord-rpc/include -isystem /home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/glm -isystem /home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/date/include -isystem /home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/discord-rpc/thirdparty/rapidjson/include -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -g -grecord-gcc-switches -pipe -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fdata-sections -ffunction-sections -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -flto=auto -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -Wall -Werror=format-security -fstack-protector-strong -fstack-clash-protection -DNDEBUG -std=c++14 -fPIC -g -Wall -Wextra -Wpedantic -Wno-unknown-pragmas -Wno-old-style-cast -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-missing-noreturn -Wno-padded -Wno-covered-switch-default -Wno-exit-time-destructors -Wno-global-constructors -MD -MT 3rdparty/discord-rpc/src/CMakeFiles/discord-rpc.dir/rpc_connection.cpp.o -MF CMakeFiles/discord-rpc.dir/rpc_connection.cpp.o.d -o CMakeFiles/discord-rpc.dir/rpc_connection.cpp.o -c /home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/discord-rpc/src/rpc_connection.cpp
In file included from /home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/discord-rpc/src/serialization.h:15,
                 from /home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/discord-rpc/src/rpc_connection.h:4,
                 from /home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/discord-rpc/src/rpc_connection.cpp:1:
/home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/discord-rpc/thirdparty/rapidjson/include/rapidjson/document.h: In member function ‘rapidjson::GenericStringRef<CharType>& rapidjson::GenericStringRef<CharType>::operator=(const rapidjson::GenericStringRef<CharType>&)’:
/home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/discord-rpc/thirdparty/rapidjson/include/rapidjson/document.h:319:82: error: assignment of read-only member ‘rapidjson::GenericStringRef<CharType>::length’
  319 |     GenericStringRef& operator=(const GenericStringRef& rhs) { s = rhs.s; length = rhs.length; }
      |                                                                           ~~~~~~~^~~~~~~~~~~~
At global scope:
cc1plus: note: unrecognized command-line option ‘-Wno-global-constructors’ may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option ‘-Wno-exit-time-destructors’ may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option ‘-Wno-covered-switch-default’ may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option ‘-Wno-c++98-compat-pedantic’ may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option ‘-Wno-c++98-compat’ may have been intended to silence earlier diagnostics
make[2]: *** [3rdparty/discord-rpc/src/CMakeFiles/discord-rpc.dir/build.make:93: 3rdparty/discord-rpc/src/CMakeFiles/discord-rpc.dir/rpc_connection.cpp.o] Error 1
[ 89%] Building CXX object 3rdparty/discord-rpc/src/CMakeFiles/discord-rpc.dir/serialization.cpp.o
cd /home/tkloczko/rpmbuild/BUILD/warzone2100/x86_64-redhat-linux-gnu/3rdparty/discord-rpc/src && /usr/bin/g++ -DDISCORD_LINUX -I/home/tkloczko/rpmbuild/BUILD/warzone2100/x86_64-redhat-linux-gnu -I/home/tkloczko/rpmbuild/BUILD/warzone2100/. -I/home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty -I/home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/discord-rpc/include -isystem /home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/glm -isystem /home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/date/include -isystem /home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/discord-rpc/thirdparty/rapidjson/include -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -g -grecord-gcc-switches -pipe -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fdata-sections -ffunction-sections -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -flto=auto -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -Wall -Werror=format-security -fstack-protector-strong -fstack-clash-protection -DNDEBUG -std=c++14 -fPIC -g -Wall -Wextra -Wpedantic -Wno-unknown-pragmas -Wno-old-style-cast -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-missing-noreturn -Wno-padded -Wno-covered-switch-default -Wno-exit-time-destructors -Wno-global-constructors -MD -MT 3rdparty/discord-rpc/src/CMakeFiles/discord-rpc.dir/serialization.cpp.o -MF CMakeFiles/discord-rpc.dir/serialization.cpp.o.d -o CMakeFiles/discord-rpc.dir/serialization.cpp.o -c /home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/discord-rpc/src/serialization.cpp
In file included from /home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/discord-rpc/src/serialization.h:15,
                 from /home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/discord-rpc/src/serialization.cpp:1:
/home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/discord-rpc/thirdparty/rapidjson/include/rapidjson/document.h: In member function ‘rapidjson::GenericStringRef<CharType>& rapidjson::GenericStringRef<CharType>::operator=(const rapidjson::GenericStringRef<CharType>&)’:
/home/tkloczko/rpmbuild/BUILD/warzone2100/3rdparty/discord-rpc/thirdparty/rapidjson/include/rapidjson/document.h:319:82: error: assignment of read-only member ‘rapidjson::GenericStringRef<CharType>::length’
  319 |     GenericStringRef& operator=(const GenericStringRef& rhs) { s = rhs.s; length = rhs.length; }
      |                                                                           ~~~~~~~^~~~~~~~~~~~
At global scope:
cc1plus: note: unrecognized command-line option ‘-Wno-global-constructors’ may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option ‘-Wno-exit-time-destructors’ may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option ‘-Wno-covered-switch-default’ may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option ‘-Wno-c++98-compat-pedantic’ may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option ‘-Wno-c++98-compat’ may have been intended to silence earlier diagnostics
make[2]: *** [3rdparty/discord-rpc/src/CMakeFiles/discord-rpc.dir/build.make:107: 3rdparty/discord-rpc/src/CMakeFiles/discord-rpc.dir/serialization.cpp.o] Error 1
make[2]: Target '3rdparty/discord-rpc/src/CMakeFiles/discord-rpc.dir/build' not remade because of errors.

BTW: why it is not possible to build Warzone2100 against system installed rapidjson? 🤔

kloczek avatar Feb 04 '24 17:02 kloczek

Small correction: above is from build of 4.4.2 + all commits from master (up to 97094197).

kloczek avatar Feb 04 '24 17:02 kloczek

What the version of rapidjson package is?

ManManson avatar Feb 04 '24 17:02 ManManson

In this case it is that one which has been bundled in last release dist tar ball https://github.com/Warzone2100/warzone2100//releases/download/4.4.2/warzone2100_src.tar.xz

kloczek avatar Feb 04 '24 17:02 kloczek

Try reconfiguring with -DENABLE_DISCORD=OFF

past-due avatar Feb 04 '24 18:02 past-due

OK but it looks like it will disable one feature. Doses it mean that it is kind of short term/JFDI solution and soon it will be new release with fixed rapidjson/wz code or posybilisty to build wz against system installed rapidjson? 🤔

kloczek avatar Feb 04 '24 18:02 kloczek

That feature won’t work anyway on your system, and shouldn’t be built into the binary by default in a number of cases it currently is. (This will be fixed for the next release. With current default configuration it would build and link that code but not actually use it at runtime.)

past-due avatar Feb 04 '24 18:02 past-due

OK thank you.

kloczek avatar Feb 04 '24 19:02 kloczek