illegal instruction on ppc64 big endian server
bencz opened this issue · comments
Alexandre Bencz commented
I'm testing H3 on an IBM Power 7 big endian server, it compiles successfully... but when I run the tests I get an illegal instruction error
When I run the "make test" command, absolutely all tests fail :(
my hardware informations:
$ uname -a
Linux debian 6.1.0-9-powerpc64 #1 SMP Debian 6.1.27-1 (2023-05-08) ppc64 GNU/Linux
$ lscpu
Architecture: ppc64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Big Endian
CPU(s): 12
On-line CPU(s) list: 0-11
Model name: POWER7 (architected), altivec supported
Model: 2.1 (pvr 004a 0201)
Thread(s) per core: 1
Core(s) per socket: 12
Socket(s): 1
Virtualization features:
Hypervisor vendor: KVM
Virtualization type: para
Caches (sum of all):
L1d: 384 KiB (12 instances)
L1i: 384 KiB (12 instances)
NUMA:
NUMA node(s): 1
NUMA node0 CPU(s): 0-11
Vulnerabilities:
Itlb multihit: Not affected
L1tf: Mitigation; RFI Flush
Mds: Not affected
Meltdown: Mitigation; RFI Flush
Mmio stale data: Not affected
Retbleed: Not affected
Spec store bypass: Mitigation; Kernel entry/exit barrier (fallback)
Spectre v1: Mitigation; __user pointer sanitization, ori31 speculat
ion barrier enabled
Spectre v2: Mitigation; Software count cache flush (hardware accele
rated), Software link stack flush
Srbds: Not affected
Tsx async abort: Not affected
Related issue: uber/h3-java#133
Alexandre Bencz commented
Also, when I try to build and use the java version, I get this error:
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.uber.h3core.TestVertex
OpenJDK 64-Bit Server VM warning: You have loaded library /tmp/libh3-java2401984482744904673.so which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGILL (0x4) at pc=0x00007fff9ac502e8, pid=4409, tid=4410
#
# JRE version: OpenJDK Runtime Environment (17.0.6+10) (build 17.0.6+10-Debian-1)
# Java VM: OpenJDK 64-Bit Server VM (17.0.6+10-Debian-1, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-ppc64)
# Problematic frame:
# C [libm.so.6+0x402e8] __atan2_finite+0xfff92ac0
#
# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/bencz/h3-java/hs_err_pid4409.log
#
# If you would like to submit a bug report, please visit:
# https://bugs.debian.org/openjdk-17
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
Alexandre Bencz commented
It was a problem with QEMU