Skip to content

Commit

Permalink
fix build on arm32 without neon
Browse files Browse the repository at this point in the history
  • Loading branch information
jpalus committed Feb 29, 2024
1 parent 2e9a77d commit 2d9f7af
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 0 deletions.
49 changes: 49 additions & 0 deletions neon-detect.patch
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 <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])
2 changes: 2 additions & 0 deletions tesseract.spec
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ Group: Applications/Graphics
#Source0Download: https://github.com/tesseract-ocr/tesseract/releases
Source0: https://github.com/tesseract-ocr/tesseract/archive/%{version}/%{name}-%{version}.tar.gz
# Source0-md5: 53de961804ccbcb83b73122f721d8f83
Patch0: neon-detect.patch
URL: https://github.com/tesseract-ocr/
%{?with_opencl:BuildRequires: OpenCL-devel}
BuildRequires: asciidoc
Expand Down Expand Up @@ -92,6 +93,7 @@ Statyczne biblioteki Tesseracta.

%prep
%setup -q
%patch0 -p1

%build
%{__libtoolize}
Expand Down

0 comments on commit 2d9f7af

Please sign in to comment.