From 882ebf35321f175b115802cc5e15b4c69c4b9b1b Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Wed, 27 Mar 2013 15:56:42 +0900 Subject: [PATCH] Build linux amd64 native lib. Disabled -static-libstdc++ --- Makefile.common | 2 +- .../java/org/xerial/snappy/SnappyNative.h | 24 ------------------ .../native/Linux/amd64/libsnappyjava.so | Bin 48432 -> 44680 bytes 3 files changed, 1 insertion(+), 25 deletions(-) diff --git a/Makefile.common b/Makefile.common index 0e022c6..9ea3ebf 100755 --- a/Makefile.common +++ b/Makefile.common @@ -68,7 +68,7 @@ Linux-i386_SNAPPY_FLAGS:= Linux-amd64_CXX := $(CROSS_PREFIX)g++ Linux-amd64_STRIP := $(CROSS_PREFIX)strip Linux-amd64_CXXFLAGS := -include lib/inc_linux/jni_md.h -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden -m64 -Linux-amd64_LINKFLAGS := -shared -static-libgcc -static-libstdc++ +Linux-amd64_LINKFLAGS := -shared -static-libgcc # -static-libstdc++ Linux-amd64_LIBNAME := libsnappyjava.so Linux-amd64_SNAPPY_FLAGS := diff --git a/src/main/java/org/xerial/snappy/SnappyNative.h b/src/main/java/org/xerial/snappy/SnappyNative.h index 477d30a..37452d9 100755 --- a/src/main/java/org/xerial/snappy/SnappyNative.h +++ b/src/main/java/org/xerial/snappy/SnappyNative.h @@ -15,22 +15,6 @@ extern "C" { JNIEXPORT jstring JNICALL Java_org_xerial_snappy_SnappyNative_nativeLibraryVersion (JNIEnv *, jobject); -/* - * Class: org_xerial_snappy_SnappyNative - * Method: rawCompress - * Signature: (JJJ)J - */ -JNIEXPORT jlong JNICALL Java_org_xerial_snappy_SnappyNative_rawCompress__JJJ - (JNIEnv *, jobject, jlong, jlong, jlong); - -/* - * Class: org_xerial_snappy_SnappyNative - * Method: rawUncompress - * Signature: (JJJ)J - */ -JNIEXPORT jlong JNICALL Java_org_xerial_snappy_SnappyNative_rawUncompress__JJJ - (JNIEnv *, jobject, jlong, jlong, jlong); - /* * Class: org_xerial_snappy_SnappyNative * Method: rawCompress @@ -87,14 +71,6 @@ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_uncompressedLength__L JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_uncompressedLength__Ljava_lang_Object_2II (JNIEnv *, jobject, jobject, jint, jint); -/* - * Class: org_xerial_snappy_SnappyNative - * Method: uncompressedLength - * Signature: (JJ)J - */ -JNIEXPORT jlong JNICALL Java_org_xerial_snappy_SnappyNative_uncompressedLength__JJ - (JNIEnv *, jobject, jlong, jlong); - /* * Class: org_xerial_snappy_SnappyNative * Method: isValidCompressedBuffer diff --git a/src/main/resources/org/xerial/snappy/native/Linux/amd64/libsnappyjava.so b/src/main/resources/org/xerial/snappy/native/Linux/amd64/libsnappyjava.so index 8a7cb95eb81158cd653a65f8de695eb0ba1a4fc6..83f5e4f322766499daa4b21c362806e1e8cc3953 100755 GIT binary patch delta 16504 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 ByL12m