diff --git a/packages/ferric-example/Cargo.toml b/packages/ferric-example/Cargo.toml index 2524a0e8..a301bce0 100644 --- a/packages/ferric-example/Cargo.toml +++ b/packages/ferric-example/Cargo.toml @@ -8,17 +8,21 @@ license = "MIT" crate-type = ["cdylib"] [dependencies.napi] -version = "3.1" -default-features = false +version = "=3.4.0" # see https://nodejs.org/api/n-api.html#node-api-version-matrix +default-features = false features = ["napi3"] [dependencies.napi-derive] -version = "3.1" +version = "3.3.0" features = ["type-def"] +# See https://github.com/callstackincubator/react-native-node-api/issues/331 +[dependencies.napi-sys] +version = "=3.0.1" + [build-dependencies] -napi-build = "2" +napi-build = "2.2.4" [profile.release] lto = true diff --git a/packages/ferric/src/cargo.ts b/packages/ferric/src/cargo.ts index 4eee45b2..d3fc8ae7 100644 --- a/packages/ferric/src/cargo.ts +++ b/packages/ferric/src/cargo.ts @@ -219,8 +219,9 @@ export function getTargetEnvironmentVariables({ CARGO_ENCODED_RUSTFLAGS: [ "-L", weakNodeApiPath, - "-l", - "weak-node-api", + "-C", + // Passing --no-as-needed to prevent weak-node-api from being optimized away + "link-arg=-Wl,--push-state,--no-as-needed,-lweak-node-api,--pop-state", ].join(String.fromCharCode(0x1f)), CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER: joinPathAndAssertExistence( toolchainBinPath,