Jiahao XU
6f1158857a
Fix glibc detection on ubuntu 24.02
...
On ubuntu 24.02, glibc are installed in:
```
/usr/lib/aarch64-linux-gnu/libc.so.6
/usr/lib/aarch64-linux-gnu/libc.so
```
Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com>
2025-05-06 20:02:46 +10:00
Jiahao XU
028b24de4d
Fix clippy warnings for detect-targets and binstalk-downloader ( #2098 )
...
binstalk-downloader clippy warning is specific to windows
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2025-03-19 14:19:43 +00:00
Jiahao XU
92973c1392
Fix detect-targets musl fallback for android and alpine ( #2076 )
...
Android does not have `-unknown-` in target and alpine uses
`-alpine-` instead of `-unknown-`, so the musl fallback must be
taken special care when generating
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2025-03-06 19:56:49 +00:00
Jiahao XU
b56a8c3579
Fix detect-targets
glibc detection ( #1421 )
...
* Fix `detect-targets` glibc detection
Fixed #1420
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Fix `detect-targets` glibc detection for Fedora
Fedora 37-39 has glibc installed in `/lib64` and `/usr/lib64` instead of
`/lib` or `/usr/lib`.
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Improve caching in `detect-targets-alpine-test`
Make sure it reuses cached artifacts instead of recompiling everything.
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Mv `test-detect-targets-musl.sh` into `.github/scripts/`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Refactor `ci.yml`: Extract new job `detect-targets-build`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* FIx `detect-targets-ubuntu-test`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Avoid building the entire workspacein `detect-targets-build`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Fix `detect-targets-*-test`: `chmod +x detect-targets`
Also fixed testing on Alpine, to make sure it exits with status 1 on
assertion failure.
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Fix typo
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Cache all crates in `detect-targets-build`
Since `detect-targets` rarely changes and is quite small, it is also
reasonable to cache it.
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Add job `detect-targets-more-glibc-test`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Add `detect-targets-nix-test`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Fix `detect-targets-nix-test` executing `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Fix workflow: Add all `detect-targets-*` jobs to be dep of `tests-pass`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
---------
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-09-29 23:46:03 +00:00
Tamir Duberstein
2db8e254bc
Investigate incorrect target detection ( #1376 )
...
* detect-targets: add debug tracing
See #1375 .
* Add new feature `tracing` & `cli-tracing` to `detect-targets
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Fix clippy lints
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
---------
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
Co-authored-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-09-23 10:45:44 +00:00
Jiahao XU
efbd20857b
Fix detect-targets
on ubuntu 20.04, glibc 2.31 ( #1379 )
...
* Fix `detect-targets` on ubuntu 20.04, glibc 2.31
Fixed #1375 and fixed #1378
glibc 2.31 does not support `--version`, so we need to detect and
fallback to passing an executable linked with that glibc to check if it
is indeed glibc.
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Fix compilation faillure on ubuntu-20.04
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
---------
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-09-22 23:55:12 +00:00
Jiahao XU
76a692224d
Fix detect-targets
on Linux and add CI testing ( #1344 )
...
* Testing: Add `detect-targets/src/main.rs`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Fix `detect-targets` linux: `guess_host_triple` could return wrong libc info
so it has to check it manually instead of simply providing alternatives
like other OSes.
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Fix `get_ld_flavor` for Alpine's gcompat glibc
Its output is different from regular glibc, so we need to hardcode that
particular cases.
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Fix detection of alpine specific musl target
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Add ci testing for Alpine
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Add CI test for detect-targets on ubuntu
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Refactor `get_ld_flavor`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Fix shellcheck
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Add more CI test for ubuntu
and fixed typo in it
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Rm distro specific target as it breaks `cargo-install` fallback
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Make sure all binaries are built in CI
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Add `package.metadata.binstall` for `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Fix justfile
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Fix `detect-targets-{alpine, ubuntu}-test`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Fix `detect-targets-ubuntu-test`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Fix `debug-targets-ubuntu-test`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* `set -exuo pipefail` in `detect-targets-ubuntu-test`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Simplify `detect-targets-*-test`: Use `Swatinem/rust-cache@v2` directly
instead of using `just-setup`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Rm dup steps in `detect-targets-ubuntu-test`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Add `ls` to detect-targets-alpine-test for debugging
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* FIx `detect-targets-alpine-test`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Fix `get_ld_flavor`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Fix `linux::detect_targets` on ubuntu & glibc system
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* FIx `linux::detect_targets` glibc checking
Check dynlib suffix
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
---------
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-09-06 14:17:43 +00:00
Jiahao XU
0fa315758b
feat detect-targets
: Improve support of non-std glibc/musl ( #1343 )
...
* feat `detect-targets`: Improve support of non-std glibc/musl
Fixed #1329
- Refactor: Create `linux::detect_alternative_targets` to reuse code
from other targets
- Run `/lib/ld-linux-{cpu_arch}.so.1 --version` for checking glibc
support instead of running `ldd --version` since it could be non-std
glibc installation and does not provide
`/lib/ld-linux-{cpu_arch}.so.1`
- Check for non-std glibc and add fallback target
`{cpu_arch}-{distro_name}-linux-gnu{abi}`
- Add `{cpu_arch}-{distro_name}-linux-musl{abi}` fallback for musl
libc, specially for Alpine since it has a
`/lib/ld-musl-{cpu_arch}.so.1`
- For unknown libc flavor, check for the target provided before
fallback to musl
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* feat `detect-targets`: Support glibc on musl target
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* feat `detect-targets`: Unify `Libc::{Gnu, Musl}` checks
since we can't really tell if we are on gnu or musl
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
---------
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-09-02 23:19:34 +00:00
Jiahao XU
42672ccf40
Fix detect_targets_linux
: Detect arch/libc at runtime using guess_host_triple
( #649 )
...
- Enable `guess_host_triple` on all targets
- Fix `detect_targets_linux`: Detect runtime arch/libc using
`guess_host_triple` instead of using the one specified in `TARGET`.
- Add support for android in `detect_targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-01-04 14:32:13 +13:00
Jiahao XU
62f9450d2d
Refactor: Extract new crate detect-targets
and improve code quality ( #307 )
...
* Refactor: Extract new crate `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Refactor: Extract new mod `detect` for `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Refactor: Extract `desired_targets` in crate `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Refactor: Extract `detect::linux` in crate `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Refactor: Extract `detect::macos` in crate `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Refactor: Extract `detect::windows` in crate `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Add new dep cfg-if v1.0.0 for `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Refactor: Simplify mod declaration in `detect` using `cfg_if!`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Refactor: Simplify `detect_targets` using `cfg_if!`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Add crate doc for `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Enable feature "macros" of tokio in `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Enable feature "io-util" of dep tokio
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Rm unused feature "io-util" & "macros" of dep tokio
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Set stdin & stderr to null in `get_target_from_rustc`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Improve doc of `get_desired_targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Improve `detect_targets_linux`: Run `ldd` with stdin set to null
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Fix potential panic in `windows::detect_alternative_targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* FIx fmt of `detect_targets_linux`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Do not re-export dep `detect-targets` in `crates/lib`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Fix typo in crate doc for `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Enable feature "macros" of tokio in dev mode
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Add example to crate doc of `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Improve API `get_desired_targets`: Take `Option<&str>`
instead of `&Option<String>`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-08-21 22:21:33 +10:00