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 0000000000..9130b88e30 --- /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 + #include ++#include + + // std::negation requires C++17, so defined own one + template 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 0000000000..24d47cee40 --- /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 + #include +-#include + + __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 c25cf87550..64c1db7d3a 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