On Mon, Aug 23, 2021 at 11:18:38PM -0700, Fangrui Song wrote:
Clang does not support -falign-jumps and only recently gained support
for -falign-loops. Test all the alignment options to avoid passing
unrecognized options to Clang:
clang-14: error: optimization flag '-falign-jumps=1' is not supported
[-Werror,-Wignored-optimization-argument]
When compiled with older Clang, the alignment options are not added, so
just avoid the complexity for each option.
Signed-off-by: Fangrui Song <maskray@google.com>
---
configure.ac | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index 9a12151bd..8625e6776 100644
--- a/configure.ac
+++ b/configure.ac
@@ -798,8 +798,9 @@ fi
# Force no alignment to save space on i386.
if test "x$target_cpu" = xi386; then
- AC_CACHE_CHECK([whether -falign-loops works], [grub_cv_cc_falign_loop], [
- CFLAGS="$TARGET_CFLAGS -falign-loops=1 -Werror"
+ AC_CACHE_CHECK([whether -falign-jumps=1 -falign-loops=1 -falign-functions=1
works],
+ [grub_cv_cc_falign_loop], [
+ CFLAGS="$TARGET_CFLAGS -falign-jumps=1 -falign-loops=1 -falign-functions=1
-Werror"
I would prefer if you add a separate check for every -falign-* option.
Daniel