opensaf: Fix build with gcc 12

Use configure logic to disable certain warnings if compiler supports
them

Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Khem Raj
2022-04-12 17:19:44 -07:00
parent ee3b2e19a6
commit 83b283c528
3 changed files with 64 additions and 2 deletions
@@ -0,0 +1,32 @@
From 6168d43ddd353b92ad8bcd5c49dc68f18caa8a00 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 12 Apr 2022 17:07:49 -0700
Subject: [PATCH 1/2] include missing <array> header
Fixes
src/osaf/consensus/key_value.cc:25:30: error: aggregate 'std::array<char, 128> buffer' has incomplete type and cannot be defined
25 | std::array<char, buf_size> buffer;
| ^~~~~~
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/osaf/consensus/key_value.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/osaf/consensus/key_value.cc b/src/osaf/consensus/key_value.cc
index 692dd3f..6e16cbf 100644
--- a/src/osaf/consensus/key_value.cc
+++ b/src/osaf/consensus/key_value.cc
@@ -18,7 +18,7 @@
#include "base/getenv.h"
#include "base/logtrace.h"
#include "osaf/consensus/consensus.h"
-
+#include <array>
int KeyValue::Execute(const std::string& command, std::string& output) {
TRACE_ENTER();
constexpr size_t buf_size = 128;
--
2.35.1
@@ -0,0 +1,28 @@
From fe654d5340d18f04e4689ba19f843554909a0c00 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 12 Apr 2022 17:16:37 -0700
Subject: [PATCH 2/2] configure: Disable selected warnings
These warnings are emitted when compiling with gcc 11 and gcc 12
Do not treat them as errors
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
configure.ac | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
--- a/configure.ac
+++ b/configure.ac
@@ -601,7 +601,10 @@ if test -z "$OSAF_HARDEN_FLAGS"; then
fi
AC_SUBST(OSAF_HARDEN_FLAGS)
-AX_CHECK_COMPILE_FLAG([-Werror=format-overflow],[NOWARNINGS=-Wno-error=format-overflow])
+AX_CHECK_COMPILE_FLAG([-Werror=format-overflow],[NOWARNINGS='-Wno-error=format-overflow'])
+AX_CHECK_COMPILE_FLAG([-Wuse-after-free],[NOWARNINGS+=' -Wno-error=use-after-free'])
+AX_CHECK_COMPILE_FLAG([-Wstringop-truncation],[NOWARNINGS+=' -Wno-error=stringop-truncation'])
+AX_CHECK_COMPILE_FLAG([-Warray-bounds],[NOWARNINGS+=' -Wno-error=array-bounds'])
AC_SUBST(NOWARNINGS)
#############################################
# List the output Makefiles
@@ -28,6 +28,8 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/releases/${BPN}-${PV}.tar.gz \
file://0001-immom_python-convert-to-python3.patch \
file://0001-Fix-build-with-fno-common.patch \
file://0001-Use-correct-printf-format-for-__fsblkcnt_t.patch \
file://0001-include-missing-array-header.patch \
file://0002-configure-Disable-selected-warnings.patch \
"
SRC_URI[sha256sum] = "f008d53c83087ce2014c6089bc4ef08e14c1b4091298b943f4ceade1aa6bf61e"
@@ -48,8 +50,8 @@ PACKAGECONFIG[plm] = "--enable-ais-plm,--disable-ais-plm,libvirt openhpi"
PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd', '', d)}"
CPPFLAGS += "-Wno-error=stringop-overflow= -Wno-error=stringop-truncation"
CXXFLAGS += "-Wno-error=stringop-overflow= -Wno-error=stringop-truncation -Wno-error=format-truncation="
CPPFLAGS += "-Wno-error"
CXXFLAGS += "-Wno-error"
LDFLAGS += "-Wl,--as-needed -latomic -Wl,--no-as-needed"
do_install:append() {