static String getArchName()

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);
    }