Update README with notes about OSX addrsan
authorMatt <matt@Matts-iMac-Pro.local>
Mon, 14 Jun 2021 22:30:43 +0000 (18:30 -0400)
committerMatt Corallo <git@bluematt.me>
Wed, 16 Jun 2021 03:23:09 +0000 (03:23 +0000)
README.md

index daa27633f5644ee63f0d4cebfed9828153d07b2d..8fe3e29e6d1705803d84e36aa9bb72303a693ccc 100644 (file)
--- a/README.md
+++ b/README.md
@@ -25,6 +25,17 @@ bindings should be built with workarounds required for Android. JNI CFLAGS on de
 When running a program linking against the library in debug mode, LD_PRELOAD should likely include
 the relevant `libclang_rt.asan-platform.so` path.
 
 When running a program linking against the library in debug mode, LD_PRELOAD should likely include
 the relevant `libclang_rt.asan-platform.so` path.
 
+Note that building with address sanitizer is only supported on MacOS with upstream clang (ie where
+the LLVM version in use matches the LLVM version against which rustc was built), not with Apple clang.
+Builds with Apple clang will work fine, but largely only be useful in a release context.
+To build on Mac with address sanitizer, you will need to run `ldk-c-bindings`' `genbindings.sh`
+script with upstream clang in your PATH and likely replace your $JAVA_HOME/bin/java with a simple
+wrapper which calls java after an export like:
+`export DYLD_INSERT_LIBRARIES=/path/to/upstream/llvm/lib/clang/12.0.0/lib/darwin/libclang_rt.asan_osx_dynamic.dylib`
+
+To build for Apple M1 (ie aarch64-apple-darwin), you probably want something like
+`CC="clang --target=aarch64-apple-darwin" LDK_TARGET=aarch64-apple-darwin LDK_TARGET_CPU=generic ./genbindings.sh ...`
+
 Status
 ======
 
 Status
 ======