Jump to page: 1 2 3
Thread overview
GDC ARM beta #1 (with binary releases!)
Mar 17, 2014
Johannes Pfau
Mar 17, 2014
Piotr Szturmaj
Mar 17, 2014
Manu
Mar 17, 2014
Johannes Pfau
Mar 18, 2014
Dan Olson
Mar 18, 2014
Iain Buclaw
Mar 18, 2014
David Nadlinger
Mar 18, 2014
Joakim
Mar 17, 2014
simendsjo
Mar 17, 2014
Mengu
Mar 17, 2014
Martin
Mar 17, 2014
Johannes Pfau
Mar 17, 2014
inout
Mar 17, 2014
Rikki Cattermole
Mar 18, 2014
Chris
Mar 18, 2014
Jakob Ovrum
Mar 18, 2014
Johannes Pfau
Mar 18, 2014
Jakob Ovrum
Mar 23, 2014
Iain Buclaw
Mar 23, 2014
Johannes Pfau
Mar 24, 2014
Iain Buclaw
Mar 23, 2014
ian
Mar 24, 2014
Dejan Lekic
Mar 24, 2014
Iain Buclaw
Apr 02, 2014
Ellery Newcomer
Apr 02, 2014
Johannes Pfau
March 17, 2014
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
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
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
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
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
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
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
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
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
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.
« First   ‹ Prev
1 2 3