commit:     9a92f89023d4d4a6b6687f9196062bab87c52e07
Author:     Petr Vaněk <arkamar <AT> atlas <DOT> cz>
AuthorDate: Thu May  7 14:40:56 2020 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Wed Jun 10 14:24:41 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9a92f890

dev-libs/hyperscan: bug fixes: #674218, #707486, #722802

* support non-English locales; The patch is taken from
  https://github.com/intel/hyperscan/issues/217#issuecomment-583932263
* respect cpu_flags_x86 USE flags
* respect -O flags
* set release build type; CMAKE_BUILD_TYPE=Release disables -Werror flag
  which used to trigger false positive error in GCC-10.
  https://github.com/intel/hyperscan/issues/239

Closes: https://bugs.gentoo.org/674218
Closes: https://bugs.gentoo.org/707486
Closes: https://bugs.gentoo.org/722802
Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Petr Vaněk <arkamar <AT> atlas.cz>
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 .../hyperscan/files/hyperscan-5.2.1-locales.patch    | 20 ++++++++++++++++++++
 dev-libs/hyperscan/hyperscan-5.2.1-r1.ebuild         | 15 ++++++++++++++-
 2 files changed, 34 insertions(+), 1 deletion(-)

diff --git a/dev-libs/hyperscan/files/hyperscan-5.2.1-locales.patch 
b/dev-libs/hyperscan/files/hyperscan-5.2.1-locales.patch
new file mode 100644
index 00000000000..985a6f13034
--- /dev/null
+++ b/dev-libs/hyperscan/files/hyperscan-5.2.1-locales.patch
@@ -0,0 +1,20 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 83197af..297a3b3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -187,9 +187,9 @@ else()
+         set (EXEC_ARGS ${CC_ARG1} -c -Q --help=target -march=native 
-mtune=native)
+         execute_process(COMMAND ${CMAKE_C_COMPILER} ${EXEC_ARGS}
+             OUTPUT_VARIABLE _GCC_OUTPUT)
+-        string(FIND "${_GCC_OUTPUT}" "Known" POS)
+-        string(SUBSTRING "${_GCC_OUTPUT}" 0 ${POS} _GCC_OUTPUT)
+-        string(REGEX REPLACE ".*march=[ \t]*([^ \n]*)[ \n].*" "\\1"
++        string(FIND "${_GCC_OUTPUT}" "march" POS)
++        string(SUBSTRING "${_GCC_OUTPUT}" ${POS} -1 _GCC_OUTPUT)
++        string(REGEX REPLACE "march=[ \t]*([^ \n]*)[ \n].*" "\\1"
+             GNUCC_ARCH "${_GCC_OUTPUT}")
+ 
+         # test the parsed flag
+-- 
+2.26.2
+

diff --git a/dev-libs/hyperscan/hyperscan-5.2.1-r1.ebuild 
b/dev-libs/hyperscan/hyperscan-5.2.1-r1.ebuild
index aa7ab14e706..1f23a817dcb 100644
--- a/dev-libs/hyperscan/hyperscan-5.2.1-r1.ebuild
+++ b/dev-libs/hyperscan/hyperscan-5.2.1-r1.ebuild
@@ -14,7 +14,7 @@ HOMEPAGE="https://www.hyperscan.io/ 
https://github.com/intel/hyperscan";
 LICENSE="BSD"
 SLOT="0"
 KEYWORDS="~amd64 ~x86"
-IUSE="+cpu_flags_x86_ssse3 static-libs"
+IUSE="cpu_flags_x86_avx2 +cpu_flags_x86_ssse3 static-libs"
 
 RDEPEND="dev-libs/boost"
 DEPEND="${RDEPEND}"
@@ -25,16 +25,29 @@ BDEPEND="
 
 REQUIRED_USE="cpu_flags_x86_ssse3"
 
+PATCHES=(
+       "${FILESDIR}/${P}-locales.patch"
+)
+
 src_prepare() {
+       # Respect user -O flags
+       sed -i '/set(OPT_CX*_FLAG/d' CMakeLists.txt || die
+
        # upstream workaround
        append-cxxflags -Wno-redundant-move
        cmake_src_prepare
 }
 
 src_configure() {
+       CMAKE_BUILD_TYPE=Release
+
+       use cpu_flags_x86_ssse3 && append-flags -mssse3
+       use cpu_flags_x86_avx2  && append-flags -mavx2
+
        local mycmakeargs=(
                -DBUILD_SHARED_LIBS=$(usex static-libs OFF ON)
                -DBUILD_STATIC_AND_SHARED=$(usex static-libs ON OFF)
+               -DFAT_RUNTIME=false
        )
        cmake_src_configure
 }

Reply via email to