misc/github-copilot-language-server: enable on powerpc64*
Node calls both endians ppc64, so the native modules have to go into
compiled/freebsd/ppc64 for the server to find them.
The node headers come from an official GCC build, so node-gyp adds the
GCC-only -mminimal-toc on ppc64 and clang errors out. Tell gyp they are
clang-built instead.
editors/openoffice-*: fix the UNO bridge on powerpc64*
call.s came from a glibc build with the stack protector on, so it reads
the canary from glibc's TLS slot. On FreeBSD that slot holds the DTV
pointer, and a bridged call aborts when rtld grows the DTV in the middle
of it, e.g. on the first save from Python. Drop it.
Also return small structs in r3/r4 and float structs in FPRs, as ELFv2
wants. Basic, Python and Java got garbage from methods like
getCellAddress(), and the bridgetest crashed.
sysutils/logstash*: enable on powerpc64*
Logstash is all Java, and JRuby falls back to plain Java where it has no
native helpers, like it already does on aarch64. Just exclude the
x86_64 libfixposix everywhere except amd64, not only on aarch64.
deskutils/qmd: add powerpc64 and powerpc64le
Node calls both endians ppc64, so fix NODE_ARCH and use it instead of
the hard-coded freebsd-x64 for node-llama-cpp's build directory.
x11-wm/cosmic-comp: enable on powerpc64*
The amd64-only restriction was added because of a shift that overflows
a 32-bit usize, so exclude only the 32-bit architectures.
math/gap: use the external libsemigroups, enable on powerpc64*
Without pkg-config the semigroups package never found the external
libsemigroups, so it built and shipped its bundled copy, whose HPCombi
SIMDe code does not build on powerpc64le. Use the external library.
The GAPState size assertion no longer fires with 4.16.1.
math/libsemigroups: fix the pkg-config version, depend on eigen at run time
The GitHub tarball carries neither .VERSION nor git metadata, so
configure called the library 3.dev and the pkg-config file failed every
version check. The installed headers include Eigen, so consumers need
eigen5 at run time as well.
misc/codex: fix build on powerpc64*
Build V8 without the sandbox and Maglev on powerpc64, which its PPC64
backend does not support, let clang use its own target on FreeBSD
instead of the Linux triple, add the ppc64 clang toolchain, require
POWER8 vectors for simdutf's PPC64 kernel as upstream does and carry
node's big-endian byte order, ELFv2 and sampler fixes.
emulators/amiberry: enable on powerpc64*
Drop the include of the missing eigccppc.h, treat powerpc64 as a 64-bit
CPU and use the nzcv flag layout on PowerPC. Merged upstream as
d3c6ca8debc2. PCem is x86-only.
While here, fix the spelling of riscv64 in OPTIONS_EXCLUDE.
java/openjdk11: build with base clang on powerpc64*
Since clang 13, VMRegImpl::set_regName() compiles to nothing: it calls
name() through a null Register, which clang takes as unreachable. On
powerpc64 the empty function is just the traceback table marker, so java
dies with SIGILL right at startup. amd64 and aarch64 get away with the
same code because their empty function falls through into the next one.
-fno-delete-null-pointer-checks keeps the function body around.
graphics/pdfium: fix build on powerpc64*
Let clang use its default target on powerpc64 instead of a Linux
triple, keep the PartitionAlloc slot alignment at two pointers where
alignof(max_align_t) is only 8 (FreeBSD/powerpc64) and make simdutf
require POWER8 for its PPC64 kernel, as upstream does.