From: User Subject: [PATCH] Experimental big-endian support Remove compile-time and runtime rejections of big-endian systems. This is experimental - hash results may be incorrect until proper byte-swapping is implemented at the host/device boundary. Changes: - common.h: Replace compile error with HC_BIG_ENDIAN define - backend.c: Change error to warning and allow device to be used --- include/common.h | 4 ++-- src/backend.c | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/include/common.h b/include/common.h index aaaaaaa..bbbbbbb 100644 --- a/include/common.h +++ b/include/common.h @@ -17,9 +17,9 @@ #endif #if defined (__BYTE_ORDER__) && defined (__ORDER_BIG_ENDIAN__) #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ -#error "compiling for big-endian architecture not supported" -#endif +#define HC_BIG_ENDIAN 1 #endif +#endif #ifndef _GNU_SOURCE #define _GNU_SOURCE diff --git a/src/backend.c b/src/backend.c index ccccccc..ddddddd 100644 --- a/src/backend.c +++ b/src/backend.c @@ -7467,10 +7467,8 @@ int backend_ctx_devices_init (hashcat_ctx_t *hashcat_ctx, const int comptime) if (device_endian_little == CL_FALSE) { - event_log_error (hashcat_ctx, "* Device #%u: This device is not little-endian.", device_id + 1); + event_log_warning (hashcat_ctx, "* Device #%u: This device is big-endian. Experimental support - results may be incorrect.", device_id + 1); - device_param->skipped = true; + // Continue anyway - experimental big-endian support } // device_available -- 2.39.0