From abcba7789455d7b64aa0d2d9d7b51c5e411dce3c Mon Sep 17 00:00:00 2001 From: Colin Godsey Date: Tue, 16 Apr 2019 07:25:52 -0600 Subject: [PATCH] OSX native zlib and crypto diff --git a/native/compile-native.sh b/native/compile-native.sh index f37c9fdd..a50b52bf 100755 --- a/native/compile-native.sh +++ b/native/compile-native.sh @@ -8,7 +8,16 @@ echo "Compiling mbedtls" echo "Compiling zlib" (cd zlib && CFLAGS=-fPIC ./configure --static && make) -CXX="g++ -shared -fPIC -Wl,--wrap=memcpy -O3 -Wall -Werror -I$JAVA_HOME/include/ -I$JAVA_HOME/include/linux/" +# Waterfall - rewrite below to extend platform support -$CXX -Imbedtls/include src/main/c/NativeCipherImpl.cpp -o src/main/resources/native-cipher.so mbedtls/library/libmbedcrypto.a -$CXX -Izlib src/main/c/NativeCompressImpl.cpp -o src/main/resources/native-compress.so zlib/libz.a +if [[ "$OSTYPE" == "darwin"* ]]; then + PREFIX="osx-" + CXX_ARGS="-I$JAVA_HOME/include/ -I$JAVA_HOME/include/darwin/" +else + CXX_ARGS="-I$JAVA_HOME/include/ -I$JAVA_HOME/include/linux/ -Wl,--wrap=memcpy" +fi + +CXX="g++ -shared -fPIC -O3 -Wall -Werror" + +$CXX -Imbedtls/include src/main/c/NativeCipherImpl.cpp -o src/main/resources/${PREFIX:-}native-cipher.so mbedtls/library/libmbedcrypto.a $CXX_ARGS +$CXX -Izlib src/main/c/NativeCompressImpl.cpp -o src/main/resources/${PREFIX:-}native-compress.so zlib/libz.a $CXX_ARGS diff --git a/native/src/main/c/NativeCipherImpl.cpp b/native/src/main/c/NativeCipherImpl.cpp index 9de328ea..42fdb540 100644 --- a/native/src/main/c/NativeCipherImpl.cpp +++ b/native/src/main/c/NativeCipherImpl.cpp @@ -5,10 +5,12 @@ #include "net_md_5_bungee_jni_cipher_NativeCipherImpl.h" // Support for CentOS 6 +#if __linux__ // Waterfall __asm__(".symver memcpy,memcpy@GLIBC_2.2.5"); extern "C" void *__wrap_memcpy(void *dest, const void *src, size_t n) { return memcpy(dest, src, n); } +#endif // Waterfall typedef unsigned char byte; diff --git a/native/src/main/c/NativeCompressImpl.cpp b/native/src/main/c/NativeCompressImpl.cpp index b490ede5..8fa0bd61 100644 --- a/native/src/main/c/NativeCompressImpl.cpp +++ b/native/src/main/c/NativeCompressImpl.cpp @@ -5,10 +5,12 @@ #include "net_md_5_bungee_jni_zlib_NativeCompressImpl.h" // Support for CentOS 6 +#if __linux__ // Waterfall __asm__(".symver memcpy,memcpy@GLIBC_2.2.5"); extern "C" void *__wrap_memcpy(void *dest, const void *src, size_t n) { return memcpy(dest, src, n); } +#endif // Waterfall typedef unsigned char byte; diff --git a/native/src/main/java/net/md_5/bungee/jni/NativeCode.java b/native/src/main/java/net/md_5/bungee/jni/NativeCode.java index 62bdaa0e..f4f6e6ab 100644 --- a/native/src/main/java/net/md_5/bungee/jni/NativeCode.java +++ b/native/src/main/java/net/md_5/bungee/jni/NativeCode.java @@ -20,6 +20,7 @@ public final class NativeCode public NativeCode(String name, Supplier javaImpl, Supplier nativeImpl) { + if ("Mac OS X".equals( System.getProperty( "os.name" ))) name = "osx-" + name; // Waterfall this.name = name; this.javaImpl = javaImpl; this.nativeImpl = nativeImpl; @@ -75,6 +76,6 @@ public final class NativeCode public static boolean isSupported() { - return "Linux".equals( System.getProperty( "os.name" ) ) && "amd64".equals( System.getProperty( "os.arch" ) ); + return ("Linux".equals( System.getProperty( "os.name" ) ) || "Mac OS X".equals( System.getProperty( "os.name" ) )) && ("amd64".equals( System.getProperty( "os.arch" ) ) || "x86_64".equals( System.getProperty( "os.arch" )) ); // Waterfall } } diff --git a/native/src/main/resources/osx-native-cipher.so b/native/src/main/resources/osx-native-cipher.so new file mode 100755 index 0000000000000000000000000000000000000000..9892237878bae2b320d0c6390d5049a91318c77d GIT binary patch literal 69352 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 literal 0 HcmV?d00001 diff --git a/native/src/main/resources/osx-native-compress.so b/native/src/main/resources/osx-native-compress.so new file mode 100755 index 0000000000000000000000000000000000000000..425287b0077d924e0f54adf2d56cb3f5bc613305 GIT binary patch literal 138128 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 Oiut;*2I%DC`u_mwKH=^F literal 0 HcmV?d00001 -- 2.44.0