diff options
| author | cions <gh.cions@gmail.com> | 2024-01-10 22:04:14 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-10 06:04:14 -0700 |
| commit | 881a62869db13199eff30231d4299d36faf143df (patch) | |
| tree | e739decaa38309910485c0808b25df9a1e560534 /ext/node | |
| parent | 1bafde9cd03f42f490cf0e6e504a5606ac6b634e (diff) | |
fix: android support (#19437)
<!--
Before submitting a PR, please read https://deno.com/manual/contributing
1. Give the PR a descriptive title.
Examples of good title:
- fix(std/http): Fix race condition in server
- docs(console): Update docstrings
- feat(doc): Handle nested reexports
Examples of bad title:
- fix #7123
- update docs
- fix bugs
2. Ensure there is a related issue and it is referenced in the PR text.
3. Ensure there are tests that cover the changes.
4. Ensure `cargo test` passes.
5. Ensure `./tools/format.js` passes without changing files.
6. Ensure `./tools/lint.js` passes.
7. Open as a draft PR if your work is still in progress. The CI won't
run
all steps, but you can add '[ci]' to a commit message to force it to.
8. If you would like to run the benchmarks on the CI, add the 'ci-bench'
label.
-->
---------
Signed-off-by: Matt Mastracci <matthew@mastracci.com>
Co-authored-by: Matt Mastracci <matthew@mastracci.com>
Diffstat (limited to 'ext/node')
| -rw-r--r-- | ext/node/ops/os/cpus.rs | 2 | ||||
| -rw-r--r-- | ext/node/polyfills/_util/os.ts | 10 | ||||
| -rw-r--r-- | ext/node/polyfills/internal_binding/constants.ts | 2 | ||||
| -rw-r--r-- | ext/node/polyfills/internal_binding/uv.ts | 4 | ||||
| -rw-r--r-- | ext/node/polyfills/os.ts | 4 |
5 files changed, 17 insertions, 5 deletions
diff --git a/ext/node/ops/os/cpus.rs b/ext/node/ops/os/cpus.rs index 5db929961..6c852dce7 100644 --- a/ext/node/ops/os/cpus.rs +++ b/ext/node/ops/os/cpus.rs @@ -236,7 +236,7 @@ pub fn cpu_info() -> Option<Vec<CpuInfo>> { } } -#[cfg(target_os = "linux")] +#[cfg(any(target_os = "android", target_os = "linux"))] pub fn cpu_info() -> Option<Vec<CpuInfo>> { use std::io::BufRead; diff --git a/ext/node/polyfills/_util/os.ts b/ext/node/polyfills/_util/os.ts index 2c01d5c6e..239419d91 100644 --- a/ext/node/polyfills/_util/os.ts +++ b/ext/node/polyfills/_util/os.ts @@ -3,9 +3,15 @@ import { core } from "ext:core/mod.js"; const ops = core.ops; -export type OSType = "windows" | "linux" | "darwin" | "freebsd" | "openbsd"; +export type OSType = + | "windows" + | "linux" + | "android" + | "darwin" + | "freebsd" + | "openbsd"; export const osType: OSType = ops.op_node_build_os(); export const isWindows = osType === "windows"; -export const isLinux = osType === "linux"; +export const isLinux = osType === "linux" || osType === "android"; diff --git a/ext/node/polyfills/internal_binding/constants.ts b/ext/node/polyfills/internal_binding/constants.ts index cb66ac5bd..69a2dffeb 100644 --- a/ext/node/polyfills/internal_binding/constants.ts +++ b/ext/node/polyfills/internal_binding/constants.ts @@ -330,7 +330,7 @@ if (buildOs === "darwin") { PRIORITY_HIGHEST: -20, }, }; -} else if (buildOs === "linux") { +} else if (buildOs === "linux" || buildOs === "android") { os = { UV_UDP_REUSEADDR: 4, dlopen: { diff --git a/ext/node/polyfills/internal_binding/uv.ts b/ext/node/polyfills/internal_binding/uv.ts index 08315b094..aa468a0a5 100644 --- a/ext/node/polyfills/internal_binding/uv.ts +++ b/ext/node/polyfills/internal_binding/uv.ts @@ -494,6 +494,8 @@ export const errorMap = new Map<number, [string, string]>( ? codeToErrorDarwin : osType === "linux" ? codeToErrorLinux + : osType === "android" + ? codeToErrorLinux : osType === "freebsd" ? codeToErrorFreebsd : osType === "openbsd" @@ -508,6 +510,8 @@ export const codeMap = new Map<string, number>( ? errorToCodeDarwin : osType === "linux" ? errorToCodeLinux + : osType === "android" + ? errorToCodeLinux : osType === "freebsd" ? errorToCodeFreebsd : osType === "openbsd" diff --git a/ext/node/polyfills/os.ts b/ext/node/polyfills/os.ts index af3e69d64..5d354b38b 100644 --- a/ext/node/polyfills/os.ts +++ b/ext/node/polyfills/os.ts @@ -151,7 +151,7 @@ export function endianness(): "BE" | "LE" { /** Return free memory amount */ export function freemem(): number { - if (Deno.build.os === "linux") { + if (Deno.build.os === "linux" || Deno.build.os == "android") { // On linux, use 'available' memory // https://github.com/libuv/libuv/blob/a5c01d4de3695e9d9da34cfd643b5ff0ba582ea7/src/unix/linux.c#L2064 return Deno.systemMemoryInfo().available; @@ -176,6 +176,7 @@ export function homedir(): string | null { case "windows": return Deno.env.get("USERPROFILE") || null; case "linux": + case "android": case "darwin": case "freebsd": case "openbsd": @@ -310,6 +311,7 @@ export function type(): string { case "windows": return "Windows_NT"; case "linux": + case "android": return "Linux"; case "darwin": return "Darwin"; |
