@@ -75,7 +75,10 @@ if [ "$LDK_TARGET_CPU" = "" ]; then
7575fi
7676
7777COMMON_COMPILE=" $CC -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) ="
78- [ " $IS_MAC " = " true" -a " $2 " != " wasm" ] && COMMON_COMPILE=" $COMMON_COMPILE --target=$TARGET_STRING -mcpu=$LDK_TARGET_CPU "
78+ COMMON_CC=" "
79+ [[ " $TARGET_STRING " != " x86" * ]] && COMMON_CC=" $COMMON_CC --target=$TARGET_STRING -mcpu=$LDK_TARGET_CPU "
80+ [[ " $TARGET_STRING " = " x86" * ]] && COMMON_CC=" $COMMON_CC --target=$TARGET_STRING -march=$LDK_TARGET_CPU -mtune=$LDK_TARGET_CPU "
81+ [ " $IS_MAC " = " true" -a " $MACOS_SDK " != " " ] && COMMON_COMPILE=" $COMMON_COMPILE -isysroot $MACOS_SDK "
7982
8083DEBUG_ARG=" $3 "
8184if [ " $3 " = " leaks" ]; then
@@ -106,7 +109,10 @@ if [ "$2" = "c_sharp" ]; then
106109 echo " Creating C# bindings..."
107110 mkdir -p c_sharp/src/org/ldk/{enums,structs,impl}
108111 rm -f c_sharp/src/org/ldk/{enums,structs,impl}/* .cs
109- ./genbindings.py " ./lightning.h" c_sharp/src/org/ldk/impl c_sharp/src/org/ldk c_sharp/ $DEBUG_ARG c_sharp $4 $TARGET_STRING
112+ GEN_PLAT=" c_sharp-linux"
113+ [ " $IS_WIN " = " true" ] && GEN_PLAT=" c_sharp-win"
114+ [ " $IS_MAC " = " true" ] && GEN_PLAT=" c_sharp-darwin"
115+ ./genbindings.py " ./lightning.h" c_sharp/src/org/ldk/impl c_sharp/src/org/ldk c_sharp/ $DEBUG_ARG $GEN_PLAT $4 $TARGET_STRING
110116 rm -f c_sharp/bindings.c
111117 if [ " $3 " = " true" ]; then
112118 echo " #define LDK_DEBUG_BUILD" > c_sharp/bindings.c
@@ -119,11 +125,6 @@ if [ "$2" = "c_sharp" ]; then
119125 cat header.c >> c_sharp/bindings.c
120126 cat c_sharp/bindings.c.body >> c_sharp/bindings.c
121127
122- IS_MAC=false
123- [ " $( $CC --version | grep apple-darwin) " != " " ] && IS_MAC=true
124- IS_APPLE_CLANG=false
125- [ " $( $CC --version | grep " Apple clang version" ) " != " " ] && IS_APPLE_CLANG=true
126-
127128 if is_gnu_sed; then
128129 sed -i " s/<version>.*<\/version>/<version>${LDK_GARBAGECOLLECTED_GIT_OVERRIDE: 1: 100} <\/version>/g" c_sharp/packaging_artifacts/org.ldk.nuspec
129130 sed -i " s/<version>.*<\/version>/<version>${LDK_GARBAGECOLLECTED_GIT_OVERRIDE: 1: 100} <\/version>/g" c_sharp/packaging_artifacts/package/services/metadata/core-properties/ldk.psmdcp
@@ -143,14 +144,16 @@ if [ "$2" = "c_sharp" ]; then
143144 fi
144145
145146 echo " Building C# bindings..."
146- COMPILE=" $COMMON_COMPILE -pthread -fPIC"
147- LINK=" -shared"
147+ COMPILE=" $COMMON_COMPILE $COMMON_CC -pthread -fPIC"
148+ LINK=" $COMMON_CC -shared"
148149 [ " $IS_WIN " = " false" ] && LINK=" $LINK -ldl"
149150 [ " $IS_MAC " = " false" ] && LINK=" $LINK -Wl,--no-undefined"
150151 [ " $IS_MAC " = " true" ] && COMPILE=" $COMPILE -mmacosx-version-min=10.9"
151152 [ " $IS_MAC " = " true" -a " $IS_APPLE_CLANG " = " false" ] && LINK=" $LINK -fuse-ld=lld"
152153 [ " $IS_MAC " = " true" -a " $IS_APPLE_CLANG " = " false" ] && echo " WARNING: Need at least upstream clang 13!"
153154 [ " $IS_MAC " = " false" -a " $3 " != " false" ] && LINK=" $LINK -Wl,-wrap,calloc -Wl,-wrap,realloc -Wl,-wrap,malloc -Wl,-wrap,free"
155+ [ " $IS_WIN " = " true" ] && LINK=" $LINK -lbcrypt -lntdll -static-libgcc"
156+ [ " $IS_WIN " = " true" ] && COMPILE=" $COMPILE -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/ -I/usr/x86_64-w64-mingw32/include/"
154157
155158 if [ " $3 " = " true" ]; then
156159 $COMPILE $LINK -o libldkcsharp_debug$LDK_TARGET_SUFFIX .so -g -fsanitize=address -shared-libasan -rdynamic -I" $1 " /lightning-c-bindings/include/ c_sharp/bindings.c " $1 " /lightning-c-bindings/target/$LDK_TARGET /debug/libldk.a -lm
@@ -159,8 +162,6 @@ if [ "$2" = "c_sharp" ]; then
159162 [ " $IS_APPLE_CLANG " = " false" ] && COMPILE=" $COMPILE -flto"
160163 [ " $IS_MAC " = " false" ] && LINK=" $LINK -Wl,--no-undefined"
161164 [ " $IS_WIN " = " false" ] && LINK=" $LINK -Wl,--lto-O3"
162- [ " $IS_WIN " = " true" ] && LINK=" $LINK --target=x86_64-pc-windows-gnu -L/usr/lib/gcc/x86_64-w64-mingw32/12-win32/ -lbcrypt -lntdll -static-libgcc"
163- [ " $IS_WIN " = " true" ] && COMPILE=" $COMPILE --target=x86_64-pc-windows-gnu"
164165 LDK_LIB=" $1 " /lightning-c-bindings/target/$LDK_TARGET /release/libldk.a
165166 if [ " $IS_MAC " = " false" -a " $IS_WIN " = " false" -a " $4 " = " false" ]; then
166167 LINK=" $LINK -Wl,--version-script=c_sharp/libcode.version -Wl,--build-id=0x0000000000000000"
@@ -170,7 +171,7 @@ if [ "$2" = "c_sharp" ]; then
170171 # so we have to build with faketime.
171172 faketime -f " 2021-01-01 00:00:00" $COMPILE -o bindings.o -c -O3 -I" $1 " /lightning-c-bindings/include/ c_sharp/bindings.c
172173 faketime -f " 2021-01-01 00:00:00" $COMPILE $LINK -o libldkcsharp_release$LDK_TARGET_SUFFIX .so -O3 bindings.o $LDK_LIB -lm
173- [ " $IS_APPLE_CLANG " != " true" ] && llvm-strip libldkcsharp_release$LDK_TARGET_SUFFIX .so
174+ [ " $IS_APPLE_CLANG " != " true" ] && llvm-strip -R .llvmbc -R .llvmcmd libldkcsharp_release$LDK_TARGET_SUFFIX .so
174175
175176 if [ " $LDK_JAR_TARGET " = " true" ]; then
176177 # Copy resulting native binary for inclusion in release nuget zip
@@ -210,8 +211,8 @@ elif [ "$2" = "python" ]; then
210211 [ " $( $CC --version | grep " Apple clang version" ) " != " " ] && IS_APPLE_CLANG=true
211212
212213 echo " Building Python bindings..."
213- COMPILE=" $COMMON_COMPILE -Isrc/main/jni -pthread -fPIC"
214- LINK=" -ldl -shared"
214+ COMPILE=" $COMMON_COMPILE $COMMON_CC -Isrc/main/jni -pthread -fPIC"
215+ LINK=" $COMMON_CC -ldl -shared"
215216 [ " $IS_MAC " = " false" ] && LINK=" $LINK -Wl,--no-undefined"
216217 [ " $IS_MAC " = " true" ] && COMPILE=" $COMPILE -mmacosx-version-min=10.9"
217218 [ " $IS_MAC " = " true" -a " $IS_APPLE_CLANG " = " false" ] && LINK=" $LINK -fuse-ld=lld"
@@ -224,7 +225,7 @@ elif [ "$2" = "python" ]; then
224225 else
225226 $COMPILE -o bindings.o -c -flto -O3 -I" $1 " /lightning-c-bindings/include/ $2 c_sharp/bindings.c
226227 $COMPILE $LINK -o liblightningpython_release$LDK_TARGET_SUFFIX .so -Wl,--version-script=python/libcode.version -flto -O3 -Wl,--lto-O3 -Wl,-O3 -I" $1 " /lightning-c-bindings/include/ $2 bindings.o " $1 " /lightning-c-bindings/target/$LDK_TARGET /release/libldk.a -lm
227- [ " $IS_APPLE_CLANG " != " true" ] && llvm-strip liblightningpython_release$LDK_TARGET_SUFFIX .so
228+ [ " $IS_APPLE_CLANG " != " true" ] && llvm-strip -R .llvmbc -R .llvmcmd liblightningpython_release$LDK_TARGET_SUFFIX .so
228229 fi
229230elif [ " $2 " = " wasm" ]; then
230231 echo " Creating TS bindings..."
@@ -250,7 +251,7 @@ elif [ "$2" = "wasm" ]; then
250251 cat ts/bindings.c.body >> ts/bindings.c
251252
252253 echo " Building TS bindings..."
253- COMPILE=" $COMMON_COMPILE -flto -Wl,--no-entry -nostdlib --target=wasm32-wasi -Wl,-z -Wl,stack-size=$(( 8 * 1024 * 1024 )) -Wl,--initial-memory=$(( 16 * 1024 * 1024 )) -Wl,--max-memory=$(( 1024 * 1024 * 1024 )) -Wl,--global-base=4096"
254+ COMPILE=" $COMMON_COMPILE $COMMON_CC -flto -Wl,--no-entry -nostdlib --target=wasm32-wasi -Wl,-z -Wl,stack-size=$(( 8 * 1024 * 1024 )) -Wl,--initial-memory=$(( 16 * 1024 * 1024 )) -Wl,--max-memory=$(( 1024 * 1024 * 1024 )) -Wl,--global-base=4096"
254255 # We only need malloc and assert/abort, but for now just use WASI for those:
255256 EXTRA_LINK=/usr/lib/wasm32-wasi/libc.a
256257 [ " $3 " != " false" ] && COMPILE=" $COMPILE -Wl,-wrap,calloc -Wl,-wrap,realloc -Wl,-wrap,reallocarray -Wl,-wrap,malloc -Wl,-wrap,aligned_alloc -Wl,-wrap,free"
317318 rm src/main/java/org/ldk/enums/* .class src/main/java/org/ldk/impl/bindings* .class
318319
319320 echo " Building Java bindings..."
320- COMPILE=" $COMMON_COMPILE -Isrc/main/jni -pthread -fPIC"
321- LINK=" -shared"
321+ COMPILE=" $COMMON_COMPILE $COMMON_CC -Isrc/main/jni -pthread -fPIC"
322+ LINK=" $COMMON_CC -shared"
322323 [ " $IS_WIN " = " false" ] && LINK=" $LINK -ldl"
323324 [ " $IS_MAC " = " false" ] && LINK=" $LINK -Wl,--no-undefined"
324325 [ " $IS_MAC " = " true" ] && COMPILE=" $COMPILE -mmacosx-version-min=10.9"
340341
341342 $COMPILE -o bindings.o -c -O3 -I" $1 " /lightning-c-bindings/include/ $2 src/main/jni/bindings.c
342343 $COMPILE $LINK -o liblightningjni_release$LDK_TARGET_SUFFIX .so -O3 $2 bindings.o $LDK_LIB -lm
343- [ " $IS_APPLE_CLANG " != " true" ] && llvm-strip liblightningjni_release$LDK_TARGET_SUFFIX .so
344+ [ " $IS_APPLE_CLANG " != " true" ] && llvm-strip -R .llvmbc -R .llvmcmd liblightningjni_release$LDK_TARGET_SUFFIX .so
344345
345346 if [ " $IS_MAC " = " false" -a " $4 " = " false" ]; then
346347 GLIBC_SYMBS=" $( objdump -T liblightningjni_release$LDK_TARGET_SUFFIX .so | grep GLIBC_ | grep -v " GLIBC_2\.\(2\|3\)\(\.\|)\)" | grep -v " GLIBC_2.\(3\.4\|14\|17\|18\|25\|28\|29\|32\|33\|34\|\))" || echo) "
0 commit comments