commit:     9ea5a49aa158bcc842b65e236b64241a7e49272f
Author:     Anna (cybertailor) Vyalkova <cyber+gentoo <AT> sysrq <DOT> in>
AuthorDate: Sun Jun 11 12:13:21 2023 +0000
Commit:     Anna Vyalkova <cyber+gentoo <AT> sysrq <DOT> in>
CommitDate: Sun Jun 11 12:14:34 2023 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=9ea5a49a

sci-biology/geneathome: fix build with gcc 13

Signed-off-by: Anna (cybertailor) Vyalkova <cyber+gentoo <AT> sysrq.in>

 .../geneathome/files/geneathome-1.10-include.patch | 12 ++++
 .../files/geneathome-1.10-iostream.patch           | 82 ++++++++++++++++++++++
 ...kefile.patch => geneathome-1.10-makefile.patch} |  0
 ...me-1.10-r3.ebuild => geneathome-1.10-r4.ebuild} | 15 ++--
 4 files changed, 99 insertions(+), 10 deletions(-)

diff --git a/sci-biology/geneathome/files/geneathome-1.10-include.patch 
b/sci-biology/geneathome/files/geneathome-1.10-include.patch
new file mode 100644
index 000000000..9130b88e3
--- /dev/null
+++ b/sci-biology/geneathome/files/geneathome-1.10-include.patch
@@ -0,0 +1,12 @@
+Fixes build with GCC 13.
+
+--- a/src/simd/Vector.hpp
++++ b/src/simd/Vector.hpp
+@@ -23,6 +23,7 @@
+ 
+ #include <type_traits>
+ #include <cassert>
++#include <cstdint>
+ 
+ // std::negation requires C++17, so defined own one
+ template<typename B>

