Log of #ghostscript at irc.freenode.net.

 <<<Back 1 day (to 2020/12/13)Fwd 1 day (to 2020/12/15) >>>20201214 
emendelson Apologies for time-wasting if this has come up before (I haven't found it after a brief search). I assume that Ghostscript is not supported on Apple Silicon (aka arm64), but I tried building it anyway. It failed with this message: Undefined symbols for architecture arm64: "_png_init_filter_functions_neon", referenced from:17:11.04 
  _png_read_filter_row in pngrutil.old: symbol(s) not found for architecture arm64clang: error: linker command failed with exit code 1 (use -v to see invocation)make: *** [bin/gs] Error 1 17:11.05 
  And apologies for the bad formatting there: the error starts with "Undefined symbols." I can't even imagine how to fix this, and would be grateful if there's any beta code out there that works with Apple Silicon. Obviously, we won't need this for years, because rosetta 2 will run Intel-based code, but someday we'll need it. Thanks again for this17:12.38 
  amazingly impressive project.17:12.38 
chrisl emendelson: As soon as automake supports the M1 hardware, so will we17:13.25 
artifexirc-bot <RayJohnston> emendelson: I had done an ARM 64 build a while ago on SUSE 64-bit linux on a Raspberry Pi and that worked, but that was before some of the neon code17:13.32 
emendelson chrisl and Ray - Thank you for that. I'll learn to be patient until automake gets updated. And thank you for the quick response.17:14.53 
artifexirc-bot <RayJohnston> emendelson: as chrisl points out, the build relies on quite a few things to be pickled into Makefile17:14.59 
  <RayJohnston> the 'configure' script *might* be able to come close17:15.28 
  <RayJohnston> but chrisl is our build expert17:16.21 
emendelson Modifying it is far beyond my abilities, but I'll be happy to try building any code that anyone posts. (I'm working on a borrowed machine that I'll have to give back next month, however.)17:16.45 
artifexirc-bot <RayJohnston> emendelson: and on the SUSE linux, I did use autogen.sh (which uses automake) to get the Makefile17:17.29 
chrisl emendelson: TBH, I'm rather surprised and disappointed that automake doesn't support it properly yet. Likely you can force it to use aarch64, but I can't remember how, off the top of my head17:17.59 
artifexirc-bot <RayJohnston> @chrisl at the time, I vaguely remember having to add a new target17:18.50 
chrisl That was for the libtiff configure script17:19.21 
emendelson Well, no one should underestimate my ignorance and incompetence. I ran ./autogen.sh, then ./configure and make, and it's building right now. I'll report back when it's done. (Of course I should have tried this first.)17:20.09 
artifexirc-bot <RayJohnston> @chrisl may have been -- I got rid of the SUSE 64 since the 64 bit code ran so slowly on the Raspberry17:20.12 
emendelson Nope -- make ended with the same error as before.17:20.28 
artifexirc-bot <RayJohnston> @chrisl sounds like you need an M1 (or at least one that you can ssh into) 🙂17:21.09 
emendelson But wait until I update automake. I think I have an outdated one...17:21.23 
artifexirc-bot <RayJohnston> emendelson: probably not the issue (just sayin')17:21.53 
chrisl If automake doesn't get updated before we start to gear up for our next release, I'll probably do an interim solution17:22.06 
artifexirc-bot <RayJohnston> yeah, the M1 will probably be pretty hot this XMas17:23.17 
chrisl okay, so automake 1.16.3 recognises the Apple M1 hardware. Hopefully that will be rolled out to distros soon17:27.00 
artifexirc-bot <RayJohnston> can you rebuild automake without automake 😉17:28.02 
emendelson artifexirc-bot and chrisl I updated automake to (I think), 1.16.3, ran autogen.sh, configure, and make, and failed with the same error, alas. As Ray said...17:28.53 
  Wait - the "I think" was mistakenly left over from "I think the latest version" - it is the latest version.17:29.50 
chrisl Okay, well, it's supposed to support the new hardware17:30.30 
artifexirc-bot <RayJohnston> emendelson: you can check with: automake --version17:30.41 
emendelson I did check: 1.16.317:30.53 
chrisl emendelson: Try buliding gs without the tiff devices17:31.38 
artifexirc-bot <RayJohnston> autogen.sh _should_ start from Makefile.in and replace Makefile17:31.39 
chrisl Oh, wait, the problems are in libpng, scratch that17:31.59 
artifexirc-bot <RayJohnston> and the magic 'without' string for that is?17:32.02 
  <RayJohnston> so, maybe without the png* devices (or do we use libpng for something else)17:33.55 
chrisl Not in ghostscript - it's used in gxps and gpdl17:35.51 
emendelson If you can tell me a string to use on the command line, I'll gladly give it a try (I'm not competent to do much more than that). Will be away for lunch (New York time) but will keep the browser open.17:39.27 
  And BTW, what I'm hoping for most of all is GhostPCL, which I use in many projects.17:40.30 
artifexirc-bot <RayJohnston> emendelson: well, if gs builds, ghostpdl should, just as easily17:42.27 
chrisl emendelson: Try doing: ./configure CFLAGS="-DPNG_ARM_NEON_OPT=0" && make clean && make17:42.33 
artifexirc-bot <Robin_Watts> Ah, cos our makefiles don't include libpng/arm/arm_init.c17:47.12 
  <chrisl> Possibly we should just always set -DPNG_ARM_NEON_OPT=0 and -DPNG_POWERPC_VSX_OPT=017:53.58 
chrisl I confess, I don't see any reason why it wouldn't work with automake 1.16.3 - the platform triplet should be "aarch64-apple-darwin" and we look for the string "aarch64"...18:07.58 
emendelson Building now with the string that chrisl suggested at 12:42:33 my time...18:12.07 
  Different error this time:18:13.18 
  ./jpegxr/r_strip.c:1710:28: error: implicit declaration of function 'abs' is invalid in C99 [-Werror,-Wimplicit-function-declaration] unsigned int iEM = abs(iPixVal); ^./jpegxr/r_strip.c:1710:28: note: did you mean18:13.23 
  'fabs'?/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/math.h:417:15: note: 'fabs' declared hereextern double fabs(double); ^./jpegxr/r_strip.c:1709:22: warning: unused variable 'fV' [-Wunused-variable] unsigned int fV = 0;18:13.24 
  ^3 warnings and 1 error generated.18:13.24 
chrisl Well, you don't need jpexr for either ghostscript or ghostpcl18:14.03 
emendelson I'm ready to try another command-line...18:14.23 
chrisl So, try "make gs" ?18:14.26 
  emendelson: You may have missed it: So, try "make gs" ?18:18.02 
emendelson Got disconnected, sorry. In fact, gs and gpcl6 got built before that error message appeared! I should have looked in the "bin" folder...18:18.08 
chrisl Ah, cool. Well, that's a step forward, anyway18:18.26 
emendelson Didn't even have to "make gs" - but "make gs" and "make gpcl6" both work without errors.18:18.35 
chrisl Yeh, I think the targets are gs, gpcl6, gxps, gpdl - in that order. So if you don't do a parallel make, it'll get through gs and gpcl6 before erroring out on gxps18:19.45 
emendelson Good to know. Thank you again!18:23.33 
chrisl emendelson: NP, thanks for trying it out. We'll endeavour to have it properly supported by the spring release18:25.52 
 <<<Back 1 day (to 2020/12/13)Forward 1 day (to 2020/12/15)>>> 
ghostscript.com #mupdf