@@ -47,30 +47,39 @@ if [[ -z "${!nss_dir_var}" ]]; then
4747fi
4848
4949# Use toolchain configuration from environment
50- eval " CC =\$ ${RUST_ANDROID_PREFIX} _CC"
50+ eval " BASE_CC =\$ ${RUST_ANDROID_PREFIX} _CC"
5151eval " AR=\$ ${RUST_ANDROID_PREFIX} _AR"
52+ eval " AS=\$ ${RUST_ANDROID_PREFIX} _AS"
5253eval " RANLIB=\$ ${RUST_ANDROID_PREFIX} _RANLIB"
54+ eval " LD=\$ ${RUST_ANDROID_PREFIX} _LD"
5355eval " STRIP=\$ ${RUST_ANDROID_PREFIX} _TOOLCHAIN_PREFIX/${NSS_TARGET} -strip"
56+ eval " TOOLCHAIN_BIN=\$ ${RUST_ANDROID_PREFIX} _TOOLCHAIN_PREFIX"
5457eval " CFLAGS=\$ ${RUST_ANDROID_PREFIX} _CFLAGS_${NSS_TARGET// -/ _} "
55- eval " LDFLAGS=\$ ${RUST_ANDROID_PREFIX} _LDFLAGS_${NSS_TARGET// -/ _} "
58+
59+ # Bake all compiler/linker flags into CC like build-nss-ios.sh does
60+ # This ensures ninja picks up the flags for both compilation and linking
61+ CC=" ${BASE_CC} ${CFLAGS} "
62+ export CC
5663
5764# Build NSPR
5865NSPR_BUILD_DIR=$( mktemp -d)
5966pushd " ${NSPR_BUILD_DIR} "
60- " ${NSS_SRC_DIR} " /nspr/configure \
67+ if ! " ${NSS_SRC_DIR} " /nspr/configure \
6168 STRIP=" ${STRIP} " \
6269 RANLIB=" ${RANLIB} " \
6370 AR=" ${AR} " \
64- AS=" ${AS:- ${AR} } " \
65- LD=" ${LD:- ${AR} } " \
71+ AS=" ${AS} " \
72+ LD=" ${LD} " \
6673 CC=" ${CC} " \
6774 CCC=" ${CC} " \
68- CFLAGS=" ${CFLAGS} " \
69- LDFLAGS=" ${LDFLAGS} " \
7075 --target=" ${NSS_TARGET} " \
7176 --enable-64bit \
7277 --disable-debug \
73- --enable-optimize
78+ --enable-optimize; then
79+ echo " === NSPR configure failed, dumping config.log ==="
80+ cat config.log
81+ exit 1
82+ fi
7483make
7584popd
7685
@@ -97,7 +106,19 @@ gyp -f ninja "${NSS_SRC_DIR}/nss/nss.gyp" \
97106 -Dpython=python3
98107
99108GENERATED_DIR=" ${NSS_SRC_DIR} /nss/out/Release/"
100- ninja -C " ${GENERATED_DIR} "
109+ echo " === Dumping build.ninja for nss-macos-cross ==="
110+ cat " ${GENERATED_DIR} /build.ninja"
111+
112+ # Only build static library targets, not shared libraries
113+ # This avoids issues with Linux vs macOS linker flag differences (-soname vs -install_name)
114+ # The copy-nss-libs.sh script only needs .a files anyway
115+ ninja -C " ${GENERATED_DIR} " \
116+ libplc4.a libplds4.a libnspr4.a \
117+ libcertdb.a libcerthi.a libcryptohi.a libfreebl_static.a \
118+ libnss_static.a libmozpkix.a libnssb.a libnssdev.a libnsspki.a \
119+ libnssutil.a libpk11wrap_static.a libpkcs12.a libpkcs7.a \
120+ libsmime.a libsoftokn_static.a libssl.a \
121+ libarmv8_c_lib.a libgcm-aes-aarch64_c_lib.a
101122
102123# Assemble the DIST_DIR with relevant libraries and headers
103124./copy-nss-libs.sh \
0 commit comments