Thread overview | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
March 17, 2014 GDC ARM beta #1 (with binary releases!) | ||||
---|---|---|---|---|
| ||||
I'm happy to announce the first GDC ARM beta on behalf of the GDC team :) ARM support is now at a point where the automated tests (test suite, unit tests) pass and we're ready for feedback from real world usage. All changes have been fully integrated into the standard GDC sources which also means we're currently using the 2.064 frontend. ARM support is currently limited to ARM/GNU Linux, i.e. GlibC. (This especially means Android and bare metal programming are not officially supported). Please report all bugs to http://bugzilla.gdcproject.org/ If you're sure that the bug is a bug in phobos/druntime/DMD frontend and not GDC specific please report it to https://d.puremagic.com/issues ==== Getting the ARM beta ==== * All necessary code changes have been merged into Druntime, Phobos and GDC and you can simply get the latest GDC sources and build them on ARM. ( http://wiki.dlang.org/GDC/Installation/Generic ) * GDC is also part of the official Archlinux ARM repositories. To get GDC for Archlinux ARM, simply use these commands: pacman -S gdc libgphobos-devel You can also get dub on Archlinux ARM by executing pacman -S dub Many thanks to Dicebot for maintaining the Archlinux packages. * We provide binary cross compilers for windows X86 (32/64bit) and Linux x86 (32/64bit). We also provide 'native' compilers which run directly on ARM machines. http://gdcproject.org/downloads/ Note: Linux distribution packages or building from source should be preferred. ==== Precompiled GDC binaries ==== Precompiled toolchains are available for ARM hardfloat and ARM softfloat systems. These toolchains target systems with relatively recent glibc and linux kernel (GlibC >= 2.14, Linux >= 2.6.32). To check if you need the hard- or softfloat version run gcc -v where gcc is a working gcc for your ARM target. Then look for --with-float= in the output: --with-float=soft <==> softfloat --with-float=hard <==> hardfloat --with-float=softfp: We have no special binaries for these systems. Either compile GDC from sources or use the softfloat binaries. The softfloat binaries should work in 99% of all cases. The only known exception is using floating point functions in fibers, a 'softfp' toolchain is required in this case. To compile for ARM simply use this gdc executable: ./arm-gdcproject-linux-gnueabi[hf]/bin/arm-gdcproject-linux-gnueabi[hf]-gdc Note: The toolchain directories are write protected. If you want to change this, use chmod +w -R arm-gdcproject-linux-gnueabi[hf]. For more information on how to use additional libraries with the cross compilers, see http://crosstool-ng.org/hg/crosstool-ng/raw-file/e11a8a2e225d/docs/5%20-%20Using%20the%20toolchain.txt ==== Known issues ==== Known ARM-specific issues * std.internal.math.gammafunction.d is not ported yet (Help here is very appreciated!) * Array ops are evaluated in reverse order (WIP, FE 2.065) http://bugzilla.gdcproject.org/show_bug.cgi?id=8 Known issues with the binary builds * If you extract 7z files and are asked if you want to overwrite files, answer yes (toolchains are built on case sensitive filesystems, extracting on case insensitive filesystems will cause this warning) * Use the arm-...-gdc.exe executables and not bin/arm.../gdc.exe. * Unfortunately there's no multilib support for now. We use crosstool-NG to build these toolchains and multilib support in crosstool-NG is broken. However, this might change in the next few months. |
March 17, 2014 Re: GDC ARM beta #1 (with binary releases!) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Johannes Pfau | W dniu 2014-03-17 15:05, Johannes Pfau pisze:
> I'm happy to announce the first GDC ARM beta on behalf of the GDC
> team :)
>
> ARM support is now at a point where the automated tests (test suite,
> unit tests) pass and we're ready for feedback from real world usage.
> All changes have been fully integrated into the standard GDC sources
> which also means we're currently using the 2.064 frontend. ARM support
> is currently limited to ARM/GNU Linux, i.e. GlibC. (This especially
> means Android and bare metal programming are not officially supported).
>
> Please report all bugs to
> http://bugzilla.gdcproject.org/
>
> If you're sure that the bug is a bug in phobos/druntime/DMD frontend
> and not GDC specific please report it to
> https://d.puremagic.com/issues
Many thanks for Johannes, GDC team and others involved. You did a great job! I'm already using GDC ARM compiler with good results.
Btw. to anyone interested: To ensure stability of further development, we need an ARM/Linux auto tester. If anyone is willing to host an ARM box, please contact me by email (my Internet connection is not 100% reliable).
|
March 17, 2014 Re: GDC ARM beta #1 (with binary releases!) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Johannes Pfau Attachments:
| On 18 March 2014 00:05, Johannes Pfau <nospam@example.com> wrote:
> ...
>
Awesome work guys! This is a landmark moment! :)
What's the status on baremetal, bionic, and iOS?
|
March 17, 2014 Re: GDC ARM beta #1 (with binary releases!) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Manu | Am Tue, 18 Mar 2014 02:07:11 +1000 schrieb Manu <turkeyman@gmail.com>: > On 18 March 2014 00:05, Johannes Pfau <nospam@example.com> wrote: > > > ... > > > > Awesome work guys! This is a landmark moment! :) > What's the status on baremetal, bionic, and iOS? > baremetal: Timo Sintonen and Mike post updates on the D.gnu newsgroup now and then. Timo uses the standard C library and libgcc IIRC which makes it easier to get higher level stuff like exceptions working. Mike uses a 100% baremetal approach where all code is in D (or D/inline ASM). https://bitbucket.org/timosi/minlibd/ https://github.com/JinShil/D_Runtime_ARM_Cortex-M_study Bionic: I don't know if anyone is working on bionic/ARM/gdc. I know that there were some druntime updates for x86/Bionic recently. iOS: I don't know about gdc/iOS but there seems to be some work on this for LDC: http://forum.dlang.org/thread/m2txc2kqxv.fsf@comcast.net |
March 17, 2014 Re: GDC ARM beta #1 (with binary releases!) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Johannes Pfau | Vote up! http://www.reddit.com/r/programming/comments/20n3yw/gdcarm_beta_1_d_programming_language_with_gcc/ https://news.ycombinator.com/newest (find it and vote it) https://twitter.com/D_Programming/status/445607521752215552 https://www.facebook.com/dlang.org/posts/10202145218805462?stream_ref=10 Andrei |
March 17, 2014 Re: GDC ARM beta #1 (with binary releases!) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrei Alexandrescu | On 03/17/2014 06:11 PM, Andrei Alexandrescu wrote: > Vote up! (...) > https://news.ycombinator.com/newest (find it and vote it) Currently here (nr. 184): https://news.ycombinator.com/x?fnid=dKZJeV9oxnVX2eOw0VUBlt If not, search for "GDC". |
March 17, 2014 Re: GDC ARM beta #1 (with binary releases!) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Johannes Pfau | Hi, first of all: thanks for the great work! I've downloaded and tried the pre built toolchains for windows (x86 and x64) on a hello world example and while they worked - the executable produced the desired output - the file consisting of just the writeln() call is 10 MByte in size. I've just used the 'arm-gdcproject-linux-gnueabihf-gdc.exe'. Are there some additional steps that I should be doing? Take care, Martin |
March 17, 2014 Re: GDC ARM beta #1 (with binary releases!) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Martin | Am Mon, 17 Mar 2014 21:14:17 +0000 schrieb "Martin" <email@address.com>: > Hi, > > first of all: thanks for the great work! > > I've downloaded and tried the pre built toolchains for windows (x86 and x64) on a hello world example and while they worked - the executable produced the desired output - the file consisting of just the writeln() call is 10 MByte in size. > > I've just used the 'arm-gdcproject-linux-gnueabihf-gdc.exe'. > > Are there some additional steps that I should be doing? > > Take care, > Martin The phobos/druntime standard libraries shipped with the toolchains contain debug information and this causes big executables. You can use arm-gdcproject-linux-gnueabihf-strip.exe on the file to reduce the size. (but this also removes debug information, exception backtraces will probably not show function names then. strip also has some options to control what exactly is removed) |
March 17, 2014 Re: GDC ARM beta #1 (with binary releases!) | ||||
---|---|---|---|---|
| ||||
Posted in reply to simendsjo | On Monday, 17 March 2014 at 20:32:13 UTC, simendsjo wrote: > On 03/17/2014 06:11 PM, Andrei Alexandrescu wrote: >> Vote up! > (...) >> https://news.ycombinator.com/newest (find it and vote it) > > Currently here (nr. 184): https://news.ycombinator.com/x?fnid=dKZJeV9oxnVX2eOw0VUBlt > If not, search for "GDC". as of now, it's #228 in the newest items. for such searches, i suggest http://hn.algolia.com/. |
March 17, 2014 Re: GDC ARM beta #1 (with binary releases!) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Johannes Pfau | On Monday, 17 March 2014 at 14:07:13 UTC, Johannes Pfau wrote:
> I'm happy to announce the first GDC ARM beta on behalf of the GDC
> team :)
>
> ARM support is now at a point where the automated tests (test suite,
> unit tests) pass and we're ready for feedback from real world usage.
> All changes have been fully integrated into the standard GDC sources
> which also means we're currently using the 2.064 frontend. ARM support
> is currently limited to ARM/GNU Linux, i.e. GlibC. (This especially
> means Android and bare metal programming are not officially supported).
>
> Please report all bugs to
> http://bugzilla.gdcproject.org/
>
> If you're sure that the bug is a bug in phobos/druntime/DMD frontend
> and not GDC specific please report it to
> https://d.puremagic.com/issues
>
> ==== Getting the ARM beta ====
>
> * All necessary code changes have been merged into Druntime, Phobos and
> GDC and you can simply get the latest GDC sources and build them on
> ARM. ( http://wiki.dlang.org/GDC/Installation/Generic )
> * GDC is also part of the official Archlinux ARM repositories. To get
> GDC for Archlinux ARM, simply use these commands:
> pacman -S gdc libgphobos-devel
> You can also get dub on Archlinux ARM by executing
> pacman -S dub
> Many thanks to Dicebot for maintaining the Archlinux packages.
> * We provide binary cross compilers for windows X86 (32/64bit) and Linux
> x86 (32/64bit). We also provide 'native' compilers which run directly
> on ARM machines.
> http://gdcproject.org/downloads/
> Note: Linux distribution packages or building from source should be
> preferred.
>
>
> ==== Precompiled GDC binaries ====
>
> Precompiled toolchains are available for ARM hardfloat and ARM
> softfloat systems. These toolchains target systems with relatively
> recent glibc and linux kernel (GlibC >= 2.14, Linux >= 2.6.32).
>
> To check if you need the hard- or softfloat version run gcc -v where
> gcc is a working gcc for your ARM target. Then look for --with-float=
> in the output: --with-float=soft <==> softfloat
> --with-float=hard <==> hardfloat
>
> --with-float=softfp:
> We have no special binaries for these systems. Either compile GDC from
> sources or use the softfloat binaries. The softfloat binaries should
> work in 99% of all cases. The only known exception is using floating
> point functions in fibers, a 'softfp' toolchain is required in this
> case.
>
>
> To compile for ARM simply use this gdc executable:
> ./arm-gdcproject-linux-gnueabi[hf]/bin/arm-gdcproject-linux-gnueabi[hf]-gdc
>
> Note: The toolchain directories are write protected. If you want to
> change this, use chmod +w -R arm-gdcproject-linux-gnueabi[hf].
>
> For more information on how to use additional libraries with the cross
> compilers, see
> http://crosstool-ng.org/hg/crosstool-ng/raw-file/e11a8a2e225d/docs/5%20-%20Using%20the%20toolchain.txt
>
> ==== Known issues ====
>
> Known ARM-specific issues
> * std.internal.math.gammafunction.d is not ported yet (Help here is
> very appreciated!)
> * Array ops are evaluated in reverse order (WIP, FE 2.065)
> http://bugzilla.gdcproject.org/show_bug.cgi?id=8
>
> Known issues with the binary builds
> * If you extract 7z files and are asked if you want to overwrite files,
> answer yes (toolchains are built on case sensitive filesystems,
> extracting on case insensitive filesystems will cause this warning)
> * Use the arm-...-gdc.exe executables and not bin/arm.../gdc.exe.
> * Unfortunately there's no multilib support for now. We use
> crosstool-NG to build these toolchains and multilib support in
> crosstool-NG is broken. However, this might change in the next few
> months.
Any love for us Mac users? I'd love to try it for Android/NDK
development.
|
Copyright © 1999-2021 by the D Language Foundation