Skip to content

Commit 3d9f453

Browse files
authored
Merge pull request #21 from TheBlueMatt/main
Android Fixes
2 parents de7e3d9 + ebbb6f5 commit 3d9f453

File tree

8 files changed

+20
-9
lines changed

8 files changed

+20
-9
lines changed

genbindings.sh

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,13 @@ else
1616
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)="
1717
fi
1818

19+
if [ "$LDK_TARGET" != "" ]; then
20+
LDK_TARGET_SUFFIX="_$LDK_TARGET"
21+
fi
22+
if [ "$LDK_TARGET_CPU" = "" ]; then
23+
LDK_TARGET_CPU="sandybridge"
24+
fi
25+
1926
set -e
2027

2128
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
4653
rm src/main/java/org/ldk/enums/*.class src/main/java/org/ldk/impl/bindings*.class
4754

4855
echo "Building Java bindings..."
49-
COMPILE="$COMMON_COMPILE -march=sandybridge -Isrc/main/jni -pthread -ldl -Wl,--no-undefined -shared -fPIC"
56+
COMPILE="$COMMON_COMPILE -mcpu=$LDK_TARGET_CPU -Isrc/main/jni -pthread -ldl -Wl,--no-undefined -shared -fPIC"
5057
if [ "$3" = "true" ]; then
51-
$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
58+
$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
5259
else
53-
$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
60+
$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
5461
fi
5562

5663
echo "Creating TS bindings..."

java_strings.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,10 @@ def construct_jenv(self):
457457
res = "JNIEnv *env;\n"
458458
res += "jint get_jenv_res = (*j_calls->vm)->GetEnv(j_calls->vm, (void**)&env, JNI_VERSION_1_6);\n"
459459
res += "if (get_jenv_res == JNI_EDETACHED) {\n"
460-
res += "\tDO_ASSERT((*j_calls->vm)->AttachCurrentThread(j_calls->vm, (void**)&env, NULL) == JNI_OK);\n"
460+
if self.target == Target.ANDROID:
461+
res += "\tDO_ASSERT((*j_calls->vm)->AttachCurrentThread(j_calls->vm, &env, NULL) == JNI_OK);\n"
462+
else:
463+
res += "\tDO_ASSERT((*j_calls->vm)->AttachCurrentThread(j_calls->vm, (void**)&env, NULL) == JNI_OK);\n"
461464
res += "} else {\n"
462465
res += "\tDO_ASSERT(get_jenv_res == JNI_OK);\n"
463466
res += "}\n"

liblightningjni_debug.so

-3.98 KB
Binary file not shown.

liblightningjni_release.so

102 KB
Binary file not shown.

src/main/java/org/ldk/batteries/NioPeerHandler.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import java.io.IOException;
66
import java.net.SocketAddress;
77
import java.net.StandardSocketOptions;
8+
import java.nio.Buffer;
89
import java.nio.ByteBuffer;
910
import java.nio.channels.*;
1011

@@ -182,13 +183,13 @@ public NioPeerHandler(PeerManager manager) throws IOException {
182183
}
183184
}
184185
if (key.isValid() && (key.interestOps() & SelectionKey.OP_READ) != 0 && key.isReadable()) {
185-
buf.clear();
186+
((Buffer)buf).clear();
186187
int read = ((SocketChannel) key.channel()).read(buf);
187188
if (read == -1) {
188189
this.peer_manager.socket_disconnected(peer.descriptor);
189190
key.cancel();
190191
} else if (read > 0) {
191-
buf.flip();
192+
((Buffer)buf).flip();
192193
byte[] read_bytes = new byte[read];
193194
buf.get(read_bytes, 0, read);
194195
Result_boolPeerHandleErrorZ res = this.peer_manager.read_event(peer.descriptor, read_bytes);

src/main/java/org/ldk/impl/bindings.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public VecOrSliceDef(long dataptr, long datalen, long stride) {
2525
static native String get_lib_version_string();
2626

2727
public static String get_ldk_java_bindings_version() {
28-
return "v0.0.98";
28+
return "v0.0.98.1";
2929
}
3030
public static native String get_ldk_c_bindings_version();
3131
public static native String get_ldk_version();

src/main/jni/bindings.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ static inline LDKStr java_to_owned_str(JNIEnv *env, jstring str) {
130130
}
131131

132132
JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_get_1lib_1version_1string(JNIEnv *env, jclass _c) {
133-
return str_ref_to_java(env, "v0.0.98", strlen("v0.0.98"));
133+
return str_ref_to_java(env, "v0.0.98.1", strlen("v0.0.98.1"));
134134
}
135135
JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_get_1ldk_1c_1bindings_1version(JNIEnv *env, jclass _c) {
136136
return str_ref_to_java(env, check_get_ldk_bindings_version(), strlen(check_get_ldk_bindings_version()));

src/main/jni/bindings.c.body

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ static inline LDKStr java_to_owned_str(JNIEnv *env, jstring str) {
128128
}
129129

130130
JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_get_1lib_1version_1string(JNIEnv *env, jclass _c) {
131-
return str_ref_to_java(env, "v0.0.98", strlen("v0.0.98"));
131+
return str_ref_to_java(env, "v0.0.98.1", strlen("v0.0.98.1"));
132132
}
133133
JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_get_1ldk_1c_1bindings_1version(JNIEnv *env, jclass _c) {
134134
return str_ref_to_java(env, check_get_ldk_bindings_version(), strlen(check_get_ldk_bindings_version()));

0 commit comments

Comments
 (0)