aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Kubaj <pkubaj@FreeBSD.org>2025-09-02 12:09:31 +0000
committerPiotr Kubaj <pkubaj@FreeBSD.org>2025-09-03 09:21:17 +0000
commita2c918232cc82cc100a718cdb49edcb351a2b056 (patch)
tree300a385e3544eb5e8b0b39d95a21831d4f335045
parentd407ee543206d7d73a175144798f6c9f23d2013d (diff)
net/relayd: fix build on big-endian architectures
siphash.c:67:7: error: incompatible pointer to integer conversion passing 'const u_int64_t *' (aka 'const unsigned long *') to parameter of type 'unsigned long' [-Wint-conversion] 67 | k0 = le64toh(&key->k0); | ^~~~~~~~~~~~~~~~~ /usr/include/sys/_endian.h:130:30: note: expanded from macro 'le64toh' 130 | #define le64toh(x) __bswap64((x)) | ~~~~~~~~~~^~~~ /usr/include/sys/_endian.h:85:40: note: expanded from macro '__bswap64' 85 | #define __bswap64(x) __builtin_bswap64(x) | ^ siphash.c:68:7: error: incompatible pointer to integer conversion passing 'const u_int64_t *' (aka 'const unsigned long *') to parameter of type 'unsigned long' [-Wint-conversion] 68 | k1 = le64toh(&key->k1); | ^~~~~~~~~~~~~~~~~ /usr/include/sys/_endian.h:130:30: note: expanded from macro 'le64toh' 130 | #define le64toh(x) __bswap64((x)) | ~~~~~~~~~~^~~~ /usr/include/sys/_endian.h:85:40: note: expanded from macro '__bswap64' 85 | #define __bswap64(x) __builtin_bswap64(x) | ^ siphash.c:194:16: error: incompatible pointer to integer conversion passing 'u_int64_t *' (aka 'unsigned long *') to parameter of type 'unsigned long'; dereference with * [-Wint-conversion] 194 | u_int64_t m = le64toh((u_int64_t *)ctx->buf); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/sys/_endian.h:130:30: note: expanded from macro 'le64toh' 130 | #define le64toh(x) __bswap64((x)) | ~~~~~~~~~~^~~~ /usr/include/sys/_endian.h:85:40: note: expanded from macro '__bswap64' 85 | #define __bswap64(x) __builtin_bswap64(x) | ^ 3 errors generated.
-rw-r--r--net/relayd/files/patch-usr.sbin_relayd_siphash.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/net/relayd/files/patch-usr.sbin_relayd_siphash.c b/net/relayd/files/patch-usr.sbin_relayd_siphash.c
new file mode 100644
index 000000000000..16575bdd6c1f
--- /dev/null
+++ b/net/relayd/files/patch-usr.sbin_relayd_siphash.c
@@ -0,0 +1,22 @@
+--- usr.sbin/relayd/siphash.c.orig 2025-09-02 11:44:37 UTC
++++ usr.sbin/relayd/siphash.c
+@@ -64,8 +64,8 @@ SipHash_Init(SIPHASH_CTX *ctx, const SIPHASH_KEY *key)
+ uint64_t k0, k1;
+
+ #ifdef __FreeBSD__
+- k0 = le64toh(&key->k0);
+- k1 = le64toh(&key->k1);
++ k0 = le64toh(key->k0);
++ k1 = le64toh(key->k1);
+ #else
+ k0 = lemtoh64(&key->k0);
+ k1 = lemtoh64(&key->k1);
+@@ -191,7 +191,7 @@ SipHash_CRounds(SIPHASH_CTX *ctx, int rounds)
+ SipHash_CRounds(SIPHASH_CTX *ctx, int rounds)
+ {
+ #ifdef __FreeBSD__
+- u_int64_t m = le64toh((u_int64_t *)ctx->buf);
++ u_int64_t m = le64toh((u_int64_t)ctx->buf);
+ #else
+ u_int64_t m = lemtoh64((u_int64_t *)ctx->buf);
+ #endif