sosy-lab / java-common-lib

SoSy-Lab Java Common Library
https://www.sosy-lab.org
Apache License 2.0
12 stars 11 forks source link

NativeLibraries could support more architectures, such as ARMv7 or ARMv8 #38

Closed kfriedberger closed 1 month ago

kfriedberger commented 3 years ago

The listing in NativeLibraries is inomplete and misses architectures like ARMv7 (already outdated?) and ARMv8 (identical to aarch64?).

For further info and testing, maybe @MartinSpiessl can help and provide access to our Raspi.

kfriedberger commented 1 month ago

For ARM64 (AArch64 with ARMv8-A, ) the library reports an invalid architecture: "X86_64".

I do not get an exception from the detection algorithm, which would be expected: https://gitlab.com/sosy-lab/software/java-common-lib/-/blob/main/src/org/sosy_lab/common/NativeLibraries.java?ref_type=heads#L123-126

I assume that the code using java.vm.name: OpenJDK 64-Bit Server VM makes invalid assumption about the system.

My system properties:

jshell> System.getProperties().forEach((k, v) -> { System.out.printf("%s: %s\n", k, v); });   // and sorted :-)

file.encoding: UTF-8
file.separator: /
java.class.path: .
java.class.version: 65.0
java.home: /data/data/com.termux/files/usr/lib/jvm/java-21-openjdk
java.io.tmpdir: /data/data/com.termux/files/usr/tmp/
java.library.path: /usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib
java.runtime.name: OpenJDK Runtime Environment
java.runtime.version: 21.0.4
java.specification.name: Java Platform API Specification
java.specification.vendor: Oracle Corporation
java.specification.version: 21
java.vendor: Termux
java.vendor.url.bug: https://bugreport.java.com/bugreport/
java.vendor.url: https://openjdk.org/
java.version: 21.0.4
java.version.date: 2024-07-16
java.vm.compressedOopsMode: 32-bit
java.vm.info: mixed mode
java.vm.name: OpenJDK 64-Bit Server VM
java.vm.specification.name: Java Virtual Machine Specification
java.vm.specification.vendor: Oracle Corporation
java.vm.specification.version: 21
java.vm.vendor: Termux
java.vm.version: 21.0.4
jdk.console: jdk.jshell
jdk.debug: release
line.separator: \n
native.encoding: UTF-8
os.arch: aarch64
os.name: Linux
os.version: 4.19.191-28581296-abA145RXXU7CXG3
path.separator: :
stderr.encoding: UTF-8
stdout.encoding: UTF-8
sun.arch.data.model: 64
sun.boot.library.path: /data/data/com.termux/files/usr/lib/jvm/java-21-openjdk/lib
sun.cpu.endian: little
sun.io.unicode.encoding: UnicodeLittle
sun.java.command: jdk.jshell.execution.RemoteExecutionControl 45487
sun.java.launcher: SUN_STANDARD
sun.jnu.encoding: UTF-8
sun.management.compiler: HotSpot 64-Bit Tiered Compilers
user.dir: /data/data/com.termux/files/home
user.home: /data/data/com.termux/files/home
user.language: en
user.name: u0_a308

The system is a Samsung Galaxy A14:

$> lscpu

Architecture:           aarch64
  CPU op-mode(s):       32-bit, 64-bit
  Byte Order:           Little Endian
CPU(s):                 8
  On-line CPU(s) list:  0-7
Vendor ID:              ARM
  Model name:           Cortex-A55
    Model:              0
    Thread(s) per core: 1
    Core(s) per socket: 6
    Socket(s):          1
    Stepping:           r1p0
    CPU(s) scaling MHz: 43%
    CPU max MHz:        1800.0000
    CPU min MHz:        500.0000
    BogoMIPS:           26.00
    Flags:              fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
  Model name:           Cortex-A75
    Model:              1
    Thread(s) per core: 1
    Core(s) per socket: 2
    Socket(s):          1
    Stepping:           r3p1
    CPU(s) scaling MHz: 59%
    CPU max MHz:        2000.0000
    CPU min MHz:        850.0000
    BogoMIPS:           26.00
    Flags:              fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
Vulnerabilities: ...

I can perform further tests if needed.