TLS + LDC + Android (ARM) = FAIL
Joakim
dlang at joakim.fea.st
Wed Nov 1 19:24:42 UTC 2017
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.
On Wednesday, 1 November 2017 at 18:56:00 UTC, Igor Shirkalin
wrote:
> Everything was beautiful for Win/Linux/iOS/Android.
> Some day we had to use LDC (for some obvious reasons). I marked
> every function with @nogc and pure (it helped me to optimize
> the code). The problem is TLS. Android doesn't support it. At
> all. If you understand I talk about -betterC feature.
Android doesn't have native TLS, but __thread-annotated variables
will work with clang: it uses emulated TLS.
betterC is not going to save you, many parts of the standard
library won't work with it.
Please open an issue for ldc. In it, give us as much relevant
detail as you can. Are you building the D component as a
separate shared library or does it just get linked into a single
binary with your C/C++ code? Are you making sure to initialize
the D runtime using rt_init, as described here?
https://wiki.dlang.org/Runtime_internals
Have you followed the three linking rules for emulated TLS that I
laid out in an earlier post?
Put that info in an issue on the ldc github and we can help you
out.
More information about the Digitalmars-d
mailing list