diff --git a/src/main/java/org/xerial/snappy/OSInfo.java b/src/main/java/org/xerial/snappy/OSInfo.java index 4ec6686..6c612b8 100755 --- a/src/main/java/org/xerial/snappy/OSInfo.java +++ b/src/main/java/org/xerial/snappy/OSInfo.java @@ -25,6 +25,8 @@ package org.xerial.snappy; import java.io.IOException; +import java.util.HashMap; +import java.util.Locale; /** * Provides OS name and architecture name. @@ -34,6 +36,48 @@ import java.io.IOException; */ public class OSInfo { + private static HashMap archMapping = new HashMap(); + + public static final String X86 = "x86"; + public static final String X86_64 = "x86_64"; + public static final String IA64_32 = "ia64_32"; + public static final String IA64 = "ia64"; + public static final String PPC = "ppc"; + + static { + // x86 mappings + archMapping.put(X86, X86); + archMapping.put("i386", X86); + archMapping.put("i486", X86); + archMapping.put("i586", X86); + archMapping.put("i686", X86); + archMapping.put("pentium", X86); + + // x86_64 mappings + archMapping.put(X86_64, X86_64); + archMapping.put("amd64", X86_64); + archMapping.put("em64t", X86_64); + archMapping.put("universal", X86_64); // Needed for openjdk7 in Mac + + // Itenium 64-bit mappings + archMapping.put(IA64, IA64); + archMapping.put("ia64w", IA64); + + // Itenium 32-bit mappings, usually an HP-UX construct + archMapping.put(IA64_32, IA64_32); + archMapping.put("ia64n", IA64_32); + + // PowerPC mappings + archMapping.put(PPC, PPC); + archMapping.put("pwoer", PPC); + archMapping.put("powerpc", PPC); + archMapping.put("power_pc", PPC); + archMapping.put("power_rs", PPC); + + // TODO: PowerPC 64bit mappings + } + + public static void main(String[] args) { if (args.length >= 1) { if ("--os".equals(args[0])) { @@ -78,8 +122,10 @@ public class OSInfo // ignored: fall back to "arm" arch (soft-float ABI) } } - else if(getOSName().equals("Mac") && (osArch.equals("universal") || osArch.equals("amd64"))) { - return "x86_64"; // Fix for openjdk7 + else { + String lc = osArch.toLowerCase(Locale.US); + if(archMapping.containsKey(lc)) + return archMapping.get(lc); } return translateArchNameToFolderName(osArch); } diff --git a/src/main/resources/org/xerial/snappy/native/Linux/i386/libsnappyjava.so b/src/main/resources/org/xerial/snappy/native/Linux/x86/libsnappyjava.so similarity index 100% rename from src/main/resources/org/xerial/snappy/native/Linux/i386/libsnappyjava.so rename to src/main/resources/org/xerial/snappy/native/Linux/x86/libsnappyjava.so diff --git a/src/main/resources/org/xerial/snappy/native/Linux/amd64/libsnappyjava.so b/src/main/resources/org/xerial/snappy/native/Linux/x86_64/libsnappyjava.so similarity index 100% rename from src/main/resources/org/xerial/snappy/native/Linux/amd64/libsnappyjava.so rename to src/main/resources/org/xerial/snappy/native/Linux/x86_64/libsnappyjava.so diff --git a/src/main/resources/org/xerial/snappy/native/Mac/i386/libsnappyjava.jnilib b/src/main/resources/org/xerial/snappy/native/Mac/x86/libsnappyjava.jnilib similarity index 100% rename from src/main/resources/org/xerial/snappy/native/Mac/i386/libsnappyjava.jnilib rename to src/main/resources/org/xerial/snappy/native/Mac/x86/libsnappyjava.jnilib diff --git a/src/main/resources/org/xerial/snappy/native/OpenBSD/i386/libsnappyjava.so b/src/main/resources/org/xerial/snappy/native/OpenBSD/x86/libsnappyjava.so similarity index 100% rename from src/main/resources/org/xerial/snappy/native/OpenBSD/i386/libsnappyjava.so rename to src/main/resources/org/xerial/snappy/native/OpenBSD/x86/libsnappyjava.so diff --git a/src/main/resources/org/xerial/snappy/native/OpenBSD/amd64/libsnappyjava.so b/src/main/resources/org/xerial/snappy/native/OpenBSD/x86_64/libsnappyjava.so similarity index 100% rename from src/main/resources/org/xerial/snappy/native/OpenBSD/amd64/libsnappyjava.so rename to src/main/resources/org/xerial/snappy/native/OpenBSD/x86_64/libsnappyjava.so diff --git a/src/main/resources/org/xerial/snappy/native/Windows/amd64/snappyjava.dll b/src/main/resources/org/xerial/snappy/native/Windows/x86_64/snappyjava.dll similarity index 100% rename from src/main/resources/org/xerial/snappy/native/Windows/amd64/snappyjava.dll rename to src/main/resources/org/xerial/snappy/native/Windows/x86_64/snappyjava.dll