Fix LTO compilation with latest ld.lld on OSX
authorMatt Corallo <git@bluematt.me>
Thu, 12 Jan 2023 23:27:19 +0000 (23:27 +0000)
committerMatt Corallo <git@bluematt.me>
Thu, 12 Jan 2023 23:27:19 +0000 (23:27 +0000)
genbindings.sh

index f26ea5d38057ca2c81813a9ef3f2cf8da954d50f..d1b67580d1a4fcb850db9dcb5fbd5bbfb9ab8613 100755 (executable)
@@ -559,7 +559,8 @@ if [ "$CLANGPP" != "" -a "$LLD" != "" ]; then
                CARGO_PROFILE_RELEASE_LTO=true RUSTFLAGS="$RUSTFLAGS -C embed-bitcode=yes -C linker-plugin-lto -C lto -C linker=$CLANG $LINK_ARG_FLAGS -C link-arg=-march=sandybridge -C link-arg=-mcpu=sandybridge -C link-arg=-mtune=sandybridge" cargo build $CARGO_BUILD_ARGS -v --release
 
                if [ "$2" = "true" ]; then
-                       $CLANGPP $LOCAL_CFLAGS -flto -fuse-ld=$LLD -O2 demo.cpp target/release/libldk.a -ldl
+                       $CLANGPP $LOCAL_CFLAGS -flto -fuse-ld=$LLD -O2 -c demo.cpp -o demo.o
+                       $CLANGPP $LOCAL_CFLAGS -flto -fuse-ld=$LLD -Wl,--lto-O2 -Wl,-O2 -O2 demo.o target/release/libldk.a -ldl
                        strip ./a.out
                        echo "C++ Bin size and runtime with cross-language LTO:"
                        ls -lha a.out