Back compability to CXXABI_1.3.7

Hi,

I am a bit out of my comfort zone here… I run the latest ND4J (M1-1). It complains about missing CXXAPI_1.3.8 (libstdc++.so.6.0.20). I saw that we use libstdc++.so.6.0.19 which is the reason for the error. Have you talked about adding back compatibility or is an upgrade on my side the only way forward?

Best regards,
David

@barrekkerrab you’ll want to use the nd4j-native compat clssifier. Something like:

<dependency>
<groupId>org.nd4j</groupId>
<artifactId>nd4j-native</groupId>
<version>1.0.0-M1.1</version>
<classifier>linux-x86_64-compat</classifier>
</dependency>

<dependency>
<groupId>org.nd4j</groupId>
<artifactId>nd4j-native</groupId>
<version>1.0.0-M1.1</version>
</dependency>

<dependency>
  <groupId>org.bytedeco</groupId>
  <artifactId>openblas</artifactId>
  <version>0.3.17-1.5.6</version>
</dependency>

You’ll want both. The classifier is for which native binaries to use. The non classifier is for the normal java class files. Openblas is needed if you don’t use nd4j-native-platform.

We’ve moved forward with building on ubuntu 18.04 for our new CI which caused some breaking changes. This was a migration from an old jenkins instance we used to use for all of our builds.

We build in centos 7 for backwards compatibility for this classifier in particular. It was introduced as a migration path for users stick on very old libcs.

You’ll find more in our release notes:

Edit: fix versions

1 Like

Hi,

Thanks for answer. Should these imports be alongside the M1.1 import or replaced? I will try. I want to use the ND4J library as a calculation library.

image

@barrekkerrab Use the exact dependencies I gave you in place of any nd4j-native dependencies you’re using.
The declaration there automatically pulls in the binaries compiled for newer hardware.

@agibsonccc I have tried that, but it complains about missing dependency:

@barrekkerrab could you post your full pom? You can see compat right here: Central Repository: org/nd4j/nd4j-native/1.0.0-M1.1 it definitely exists.

The exact jar is here:
https://repo1.maven.org/maven2/org/nd4j/nd4j-native/1.0.0-M1.1/nd4j-native-1.0.0-M1.1-linux-x86_64-compat.jar

Edit: you can see independently the user that raised the issue even confirmed the fix for this here:

1 Like

I was thinking if it should be image
instead?

Thanks. I will keep on trying.

@barrekkerrab see the edited post, sorry the versions were wrong. I actually had the classifier where the version should have been.

1 Like

Thanks for the help!

Now it works as a charm. :smiley:

Just a comment. I did not have to add openblas as a dependency.

Ah great to hear. Sometimes folks have problems with that. Will just leave there for posterity.