Fix build on big-endian architectures due to byte-swapping function.

PR:		232870
Submitted by:	Piotr Kubaj
Approved by:	maintainer
This commit is contained in:
Mark Linimon 2018-11-11 03:49:19 +00:00
parent ab6629358b
commit 17e9d38ecb
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=484658
2 changed files with 63 additions and 2 deletions

View file

@ -16,8 +16,6 @@ COMMENT= Lightweight PDF viewer and toolkit
LICENSE= AGPLv3
LICENSE_FILE= ${WRKSRC}/COPYING
BROKEN_powerpc64= fails to compile: cmsmd5.c:36:51: 'ContextID' undeclared
LIB_DEPENDS= libcurl.so:ftp/curl \
libfreetype.so:print/freetype2 \
libharfbuzz.so:print/harfbuzz \

View file

@ -0,0 +1,63 @@
--- thirdparty/lcms2/src/cmsmd5.c.orig 2018-10-31 19:49:39 UTC
+++ thirdparty/lcms2/src/cmsmd5.c
@@ -29,7 +29,7 @@
#ifdef CMS_USE_BIG_ENDIAN
static
-void byteReverse(cmsUInt8Number * buf, cmsUInt32Number longs)
+void byteReverse(cmsContext ContextID, cmsUInt8Number * buf, cmsUInt32Number longs)
{
do {
@@ -42,7 +42,7 @@ void byteReverse(cmsUInt8Number * buf, cmsUInt32Number
}
#else
-#define byteReverse(buf, len)
+#define byteReverse(ContextID, buf, len)
#endif
@@ -196,7 +196,7 @@ void MD5add(cmsHANDLE Handle, cmsUInt8Number* buf, cms
}
memmove(p, buf, t);
- byteReverse(ctx->in, 16);
+ byteReverse(ctx->ContextID, ctx->in, 16);
MD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in);
buf += t;
@@ -205,7 +205,7 @@ void MD5add(cmsHANDLE Handle, cmsUInt8Number* buf, cms
while (len >= 64) {
memmove(ctx->in, buf, 64);
- byteReverse(ctx->in, 16);
+ byteReverse(ctx->ContextID, ctx->in, 16);
MD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in);
buf += 64;
len -= 64;
@@ -232,21 +232,21 @@ void MD5finish(cmsProfileID* ProfileID, cmsHANDLE Han
if (count < 8) {
memset(p, 0, count);
- byteReverse(ctx->in, 16);
+ byteReverse(ctx->ContextID, ctx->in, 16);
MD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in);
memset(ctx->in, 0, 56);
} else {
memset(p, 0, count - 8);
}
- byteReverse(ctx->in, 14);
+ byteReverse(ctx->ContextID, ctx->in, 14);
((cmsUInt32Number *) ctx->in)[14] = ctx->bits[0];
((cmsUInt32Number *) ctx->in)[15] = ctx->bits[1];
MD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in);
- byteReverse((cmsUInt8Number *) ctx->buf, 4);
+ byteReverse(ctx->ContextID, (cmsUInt8Number *) ctx->buf, 4);
memmove(ProfileID ->ID8, ctx->buf, 16);
_cmsFree(ctx ->ContextID, ctx);