commit: 8db9f66124d9c5620f4f2f6db921125ba9c6fa74 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Sun Sep 1 07:32:49 2024 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sun Sep 1 07:32:49 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8db9f661
app-text/tesseract: fix arm* build w/o neon Bug: https://bugs.gentoo.org/926891 Closes: https://bugs.gentoo.org/924757 Signed-off-by: Sam James <sam <AT> gentoo.org> .../tesseract-5.4.1-arm64-neon-tesseract.patch | 57 ++++++++++++++++++++++ app-text/tesseract/tesseract-5.3.4.ebuild | 4 ++ app-text/tesseract/tesseract-5.4.1.ebuild | 4 ++ app-text/tesseract/tesseract-9999.ebuild | 4 ++ 4 files changed, 69 insertions(+) diff --git a/app-text/tesseract/files/tesseract-5.4.1-arm64-neon-tesseract.patch b/app-text/tesseract/files/tesseract-5.4.1-arm64-neon-tesseract.patch new file mode 100644 index 000000000000..d3869cfea1dd --- /dev/null +++ b/app-text/tesseract/files/tesseract-5.4.1-arm64-neon-tesseract.patch @@ -0,0 +1,57 @@ +https://bugs.gentoo.org/924757 +https://bugs.gentoo.org/926891 +https://github.com/tesseract-ocr/tesseract/pull/4154 + +(Note that if moving to CMake, can use the patch from ghostscript-gpl +instead, i.e. https://src.fedoraproject.org/rpms/tesseract/blob/rawhide/f/tesseract_neon.patch). + +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]) + diff --git a/app-text/tesseract/tesseract-5.3.4.ebuild b/app-text/tesseract/tesseract-5.3.4.ebuild index d90adb970643..af83b0284a3a 100644 --- a/app-text/tesseract/tesseract-5.3.4.ebuild +++ b/app-text/tesseract/tesseract-5.3.4.ebuild @@ -37,6 +37,10 @@ DEPEND="${COMMON_DEPEND} dev-libs/libxslt doc? ( app-text/doxygen )" +PATCHES=( + "${FILESDIR}"/${PN}-5.4.1-arm64-neon-tesseract.patch +) + pkg_pretend() { [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp } diff --git a/app-text/tesseract/tesseract-5.4.1.ebuild b/app-text/tesseract/tesseract-5.4.1.ebuild index 1469566c29ed..d4438214a13d 100644 --- a/app-text/tesseract/tesseract-5.4.1.ebuild +++ b/app-text/tesseract/tesseract-5.4.1.ebuild @@ -32,6 +32,10 @@ DEPEND="${COMMON_DEPEND} dev-libs/libxslt doc? ( app-text/doxygen )" +PATCHES=( + "${FILESDIR}"/${PN}-5.4.1-arm64-neon-tesseract.patch +) + pkg_pretend() { [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp } diff --git a/app-text/tesseract/tesseract-9999.ebuild b/app-text/tesseract/tesseract-9999.ebuild index 4c31653fca31..d3c34531c724 100644 --- a/app-text/tesseract/tesseract-9999.ebuild +++ b/app-text/tesseract/tesseract-9999.ebuild @@ -32,6 +32,10 @@ DEPEND="${COMMON_DEPEND} dev-libs/libxslt doc? ( app-text/doxygen )" +PATCHES=( + "${FILESDIR}"/${PN}-5.4.1-arm64-neon-tesseract.patch +) + pkg_pretend() { [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp }
