--- modules/skcms/skcms.cc.orig 2026-04-26 19:40:51.994241363 +0000 +++ modules/skcms/skcms.cc 2026-04-26 19:41:15.071852033 +0000 @@ -317,10 +317,15 @@ uint16_t be_l, be_h; memcpy(&be_l, curve->table_16 + 2*lo, 2); memcpy(&be_h, curve->table_16 + 2*hi, 2); +#if defined(SKCMS_BIG_ENDIAN) + l = be_l * (1/65535.0f); + h = be_h * (1/65535.0f); +#else uint16_t le_l = ((be_l << 8) | (be_l >> 8)) & 0xffff; uint16_t le_h = ((be_h << 8) | (be_h >> 8)) & 0xffff; l = le_l * (1/65535.0f); h = le_h * (1/65535.0f); +#endif } return l + (h-l)*t; } @@ -379,7 +384,9 @@ static uint16_t read_big_u16(const uint8_t* ptr) { uint16_t be; memcpy(&be, ptr, sizeof(be)); -#if defined(_MSC_VER) +#if defined(SKCMS_BIG_ENDIAN) + return be; +#elif defined(_MSC_VER) return _byteswap_ushort(be); #else return __builtin_bswap16(be); @@ -389,7 +396,9 @@ static uint32_t read_big_u32(const uint8_t* ptr) { uint32_t be; memcpy(&be, ptr, sizeof(be)); -#if defined(_MSC_VER) +#if defined(SKCMS_BIG_ENDIAN) + return be; +#elif defined(_MSC_VER) return _byteswap_ulong(be); #else return __builtin_bswap32(be);