commit:     54111dad825a87510e3896218cb0e111554f82b1
Author:     Arfrever Frehtes Taifersar Arahesis <Arfrever <AT> Apache <DOT> Org>
AuthorDate: Sat Sep 28 02:08:18 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Sep 29 02:56:12 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=54111dad

dev-libs/marisa: Automatic detection of CPU features enabled by CXXFLAGS.

cpu_flags_x86_* USE flags are no longer needed.

https://github.com/s-yata/marisa-trie/commit/d93f1b67f3aaa2d56bf20089c0ce9ef216da6cb7

Signed-off-by: Arfrever Frehtes Taifersar Arahesis <Arfrever <AT> Apache.Org>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 .../files/marisa-0.2.5-cpu_features_check.patch    | 157 +++++++++++++++++++++
 dev-libs/marisa/marisa-0.2.5.ebuild                |  32 +++--
 2 files changed, 174 insertions(+), 15 deletions(-)

diff --git a/dev-libs/marisa/files/marisa-0.2.5-cpu_features_check.patch 
b/dev-libs/marisa/files/marisa-0.2.5-cpu_features_check.patch
new file mode 100644
index 00000000000..dba677221a1
--- /dev/null
+++ b/dev-libs/marisa/files/marisa-0.2.5-cpu_features_check.patch
@@ -0,0 +1,157 @@
+https://github.com/s-yata/marisa-trie/commit/d93f1b67f3aaa2d56bf20089c0ce9ef216da6cb7
+
+--- /configure.ac
++++ /configure.ac
+@@ -13,6 +13,56 @@
+ 
+ AC_CONFIG_MACRO_DIR([m4])
+ 
++# Macros for SSE availability check.
++AC_DEFUN([MARISA_ENABLE_SSE2],
++          [AC_EGREP_CPP([yes], [
++#ifdef __SSE2__
++yes
++#endif
++          ], [enable_sse2="yes"], [enable_sse2="no"])])
++AC_DEFUN([MARISA_ENABLE_SSE3],
++          [AC_EGREP_CPP([yes], [
++#ifdef __SSE3__
++yes
++#endif
++          ], [enable_sse3="yes"], [enable_sse3="no"])])
++AC_DEFUN([MARISA_ENABLE_SSSE3],
++         [AC_EGREP_CPP([yes], [
++#ifdef __SSSE3__
++yes
++#endif
++         ], [enable_ssse3="yes"], [enable_ssse3="no"])])
++AC_DEFUN([MARISA_ENABLE_SSE4_1],
++         [AC_EGREP_CPP([yes], [
++#ifdef __SSE4_1__
++yes
++#endif
++         ], [enable_sse4_1="yes"], [enable_sse4_1="no"])])
++AC_DEFUN([MARISA_ENABLE_SSE4_2],
++         [AC_EGREP_CPP([yes], [
++#ifdef __SSE4_2__
++yes
++#endif
++         ], [enable_sse4_2="yes"], [enable_sse4_2="no"])])
++AC_DEFUN([MARISA_ENABLE_SSE4],
++         [AC_EGREP_CPP([yes], [
++#if defined(__POPCNT__) && defined(__SSE4_2__)
++yes
++#endif
++         ], [enable_sse4="yes"], [enable_sse4="no"])])
++AC_DEFUN([MARISA_ENABLE_SSE4A],
++         [AC_EGREP_CPP([yes], [
++#ifdef __SSE4A__
++yes
++#endif
++         ], [enable_sse4a="yes"], [enable_sse4a="no"])])
++AC_DEFUN([MARISA_ENABLE_POPCNT],
++         [AC_EGREP_CPP([yes], [
++#ifdef __POPCNT__
++yes
++#endif
++         ], [enable_popcnt="yes"], [enable_popcnt="no"])])
++
+ # Checks for SSE availability.
+ AC_MSG_CHECKING([whether to use SSE2])
+ AC_ARG_ENABLE([sse2],
+@@ -20,9 +70,7 @@
+                               [use SSE2 [default=no]])],
+               [],
+               [enable_sse2="no"])
+-AS_IF([test "x${enable_sse2}" != "xno"], [
+-  enable_sse2="yes"
+-])
++AS_IF([test "x${enable_sse2}" != "xno"], [MARISA_ENABLE_SSE2])
+ AC_MSG_RESULT([${enable_sse2}])
+ 
+ AC_MSG_CHECKING([whether to use SSE3])
+@@ -31,9 +79,7 @@
+                               [use SSE3 [default=no]])],
+               [],
+               [enable_sse3="no"])
+-AS_IF([test "x${enable_sse3}" != "xno"], [
+-  enable_sse3="yes"
+-])
++AS_IF([test "x${enable_sse3}" != "xno"], [MARISA_ENABLE_SSE3])
+ AC_MSG_RESULT([${enable_sse3}])
+ 
+ AC_MSG_CHECKING([whether to use SSSE3])
+@@ -42,9 +88,7 @@
+                               [use SSSE3 [default=no]])],
+               [],
+               [enable_ssse3="no"])
+-AS_IF([test "x${enable_ssse3}" != "xno"], [
+-  enable_ssse3="yes"
+-])
++AS_IF([test "x${enable_ssse3}" != "xno"], [MARISA_ENABLE_SSSE3])
+ AC_MSG_RESULT([${enable_ssse3}])
+ 
+ AC_MSG_CHECKING([whether to use SSE4.1])
+@@ -53,9 +97,7 @@
+                               [use SSE4.1 [default=no]])],
+               [],
+               [enable_sse4_1="no"])
+-AS_IF([test "x${enable_sse4_1}" != "xno"], [
+-  enable_sse4_1="yes"
+-])
++AS_IF([test "x${enable_sse4_1}" != "xno"], [MARISA_ENABLE_SSE4_1])
+ AC_MSG_RESULT([${enable_sse4_1}])
+ 
+ AC_MSG_CHECKING([whether to use SSE4.2])
+@@ -64,9 +106,7 @@
+                               [use SSE4.2 [default=no]])],
+               [],
+               [enable_sse4_2="no"])
+-AS_IF([test "x${enable_sse4_2}" != "xno"], [
+-  enable_sse4_2="yes"
+-])
++AS_IF([test "x${enable_sse4_2}" != "xno"], [MARISA_ENABLE_SSE4_2])
+ AC_MSG_RESULT([${enable_sse4_2}])
+ 
+ AC_MSG_CHECKING([whether to use SSE4])
+@@ -75,9 +115,7 @@
+                               [use SSE4 [default=no]])],
+               [],
+               [enable_sse4="no"])
+-AS_IF([test "x${enable_sse4}" != "xno"], [
+-  enable_sse4="yes"
+-])
++AS_IF([test "x${enable_sse4}" != "xno"], [MARISA_ENABLE_SSE4])
+ AC_MSG_RESULT([${enable_sse4}])
+ 
+ AC_MSG_CHECKING([whether to use SSE4a])
+@@ -86,9 +124,7 @@
+                               [use SSE4a [default=no]])],
+               [],
+               [enable_sse4a="no"])
+-AS_IF([test "x${enable_sse4a}" != "xno"], [
+-  enable_sse4a="yes"
+-])
++AS_IF([test "x${enable_sse4a}" != "xno"], [MARISA_ENABLE_SSE4A])
+ AC_MSG_RESULT([${enable_sse4a}])
+ 
+ AC_MSG_CHECKING([whether to use popcnt])
+@@ -97,9 +133,7 @@
+                               [use POPCNT [default=no]])],
+               [],
+               [enable_popcnt="no"])
+-AS_IF([test "x${enable_popcnt}" != "xno"], [
+-  enable_popcnt="yes"
+-])
++AS_IF([test "x${enable_popcnt}" != "xno"], [MARISA_ENABLE_POPCNT])
+ AC_MSG_RESULT([${enable_popcnt}])
+ 
+ AS_IF([test "x${enable_popcnt}" != "xno"], [
+@@ -170,6 +204,7 @@
+ AS_ECHO(["  LDFLAGS:   ${LDFLAGS}"])
+ AS_ECHO(["  PREFIX:    ${prefix}"])
+ AS_ECHO([])
++AS_ECHO(["  NATIVE:    ${enable_native_code}"])
+ AS_ECHO(["  SSE2:      ${enable_sse2}"])
+ AS_ECHO(["  SSE3:      ${enable_sse3}"])
+ AS_ECHO(["  SSSE3:     ${enable_ssse3}"])

diff --git a/dev-libs/marisa/marisa-0.2.5.ebuild 
b/dev-libs/marisa/marisa-0.2.5.ebuild
index e7ec8bf4f0d..90b71175c86 100644
--- a/dev-libs/marisa/marisa-0.2.5.ebuild
+++ b/dev-libs/marisa/marisa-0.2.5.ebuild
@@ -24,14 +24,8 @@ fi
 LICENSE="|| ( BSD-2 LGPL-2.1+ )"
 SLOT="0"
 KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~sparc ~x86"
-IUSE="cpu_flags_x86_sse2 cpu_flags_x86_sse3 cpu_flags_x86_ssse3 
cpu_flags_x86_sse4_1 cpu_flags_x86_sse4_2 cpu_flags_x86_sse4a 
cpu_flags_x86_popcnt python static-libs"
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )
-       cpu_flags_x86_sse3? ( cpu_flags_x86_sse2 )
-       cpu_flags_x86_ssse3? ( cpu_flags_x86_sse3 )
-       cpu_flags_x86_sse4_1? ( cpu_flags_x86_ssse3 )
-       cpu_flags_x86_sse4_2? ( cpu_flags_x86_popcnt cpu_flags_x86_sse4_1 )
-       cpu_flags_x86_sse4a? ( cpu_flags_x86_popcnt cpu_flags_x86_sse3 )
-       cpu_flags_x86_popcnt? ( cpu_flags_x86_sse3 )"
+IUSE="python static-libs"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
 
 BDEPEND="python? (
                ${PYTHON_DEPS}
@@ -44,6 +38,10 @@ if [[ "${PV}" != "9999" ]]; then
        S="${WORKDIR}/marisa-trie-${PV}"
 fi
 
+PATCHES=(
+       "${FILESDIR}/${P}-cpu_features_check.patch"
+)
+
 src_prepare() {
        default
        eautoreconf
@@ -58,14 +56,18 @@ src_prepare() {
 }
 
 src_configure() {
+       local -x CPPFLAGS="${CPPFLAGS} ${CXXFLAGS}"
+
        local options=(
-               $(use_enable cpu_flags_x86_sse2 sse2)
-               $(use_enable cpu_flags_x86_sse3 sse3)
-               $(use_enable cpu_flags_x86_ssse3 ssse3)
-               $(use_enable cpu_flags_x86_sse4_1 sse4.1)
-               $(use_enable cpu_flags_x86_sse4_2 sse4.2)
-               $(use_enable cpu_flags_x86_sse4a sse4a)
-               $(use_enable cpu_flags_x86_popcnt popcnt)
+               # Preprocessor macros dependent on CPPFLAGS are checked.
+               --enable-sse2
+               --enable-sse3
+               --enable-ssse3
+               --enable-sse4.1
+               --enable-sse4.2
+               --enable-sse4
+               --enable-sse4a
+               --enable-popcnt
                $(use_enable static-libs static)
        )
 

Reply via email to