diff --git a/sci-biology/geneathome/files/geneathome-1.10-iostream.patch 
b/sci-biology/geneathome/files/geneathome-1.10-iostream.patch
new file mode 100644
index 000000000..24d47cee4
--- /dev/null
+++ b/sci-biology/geneathome/files/geneathome-1.10-iostream.patch
@@ -0,0 +1,82 @@
+Fixes "inlining failed in call to ..."
+
+--- a/src/main.cpp
++++ b/src/main.cpp
+@@ -22,8 +22,8 @@ int appMain(int argc, char* argv[]);
+ 
+ #if defined(__i386__) || defined (__x86_64__)
+ 
++#include <iostream>
+ #include <cpuid.h>
+-#include <stdio.h>
+ 
+ __attribute__((target("no-avx,no-sse")))
+ bool checkRequiredInstructionSets() {
+@@ -34,14 +34,14 @@ bool checkRequiredInstructionSets() {
+       unsigned int a, b, c, d;
+ 
+       if (!__get_cpuid(1, &a, &b, &c, &d)) {
+-              fprintf(stderr, "CPUID instruction is not supported by your 
CPU!\n");
++              std::cerr << "CPUID instruction is not supported by your 
CPU!\n";
+               return false;
+       }
+ 
+ #ifdef __SSE2__
+       //printf("Checking for SSE2 support\n");
+       if (0 == (d & bit_SSE2)) {
+-              fprintf(stderr, "SSE2 instructions are not supported by your 
CPU!\n");
++              std::cerr << "SSE2 instructions are not supported by your 
CPU!\n";
+               return false;
+       }
+ #endif
+@@ -49,13 +49,13 @@ bool checkRequiredInstructionSets() {
+ #ifdef __AVX__
+       //printf("Checking for AVX support\n");
+       if (0 == (c & bit_AVX)) {
+-              fprintf(stderr, "AVX instructions are not supported by your 
CPU!\n");
++              std::cerr << "AVX instructions are not supported by your 
CPU!\n";
+               return false;
+       }
+ 
+       // AVX also needs OS support, check for it
+       if (0 == (c & bit_OSXSAVE)) {
+-              fprintf(stderr, "OSXSAVE instructions are not supported by your 
CPU!\n");
++              std::cerr << "OSXSAVE instructions are not supported by your 
CPU!\n";
+               return false;
+       }
+ 
+@@ -63,7 +63,7 @@ bool checkRequiredInstructionSets() {
+       unsigned int ecx = 0; // _XCR_XFEATURE_ENABLED_MASK
+       __asm__ ("xgetbv" : "=a" (eax), "=d" (edx) : "c" (ecx));
+       if (0x6 != (eax & 0x6)) { // XSTATE_SSE | XSTATE_YMM
+-              fprintf(stderr, "AVX instructions are not supported by your 
OS!\n");
++              std::cerr << "AVX instructions are not supported by your OS!\n";
+               return false;
+       }
+ #endif
+@@ -71,7 +71,7 @@ bool checkRequiredInstructionSets() {
+ #ifdef __FMA__
+       //printf("Checking for FMA support\n");
+       if (0 == (c & bit_FMA)) {
+-              fprintf(stderr, "FMA instructions are not supported by your 
CPU!\n");
++              std::cerr << "FMA instructions are not supported by your 
CPU!\n";
+               return false;
+       }
+ #endif
+@@ -79,14 +79,14 @@ bool checkRequiredInstructionSets() {
+ #ifdef __AVX2__
+       //printf("Checking for AVX2 support\n");
+       if (__get_cpuid_max(0, 0) < 7) {
+-              fprintf(stderr, "Extended CPUID 0x7 instruction is not 
supported by your CPU!\n");
++              std::cerr << "Extended CPUID 0x7 instruction is not supported 
by your CPU!\n";
+               return false;
+       }
+ 
+       __cpuid_count(7, 0, a, b, c, d);
+ 
+       if (0 == (b & bit_AVX2)) {
+-              fprintf(stderr, "AVX2 instructions are not supported by your 
CPU!\n");
++              std::cerr << "AVX2 instructions are not supported by your 
CPU!\n";
+               return false;
+       }
+ #endif

diff --git a/sci-biology/geneathome/files/makefile.patch 
b/sci-biology/geneathome/files/geneathome-1.10-makefile.patch
similarity index 100%
rename from sci-biology/geneathome/files/makefile.patch
rename to sci-biology/geneathome/files/geneathome-1.10-makefile.patch

diff --git a/sci-biology/geneathome/geneathome-1.10-r3.ebuild 
b/sci-biology/geneathome/geneathome-1.10-r4.ebuild
similarity index 77%
rename from sci-biology/geneathome/geneathome-1.10-r3.ebuild
rename to sci-biology/geneathome/geneathome-1.10-r4.ebuild
index c25cf8755..64c1db7d3 100644
--- a/sci-biology/geneathome/geneathome-1.10-r3.ebuild
+++ b/sci-biology/geneathome/geneathome-1.10-r4.ebuild
@@ -25,21 +25,16 @@ KEYWORDS="~amd64 ~arm64 ~x86"
 DEPEND="app-arch/bzip2"
 RDEPEND="${DEPEND}"
 
-PATCHES=( "${FILESDIR}"/makefile.patch )
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.10-include.patch
+       "${FILESDIR}"/${PN}-1.10-iostream.patch
+       "${FILESDIR}"/${PN}-1.10-makefile.patch
+)
 
 DOCS=( Readme.md )
 
 boinc-app_add_deps
 
-src_prepare() {
-       default
-
-       # error: inlining failed in call to ‘always_inline’ ‘int fprintf(FILE*, 
const char*, ...)’: target specific option mismatch
-       sed  -i src/main.cpp \
-               -e 's/stdio.h/iostream/' \
-               -e 's/fprintf(stderr, \(.*\))/std::cerr << \1/g' || die
-}
-
 src_compile() {
        tc-export CC CXX
 

Reply via email to