Closed cheeseprocedure closed 2 years ago
@cheeseprocedure It seems that you use Debian 11, right? And did you also use Debian 11 with intel CPU?
Correct. Both environments are Debian 11 with the latest 5.10 kernel packages.
@cheeseprocedure I started to look into this issue. But I am not familiar with arm environment it will take time. Thanks for filing this issue.
No problem - thank you for looking into it. If there’s further information I can provide please let me know!
Adding aarch64 build-test docker images: https://github.com/foniod/build-images/pull/5
This issue will be resolved soon by another upcoming PR after new aarch64 build-test images are ready.
I met the same problem compiling on aarch64. Then I investigate the generated code and found the problem.
The __va_list_tag
should be __gnuc_list_tag
on aarch64. I patched it and it works.
Here is my branch https://github.com/ihciah/redbpf/tree/fix-aarch64 , but I don't know if my fix is proper(@rhdxmr if you think it's ok I will submit a PR), I don't know when to use __gnuc_list_tag
and when to use the other one.
And also, I think maybe the functions that start with double slash should not be depended directly? If the wrapper can be implemented in a better way, it can be removed.
Hi @ihciah
I think your fix is proper. Actually while I am developing aarch64 build-test docker images, I also have been fixing this issue and my solution is almost the same with yours.
At first I thought that using va_list
in Rust is not a good choice so I considered to write small C code that wraps vdprintf
and make it as static library. And then substitute vdprintf_wrapper
with the new C code. But that is somewhat complicated than just using va_list
so I didn't choose that.
I had tested that the same error occur in aarch64 Debian11, Ubuntu 21.04, Fedora 35 and Alpine 3.15.
And all build errors are solved by substituting __va_list_tag
with __gnu_va_list
.
So please send a PR and I'll merge it.
ps.
I read an article about your monoio
in Hacker News few days ago. It is a novel design to me and it makes user code simple. I think this is brilliant!
@cheeseprocedure Thanks to @ihciah #245 solves this issue. So I am closing this issue.
Hello,
I'm running into the following issue when attempting to install
cargo-bpf
on a 64-bit ARM VM. I think the issue is unique to ARM, as I can't reproduce it in a 64-bit Intel guest:I believe I have all the necessary build pre-reqs in place. System/tooling versions:
Thank you!