-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
51 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
From b1e48789d61d995740762f66f505385db42410a5 Mon Sep 17 00:00:00 2001 | ||
From: Jan Palus <[email protected]> | ||
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 <[email protected]> | ||
--- | ||
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]) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters