- Document the need for external rustfmt invocation.
- Remove reexports.
- Remove `write_to_file`.
- Avoid allocating strings when using bindgen to write bindings.
Turns out this was actually being used through magic.
Remove mips since it is a tier 3 target that is only supported on
nightly and dtolnay/rust-toolchain doesn't seem to handle installing
targets without std.
Exclude xtask since it depends on `ring` which doesn't build on all
targets.
Fix compilation on armv7 which had rotted.
This reverts commit d92fc95c39.
This can be done externally. Do so in CI.
This is an attempt to resolve the inconsistency between CI and local
rustfmt in the generated bindings.
Restore running CI on generated branches; the presence of a PR is
apparently not enough.
It is especially common to run CI on non-main branches in forks. This
shouldn't have any impact on how many CI jobs we run in the main aya
repo if contributors follow a fork-centric workflow.
libbpf is a submodule, so its version is already effectively pinned.
`xtask codegen` also runs `git submodule update` which reverts the
action of updating to `origin/HEAD`. Remove the cruft.
We're seeing 429 from Github trying to download gen_init_cpio, so cache
it using actions cache. Since I'm here add this for kernel images as
well to save time waiting on slow Debian servers.
Unwinding gives us more information, so we shouldn't disable it
globally. It is already disabled for BPF targets via the target configs
in rustc itself.
This complicates the clippy invocation somewhat, so put it in a shell
script for developer as well as CI use.
I did this for arm64 because we'd get a black screen without it but I
have now confirmed that console=ttyAMA0 solves that problem.
I don't remember why I did it for x86.
Instead of relying on Homebrew for macOS (which ships older LLVM
versions) and `apt.llvm.org` for Linux (which often has bugs at the
packaging level), we now use the tarball from Rust CI to provide
`libLLVM`. This ensures it always matches the version used by the latest
Rust nightly.
This removes our reliance on homebrew shipping LLVM versions matching
those used by rustc.
bpfman, a project using aya, has a requirement to support powerpc64 and
s390x architectures. Adding these two architectures to aya.
Signed-off-by: Billy McFall <22157057+Billy99@users.noreply.github.com>
Ensure we download multiple kernel versions to run
our virtualized CI against.
Bump xdpilone version to fix bug on latest kernel.
Signed-off-by: astoycos <astoycos@gmail.com>
`brew` seems to be breaking the rustup installed by rust-toolchain:
```
==> Migrating formula rustup-init to rustup
==> Unlinking rustup-init
==> Moving rustup-init versions to /opt/homebrew/Cellar/rustup
==> Relinking rustup
```
Let's see if this fixes it.
Adds missing libelf headers that are now included
as part of libbpf-internal.h. Adds ppc64el and
s390x to the cross environment.
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
Force bpf-linker to always be rebuilt/relinked. Before this change we
were always installing latest llvm from brew, but not always rebuilding
bpf-linker, which could lead to:
Run cargo install bpf-linker --git https://github.com/aya-rs/bpf-linker.git --rev 821f92990074cb7e950e25129dcd55e20424cede --no-default-features
Updating git repository `https://github.com/aya-rs/bpf-linker.git`
Ignored package `bpf-linker v0.9.10 (https://github.com/aya-rs/bpf-linker.git?rev=821f92990074cb7e950e25129dcd55e20424cede#821f9299)` is already installed, use --force to override
And then:
warning: integration-test@0.1.0: error: linking with `bpf-linker` failed: signal: 6 (SIGABRT)
warning: integration-test@0.1.0: = note: dyld[17642]: Library not loaded: '/usr/local/opt/z3/lib/libz3.4.12.dylib'
warning: integration-test@0.1.0: Referenced from: '/Users/runner/.cargo/bin/bpf-linker'