--- /dev/null
+From b1e48789d61d995740762f66f505385db42410a5 Mon Sep 17 00:00:00 2001
+From: Jan Palus <jpalus@fastmail.com>
+Date: Mon, 30 Oct 2023 01:36:57 +0100
+Subject: [PATCH] Check if NEON extension are actually available
+
+User may pass own compiler flags to configure which override those
+provided by project through automake. Therefore it is possible for user
+on ARM platform to pass CXXFLAGS=-mfpu=vfp which will effectively
+disable NEON even though used compiler supports -mfpu=neon (since user
+supplied flags take precedence compiler invocation will use flags:
+-mfpu=neon -mfpu=vfp). Instead of checking whether compiler supports
+-mfpu=neon flag, check if NEON extensions are available by checking if
+__ARM_NEON is defined when compiling with -mfpu=neon and user supplied
+flags combined.
+
+Signed-off-by: Jan Palus <jpalus@fastmail.com>
+---
+ configure.ac | 18 ++++++++++++++----
+ 1 file changed, 14 insertions(+), 4 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0b38537229..0514b619c5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -178,10 +178,20 @@ case "${host_cpu}" in
+ ;;
+
+ arm*)
+-
+- AX_CHECK_COMPILE_FLAG([-mfpu=neon], [neon=true], [neon=false], [$WERROR])
+- AM_CONDITIONAL([HAVE_NEON], $neon)
+- if $neon; then
++ SAVE_CXXFLAGS="$CXXFLAGS"
++ CXXFLAGS="-mfpu=neon $CXXFLAGS"
++ AC_MSG_CHECKING([for NEON support])
++ AC_COMPILE_IFELSE(
++ [AC_LANG_PROGRAM([], [[
++ #ifndef __ARM_NEON
++ #error
++ #endif
++ ]])],
++ [neon=yes], [neon=no])
++ AC_MSG_RESULT([$neon])
++ CXXFLAGS="$SAVE_CXXFLAGS"
++ AM_CONDITIONAL([HAVE_NEON], test "xyes" = "x$neon")
++ if test "xyes" = "$neon"; then
+ AC_DEFINE([HAVE_NEON], [1], [Enable NEON instructions])
+ NEON_CXXFLAGS="-mfpu=neon"
+ AC_SUBST([NEON_CXXFLAGS])