D for Android

Vadim Lopatin via Digitalmars-d digitalmars-d at puremagic.com
Thu May 7 23:33:58 PDT 2015


On Thursday, 7 May 2015 at 15:58:01 UTC, Joakim wrote:
> On Sunday, 17 August 2014 at 18:19:29 UTC, Joakim wrote:
>> I'll keep updating the wiki with more info, how to build for 
>> the command-line and run the druntime/phobos unit tests, along 
>> with directions for future work.
>
> An update: I tinkered with ldc and Android/ARM for the 
> hackathon.
>  Didn't get that working yet, but I took Dan Olson's advice to 
> reuse the existing llvm TLS function calls and got ldc to work 
> with Android/x86 a couple days ago.
>
> 41 of 42 druntime modules' tests pass: only core.internal 
> convert doesn't, but that module's tests aren't normally run by 
> ldc anyway.  Around 15 of 71 phobos modules' tests fail 
> somewhere, most likely related to "long double" issues that 
> either need to be backported, as git master for ldc is still 
> using a year-old druntime/phobos that doesn't have some 
> subsequent Android PRs, or fixed, but I haven't looked into 
> those much yet.  Obviously, I can reuse some of this work for 
> Android/ARM, so it should help.
>
> I'm putting these in-progress patches online, in case my 
> ultrabook gets run over by a bus or someone else would like to 
> tinker with them.  All it required was a small patch to llvm:
>
> https://gist.github.com/joakim-noah/1fb23fba1ba5b7e87e1a
>
> and these patches for ldc, druntime, and phobos:
>
> https://gist.github.com/joakim-noah/bb0b04965470332d10e4
> https://gist.github.com/joakim-noah/c27a0c7f2b5b65cdc268
> https://gist.github.com/joakim-noah/07ed7ab1e5732ab91126
>
> Most of the druntime and phobos patches were backported from 
> PRs already committed in their respective master branches.  The 
> only real new work is in druntime's rt.sections_ldc.  It's all 
> a bit hacky right now, but I'll clean it up and submit PRs 
> eventually.
>
> I tried the same approach that worked on x86 on ARM, with the 
> similar ARM GOT relocation as can be seen in the llvm patch 
> above, but it didn't work.  I'm reading up on the relevant ELF 
> relocation info and looking at the ARM assembly.  If anybody 
> better versed with those low-level linker details would like to 
> chip in, that should be the last remaining piece to get much of 
> Android/ARM working.

Good news! Thank you for your work!

Once Android support become working, I'm planning to add Android 
support to DlangUI library. It's actually a port of C++ UI 
library I'm using on Android for Cool Reader GL app. So it should 
not be hard to port it back to Android.

Best regards,
      Vadim


More information about the Digitalmars-d mailing list