fusesource / jansi-native

Builds the JNI libraries for the jansi project
http://fusesource.github.io/jansi/
Apache License 2.0
33 stars 22 forks source link

Jansi on ppc64le, arm64v8, and s390x #16

Open keeganwitt opened 5 years ago

keeganwitt commented 5 years ago

Sorry for opening this as an issue. I tried to post it on the mailing list, but I think my message must be pending or something (plus there doesn't seem to be much activity there).

I'm trying to fix some errors I have in the Docker Groovy images on the ppc64le, arm64v8, and s390x architectures. I don't personally have any experience working with these architectures. Here are the errors I get

powerpc64le

Caused by: java.lang.UnsatisfiedLinkError: Could not load library. Reasons: [no jansi in java.library.path, /tmp/libjansi-64-6177151729256195035.so: Error relocating /tmp/libjansi-64-6177151729256195035.so: unsupported relocation type 7 (Possible cause: can't load AMD 64-bit .so on a Power PC 64-bit platform)] at org.fusesource.hawtjni.runtime.Library.doLoad(Library.java:182) at org.fusesource.hawtjni.runtime.Library.load(Library.java:140) at org.fusesource.jansi.internal.CLibrary.(CLibrary.java:42) at org.fusesource.jansi.AnsiConsole.wrapOutputStream(AnsiConsole.java:48) at org.fusesource.jansi.AnsiConsole.(AnsiConsole.java:38)

arm64v8

Caused by: java.lang.UnsatisfiedLinkError: Could not load library. Reasons: [no jansi in java.library.path, /tmp/libjansi-64-6661390371961894243.so: Error relocating /tmp/libjansi-64-6661390371961894243.so: unsupported relocation type 7 (Possible cause: can't load AMD 64-bit .so on a AARCH64-bit platform)] at org.fusesource.hawtjni.runtime.Library.doLoad(Library.java:182) at org.fusesource.hawtjni.runtime.Library.load(Library.java:140) at org.fusesource.jansi.internal.CLibrary.(CLibrary.java:42) at org.fusesource.jansi.AnsiConsole.wrapOutputStream(AnsiConsole.java:48) at org.fusesource.jansi.AnsiConsole.(AnsiConsole.java:38)

s390x

[0mOpenJDK 64-Bit Zero VM warning: You have loaded library /tmp/libjansi-64-7943786764210458085.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 ', or link it with '-z noexecstack'. ... Caused by: java.lang.UnsatisfiedLinkError: Could not load library. Reasons: [no jansi in java.library.path, /tmp/libjansi-64-7943786764210458085.so: Error loading shared library /tmp/libjansi-64-7943786764210458085.so: Exec format error (Possible cause: endianness mismatch)] at org.fusesource.hawtjni.runtime.Library.doLoad(Library.java:182) at org.fusesource.hawtjni.runtime.Library.load(Library.java:140) at org.fusesource.jansi.internal.CLibrary.(CLibrary.java:42) at org.fusesource.jansi.AnsiConsole.wrapOutputStream(AnsiConsole.java:48) at org.fusesource.jansi.AnsiConsole.(AnsiConsole.java:38)

I tried installing Jansi native packages (libjansi-native-java on Debian, java-jansi-native on Alpine). The Debian package doesn't have separate versions for different architectures, but the Alpine packages do. But that didn't seem to help (at least for linux-ppc64le that I tested on Travis). I know Paul-Ionut Vaduva asked about aarch64 twice on the mailing list (here and here), and @VallariTrivedi asked about aarch64 in this issue.

Does jansi-native support these architectures? It looks like there isn't a jar published for these architectures (just linux32 and linux 64).

grooverdan commented 5 years ago

Per https://github.com/fusesource/jansi-native/pull/14#issuecomment-437762429 a release would seem to be sufficient.

keeganwitt commented 5 years ago

Any idea when another release might occur?

AGSaidi commented 3 years ago

Anything I can do to help? It would be great to see a new release with arm64 support