Skip to content

Commit ce767ba

Browse files
author
Iheanyi Ekechukwu
committed
Modify Makefile in order for snappy-java to correctly compile on AIX.
1 parent 3a833a7 commit ce767ba

File tree

4 files changed

+30
-6
lines changed

4 files changed

+30
-6
lines changed

Makefile.common

+21-3
Original file line numberDiff line numberDiff line change
@@ -42,20 +42,22 @@ endif
4242

4343
# os=Default is meant to be generic unix/linux
4444

45-
known_os_archs := Linux-x86 Linux-x86_64 Linux-arm Linux-armhf Linux-ppc64 Mac-x86 Mac-x86_64 FreeBSD-x86_64 Windows-x86 Windows-x86_64 SunOS-x86 SunOS-sparc SunOS-x86_64
45+
known_os_archs := Linux-x86 Linux-x86_64 Linux-arm Linux-armhf Linux-ppc64 Mac-x86 Mac-x86_64 FreeBSD-x86_64 Windows-x86 Windows-x86_64 SunOS-x86 SunOS-sparc SunOS-x86_64 AIX-ppc64
4646
os_arch := $(OS_NAME)-$(OS_ARCH)
4747
IBM_JDK_7 := $(findstring IBM, $(shell $(JAVA) -version 2>&1 | grep IBM | grep "JRE 1.7"))
4848

4949
ifeq (,$(findstring $(strip $(os_arch)),$(known_os_archs)))
5050
os_arch := Default
5151
endif
5252

53+
os_folder := $(shell echo $(OS_NAME) | tr A-Z a-z)
54+
5355
ifneq ($(IBM_JDK_7),)
5456
$(shell mkdir -p $(IBM_JDK_LIB))
5557
$(shell cp $(JAVA_HOME)/include/jniport.h $(IBM_JDK_LIB))
5658
$(shell sed -i "s|#define JNIEXPORT *$$|#define JNIEXPORT __attribute__((__visibility__(\"default\")))|" $(IBM_JDK_LIB)/jniport.h)
5759
$(shell sed -i "s|typedef long long jlong;.*|/*typedef long long jlong;*/|" $(IBM_JDK_LIB)/jniport.h)
58-
$(shell cp $(JAVA_HOME)/include/linux/jni_md.h $(IBM_JDK_LIB))
60+
$(shell cp $(JAVA_HOME)/include/$(os_folder)/jni_md.h $(IBM_JDK_LIB))
5961
$(shell sed -i "s|#define JNIEXPORT|#define JNIEXPORT __attribute__((__visibility__(\"default\")))|" $(IBM_JDK_LIB)/jni_md.h)
6062
$(shell sed -i "s|typedef long long jlong;.*|/*typedef long long jlong;*/|" $(IBM_JDK_LIB)/jni_md.h)
6163
endif
@@ -66,7 +68,7 @@ CROSS_PREFIX :=
6668
Default_CXX := $(CROSS_PREFIX)g++
6769
Default_STRIP := $(CROSS_PREFIX)strip
6870
Default_CXXFLAGS := -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden
69-
Default_LINKFLAGS := -shared -static -lcrypt
71+
Default_LINKFLAGS := -shared -static
7072
Default_LIBNAME := libsnappyjava.so
7173
Default_SNAPPY_FLAGS :=
7274

@@ -103,6 +105,21 @@ Linux-ppc64_LINKFLAGS := -shared -static-libgcc -static-libstdc++
103105
Linux-ppc64_LIBNAME := libsnappyjava.so
104106
Linux-ppc64_SNAPPY_FLAGS :=
105107

108+
AIX-ppc64_CXX := g++
109+
AIX-ppc64_STRIP := strip -X64
110+
#AIX-ppc64_CXXFLAGS := -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden
111+
#AIX-ppc64_LINKFLAGS := -shared -static -lcrypt
112+
AIX-ppc64_LIBNAME := libsnappy-java.a
113+
ifeq ($(IBM_JDK_7),)
114+
#AIX-ppc64_CXXFLAGS := -DHAVE_CONFIG_H -Ilib/inc_linux -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -m64
115+
AIX-ppc64_CXXFLAGS := -DHAVE_CONFIG_H -Ilib/inc_linux -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -m64
116+
else
117+
#AIX-ppc64_CXXFLAGS := -include $(IBM_JDK_LIB)/jni_md.h -include $(IBM_JDK_LIB)/jniport.h -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/aix -O2 -fPIC
118+
AIX-ppc64_CXXFLAGS := -DHAVE_CONFIG_H -I$(JAVA_HOME)/include/aix -Ilib/inc_ibm -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -maix64
119+
endif
120+
AIX-ppc64_LINKFLAGS := -shared -static-libgcc -static-libstdc++ -lcrypt
121+
AIX-ppc64_SNAPPY_FLAGS :=
122+
106123
SunOS-x86_CXX := g++
107124
SunOS-x86_STRIP := strip
108125
SunOS-x86_CXXFLAGS := -include lib/inc_linux/jni_md.h -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden
@@ -193,3 +210,4 @@ ifneq ($(jni_include),)
193210
CXXFLAGS := $(CXXFLAGS) -I"$(jni_include)"
194211
endif
195212

213+

build.sbt

+1
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ OsgiKeys.additionalHeaders := Map(
9191
"org/xerial/snappy/native/Linux/arm/libsnappyjava.so;osname=linux;processor=arm",
9292
"org/xerial/snappy/native/Linux/ppc64/libsnappyjava.so;osname=linux;processor=ppc64",
9393
"org/xerial/snappy/native/Linux/ppc64le/libsnappyjava.so;osname=linux;processor=ppc64le",
94+
"org/xerial/snappy/native/AIX/ppc64/libsnappyjava.so;osname=aix;processor=ppc64",
9495
"org/xerial/snappy/native/SunOS/x86/libsnappyjava.so;osname=sunos;processor=x86",
9596
"org/xerial/snappy/native/SunOS/x86_64/libsnappyjava.so;osname=sunos;processor=x86-64",
9697
"org/xerial/snappy/native/SunOS/sparc/libsnappyjava.so;osname=sunos;processor=sparc"

src/main/java/org/xerial/snappy/OSInfo.java

+8-3
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public class OSInfo
4343
public static final String IA64_32 = "ia64_32";
4444
public static final String IA64 = "ia64";
4545
public static final String PPC = "ppc";
46+
public static final String PPC64 = "ppc64";
4647

4748
static {
4849
// x86 mappings
@@ -75,6 +76,11 @@ public class OSInfo
7576
archMapping.put("power_rs", PPC);
7677

7778
// TODO: PowerPC 64bit mappings
79+
archMapping.put(PPC64, PPC64);
80+
archMapping.put("power64", PPC64);
81+
archMapping.put("powerpc64", PPC64);
82+
archMapping.put("power_pc64", PPC64);
83+
archMapping.put("power_rs64", PPC64);
7884
}
7985

8086

@@ -140,11 +146,10 @@ else if (osName.contains("Mac")) {
140146
else if (osName.contains("Linux")) {
141147
return "Linux";
142148
}
143-
144-
145-
else if ( osName.contains("AIX")) {
149+
else if (osName.contains("AIX")) {
146150
return "AIX";
147151
}
152+
148153
else {
149154
return osName.replaceAll("\\W", "");
150155
}
Binary file not shown.

0 commit comments

Comments
 (0)