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.

Reply via email to