Merge pull request #21 from TheBlueMatt/main
authorMatt Corallo <649246+TheBlueMatt@users.noreply.github.com>
Sat, 12 Jun 2021 18:16:00 +0000 (18:16 +0000)
committerGitHub <noreply@github.com>
Sat, 12 Jun 2021 18:16:00 +0000 (18:16 +0000)
Android Fixes

genbindings.sh
java_strings.py
liblightningjni_debug.so
liblightningjni_release.so
src/main/java/org/ldk/batteries/NioPeerHandler.java
src/main/java/org/ldk/impl/bindings.java
src/main/jni/bindings.c
src/main/jni/bindings.c.body

index 0cd88ba5e600c1de114eb5b3987a1cf44343a699..c10ff2412a49e9e34f2681037d4ef8761b79002a 100755 (executable)
@@ -16,6 +16,13 @@ else
        COMMON_COMPILE="clang -std=c11 -Wall -Wextra -Wno-unused-parameter -Wno-ignored-qualifiers -Wno-unused-function -Wno-nullability-completeness -Wno-pointer-sign -Wdate-time -ffile-prefix-map=$(pwd)="
 fi
 
+if [ "$LDK_TARGET" != "" ]; then
+       LDK_TARGET_SUFFIX="_$LDK_TARGET"
+fi
+if [ "$LDK_TARGET_CPU" = "" ]; then
+       LDK_TARGET_CPU="sandybridge"
+fi
+
 set -e
 
 if [ "$LDK_GARBAGECOLLECTED_GIT_OVERRIDE" = "" ]; then
