From bd49ac416881ede3e5132789defd3fec4c6f8685 Mon Sep 17 00:00:00 2001 From: fanquake Date: Mon, 1 Mar 2021 14:00:36 +0800 Subject: build: fix libnatpmp macos cross compile Currently, our cross-compile of libnatpmp for macOS doesn't work at all. The wrong archiver is used, which produces an archive the linker doesn't like. This becomes clear when configuring: ```bash configure:25722: checking for initnatpmp in -lnatpmp configure:25747: env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH -u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH -u LIBRARY_PATH /home/ubuntu/bitcoin/depends/x86_64-apple-darwin18/native/bin/clang++ --target=x86_64-apple-darwin18 -Wl,-headerpad_max_install_names -Wl,-dead_strip -Wl,-dead_strip_dylibs conftest.cpp -lnatpmp >&5 ld: archive has no table of contents for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) ``` Fix this by using the right `ar` (we do the same for upnp). While we're at it, we fixe the build so that we are using our c/ppflags. This means building with `-O2` rather than `-Os`. Note that this fixes an issue that is also fixed by #21209. However, given there are reservations about updating to use a newer libnatpmp source, we should just fix this for now. --- depends/packages/libnatpmp.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/depends/packages/libnatpmp.mk b/depends/packages/libnatpmp.mk index a24f201859..391b9337b7 100644 --- a/depends/packages/libnatpmp.mk +++ b/depends/packages/libnatpmp.mk @@ -6,6 +6,7 @@ $(package)_sha256_hash=e1aa9c4c4219bc06943d6b2130f664daee213fb262fcb94dd355815b8 define $(package)_set_vars $(package)_build_opts=CC="$($(package)_cc)" + $(package)_build_env+=CFLAGS="$($(package)_cflags) $($(package)_cppflags)" AR="$($(package)_ar)" endef define $(package)_build_cmds -- cgit v1.2.3