From bc528d5d981b237000d49d3cd9b432e9a4709601 Mon Sep 17 00:00:00 2001 From: md_5 Date: Sun, 14 Apr 2024 09:08:02 +1000 Subject: [PATCH] Update native libraries --- native/compile-native.sh | 2 +- native/mbedtls | 2 +- native/src/main/c/NativeCipherImpl.cpp | 6 ------ native/src/main/c/NativeCompressImpl.cpp | 6 ------ native/src/main/resources/native-cipher.so | Bin 35496 -> 39784 bytes native/src/main/resources/native-compress.so | Bin 112968 -> 117056 bytes native/zlib | 2 +- 7 files changed, 3 insertions(+), 15 deletions(-) diff --git a/native/compile-native.sh b/native/compile-native.sh index f37c9fdd..c342e782 100755 --- a/native/compile-native.sh +++ b/native/compile-native.sh @@ -8,7 +8,7 @@ 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/" +CXX="g++ -shared -fPIC -O3 -Wall -Werror -I$JAVA_HOME/include/ -I$JAVA_HOME/include/linux/" $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 diff --git a/native/mbedtls b/native/mbedtls index 8c892249..2ca6c285 160000 --- a/native/mbedtls +++ b/native/mbedtls @@ -1 +1 @@ -Subproject commit 8c89224991adff88d53cd380f42a2baa36f91454 +Subproject commit 2ca6c285a0dd3f33982dd57299012dacab1ff206 diff --git a/native/src/main/c/NativeCipherImpl.cpp b/native/src/main/c/NativeCipherImpl.cpp index 9de328ea..cfe5f089 100644 --- a/native/src/main/c/NativeCipherImpl.cpp +++ b/native/src/main/c/NativeCipherImpl.cpp @@ -4,12 +4,6 @@ #include #include "net_md_5_bungee_jni_cipher_NativeCipherImpl.h" -// Support for CentOS 6 -__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); -} - typedef unsigned char byte; struct crypto_context { diff --git a/native/src/main/c/NativeCompressImpl.cpp b/native/src/main/c/NativeCompressImpl.cpp index b490ede5..4b93a56a 100644 --- a/native/src/main/c/NativeCompressImpl.cpp +++ b/native/src/main/c/NativeCompressImpl.cpp @@ -4,12 +4,6 @@ #include #include "net_md_5_bungee_jni_zlib_NativeCompressImpl.h" -// Support for CentOS 6 -__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); -} - typedef unsigned char byte; static jfieldID consumedID; diff --git a/native/src/main/resources/native-cipher.so b/native/src/main/resources/native-cipher.so index 088321f30aa3b81a7d87816930223ce25d3788dc..843f7f7a2ddcb36b92aee155b564f1e8b219fe3e 100755 GIT binary patch delta 13616 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 EenC41#EBV_#~oT|%gs=-8$sgoA5uEJa&u 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%0Amjmu2}vCpbsTgWX|@Ec^EKR*1W3st7$PsnDT6= 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 CjGCSR diff --git a/native/zlib b/native/zlib index 4e4e4c4f..92530568 160000 --- a/native/zlib +++ b/native/zlib @@ -1 +1 @@ -Subproject commit 4e4e4c4fbdad9dd034d8f05e2312bf845f0d4d15 +Subproject commit 92530568d2c128b4432467b76a3b54d93d6350bd