[Buildroot] [PATCH 1/1] package/gcc: undefine NDEBUG directive
Andreas Ziegler
br015 at umbiko.net
Thu Jun 17 12:19:43 UTC 2021
GCC performs internal consistency checks that can be controlled with --enable-checking, but not completely removed for all stages of the build. One of these checks uses the assert macro from <assert.h> Defining NDEBUG removes the assertion code, which is not anticipated in the gcc code.
Undefine the NDEBUG flag for package/gcc to preserve assertions.
This fixes the following error during build of GCC 10:
../../../libgomp/target.c: In function ‘gomp_unmap_vars_internal’:
../../../libgomp/target.c:1474:9: error: unused variable ‘is_tgt_unmapped’ [-Werror=unused-variable]
1474 | bool is_tgt_unmapped = gomp_remove_var (devicep, k);
| ^~~~~~~~~~~~~~~
../../../libgomp/target.c:1473:28: error: unused variable ‘k_tgt’ [-Werror=unused-variable]
1473 | struct target_mem_desc *k_tgt = k->tgt;
| ^~~~~
Signed-off-by: Andreas Ziegler <br015 at umbiko.net>
---
package/gcc/gcc.mk | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/package/gcc/gcc.mk b/package/gcc/gcc.mk
index ed9b93e50f..4ee32c03a7 100644
--- a/package/gcc/gcc.mk
+++ b/package/gcc/gcc.mk
@@ -90,7 +90,8 @@ HOST_GCC_COMMON_CONF_OPTS = \
HOST_GCC_COMMON_CONF_ENV = \
MAKEINFO=missing
-GCC_COMMON_TARGET_CFLAGS = $(TARGET_CFLAGS)
+# gcc should not be built with NDEBUG enabled
+GCC_COMMON_TARGET_CFLAGS = $(TARGET_CFLAGS) -UNDEBUG
GCC_COMMON_TARGET_CXXFLAGS = $(TARGET_CXXFLAGS)
# used to fix ../../../../libsanitizer/libbacktrace/../../libbacktrace/elf.c:772:21: error: 'st.st_mode' may be used uninitialized in this function [-Werror=maybe-uninitialized]
--
2.25.1
More information about the buildroot
mailing list