mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-10-12 17:51:11 -04:00
sci-biology/geneathome: fix build with gcc 13
Signed-off-by: Anna (cybertailor) Vyalkova <cyber+gentoo@sysrq.in>
This commit is contained in:
1 parent
3bdc7333ce
commit
9ea5a49aa1
4 files changed
+99
-10
No files matched your search
@@ -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>
|
||||
@@ -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
|
||||
File renamed without changes.
+5
-10
@@ -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
|
||||
|
||||
Reference in new issue
Block a user