in src/main/java/org/apache/commons/crypto/OsInfo.java [114:137]
static String getArchName() {
// if running Linux on ARM, need to determine ABI of JVM
final String osArch = System.getProperty("os.arch");
if (osArch.startsWith("arm") && getOsNameProperty().contains("Linux")) {
final String javaHome = System.getProperty("java.home");
try {
// determine if first JVM found uses ARM hard-float ABI
final String[] cmdarray = { "/bin/sh", "-c",
"find '" + javaHome + "' -name 'libjvm.so' | head -1 | xargs readelf -A | grep 'Tag_ABI_VFP_args: VFP registers'" };
final int exitCode = Runtime.getRuntime().exec(cmdarray).waitFor();
if (exitCode == 0) {
return "armhf";
}
} catch (final IOException | InterruptedException e) { // NOPMD
// ignored: fall back to "arm" arch (soft-float ABI)
}
} else {
final String string = archMapping.get(osArch.toLowerCase(Locale.US));
if (string != null) {
return string;
}
}
return translateArchNameToFolderName(osArch);
}