Summary: | fails to build on ppc64: thirdparty/lcms2/src/cmsmd5.c:36:51: Fehler: »ContextID« nicht deklariert | ||
---|---|---|---|
Product: | MuPDF | Reporter: | ernsteiswuerfel <erhard_f> |
Component: | mupdf | Assignee: | MuPDF bugs <mupdf-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | robin.watts |
Priority: | P4 | ||
Version: | master | ||
Hardware: | PC | ||
OS: | Linux | ||
URL: | https://bugs.gentoo.org/668190 | ||
Customer: | Word Size: | 64 |
Description
ernsteiswuerfel
2018-10-12 18:22:49 UTC
I don't speak German, but I'd guess the problem is that you are building with the system version of lcms2, rather than our own forked version of lcms2. As such, I suspect it's a packaging problem for your distro. If you download a release version from us (which comes with all the thirdparty libs), does it build OK? For this bug-report I tried building from git master: # git clone git://git.ghostscript.com/mupdf.git # cd mupdf/ # git submodule init # git submodule update # make -j28 Sorry if I did not make myself clear enough. I guess this should correctly pull and use the thirdparty libs and your forekt version of lcms2? (In reply to ernsteiswuerfel from comment #2) > Sorry if I did not make myself clear enough. I guess this should correctly > pull and use the thirdparty libs and your forekt version of lcms2? No need to apologise, the fault was mine for not reading properly. Yes, that looks right. In cmsmd5.c, line 36, replace ContextID with 0. Do this for any other similar instances you find. Please let me know how you get on. I don't have access to a PowerPC to try this on. Now it's: thirdparty/lcms2/src/cmsmd5.c:54:16: Fehler: expected identifier or »(« before numeric constant cmsContext 0; ^ thirdparty/lcms2/src/cmsmd5.c:56:1: Warnung: kein Semikolon am Ende von »struct« oder »union« } _cmsMD5; ^ CC build/release/thirdparty/jbig2dec/jbig2_segment.o thirdparty/lcms2/src/cmsmd5.c:155:32: Fehler: expected »;«, »,« or »)« before numeric constant cmsHANDLE MD5alloc(cmsContext 0) ^ thirdparty/lcms2/src/cmsmd5.c: In Funktion »MD5finish«: thirdparty/lcms2/src/cmsmd5.c:252:20: Fehler: expected identifier before numeric constant _cmsFree(ctx ->0, ctx); ^ thirdparty/lcms2/src/cmsmd5.c:252:5: Fehler: Zu wenige Argumente für Funktion »_cmsFree« _cmsFree(ctx ->0, ctx); ^~~~~~~~ In file included from thirdparty/lcms2/src/lcms2_internal.h:31:0, from thirdparty/lcms2/src/cmsmd5.c:27: thirdparty/lcms2/include/lcms2art_plugin.h:107:37: Anmerkung: hier deklariert CMSAPI void CMSEXPORT _cmsFree(cmsContext ContextID, void* Ptr); ^~~~~~~~ thirdparty/lcms2/src/cmsmd5.c: Auf höchster Ebene: thirdparty/lcms2/src/cmsmd5.c:261:46: Fehler: expected »;«, »,« or »)« before numeric constant cmsBool CMSEXPORT cmsMD5computeID(cmsContext 0, cmsHPROFILE hProfile) (In reply to Robin Watts from comment #3) > Do this for any other similar instances you find. Please let me know how you > get on. I don't have access to a PowerPC to try this on. I meant "similar instances you find in calls to _cmsAdjustEndianess32", sorry. So, the issue here is that we fixed this bug in our fork of lcms2 within gs, and forgot to update the MuPDF one. I'll get that done next week. Sorry. Ok, I can confirm the build finishes when replacing with ContextID 0 in _cmsAdjustEndianess32 (only one instance). Ah, you were faster than me. Thanks for the good news and the proposed update next week! Fixed with: commit 90b8faa80a4746f7f1e0966d6c56a687d2f8d333 Author: Robin Watts <robin.watts@artifex.com> Date: Sun Oct 14 00:06:46 2018 +0100 Pull in newly merged and updated LCMS2MT from MuPDF thirdparty repo. The MuPDF repo should be considered canonical, as that is the one that can pull in updates from upstream lcms2 easily. Thanks for the report. Please let us know if this solves it for you. I can confirm mupdf from git-master builds now again on my Talos. Thanks for the fix! |