Hi Brad,

thank you for your patch. Unfortunately I do not have working big
endian hardware right now, so I cannot test it myself.

Can somebody with such a machine test this?

Thank you!

> Fix build issue on sparc64.
> 
> http://build-failures.rhaalovely.net/sparc64/2021-09-18/net/libstrophe.log
> 
> 
> In file included from src/sha256.c:6:
> src/sha.h:90:2: error: #error Unknown endianness not supported
> src/sha256.c: In function 'sha256_compress':
> src/sha256.c:30: warning: implicit declaration of function 'LOAD32H'
> src/sha256.c: In function 'sha256_done':
> src/sha256.c:195: warning: implicit declaration of function 'STORE64H'
> src/sha256.c:200: warning: implicit declaration of function 'STORE32H'
> 
> 
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/net/libstrophe/Makefile,v
> retrieving revision 1.5
> diff -u -p -u -p -r1.5 Makefile
> --- Makefile  10 Sep 2021 04:30:50 -0000      1.5
> +++ Makefile  20 Sep 2021 04:55:30 -0000
> @@ -4,6 +4,7 @@ COMMENT =     simple, lightweight XMPP C lib
>  
>  V =          0.10.1
>  DISTNAME =   libstrophe-${V}
> +REVISION =   0
>  
>  SHARED_LIBS =        strophe                 3.0 # 1.0
>  
> Index: patches/patch-src_sha_h
> ===================================================================
> RCS file: patches/patch-src_sha_h
> diff -N patches/patch-src_sha_h
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_sha_h   20 Sep 2021 04:55:30 -0000
> @@ -0,0 +1,35 @@
> +$OpenBSD$
> +
> +Index: src/sha.h
> +--- src/sha.h.orig
> ++++ src/sha.h
> +@@ -8,6 +8,7 @@
> + #ifndef __LIBSTROPHE_SHA_H__
> + #define __LIBSTROPHE_SHA_H__
> + 
> ++#include <endian.h>
> + #include <string.h>
> + 
> + #ifdef __cplusplus
> +@@ -19,7 +20,9 @@ extern "C" {
> + 
> + #if defined(__BIG_ENDIAN__) ||                                   \
> +     (defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && \
> +-     __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
> ++     __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) || \
> ++    (defined(BYTE_ORDER) && defined(BIG_ENDIAN) && \
> ++     BYTE_ORDER == BIG_ENDIAN)
> + 
> + #define STORE32H(x, y)      \
> +     do {                    \
> +@@ -46,7 +49,9 @@ extern "C" {
> + 
> + #elif defined(__LITTLE_ENDIAN__) ||
> \
> +     (defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) &&
> \ +-     __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
> ++     __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) || \
> ++    (defined(BYTE_ORDER) && defined(LITTLE_ENDIAN) && \
> ++     BYTE_ORDER == LITTLE_ENDIAN)
> + 
> + #define STORE32H(x, y)                         \
> +     do {                                       \
> 



-- 
greetings,

Florian Viehweger

Reply via email to