diff --git a/Makefile.common b/Makefile.common index 9eba009..4e64c6d 100755 --- a/Makefile.common +++ b/Makefile.common @@ -6,6 +6,11 @@ ifndef JAVA_HOME $(warning Set JAVA_HOME environment variable) endif +ifeq ($(shell ldd --version | grep -o 'musl'), musl) + MUSL_ENABLED := true +else + MUSL_ENABLED := false +endif JAVA := "$$JAVA_HOME/bin/java" JAVAC := "$$JAVA_HOME/bin/javac" @@ -51,7 +56,7 @@ endif # os=Default is meant to be generic unix/linux # To support new CPU architecture, add a new target name here -known_os_archs := Linux-x86 Linux-x86_64 Linux-arm Linux-armv6 Linux-armv7 Linux-android-arm Linux-android-aarch64 Linux-aarch64 Linux-ppc Linux-ppc64 Linux-ppc64le Linux-s390 Linux-s390x Mac-x86 Mac-x86_64 Mac-aarch64 FreeBSD-x86_64 Windows-x86 Windows-x86_64 Windows-aarch64 SunOS-x86 SunOS-sparc SunOS-x86_64 AIX-ppc AIX-ppc64 Linux-riscv Linux-riscv64 Linux-loongarch Linux-loongarch64 +known_os_archs := Alpine-x86_64 Linux-x86 Linux-x86_64 Linux-arm Linux-armv6 Linux-armv7 Linux-android-arm Linux-android-aarch64 Linux-aarch64 Linux-ppc Linux-ppc64 Linux-ppc64le Linux-s390 Linux-s390x Mac-x86 Mac-x86_64 Mac-aarch64 FreeBSD-x86_64 Windows-x86 Windows-x86_64 Windows-aarch64 SunOS-x86 SunOS-sparc SunOS-x86_64 AIX-ppc AIX-ppc64 Linux-riscv Linux-riscv64 Linux-loongarch Linux-loongarch64 os_arch := $(OS_NAME)-$(OS_ARCH) IBM_JDK_7 := $(findstring IBM, $(shell $(JAVA) -version 2>&1 | grep IBM | grep "JRE 1.7")) @@ -103,6 +108,17 @@ Linux-x86_64_LINKFLAGS := -shared -static-libgcc -static-libstdc++ Linux-x86_64_LIBNAME := libsnappyjava.so Linux-x86_64_SNAPPY_FLAGS := +Linux-x86_64_musl_CXX := $(CROSS_PREFIX)g++ +Linux-x86_64_musl_STRIP := $(CROSS_PREFIX)strip +ifeq ($(IBM_JDK_7),) + Linux-x86_64_musl_CXXFLAGS := -Ilib/inc_linux -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden -m64 -std=c++11 +else + Linux-x86_64_musl_CXXFLAGS := -include $(IBM_JDK_LIB)/jni_md.h -include $(IBM_JDK_LIB)/jniport.h -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden -m64 -std=c++11 +endif +Linux-x86_64_musl_LINKFLAGS := -shared -static-libgcc -static-libstdc++ +Linux-x86_64_musl_LIBNAME := libsnappyjava.so +Linux-x86_64_musl_SNAPPY_FLAGS := + Linux-ppc_CXX := g++ Linux-ppc_STRIP := strip ifeq ($(IBM_JDK_7),) diff --git a/build.sbt b/build.sbt index 3001063..8e1efe3 100644 --- a/build.sbt +++ b/build.sbt @@ -111,6 +111,7 @@ OsgiKeys.additionalHeaders := Map( "org/xerial/snappy/native/Linux/ppc64/libsnappyjava.so;osname=linux;processor=ppc64le", "org/xerial/snappy/native/Linux/s390x/libsnappyjava.so;osname=linux;processor=s390x", "org/xerial/snappy/native/Linux/loongarch64/libsnappyjava.so;osname=linux;processor=loongarch64", + "org/xerial/snappy/native/Linux/x86_64_musl/libsnappyjava.so;osname=linux;processor=x86-64", "org/xerial/snappy/native/AIX/ppc/libsnappyjava.a;osname=aix;processor=ppc", "org/xerial/snappy/native/AIX/ppc64/libsnappyjava.a;osname=aix;processor=ppc64", "org/xerial/snappy/native/SunOS/x86/libsnappyjava.so;osname=sunos;processor=x86", diff --git a/docker/Dockerfile.alpine b/docker/Dockerfile.alpine index 26821b8..1d019d6 100644 --- a/docker/Dockerfile.alpine +++ b/docker/Dockerfile.alpine @@ -31,6 +31,6 @@ RUN python3 -m ensurepip RUN pip3 install --no-cache --upgrade pip setuptools # Set Env Vars -ENV CC=gcc CXX=g++ TARGET_OS=Linux-musl +ENV CC=gcc CXX=g++ TARGET_OS=LinuxMUSL ENV JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk ENV PATH="${JAVA_HOME}/bin:${PATH}" diff --git a/src/main/resources/org/xerial/snappy/native/Linux-musl/x86_64/.keep b/src/main/resources/org/xerial/snappy/native/Alpine/x86_64/.keep similarity index 100% rename from src/main/resources/org/xerial/snappy/native/Linux-musl/x86_64/.keep rename to src/main/resources/org/xerial/snappy/native/Alpine/x86_64/.keep diff --git a/src/main/resources/org/xerial/snappy/native/Linux/x86_64/libsnappyjava.so b/src/main/resources/org/xerial/snappy/native/Linux/x86_64/libsnappyjava.so index ccb82fe..67a4d67 100755 Binary files a/src/main/resources/org/xerial/snappy/native/Linux/x86_64/libsnappyjava.so and b/src/main/resources/org/xerial/snappy/native/Linux/x86_64/libsnappyjava.so differ