@@ -46,11 +53,11 @@ javac -h src/main/jni src/main/java/org/ldk/enums/*.java src/main/java/org/ldk/i
 rm src/main/java/org/ldk/enums/*.class src/main/java/org/ldk/impl/bindings*.class
 
 echo "Building Java bindings..."
-COMPILE="$COMMON_COMPILE -march=sandybridge -Isrc/main/jni -pthread -ldl -Wl,--no-undefined -shared -fPIC"
+COMPILE="$COMMON_COMPILE -mcpu=$LDK_TARGET_CPU -Isrc/main/jni -pthread -ldl -Wl,--no-undefined -shared -fPIC"
 if [ "$3" = "true" ]; then
-       $COMPILE -o liblightningjni_debug.so -g -fsanitize=address -shared-libasan -Wl,-wrap,calloc -Wl,-wrap,realloc -Wl,-wrap,reallocarray -Wl,-wrap,malloc -Wl,-wrap,free -rdynamic -I"$1"/lightning-c-bindings/include/ $2 src/main/jni/bindings.c "$1"/lightning-c-bindings/target/debug/libldk.a -lm
+       $COMPILE -o liblightningjni_debug$LDK_TARGET_SUFFIX.so -g -fsanitize=address -shared-libasan -Wl,-wrap,calloc -Wl,-wrap,realloc -Wl,-wrap,reallocarray -Wl,-wrap,malloc -Wl,-wrap,free -rdynamic -I"$1"/lightning-c-bindings/include/ $2 src/main/jni/bindings.c "$1"/lightning-c-bindings/target/$LDK_TARGET/debug/libldk.a -lm
 else
-       $COMPILE -o liblightningjni_release.so -Wl,--version-script=libcode.version -flto -fuse-ld=lld -O3 -I"$1"/lightning-c-bindings/include/ $2 src/main/jni/bindings.c "$1"/lightning-c-bindings/target/release/libldk.a
+       $COMPILE -o liblightningjni_release$LDK_TARGET_SUFFIX.so -Wl,--version-script=libcode.version -flto -fuse-ld=lld -O3 -I"$1"/lightning-c-bindings/include/ $2 src/main/jni/bindings.c "$1"/lightning-c-bindings/target/$LDK_TARGET/release/libldk.a
 fi
 
 echo "Creating TS bindings..."
index e00f513f717a97dc1f76a9f25c8964019b21299d..3d5a2a0150cd1c5680d6a51495e27183a93e5ba9 100644 (file)
@@ -457,7 +457,10 @@ import java.util.Arrays;
         res =  "JNIEnv *env;\n"
         res += "jint get_jenv_res = (*j_calls->vm)->GetEnv(j_calls->vm, (void**)&env, JNI_VERSION_1_6);\n"
         res += "if (get_jenv_res == JNI_EDETACHED) {\n"
-        res += "\tDO_ASSERT((*j_calls->vm)->AttachCurrentThread(j_calls->vm, (void**)&env, NULL) == JNI_OK);\n"
+        if self.target == Target.ANDROID:
+            res += "\tDO_ASSERT((*j_calls->vm)->AttachCurrentThread(j_calls->vm, &env, NULL) == JNI_OK);\n"
+        else:
+            res += "\tDO_ASSERT((*j_calls->vm)->AttachCurrentThread(j_calls->vm, (void**)&env, NULL) == JNI_OK);\n"
         res += "} else {\n"
         res += "\tDO_ASSERT(get_jenv_res == JNI_OK);\n"
         res += "}\n"
index 5807add4e12c10a7d80bc85867dec1b89a4e2e52..8f58fe0e79204b3a1275002176f34d997ab48348 100755 (executable)
Binary files a/liblightningjni_debug.so and b/liblightningjni_debug.so differ
index 437f17eb77b71c9a8e948d45e909473d053ce4bb..e30297b51020a02814f7f158aeb8c23751b59308 100755 (executable)
Binary files a/liblightningjni_release.so and b/liblightningjni_release.so differ
index f0a38282d04d7f7fcaf74c8818bbebdf9328fe58..db0fa82b130e7ae7dd6635145d5112bc8b6ebb90 100644 (file)
@@ -5,6 +5,7 @@ import org.ldk.structs.*;
 import java.io.IOException;
 import java.net.SocketAddress;
 import java.net.StandardSocketOptions;
+import java.nio.Buffer;
 import java.nio.ByteBuffer;
 import java.nio.channels.*;
 
@@ -182,13 +183,13 @@ public class NioPeerHandler {
                                 }
                             }
                             if (key.isValid() && (key.interestOps() & SelectionKey.OP_READ) != 0 && key.isReadable()) {
-                                buf.clear();
+                                ((Buffer)buf).clear();
                                 int read = ((SocketChannel) key.channel()).read(buf);
                                 if (read == -1) {
                                     this.peer_manager.socket_disconnected(peer.descriptor);
                                     key.cancel();
                                 } else if (read > 0) {
-                                    buf.flip();
+                                    ((Buffer)buf).flip();
                                     byte[] read_bytes = new byte[read];
                                     buf.get(read_bytes, 0, read);
                                     Result_boolPeerHandleErrorZ res = this.peer_manager.read_event(peer.descriptor, read_bytes);
index 1eb28ec3c410b2fb6dc01f006ecc49c6597a5ef4..511f6839d654b27c996e47797530406319463a2a 100644 (file)
@@ -25,7 +25,7 @@ public class bindings {
        static native String get_lib_version_string();
 
        public static String get_ldk_java_bindings_version() {
-               return "v0.0.98";
+               return "v0.0.98.1";
        }
        public static native String get_ldk_c_bindings_version();
        public static native String get_ldk_version();
index 3dc78c9ded6baefeb8198b8961c684c7b3037c7e..4d1fdc889cd1581fa311fa447acc85377b1e796f 100644 (file)
@@ -130,7 +130,7 @@ static inline LDKStr java_to_owned_str(JNIEnv *env, jstring str) {
 }
 
 JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_get_1lib_1version_1string(JNIEnv *env, jclass _c) {
-       return str_ref_to_java(env, "v0.0.98", strlen("v0.0.98"));
+       return str_ref_to_java(env, "v0.0.98.1", strlen("v0.0.98.1"));
 }
 JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_get_1ldk_1c_1bindings_1version(JNIEnv *env, jclass _c) {
        return str_ref_to_java(env, check_get_ldk_bindings_version(), strlen(check_get_ldk_bindings_version()));
index 768139eeb59e457f20b0994d4ad103953af9dc23..95ae6d52afd2d554cf56da72af27a197751d4ec8 100644 (file)
@@ -128,7 +128,7 @@ static inline LDKStr java_to_owned_str(JNIEnv *env, jstring str) {
 }
 
 JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_get_1lib_1version_1string(JNIEnv *env, jclass _c) {
-       return str_ref_to_java(env, "v0.0.98", strlen("v0.0.98"));
+       return str_ref_to_java(env, "v0.0.98.1", strlen("v0.0.98.1"));
 }
 JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_get_1ldk_1c_1bindings_1version(JNIEnv *env, jclass _c) {
        return str_ref_to_java(env, check_get_ldk_bindings_version(), strlen(check_get_ldk_bindings_version()));