On 2012-07-25 19:35, Johannes Pfau wrote:

* Android doesn't officially support native executables. I'm not sure
   where this statement is hidden, but it is an official statement. For
   example their linker is broken when accessing a global variable from
   a native application in a specific way. Just to emphasize how bad
   this really is: If you want to access stdout (the C global variable)
   which is used in writeln for example, you have to use hacks and
   dladdr to load the address of stdout. You can't simply declare it as
   external. So you can't actually write a hello world native
   exacutalbe with D for Android. The Android devs don't care about
   those issues, as native executables are not supported anyway.
   But you wouldn't want to use native executables anyway. For example
   native executables have no possibility to draw a GUI. There's just no
   way to access the required window handle from a native executable.
   Instead the supported way to write a "Native Application" is to write
   a Java stub which loads a shared .so library and calls functions of
   that library. With recent versions of Android/NDK you don't have to
   write that stub yourself, it's included in the "NativeApplication"
   but it still works the same way: Java code loads a .so library.
   Which leads to the next problem:

I just have to say, that is so wrong on so many levels.

--
/Jacob Carlborg

Reply via email to