TLS + LDC + Android (ARM) = FAIL
Joakim
dlang at joakim.fea.st
Wed Nov 1 22:16:14 UTC 2017
On Wednesday, 1 November 2017 at 21:50:09 UTC, Johannes Pfau
wrote:
> Am Wed, 01 Nov 2017 19:24:42 +0000
> schrieb Joakim <dlang at joakim.fea.st>:
>
>> On Wednesday, 1 November 2017 at 18:28:12 UTC, Johannes Pfau
>> wrote:
>> > ARM: Fine. Android: probably won't work well. AFAIK we're
>> > only missing emulated TLS / GC integration, so most test
>> > will pass but real apps will crash because of GC memory
>> > corruption. I guess I should finally get back to fixing that
>> > problem ;-) OTOH Android doesn't even support GCC anymore,
>> > so I don't really see much benefit in maintaining GDC
>> > Android support.
>>
>> I don't see what their deciding to drop gcc has to do with
>> whether gdc should support Android.
>
> If there's a backend bug in GCC related to Android nobody will
> take responsibility as it's not officially supported. All
> tutorials and documentation will focus on LLVM based compilers.
> It's certainly still interesting to use GDC for Android, but it
> is more work (especially considering Android is one of the few
> systems requiring emutls) for little benefit, especially if
> most users are going to use LLVM anyway.
>
> With the limited time available I think GDC should focus on
> systems where GCC is a first class or even the preferred
> compiler. X86/MIPS/ARM/PPC/Linux as some distributions such as
> debian might prefer a GCC based compiler. Then there are
> embedded toolchains which primarily use GCC: MSP and ARM (GCC
> Arm Embedded project). Also many console homebrew toolchains
> exclusively use GCC.
>
> I just don't think we have to support two compilers for any
> target with the little resources we have.
Here's the thing though: Android is basically just linux/ARM
without native TLS and replacing glibc with the bionic C runtime.
If you're going to support linux/ARM with glibc, it's not going
to take much to support Android too, particularly since I
upstreamed all my Bionic declarations and support into stock
druntime.
Far be it from me to tell you what to work on, and I realize
getting emulated TLS working with the garbage-collector is a
pain, but it won't take much more than emulated TLS for gdc to
support Android. If you grep the llvm codebase for Android, you
find almost nothing, basically just emulated TLS.
I agree that we don't need two D compilers for every platform,
but it'd be nice to have for the most widely deployed OS platform
on the planet. ;)
More information about the Digitalmars-d
mailing list