-
-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug, CI]: 32 bit binaries fail with sigabrt #18517
Comments
This reminds me of termux/termux-docker#40... Anyway, it is not necessary to do a (simulated) native build on
|
I removed using pre-generated GIR xml for purpose. It is first try to use Android native binaries on Ubuntu CI. |
Wow. I did not know about termux-docker. It seems like I can update bionic-host to build all libraries present in termux-docker repo and move the workflow to termux-packages. We can make it being triggered every time bootstrap is being rebuilt. |
Seems like it should be safe. I'll try this. |
IIUC GitHub will create a brand new VM for every runner, so I think it is safe and will not break Github TOS.
This reminds me of
Using QEMU and Actaully, I've done many work with termux-packages/packages/pypy/build.sh Line 84 in 68a94d5
clang++ hangs for some reason (termux/termux-docker#28, termux-packages/packages/pypy/build.sh Line 188 in 68a94d5
python2 (2.7.18) crashes with OpenSSL (termux-packages/packages/pypy/build.sh Line 182 in 68a94d5
Besides QEMU, Android's binary is not guaranteed to work properly under this FAKE Android environment, no matter what it is |
Latest qemu-user-static seems to be pretty stable. |
It seems like we should wait for a while to get aarch64 binaries working natively, without qemu. github/roadmap#836 |
Not possible to directly use this runner in this repository, because Android NDK toolchain doesn't have an official build for aarch64 GNU/Linux. Lzhiyong maintains a toolchain for Termux aarch64, so I think it is possible to build such a toolchain for aarch64 GNU/Linux. If GitHub Action provides such a runner, it is also possible to launch an arm-based Android emulator (avd or cuttlefish) or Android container using lxc (waydroid) / using docker (redroid), and build these binaries using a REAL Android environment natively. I used to work on this in tur-avd but I haven't worked on this in a while because my self-hosted arm runner expired. |
We can try to build NDK natively for aarch64 and use it. Or use it with qemu. |
Running clang aarch64/arm with qemu is not acceptable to me. It takes almost six times longer than running them natively, see https://github.com/termux-user-repository/tur/actions/runs/6876043598. |
What about termux's clang? |
Emmm... I maintained a repo that uses termux-docker to build packages in termux-user-repository/tur. I used to use native aarch64 server to build packages, but my server has been expired so I switched to QEMU a while ago. Just like what I showed before, when building |
That means we can use termux's native clang, right? |
Of course, if GitHub provides an aarch64 runner. But some packages like |
I don't know if github will make available those ARM CI runners for free to OSS projects, but if they do, we could always build Termux packages on Ubuntu x86_64 as always, then copy them over to the ARM runners and test them there in a separate CI job. I do this on my Swift CI, because the Android emulator only has hardware acceleration on the github macOS runner, so it runs much faster on there. |
Or we can order some ARM servers and use them as self-hosted runners. If it will be cheaper, of course. |
Does docker on macos use qemu for native aarch64 containers? If not we may try to use macos runners for this, without performance hit. |
The architecture of GitHub-hosted MacOS runner is x86... They may add aarch64 runner next year, see github/roadmap#819. |
Hetzner provides arm-based servers. Can we use them? Prices are pretty fine. |
Actually we have a bit better solution. We can use glibc packages instead of hostbuild. I mean we may build glibc packages with exporting files needed by bionic packages to some subpackage and after that we may fetch these subpackages during normal build.
|
I mean setting up docker when we are updating setup-ubuntu script. |
I think we do not need to use aarch64/armhf binaries to check updates. But we can modify updater script to build x86_64 packages instead of aarch64 and run tests. We even can check package compatibility by running tests of reverse dependencies (of course if we pack them (tests) as subpackages). In this case it will be even more effective than regular automatic updates. |
Github released arm-based runners. But in the case of arm runner we will not be able to use Android NDK because it is built for amd64. |
Closing since we are not going to use qemu for running arm binaries on amd64 hosts. |
Hi. There is a problem with 32-bit (i686 and armhf) bionic binaries. They fail with
Is it safe to add
to docker image startup script,
package_updates
andpackages
workflows?Can we do that in dockerized ubuntu (I mean if we have permissions to push kernel command)?
Is it safe for other CI users (I mean will it be applied globally for CI runner host)?
Does it comply with Github TOS?
The text was updated successfully, but these errors were encountered: