OpenVPN3-Linux with GCC 15+ or Clang fails due to:
Missing #include <cstdint> for uint32_t in logmetadata.hpp (GCC 15 is stricter about includes).
Deprecated <ciso646> (used by absl/Protobuf) triggering C++17 warnings
FAILED: libcommon.a.p/src_log_logmetadata.cpp.o
ccache c++ -Ilibcommon.a.p -I. -I../openvpn3-linux-24 -I../openvpn3-linux-24/openvpn3-core -I../openvpn3-linux-24/vendor/asio/asio/include -Isrc -I../openvpn3-linux-24/src -I/usr/include/gio-unix-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/libnl3 -I/usr/include/uuid -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Werror -std=c++17 -Wno-non-virtual-dtor -DOVPN_TINYXML2_HAS_ERROR_NAME -DOVPN_TINYXML2_HAS_ERROR_STR -march=x86-64-v3 -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -mpclmul -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -falign-functions=32 -Wno-error=non-virtual-dtor -fPIC -pthread -MD -MQ libcommon.a.p/src_log_logmetadata.cpp.o -MF libcommon.a.p/src_log_logmetadata.cpp.o.d -o libcommon.a.p/src_log_logmetadata.cpp.o -c ../openvpn3-linux-24/src/log/logmetadata.cpp
In file included from ../openvpn3-linux-24/src/log/logmetadata.cpp:21:
../openvpn3-linux-24/src/log/logmetadata.hpp:93:50: error: ‘uint32_t’ does not name a type
93 | LogMetaDataValue(const std::string &l, const uint32_t v, bool s);
| ^~~~~~~~
../openvpn3-linux-24/src/log/logmetadata.hpp:22:1: note: ‘uint32_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
21 | #include "logtag.hpp"
+++ |+#include <cstdint>
22 |
../openvpn3-linux-24/src/log/logmetadata.hpp:94:5: error: ‘LogMetaDataValue::LogMetaDataValue(const std::string&, int32_t, bool)’ cannot be overloaded with ‘LogMetaDataValue::LogMetaDataValue(const std::string&, int, bool)’
94 | LogMetaDataValue(const std::string &l, const int32_t v, bool s);
| ^~~~~~~~~~~~~~~~
../openvpn3-linux-24/src/log/logmetadata.hpp:93:5: note: previous declaration ‘LogMetaDataValue::LogMetaDataValue(const std::string&, int, bool)’
93 | LogMetaDataValue(const std::string &l, const uint32_t v, bool s);
| ^~~~~~~~~~~~~~~~
../openvpn3-linux-24/src/log/logmetadata.cpp:39:42: error: ‘uint32_t’ does not name a type
39 | const uint32_t v,
| ^~~~~~~~
../openvpn3-linux-24/src/log/logmetadata.cpp:22:1: note: ‘uint32_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
21 | #include "logmetadata.hpp"
+++ |+#include <cstdint>
22 | #include "logtag.hpp"
../openvpn3-linux-24/src/log/logmetadata.cpp:47:1: error: redefinition of ‘LogMetaDataValue::LogMetaDataValue(const std::string&, int32_t, bool)’
47 | LogMetaDataValue::LogMetaDataValue(const std::string &l,
| ^~~~~~~~~~~~~~~~
../openvpn3-linux-24/src/log/logmetadata.cpp:38:1: note: ‘LogMetaDataValue::LogMetaDataValue(const std::string&, int, bool)’ previously defined here
38 | LogMetaDataValue::LogMetaDataValue(const std::string &l,
| ^~~~~~~~~~~~~~~~
[10/23] Compiling C++ object src/client/openvpn3-service-client.p/meson-generated_.._.._dco_dco-keyconfig.pb.cc.o
FAILED: src/client/openvpn3-service-client.p/meson-generated_.._.._dco_dco-keyconfig.pb.cc.o
ccache c++ -Isrc/client/openvpn3-service-client.p -Isrc/client -I../openvpn3-linux-24/src/client -I../openvpn3-linux-24/openvpn3-core -I../openvpn3-linux-24/vendor/asio/asio/include -Isrc -I../openvpn3-linux-24/src -I. -I../openvpn3-linux-24 -Isrc/dco -I/usr/include/gio-unix-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/libnl3 -I/usr/include/uuid -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Werror -std=c++17 -Wno-non-virtual-dtor -DOVPN_TINYXML2_HAS_ERROR_NAME -DOVPN_TINYXML2_HAS_ERROR_STR -march=x86-64-v3 -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -mpclmul -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -falign-functions=32 -Wno-error=non-virtual-dtor -fPIE -DPROTOBUF_USE_DLLS -DNOMINMAX -pthread -MD -MQ src/client/openvpn3-service-client.p/meson-generated_.._.._dco_dco-keyconfig.pb.cc.o -MF src/client/openvpn3-service-client.p/meson-generated_.._.._dco_dco-keyconfig.pb.cc.o.d -o src/client/openvpn3-service-client.p/meson-generated_.._.._dco_dco-keyconfig.pb.cc.o -c src/dco/dco-keyconfig.pb.cc
In file included from /usr/include/absl/hash/internal/hash.h:33,
from /usr/include/absl/hash/hash.h:89,
from /usr/include/absl/container/internal/hash_function_defaults.h:56,
from /usr/include/absl/container/hash_container_defaults.h:19,
from /usr/include/absl/container/flat_hash_map.h:43,
from /usr/include/google/protobuf/descriptor.h:47,
from /usr/include/google/protobuf/generated_message_reflection.h:26,
from src/dco/dco-keyconfig.pb.h:26,
from src/dco/dco-keyconfig.pb.cc:6:
/usr/include/c++/15.1.1/ciso646:46:4: error: #warning "<ciso646> is deprecated in C++17, use <version> to detect implementation-specific macros" [-Werror=cpp]
46 | # warning "<ciso646> is deprecated in C++17, use <version> to detect implementation-specific macros"
| ^~~~~~~
cc1plus: all warnings being treated as errors
[11/23] Compiling C++ object src/netcfg/openvpn3-service-netcfg.p/meson-generated_.._.._dco_dco-keyconfig.pb.cc.o
FAILED: src/netcfg/openvpn3-service-netcfg.p/meson-generated_.._.._dco_dco-keyconfig.pb.cc.o
ccache c++ -Isrc/netcfg/openvpn3-service-netcfg.p -Isrc/netcfg -I../openvpn3-linux-24/src/netcfg -I../openvpn3-linux-24/openvpn3-core -I../openvpn3-linux-24/vendor/asio/asio/include -Isrc -I../openvpn3-linux-24/src -I. -I../openvpn3-linux-24 -Isrc/dco -I/usr/include/gio-unix-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/libnl3 -I/usr/include/uuid -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Werror -std=c++17 -Wno-non-virtual-dtor -DOVPN_TINYXML2_HAS_ERROR_NAME -DOVPN_TINYXML2_HAS_ERROR_STR -march=x86-64-v3 -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -mpclmul -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -falign-functions=32 -Wno-error=non-virtual-dtor -fPIE -DPROTOBUF_USE_DLLS -DNOMINMAX -pthread -MD -MQ src/netcfg/openvpn3-service-netcfg.p/meson-generated_.._.._dco_dco-keyconfig.pb.cc.o -MF src/netcfg/openvpn3-service-netcfg.p/meson-generated_.._.._dco_dco-keyconfig.pb.cc.o.d -o src/netcfg/openvpn3-service-netcfg.p/meson-generated_.._.._dco_dco-keyconfig.pb.cc.o -c src/dco/dco-keyconfig.pb.cc
In file included from /usr/include/absl/hash/internal/hash.h:33,
from /usr/include/absl/hash/hash.h:89,
from /usr/include/absl/container/internal/hash_function_defaults.h:56,
from /usr/include/absl/container/hash_container_defaults.h:19,
from /usr/include/absl/container/flat_hash_map.h:43,
from /usr/include/google/protobuf/descriptor.h:47,
from /usr/include/google/protobuf/generated_message_reflection.h:26,
from src/dco/dco-keyconfig.pb.h:26,
from src/dco/dco-keyconfig.pb.cc:6:
/usr/include/c++/15.1.1/ciso646:46:4: error: #warning "<ciso646> is deprecated in C++17, use <version> to detect implementation-specific macros" [-Werror=cpp]
46 | # warning "<ciso646> is deprecated in C++17, use <version> to detect implementation-specific macros"
| ^~~~~~~
cc1plus: all warnings being treated as errors
[12/23] Compiling C++ object libnetcfgmgr.a.p/src_netcfg_proxy-netcfg-device.cpp.o
FAILED: libnetcfgmgr.a.p/src_netcfg_proxy-netcfg-device.cpp.o
ccache c++ -Ilibnetcfgmgr.a.p -I. -I../openvpn3-linux-24 -I../openvpn3-linux-24/openvpn3-core -I../openvpn3-linux-24/vendor/asio/asio/include -Isrc -I../openvpn3-linux-24/src -I/usr/include/gio-unix-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/libnl3 -I/usr/include/uuid -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Werror -std=c++17 -Wno-non-virtual-dtor -DOVPN_TINYXML2_HAS_ERROR_NAME -DOVPN_TINYXML2_HAS_ERROR_STR -march=x86-64-v3 -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -mpclmul -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -falign-functions=32 -Wno-error=non-virtual-dtor -fPIC -DPROTOBUF_USE_DLLS -DNOMINMAX -pthread -MD -MQ libnetcfgmgr.a.p/src_netcfg_proxy-netcfg-device.cpp.o -MF libnetcfgmgr.a.p/src_netcfg_proxy-netcfg-device.cpp.o.d -o libnetcfgmgr.a.p/src_netcfg_proxy-netcfg-device.cpp.o -c ../openvpn3-linux-24/src/netcfg/proxy-netcfg-device.cpp
In file included from /usr/include/absl/hash/internal/hash.h:33,
from /usr/include/absl/hash/hash.h:89,
from /usr/include/absl/container/internal/hash_function_defaults.h:56,
from /usr/include/absl/container/hash_container_defaults.h:19,
from /usr/include/absl/container/flat_hash_map.h:43,
from /usr/include/google/protobuf/descriptor.h:47,
from /usr/include/google/protobuf/generated_message_reflection.h:26,
from src/dco/dco-keyconfig.pb.h:26,
from ../openvpn3-linux-24/src/netcfg/proxy-netcfg-device.cpp:37:
/usr/include/c++/15.1.1/ciso646:46:4: error: #warning "<ciso646> is deprecated in C++17, use <version> to detect implementation-specific macros" [-Werror=cpp]
46 | # warning "<ciso646> is deprecated in C++17, use <version> to detect implementation-specific macros"
| ^~~~~~~
cc1plus: all warnings being treated as errors
[13/23] Compiling C++ object src/netcfg/openvpn3-service-netcfg.p/netcfg-dco.cpp.o
FAILED: src/netcfg/openvpn3-service-netcfg.p/netcfg-dco.cpp.o
ccache c++ -Isrc/netcfg/openvpn3-service-netcfg.p -Isrc/netcfg -I../openvpn3-linux-24/src/netcfg -I../openvpn3-linux-24/openvpn3-core -I../openvpn3-linux-24/vendor/asio/asio/include -Isrc -I../openvpn3-linux-24/src -I. -I../openvpn3-linux-24 -Isrc/dco -I/usr/include/gio-unix-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/libnl3 -I/usr/include/uuid -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Werror -std=c++17 -Wno-non-virtual-dtor -DOVPN_TINYXML2_HAS_ERROR_NAME -DOVPN_TINYXML2_HAS_ERROR_STR -march=x86-64-v3 -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -mpclmul -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -falign-functions=32 -Wno-error=non-virtual-dtor -fPIE -DPROTOBUF_USE_DLLS -DNOMINMAX -pthread -MD -MQ src/netcfg/openvpn3-service-netcfg.p/netcfg-dco.cpp.o -MF src/netcfg/openvpn3-service-netcfg.p/netcfg-dco.cpp.o.d -o src/netcfg/openvpn3-service-netcfg.p/netcfg-dco.cpp.o -c ../openvpn3-linux-24/src/netcfg/netcfg-dco.cpp
In file included from /usr/include/absl/hash/internal/hash.h:33,
from /usr/include/absl/hash/hash.h:89,
from /usr/include/absl/container/internal/hash_function_defaults.h:56,
from /usr/include/absl/container/hash_container_defaults.h:19,
from /usr/include/absl/container/flat_hash_map.h:43,
from /usr/include/google/protobuf/descriptor.h:47,
from /usr/include/google/protobuf/generated_message_reflection.h:26,
from src/dco/dco-keyconfig.pb.h:26,
from ../openvpn3-linux-24/src/netcfg/netcfg-dco.cpp:26:
/usr/include/c++/15.1.1/ciso646:46:4: error: #warning "<ciso646> is deprecated in C++17, use <version> to detect implementation-specific macros" [-Werror=cpp]
46 | # warning "<ciso646> is deprecated in C++17, use <version> to detect implementation-specific macros"
| ^~~~~~~
cc1plus: all warnings being treated as errors
ninja: build stopped: subcommand failed.
==> ERROR: A failure occurred in build().
Aborting...