facebookarchive / BOLT

Binary Optimization and Layout Tool - A linux command-line utility used for optimizing performance of binaries
2.51k stars 176 forks source link

Added Github Actions for AArch64 build and test #244

Closed aaupov closed 2 years ago

aaupov commented 2 years ago

Use docker buildx (qemu user mode) to build and test BOLT on AArch64 platform (#228)

yota9 commented 2 years ago

Thank you so much!

yota9 commented 2 years ago

It seems to be qemu is too slow :( After the 6 hours the build seems to be canceled..

aaupov commented 2 years ago

@yota9: It was somewhat unexpected, but unfortunately it's too slow. As it's a stopgap solution anyway (post upstreaming we won't use GitHub Actions, will rely on LLVM buildbots instead), I don't think it's worth pursuing difficult solutions (cross-compiling the toolchain). I'll try to increase the timeout to 12h.

yota9 commented 2 years ago

How do you think, how hard it will be to create cross-compiled BOLT on x86 and then launch qemu and run tests?

sunnyflunk commented 2 years ago

I'll try to increase the timeout to 12h.

Looked like it might take 20h. One thing I saw from the logs is it feels like the build is run on 1 thread (and why x86_64 takes so long also).

aaupov commented 2 years ago

@sunnyflunk Thanks for checking. Testing timeout of 20h is impractical.

@yota9 I've looked a bit closer into it and found that a single dockerfile can manage both native and emulation containers, which makes it easier to cross-compile and run in emulation. I've tried but got stuck with cross-compiling clang due to gcc error. I'll continue investigating.

aaupov commented 2 years ago

Closed by mistake. Finally got to fixing the cross-compilation steps, AArch64 tests are passing now. Will import and push to the main repo soon.

aaupov commented 2 years ago

cde163e