CPU isn't correctly tested on arm64 platform for qt. If two lines are changed in src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h, it fixes all build errors on the arch. Line 1000 and onward can be changed from: #if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(SPARC64) || CPU(S390X) || CPU(PPC64) || CPU(MIPS64) #define WTF_USE_JSVALUE64 1 to: #if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(SPARC64) || CPU(S390X) || CPU(PPC64) || CPU(MIPS64) || defined(aarch64) #define WTF_USE_JSVALUE64 1 Of course I sent the above fix to the authors of the software as well: https://github.com/wkhtmltopdf/wkhtmltopdf/issues/4871 But the port is currently disabled in the ports tree on arm64 because of this defect. There may be a better way to detect arm64, but the above fix works fine.
Created attachment 219463 [details] patch Something like this patch ? I'm testbuilding right now, but as I crossbuild, I'm not sure this builds.
My poudriere jail complains: qemu: unsupported syscall: 574 and I have not yet found when this syscall was added.
(In reply to Kurt Jaeger from comment #2) https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=247025 has a similar report. My poudriere jail is @r363767 arm 13.0-CURRENT 1300103 r363767 arm64.aarch64 svn+ssh 2020-08-02 15:13:01 /pou/jails/arm
I'm at 12.2-RELEASE - so that could be a difference? Your patch looks spot on. Is there a way I can merge your patch into my ports tree - and try it the same way as you do? Currently i abort the make when it starts compiling, make the change and restart the make.
Created attachment 219465 [details] patchfile-for-files-dir Add this file to the files/ directory of the port.
Ok, so GitHub messed up my code example, and I copy/pasted it here. Apparently you need to indent code with 4 spaces - otherwise backslashes and underscores disappears. Sorry for the confusion, the correct code is: #if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS))) \ || (CPU(IA64) && !CPU(IA64_32)) \ || CPU(ALPHA) \ || CPU(SPARC64) \ || CPU(S390X) \ || CPU(PPC64) \ || CPU(MIPS64) \ || defined(__aarch64__) #define WTF_USE_JSVALUE64 1 This works for me, with no other alterations. Just compiled the mammoth successfully.
Did you manage to compile yourself?
Created attachment 219576 [details] new patchfile-for-files-dir With underscores
Created attachment 219577 [details] Correct patch
Comment on attachment 219577 [details] Correct patch Give this the correct patchname.
I can confirm that this fixes the build for me (using qemu).
A commit references this bug: Author: pi Date: Sun Nov 15 10:23:01 UTC 2020 New revision: 555188 URL: https://svnweb.freebsd.org/changeset/ports/555188 Log: converters/wkhtmltopdf: fix build on arm64/aarch64 PR: 250952 Submitted by: rasmus@gal.dk Reviewed by: linimon MFH: 2020Q4 Changes: head/converters/wkhtmltopdf/Makefile head/converters/wkhtmltopdf/files/patch-src__3rdparty__webkit__Source__JavaScriptCore__wtf__Platform.h
Thanks, committed!
A commit references this bug: Author: pi Date: Sun Nov 15 10:24:19 UTC 2020 New revision: 555189 URL: https://svnweb.freebsd.org/changeset/ports/555189 Log: MFH: r555188 converters/wkhtmltopdf: fix build on arm64/aarch64 PR: 250952 Submitted by: rasmus@gal.dk Reviewed by: linimon Approved by: portmgr (fix blanket) Changes: _U branches/2020Q4/ branches/2020Q4/converters/wkhtmltopdf/Makefile branches/2020Q4/converters/wkhtmltopdf/files/patch-src__3rdparty__webkit__Source__JavaScriptCore__wtf__Platform.h