summaryrefslogtreecommitdiff
path: root/cli/build.rs
diff options
context:
space:
mode:
authorLuke Channings <461449+LukeChannings@users.noreply.github.com>2022-10-10 03:29:31 +0100
committerGitHub <noreply@github.com>2022-10-10 07:59:31 +0530
commita2488ae79200abfcbad0f0f8b084a3ff8e183880 (patch)
tree23a0e5138e0de596834b71a65795a0ffb5ddcfa2 /cli/build.rs
parent3b6b75bb46840a897a310dfd3fcbbd05618f3c5b (diff)
fix(npm): support compiling on linux/aarch64 (#16208)
Changes introduced in #13633 have broken the ability to compile for linux/aarch64 - specifically the use of a `i8` as a char type, which is an `u8` on linux/aarch64. This PR: - Replaces instances of `i8` with the architecture-aware wrapper type `c_char` - Skips the use of `--export-dynamic-symbol` on linux-aarch64, because the target environments often rely on older libc/binutils versions
Diffstat (limited to 'cli/build.rs')
-rw-r--r--cli/build.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/cli/build.rs b/cli/build.rs
index 77c95fb17..0d683780f 100644
--- a/cli/build.rs
+++ b/cli/build.rs
@@ -343,7 +343,10 @@ fn main() {
.display(),
);
- #[cfg(not(target_os = "windows"))]
+ #[cfg(all(
+ not(target_os = "windows"),
+ not(all(target_os = "linux", target_arch = "aarch64"))
+ ))]
{
// Load the symbols file generated by the `napi_sym` macro.
#[derive(serde::Deserialize)]
@@ -375,6 +378,10 @@ fn main() {
}
}
+ // Linux + aarch64 does not support a glibc version that supports `--export-dynamic-symbol`.
+ #[cfg(all(target_os = "linux", target_arch = "aarch64"))]
+ println!("cargo:rustc-link-arg-bin=deno=-rdynamic");
+
// To debug snapshot issues uncomment:
// op_fetch_asset::trace_serializer();