uber / h3

Hexagonal hierarchical geospatial indexing system

Home Page:https://h3geo.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

illegal instruction on ppc64 big endian server

bencz opened this issue · comments

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

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.

It was a problem with QEMU