[HN Gopher] Show HN: Compile for Arm at native speeds in an emul... ___________________________________________________________________ Show HN: Compile for Arm at native speeds in an emulated system Author : valkmit Score : 37 points Date : 2021-09-01 04:29 UTC (5 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | pm215 wrote: | This is the same trick used by the old 'scratchbox' development | environment that Nokia used for the maemo SDK. If the stuff you | compile in it includes classic "configure and make" C/C++ | projects then you'll probably also find that replacing the | /bin/sh binary with an x86 one improves speeds -- configure and | make spend quite a lot of time spawning shells to run bits of | shell script. | Ecco wrote: | This should be at the top: https://github.com/valkmit/aws- | graviton2-on-intel#justificat... | valkmit wrote: | Thanks, I'll add it now | parsecs wrote: | I think they are suggesting to move the justification section | of the github page to the top of the github readme. (Instead | of posting another comment on HN) | valkmit wrote: | Justification: | | https://github.com/valkmit/aws-graviton2-on-intel#justificat... | pabs3 wrote: | I like how cross-compiling works on Debian, you install the | native cross-compiler on your amd64 system, auto-install the | cross-dependencies built natively on arm64 systems onto your | amd64 system and then build. Of course, not all dependencies are | cross-installable and not all packages are cross-buildable, which | is why there is a QA effort for automatically doing test builds. | | https://wiki.debian.org/CrossCompiling http://crossqa.debian.net/ | gizdan wrote: | Any chance you can add a high level explanation on how this | works? | rfoo wrote: | Prepare a rootfs for ARM64 system. chroot into it and emulate | every binary with qemu-user. Now replace gcc etc with one | configured as cross-compiler, but still point its sysroot to | the usual path (/usr/...). | | This is equivalent to building a x86-to-aarch64 cross-compiler | and point the sysroot to a ARM64 rootfs, but more intuitive to | users unfamiliar with cross toolchains, and more friendly to | those mad configure scripts which insist on assuming host = | target and detect everything automatically. ___________________________________________________________________ (page generated 2021-09-01 10:00 UTC)