summaryrefslogtreecommitdiff
path: root/math/primecount
diff options
context:
space:
mode:
authorPiotr Kubaj <pkubaj@FreeBSD.org>2021-12-23 22:25:49 +0000
committerPiotr Kubaj <pkubaj@FreeBSD.org>2021-12-23 22:25:49 +0000
commit006829bcdc99fde7f9281eb9fb9c680ff986467c (patch)
tree5014a19c398db036f619e7883496832c57046c9a /math/primecount
parentgraphics/lua-gd: fix build on riscv64 (diff)
math/primecount: fix build on big-endian
/usr/bin/c++ -DENABLE_DIV32 -Dlibprimecount_EXPORTS -I/wrkdirs/usr/ports/math/primecount/work/primecount-7.2/include -isystem /usr/local/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -fPIC -MD -MT CMakeFiles/libprimecount.dir/src/Sieve.cpp.o -MF CMakeFiles/libprimecount.dir/src/Sieve.cpp.o.d -o CMakeFiles/libprimecount.dir/src/Sieve.cpp.o -c /wrkdirs/usr/ports/math/primecount/work/primecount-7.2/src/Sieve.cpp In file included from /wrkdirs/usr/ports/math/primecount/work/primecount-7.2/src/Sieve.cpp:38: /wrkdirs/usr/ports/math/primecount/work/primecount-7.2/include/SieveTables.hpp:63:40: error: too many arguments provided to function-like macro invocation constexpr uint64_t bswap64(uint64_t i, uint64_t j = 0, uint64_t n = 0) ^ /usr/include/sys/endian.h:63:9: note: macro 'bswap64' defined here ^ In file included from /wrkdirs/usr/ports/math/primecount/work/primecount-7.2/src/Sieve.cpp:38: /wrkdirs/usr/ports/math/primecount/work/primecount-7.2/include/SieveTables.hpp:65:3: error: expected expression return (n == sizeof(uint64_t)) ? j : ^ /wrkdirs/usr/ports/math/primecount/work/primecount-7.2/include/SieveTables.hpp:66:21: error: too many arguments provided to function-like macro invocation bswap64(i >> 8, (j << 8) | (i & 0xff), n + 1); ^ /usr/include/sys/endian.h:63:9: note: macro 'bswap64' defined here ^ In file included from /wrkdirs/usr/ports/math/primecount/work/primecount-7.2/src/Sieve.cpp:38: /wrkdirs/usr/ports/math/primecount/work/primecount-7.2/include/SieveTables.hpp:67:2: error: expected ';' after top level declarator } ^ ; 4 errors generated.
Diffstat (limited to 'math/primecount')
-rw-r--r--math/primecount/files/patch-include_SieveTables.hpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/math/primecount/files/patch-include_SieveTables.hpp b/math/primecount/files/patch-include_SieveTables.hpp
new file mode 100644
index 000000000000..4dd773f4b179
--- /dev/null
+++ b/math/primecount/files/patch-include_SieveTables.hpp
@@ -0,0 +1,29 @@
+--- include/SieveTables.hpp.orig 2021-12-20 20:37:55 UTC
++++ include/SieveTables.hpp
+@@ -60,22 +60,22 @@ constexpr int right_shift(int n)
+ /// on big endian CPU architectures.
+
+ /// Reverse byte order of 64-bit integer
+-constexpr uint64_t bswap64(uint64_t i, uint64_t j = 0, uint64_t n = 0)
++constexpr uint64_t bswap_64(uint64_t i, uint64_t j = 0, uint64_t n = 0)
+ {
+ return (n == sizeof(uint64_t)) ? j :
+- bswap64(i >> 8, (j << 8) | (i & 0xff), n + 1);
++ bswap_64(i >> 8, (j << 8) | (i & 0xff), n + 1);
+ }
+
+ /// Bitmask to unset bits <= n
+ constexpr uint64_t unset_s(int n)
+ {
+- return bswap64(~0ull << left_shift(n));
++ return bswap_64(~0ull << left_shift(n));
+ }
+
+ /// Bitmask to unset bits >= n
+ constexpr uint64_t unset_l(int n)
+ {
+- return bswap64((n == 0) ? 0 : ~0ull >> right_shift(n));
++ return bswap_64((n == 0) ? 0 : ~0ull >> right_shift(n));
+ }
+
+ #else