summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimm Bäder <tbaeder@redhat.com>2021-02-17 10:27:08 +0100
committerMark Wielaard <mark@klomp.org>2021-03-06 03:14:34 +0100
commit1645d4a7e62898167337235dda933e0cde373bd7 (patch)
tree98a39669611276f88a308f58ce2b9e81b4313f45
parent00d92d0b6a495a81e4c585be7a41f10ef4b6d47c (diff)
downloadelfutils-1645d4a7e62898167337235dda933e0cde373bd7.tar.gz
build: Check for -Wno-packed-not-aligned support
Clang does not support this warning, so check for compiler support before using it. Signed-off-by: Timm Bäder <tbaeder@redhat.com>
-rw-r--r--ChangeLog4
-rw-r--r--config/ChangeLog6
-rw-r--r--config/eu.am10
-rw-r--r--configure.ac9
4 files changed, 27 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index fdcc082b..fe7e8498 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2021-02-17 Timm Bäder <tbaeder@redhat.com>
+ * configure.ac: Add -Wno-packed-not-aligned check.
+
+2021-02-17 Timm Bäder <tbaeder@redhat.com>
+
* configure.ac: Add -Wtrampolines check.
2021-02-05 Mark Wielaard <mark@klomp.org>
diff --git a/config/ChangeLog b/config/ChangeLog
index cd8ff74c..0e179cbc 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,5 +1,11 @@
2021-02-17 Timm Bäder <tbaeder@redhat.com>
+ * eu.am (NO_PACKED_NOT_ALIGNED_WARNING): New variable.
+ (AM_CFLAGS): Use NO_PACKED_NOT_ALIGNED_WARNING.
+ (AM_CXXFLAGS): Likewise.
+
+2021-02-17 Timm Bäder <tbaeder@redhat.com>
+
* eu.am (TRAMPOLINES_WARNING): New variable.
(AM_CFLAGS): Use TRAMPOLINES_WARNING.
(AM_CXXFLAGS): Likewise.
diff --git a/config/eu.am b/config/eu.am
index 02512570..2c3e4571 100644
--- a/config/eu.am
+++ b/config/eu.am
@@ -79,6 +79,12 @@ else
TRAMPOLINES_WARNING=
endif
+if HAVE_NO_PACKED_NOT_ALIGNED_WARNING
+NO_PACKED_NOT_ALIGNED_WARNING=-Wno-packed-not-aligned
+else
+NO_PACKED_NOT_ALIGNED_WARNING=
+endif
+
AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
-Wold-style-definition -Wstrict-prototypes $(TRAMPOLINES_WARNING) \
$(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \
@@ -86,7 +92,7 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
$(if $($(*F)_no_Werror),,-Werror) \
$(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
$(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
- $(if $($(*F)_no_Wpacked_not_aligned),-Wno-packed-not-aligned,) \
+ $(if $($(*F)_no_Wpacked_not_aligned),$(NO_PACKED_NOT_ALIGNED_WARNING),) \
$($(*F)_CFLAGS)
AM_CXXFLAGS = -std=c++11 -Wall -Wshadow \
@@ -96,7 +102,7 @@ AM_CXXFLAGS = -std=c++11 -Wall -Wshadow \
$(if $($(*F)_no_Werror),,-Werror) \
$(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
$(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
- $(if $($(*F)_no_Wpacked_not_aligned),-Wno-packed-not-aligned,) \
+ $(if $($(*F)_no_Wpacked_not_aligned),$(NO_PACKED_NOT_ALIGNED_WARNING),) \
$($(*F)_CXXFLAGS)
COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
diff --git a/configure.ac b/configure.ac
index 5f3321aa..aa8439e8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -546,6 +546,15 @@ CFLAGS="$old_CFLAGS"])
AM_CONDITIONAL(HAVE_TRAMPOLINES_WARNING,
[test "x$ac_cv_trampolines" != "xno"])
+AC_CACHE_CHECK([whether the compiler accepts -Wno-packed-not-aligned], ac_cv_no_packed_not_aligned, [dnl
+old_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -Wno-packed-not-aligned -Werror"
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([])],
+ ac_cv_no_packed_not_aligned=yes, ac_cv_no_packed_not_aligned=no)
+CFLAGS="$old_CFLAGS"])
+AM_CONDITIONAL(HAVE_NO_PACKED_NOT_ALIGNED_WARNING,
+ [test "x$ac_cv_no_packed_not_aligned" != "xno"])
+
saved_LIBS="$LIBS"
AC_SEARCH_LIBS([argp_parse], [argp])
LIBS="$saved_LIBS"