question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

libjunixsocket-native-{version}.so not generated on s390x.

See original GitHub issue

I tried building junixsocket-native:2.0.4 from source by adding s390x specific details in the aol.properties. With this the build succeeded but i could not find libjunixsocket-native-2.0.4.so in the /target/nar/junixsocket-native-* /lib/ * /jni path. Note: .so file is created in x86(amd64) arch.

@kohlschuetter Any idea on what is preventing the .so files from getting generated ?

aol.properties

s390x.Linux.gpp.c.options=-Wall -Wno-long-long -Wpointer-arith -Wconversion -m64 -march=s390x
s390x.Linux.gpp.cpp.options=-Wall -Wno-long-long -Wpointer-arith -Wconversion -m64 -march=s390x
s390x.Linux.gpp.linker.options=-shared -shared-libgcc -fPIC -fexceptions -m64 -march=s390x
s390x.Linux.linker=gcc

Traces:

[INFO] ------------------------------------------------------------------------
[INFO] Building junixsocket-native 2.0.4
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.6.1:clean (default-clean) @ junixsocket-native ---
[INFO] Deleting /home/durgadas/installer-build/junixsocket/junixsocket-native/target
[INFO]
[INFO] --- nar-maven-plugin:3.2.0:nar-validate (default-nar-validate) @ junixsocket-native ---
[INFO] Using AOL: s390x-Linux-gcc
[INFO]
[INFO] --- nar-maven-plugin:3.2.0:nar-download (default-nar-download) @ junixsocket-native ---
[INFO] Preparing Nar dependencies
[INFO] Unpacking 0 dependencies to /home/durgadas/installer-build/junixsocket/junixsocket-native/target/nar
[INFO]
[INFO] --- nar-maven-plugin:3.2.0:nar-unpack (default-nar-unpack) @ junixsocket-native ---
[INFO] Unpacking 0 dependencies to /home/durgadas/installer-build/junixsocket/junixsocket-native/target/nar
[INFO]
[INFO] --- nar-maven-plugin:3.2.0:nar-gnu-configure (default-nar-gnu-configure) @ junixsocket-native ---
[INFO]
[INFO] --- nar-maven-plugin:3.2.0:nar-system-generate (default-nar-system-generate) @ junixsocket-native ---
[INFO] Generating /home/durgadas/installer-build/junixsocket/junixsocket-native/target/nar/nar-generated/org/newsclub/net/unix/NarSystem.java
[INFO] Using 'native-lib-loader'
[INFO]
[INFO] --- maven-dependency-plugin:2.9:unpack (unpack-coding-style) @ junixsocket-native ---
[INFO] Configured Artifact: com.kohlschutter:coding-style:files:1.0.1:zip
[INFO] Unpacking /root/.m2/repository/com/kohlschutter/coding-style/1.0.1/coding-style-1.0.1-files.zip to /home/durgadas/installer-build/junixsocket with includes "" and excludes ""
[INFO]
[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ junixsocket-native ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/durgadas/installer-build/junixsocket/junixsocket-native/src/main/resources
[INFO]
[INFO] --- nar-maven-plugin:3.2.0:nar-resources (default-nar-resources) @ junixsocket-native ---
[INFO] Copied 0 resources
[INFO]
[INFO] --- nar-maven-plugin:3.2.0:nar-gnu-resources (default-nar-gnu-resources) @ junixsocket-native ---
[INFO]
[INFO] --- nar-maven-plugin:3.2.0:nar-vcproj (default-nar-vcproj) @ junixsocket-native ---
[INFO]
[INFO] --- maven-compiler-plugin:3.2:compile (default-compile) @ junixsocket-native ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/durgadas/installer-build/junixsocket/junixsocket-native/target/classes
[INFO]
[INFO] --- nar-maven-plugin:3.2.0:nar-javah (default-nar-javah) @ junixsocket-native ---
[INFO] Running /usr/lib/jvm/java-8-openjdk-s390x/bin/javah compiler on 1 classes...
[INFO] + /usr/lib/jvm/java-8-openjdk-s390x/bin/javah -classpath /home/durgadas/installer-build/junixsocket/junixsocket-native/target/classes:/root/.m2/repository/org/scijava/native-lib-loader/2.0.2/native-lib-loader-2.0.2.jar:/root/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar -d /home/durgadas/installer-build/junixsocket/junixsocket-native/target/nar/javah-include org.newsclub.net.unix.NarSystem
[ERROR] Picked up _JAVA_OPTIONS: -Xmx10g
[INFO]
[INFO] --- nar-maven-plugin:3.2.0:nar-gnu-make (default-nar-gnu-make) @ junixsocket-native ---
[INFO]
[INFO] --- nar-maven-plugin:3.2.0:nar-compile (default-nar-compile) @ junixsocket-native ---
[INFO] Preparing Nar dependencies
[INFO] Unpacking 0 dependencies to /home/durgadas/installer-build/junixsocket/junixsocket-native/target/nar
[INFO] Nothing to compile
[INFO]
[INFO] --- nar-maven-plugin:3.2.0:nar-gnu-process (default-nar-gnu-process) @ junixsocket-native ---
[INFO]
[INFO] --- nar-maven-plugin:3.2.0:nar-process-libraries (default-nar-process-libraries) @ junixsocket-native ---
[info] Running process libraries
[info] Processing library Library: type: jni
[INFO]
[INFO] --- nar-maven-plugin:3.2.0:nar-prepare-package (default-nar-prepare-package-1) @ junixsocket-native ---
[INFO]
[INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ junixsocket-native ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/durgadas/installer-build/junixsocket/junixsocket-native/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.2:testCompile (default-testCompile) @ junixsocket-native ---
[INFO] No sources to compile
[INFO]
[INFO] --- nar-maven-plugin:3.2.0:nar-testCompile (default-nar-testCompile) @ junixsocket-native ---
[INFO] Preparing Nar dependencies
[INFO] Unpacking 0 dependencies to /home/durgadas/installer-build/junixsocket/junixsocket-native/target/test-nar
[INFO] Unpacking 0 dependencies to /home/durgadas/installer-build/junixsocket/junixsocket-native/target/test-nar
[INFO]
[INFO] --- maven-surefire-plugin:2.18:test (default-test) @ junixsocket-native ---
[INFO] No tests to run.
[INFO]
[INFO] --- nar-maven-plugin:3.2.0:nar-test (default-nar-test) @ junixsocket-native ---
[INFO] Preparing Nar dependencies
[INFO] Unpacking 0 dependencies to /home/durgadas/installer-build/junixsocket/junixsocket-native/target/test-nar
[INFO]
[INFO] --- nar-maven-plugin:3.2.0:nar-prepare-package (default-nar-prepare-package) @ junixsocket-native ---
[INFO]
[INFO] --- maven-antrun-plugin:1.7:run (fix-jnilib) @ junixsocket-native ---
[INFO] Executing tasks

main:
[INFO] Executed tasks
[INFO]
[INFO] --- nar-maven-plugin:3.2.0:nar-package (default-nar-package) @ junixsocket-native ---
[INFO]
[INFO] --- maven-jar-plugin:2.5:jar (default-jar) @ junixsocket-native ---
[INFO] Building jar: /home/durgadas/installer-build/junixsocket/junixsocket-native/target/junixsocket-native-2.0.4.jar
[INFO]
[INFO] --- maven-source-plugin:2.4:jar-no-fork (attach-sources) @ junixsocket-native ---
[INFO] Building jar: /home/durgadas/installer-build/junixsocket/junixsocket-native/target/junixsocket-native-2.0.4-sources.jar
[INFO]
[INFO] --- maven-javadoc-plugin:2.10.1:jar (attach-javadocs) @ junixsocket-native ---
[INFO]
Loading source files for package org.newsclub.net.unix...
Constructing Javadoc information...
Standard Doclet version 1.8.0_191
Building tree for all the packages and classes...
Generating /home/durgadas/installer-build/junixsocket/junixsocket-native/target/apidocs/org/newsclub/net/unix/NarSystem.html...
Generating /home/durgadas/installer-build/junixsocket/junixsocket-native/target/apidocs/org/newsclub/net/unix/package-frame.html...
Generating /home/durgadas/installer-build/junixsocket/junixsocket-native/target/apidocs/org/newsclub/net/unix/package-summary.html...
Generating /home/durgadas/installer-build/junixsocket/junixsocket-native/target/apidocs/org/newsclub/net/unix/package-tree.html...
Generating /home/durgadas/installer-build/junixsocket/junixsocket-native/target/apidocs/constant-values.html...
Generating /home/durgadas/installer-build/junixsocket/junixsocket-native/target/apidocs/org/newsclub/net/unix/class-use/NarSystem.html...
Generating /home/durgadas/installer-build/junixsocket/junixsocket-native/target/apidocs/org/newsclub/net/unix/package-use.html...
Building index for all the packages and classes...
Generating /home/durgadas/installer-build/junixsocket/junixsocket-native/target/apidocs/overview-tree.html...
Generating /home/durgadas/installer-build/junixsocket/junixsocket-native/target/apidocs/index-all.html...
Generating /home/durgadas/installer-build/junixsocket/junixsocket-native/target/apidocs/deprecated-list.html...
Building index for all classes...
Generating /home/durgadas/installer-build/junixsocket/junixsocket-native/target/apidocs/allclasses-frame.html...
Generating /home/durgadas/installer-build/junixsocket/junixsocket-native/target/apidocs/allclasses-noframe.html...
Generating /home/durgadas/installer-build/junixsocket/junixsocket-native/target/apidocs/index.html...
Generating /home/durgadas/installer-build/junixsocket/junixsocket-native/target/apidocs/help-doc.html...
1 warning
[WARNING] Javadoc Warnings
[WARNING] Picked up _JAVA_OPTIONS: -Xmx10g
[WARNING] /home/durgadas/installer-build/junixsocket/junixsocket-native/target/nar/nar-generated/org/newsclub/net/unix/NarSystem.java:26: warning - Tag @author cannot be used in method documentation.  It can only be used in the following types of documentation: overview, package, class/interface.
[INFO] Building jar: /home/durgadas/installer-build/junixsocket/junixsocket-native/target/junixsocket-native-2.0.4-javadoc.jar
[INFO]
[INFO] --- nar-maven-plugin:3.2.0:nar-integration-test (default-nar-integration-test) @ junixsocket-native ---
[INFO] No tests to run.
[INFO]
[INFO] --- license-maven-plugin:2.6:check (default) @ junixsocket-native ---
[INFO] Checking licenses...
[INFO]
[INFO] --- maven-install-plugin:2.5.2:install (default-install) @ junixsocket-native ---
[INFO] Installing /home/durgadas/installer-build/junixsocket/junixsocket-native/target/junixsocket-native-2.0.4.jar to /root/.m2/repository/com/kohlschutter/junixsocket/junixsocket-native/2.0.4/junixsocket-native-2.0.4.nar
[INFO] Installing /home/durgadas/installer-build/junixsocket/junixsocket-native/pom.xml to /root/.m2/repository/com/kohlschutter/junixsocket/junixsocket-native/2.0.4/junixsocket-native-2.0.4.pom
[INFO] Installing /home/durgadas/installer-build/junixsocket/junixsocket-native/target/junixsocket-native-2.0.4-sources.jar to /root/.m2/repository/com/kohlschutter/junixsocket/junixsocket-native/2.0.4/junixsocket-native-2.0.4-sources.jar
[INFO] Installing /home/durgadas/installer-build/junixsocket/junixsocket-native/target/junixsocket-native-2.0.4-javadoc.jar to /root/.m2/repository/com/kohlschutter/junixsocket/junixsocket-native/2.0.4/junixsocket-native-2.0.4-javadoc.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:27 min
[INFO] Finished at: 2019-03-26T13:16:18+00:00
[INFO] Final Memory: 34M/83M
[INFO] ------------------------------------------------------------------------

CMD: root@d704538f7c93:/home/durgadas/installer-build/junixsocket/junixsocket-native# ls target/nar/ Result : javah-include/ nar-generated/

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:12 (1 by maintainers)

github_iconTop GitHub Comments

1reaction
imdurgadascommented, Apr 26, 2019

@sriemer yup, steps you mentioned worked for me as well.


junixsocket/junixsocket-native/target/nar/junixsocket-native-2.2.1-SNAPSHOT-s390x-Linux-clang-jni/lib/s390x-Linux-clang/jni# ls
history.xml  libjunixsocket-native-2.2.1-SNAPSHOT.so
1reaction
sriemercommented, Sep 30, 2019

I have a LinuxONE Community Cloud z/VM 6.4 guest running on the mainframe of Marist College (see: https://developer.ibm.com/linuxone/). I chose SLES12-SP3 but llvm with clang is not supported/available. So I branched llvm 3.8.0 intended for SLES12-SP3 in OBS: https://build.opensuse.org/project/show/home:spars_instana:sle12sp3-llvm3.8 and installed it from there.

I’ve prepared two patches to compile junixsocket with clang on that s390x machine: https://github.com/sriemer/junixsocket/commits/s390x

It compiles fine with IBM Java 8, clang, llvm, and

mvn clean install -Dmaven.javadoc.skip=true -Dpmd.skip=true

now. The only disadvantage is that I cannot run the tests as those also require at least Java 9.

But I get:

./junixsocket-native/target/nar/junixsocket-native-2.2.1-SNAPSHOT-s390x-Linux-clang-jni/lib/s390x-Linux-clang/jni/libjunixsocket-native-2.2.1-SNAPSHOT.so

and build success. I guess this is the best we can get for now.

@imdurgadas Can you please test if this works for you as well? TIA

Read more comments on GitHub >

github_iconTop Results From Across the Web

Cross-compiling Rust to s390x yields a faulty toolchain #80810
I can reproduce this on RHEL 7 s390x, but not ppc64, so it would seem to be something other than endian order. I...
Read more >
S390X - Ubuntu Server for IBM zSystems and LinuxONE
(1680101) - This is fixed with 18.04. Q: LVM configuration cannot be removed when volume groups with the same name are found during...
Read more >
S/390 and zSeries Options - GCC, the GNU Compiler Collection
Generate (or do not generate) code using the bras instruction to do subroutine calls. This only works reliably if the total executable size...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found