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
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
a22cb3a332
Fix x86_64 fallback for aarch64 MacOS ( #875 )
2023-03-10 22:09:16 +11:00
Jiahao XU
d72abde8e9
Fixed #704 : Fix get_target_from_rustc
for alpine ( #705 )
...
On Alpine, rustc returns host triple `x86_64-alpine-linux-musl`, so we
have to adopt code from
[`convert_custom_linux_target`](5519aeb5c2/build-common.rs (L1-L13)
) to fix this.
* Optimize `get_target_from_rustc`: Avoid frequent String allocation
caused by `Cursor::new(stdout).lines()` which calls `BufRead::lines` and
returns `Lines` iterator, which returns `Item = io::Result<String>`.
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-01-16 10:57:53 +11:00
Félix Saparelli
aea9df602c
Migrate CI and builds to Just, add "full" builds ( #660 )
2023-01-08 16:27:36 +11: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
59d79d1573
Refactor detect-targets
( #636 )
...
* Enable dep guess_host_triple for any non-linux OS
* Refactor: Rm `{windows, macos}::detect_target_*`
* Refactor `detect_targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-12-29 01:24:28 +00:00
Jiahao XU
31c9d4de1d
Verify target triple retrieved from rustc
is valid ( #637 )
...
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-12-29 13:42:54 +13:00
Jiahao XU
62e350eba9
detect-targets: Add support of MacOS universal binary ( #552 )
...
* Add support for MacOS universal bin
* Refactor: Extract new fn `macos::detect_alternative_targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-11-21 22:16:28 +13:00
Jiahao XU
ec2bdb551e
Use CARGO
env variable if present ( #453 )
...
* Run `$CARGO -vV` in `detect-targets` if env `CARGO` present
* Improve crate doc for `detect-targets`
* Use env var `CARGO` in `install_from_source` if present
* Test use of `CARGO` env in `tests.sh`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-10-02 04:52:25 +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