www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - [Tutorial][Binaries] gdc for android

reply Johannes Pfau <nospam example.com> writes:
Hi,
I tried to rebuild the android ndk with gdc and documented the build
process at https://bitbucket.org/goshawk/gdc/wiki/GDC%20on%20Android

The tutorial explains how to build a gdc cross compiler for android. It
uses GCC 4.6.2, a recent binutils snapshot and additionally provides a
recent gdb 7.4.

32bit linux binaries are also available here:
http://www.mediafire.com/?2cex2faqx327l
Download the android ndk r7 and extract the gdc 7z file in
android-ndk-r7/toolchains/

What's working:
I couldn't test the compiler yet and I hope someone else will provide
feedback, but the basic gdc compiler should work. druntime may or may
not work, but it's distributed so that can be tested.
Phobos is not being built yet.

Known bugs/TODO:

You need to build all D code with -fno-section-anchors, see
https://bitbucket.org/goshawk/gdc/issue/120/fsection-anchors-broken-on-arm

build-druntime.patch needs to be integrated with gdc. See
https://gist.github.com/1739039
There are basically 3 things this patch does:
* Currently gdc checks for __libc_stack_end as that's used by
  druntime. This function is only available in glibc, but bionic
  provides a similar function: __get_stack_base. The patch currently
  simply replaces __libc_stack_end. We need some way to detect if we
  build for bionic, so we can properly version this code. It should
  also be tested to verify it is working correctly
* Building gcc/config/unix.d fails, so the patch simply skips that
  file. This should be investigated further and fixed correctly.
* Disables phobos for now, although I think I just disabled building the
  final library and the object files are still being built.

gdbserver is not being built for some reason. Had no time to
investigate that yet.
Feb 04 2012
parent "Nick Sabalausky" <a a.a> writes:
"Johannes Pfau" <nospam example.com> wrote in message 
news:20120204203109.26c9a80b jpf-laptop...
 Hi,
 I tried to rebuild the android ndk with gdc and documented the build
 process at https://bitbucket.org/goshawk/gdc/wiki/GDC%20on%20Android

 The tutorial explains how to build a gdc cross compiler for android. It
 uses GCC 4.6.2, a recent binutils snapshot and additionally provides a
 recent gdb 7.4.

 32bit linux binaries are also available here:
 http://www.mediafire.com/?2cex2faqx327l
 Download the android ndk r7 and extract the gdc 7z file in
 android-ndk-r7/toolchains/

 What's working:
 I couldn't test the compiler yet and I hope someone else will provide
 feedback, but the basic gdc compiler should work. druntime may or may
 not work, but it's distributed so that can be tested.
 Phobos is not being built yet.

 Known bugs/TODO:

 You need to build all D code with -fno-section-anchors, see
 https://bitbucket.org/goshawk/gdc/issue/120/fsection-anchors-broken-on-arm

 build-druntime.patch needs to be integrated with gdc. See
 https://gist.github.com/1739039
 There are basically 3 things this patch does:
 * Currently gdc checks for __libc_stack_end as that's used by
  druntime. This function is only available in glibc, but bionic
  provides a similar function: __get_stack_base. The patch currently
  simply replaces __libc_stack_end. We need some way to detect if we
  build for bionic, so we can properly version this code. It should
  also be tested to verify it is working correctly
 * Building gcc/config/unix.d fails, so the patch simply skips that
  file. This should be investigated further and fixed correctly.
 * Disables phobos for now, although I think I just disabled building the
  final library and the object files are still being built.

 gdbserver is not being built for some reason. Had no time to
 investigate that yet.

Awesome! I look forward to giving it a try.
Feb 04 2012