4 ms·
Are there any excited embedded developers in the crowd? I have done a little embedded work and cross compiling has always been a huge pain in the ass to setup.
by eberkund 6y ago
Are there any excited embedded developers in the crowd? I have done a little embedded work and cross compiling has always been a huge pain in the ass to setup. I know some people have even gone as far as purchasing expensive niche workstations with ARM CPUs specifically to avoid this problem. I feel like having a mainstream ARM platform like the MBP will make compiling software for ARM-based single board computers a breeze.
- detaro 6y agoI'd much rather have a more powerful x86 workstation for the same money than an ARM laptop. Never really had problems with cross-compile. And without support for running Linux natively, it doesn't get me much for even for the parts of testing that don't need the specific target (well, VMs maybe).
- TheNorthman 6y agoTo be clear, we don't know if the ARM MacBook will be able to run Linux natively. We only know that Apple won't continue support for Boot Camp and therefor Windows anymore. Linux was never supported.
- sigjuice 6y agoThere won't be native Linux. https://news.ycombinator.com/item?id=23640746 https://news.ycombinator.com/item?id=23640746 (Craig Federighi confirms Apple Silicon Macs will not support booting other OS) EDIT: fixed link
- TheNorthman 6y agoI don't understand your point. Native Linux isn't restricted to x86_64. EDIT: Your new link doesn't tell a different story. From the comments: > It is still possible to disable secure boot using csrutil. Apple has never officially supported booting Linux on a Mac. > https://twitter.com/never_released/status/1275850872153690114 https://twitter.com/never_released/status/127585087215369011...
- ndesaulniers 6y agoReminds me of the argument made in https://www.realworldtech.com/forum/?threadid=183440&curpostid=183486 https://www.realworldtech.com/forum/?threadid=183440&curpost.... I cross compiling Linux kernels daily. I think Clang makes this simpler, but missing C runtime for cross compiling userspace executables still leaves much to be desired. I think Zig is doing interesting things here. Clang should just straight up adopt this, IMO. https://andrewkelley.me/post/zig-cc-powerful-drop-in-replacement-gcc-clang.html https://andrewkelley.me/post/zig-cc-powerful-drop-in-replace...
- platinumrad 6y agoThere isn't a single embedded target that uses MacOS's libc so you will still have to set up a specialized environment.
- bserge 6y agoI dunno if I count, I have a RPi 3, original Droid (oh yeah, it's still working), an LG L9 and a HTC One M8. And I'm building kernels for them (mostly because I'm overclocking the shit out of everything and I have no choice but to build custom kernels). 32 bit on the phones, a real pain in the ass to cross compile, but it's a fun learning experience (I'm just a noob to any programming). I'd love to get paid for this tbh :D
- nofunsir 6y agoMy expensive niche workstation = raspberry pi, pick your ARMv flavor. Most tools are adopting Linux remote build + remote debug, wherein you ssh in and hook into the compiler and debugger all from the comfort of CLion/VS2019/VSCode. If they don't have remote build, there is often building locally, with a copy of the root filesystem, using a cross-compiler, then remote deploy + debug. The most annoying part of this process is fixing all the symlinks not supported on NTFS. Expensiver niche workstation = $500 dev kit directly representative of your target, but with everything exposed. The interesting thing is now we need ARM -> x86 remote build or cross-compilation tools, of which I know of none.
- jeremyjh 6y agoYou'll still have a completely separate toolchain. First, a lot (most?) embedded development is not done on ARM A. ARM Cortex-M is probably the most popular embedded platform in industry and what it shares with "ARM Cortex-A" is the brand "ARM"; otherwise it is a separate architecture and instruction set. Even if you are talking about doing ARM Cortex-A series, you aren't going to be using the same libraries on the embedded device that you use on a Mac. You'd most likely be using either Linux (ala Raspberry Pi) or an RTOS; either way you have a different compiler and stdlib to use.
- lsllc 6y agoI solved that problem (mostly!) by using Go! Occasionally I do have to go dig out something like an arm-brcm-linux-gnueabi-gcc to cross compile C, but mostly I use Go.