Thread overview | ||||||
---|---|---|---|---|---|---|
|
February 27, 2016 Inquiring about cross compilation | ||||
---|---|---|---|---|
| ||||
Attachments:
| I am looking at doing a D project and have installed the DMD compiler on my 64-bit Ubuntu dev system. My target architecture to ARM, as used in the Raspberry PI and other systems. I need to know how I can develop code on Linux x86 and run it on the RPI. Any pointer to an article about this topic is appreciated.
--
Regards,
Ken
Seek wisdom through disbelief
|
February 29, 2016 Re: Inquiring about cross compilation | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ken Burgett | On Saturday, 27 February 2016 at 16:27:31 UTC, Ken Burgett wrote: > I am looking at doing a D project and have installed the DMD compiler on my 64-bit Ubuntu dev system. My target architecture to ARM, as used in the Raspberry PI and other systems. I need to know how I can develop code on Linux x86 and run it on the RPI. Any pointer to an article about this topic is appreciated. Download x86_64-linux-gnu toolchain targeting arm-linux-gnueabihf from [1] (its the second row). For Raspberry Pi it works out of the box, try: $ /opt/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gdc hello.d -o hello $ file hello hello: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, not stripped To build with dub, you need to pass the --compiler flag, e.g. $ dub build --compiler=/opt/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gdc This can even build vibe.d apps for RPi, provided that you have all target .so files (AFAIK these are libevent, libevent_pthread, libssl and libcrypto). qemu-arm-static can execute statically linked ARM linux apps right on your PC. You can also build for bare metal ARM (even Cortex-M) with the same toolchain if you pass correct flags. See [2]. [1] http://gdcproject.org/downloads [2] http://wiki.dlang.org/Minimal_semihosted_ARM_Cortex-M_"Hello_World" |
February 29, 2016 Re: Inquiring about cross compilation | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adrian Matoga Attachments:
| On 29 February 2016 at 09:35, Adrian Matoga via D.gnu <d.gnu@puremagic.com> wrote: > On Saturday, 27 February 2016 at 16:27:31 UTC, Ken Burgett wrote: > >> I am looking at doing a D project and have installed the DMD compiler on my 64-bit Ubuntu dev system. My target architecture to ARM, as used in the Raspberry PI and other systems. I need to know how I can develop code on Linux x86 and run it on the RPI. Any pointer to an article about this topic is appreciated. >> > > Download x86_64-linux-gnu toolchain targeting arm-linux-gnueabihf from [1] (its the second row). For Raspberry Pi it works out of the box, try: > > $ /opt/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gdc hello.d -o hello > > $ file hello > hello: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), > dynamically linked (uses shared libs), for GNU/Linux 2.6.32, not stripped > > To build with dub, you need to pass the --compiler flag, e.g. > > $ dub build --compiler=/opt/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gdc > > This can even build vibe.d apps for RPi, provided that you have all target .so files (AFAIK these are libevent, libevent_pthread, libssl and libcrypto). > > qemu-arm-static can execute statically linked ARM linux apps right on your PC. > > I totally forgot about this nice little feature of qemu. I have this in my old-old list of bookmarked lists for setting up a Raspbian qemu-chroot. https://superpiadventures.wordpress.com/ You can of course replace it with any derivative of Debian that supports RPI. Thanks! |
February 29, 2016 Re: Inquiring about cross compilation | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adrian Matoga | Am Mon, 29 Feb 2016 08:35:52 +0000 schrieb Adrian Matoga <dlang.spam@matoga.info>: > $ dub build --compiler=/opt/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gdc > > This can even build vibe.d apps for RPi, provided that you have all target .so files (AFAIK these are libevent, libevent_pthread, libssl and libcrypto). It's also possible to access the libraries from a running RPi using sshfs: http://wiki.dlang.org/GDC/Cross_Compiler/Existing_Sysroot |
Copyright © 1999-2021 by the D Language Foundation