On Tuesday, 24 February 2015 at 19:34:15 UTC, Joakim wrote:
On Tuesday, 24 February 2015 at 17:55:59 UTC, Rishub Nagpal
wrote:
On Tuesday, 24 February 2015 at 17:15:28 UTC, Joakim wrote:
If you simply want to call a D library within an Android/iOS
app, that's possible, though there are still some rough edges.
Specifically, there is still some work to be done with
certain floating-point operations on iOS
(http://forum.dlang.org/post/m2mw4tab0w....@comcast.net) and
while Android/x86 will work fine
(http://wiki.dlang.org/Build_DMD_for_Android), Android/ARM
doesn't currently support TLS. That lack of TLS support
means you'd have to run a slightly patched druntime and I'm
fairly certain phobos wouldn't work.
Could any of these patches be used as a basis to remedy it?
https://groups.google.com/forum/#!topic/0xlab-devel/aSOcm3c9PFk
https://bugs.kde.org/show_bug.cgi?id=302709
Could you in theory recompile Android to support TLS and then
try to compile an executable for Android/ARM ?
Sorry, the way I wrote that may have been confusing: I meant
that ldc doesn't currently support any form of TLS for
Android/ARM.
Native TLS is not supported on Android/bionic for any
architecture, whether x86 or ARM. I worked around this on x86
by removing the SHF_TLS and STT_TLS flags from the ELF objects
and using pthread_setspecific/pthread_getspecific instead (more
details on the dmd PR:
https://github.com/D-Programming-Language/dmd/pull/3643), which
is basically how Walter implemented TLS on OS X/Mach-O years
ago, as OS X didn't support native TLS till 10.7 and their TLV
APIs are still undocumented.
I need to patch llvm in a similar way to that dmd PR, so that
Android/ARM can use the same scheme. It appears that Dan did
something similar with his patched llvm for iOS.
As for your linked Android patches, that might be possible but
would be pointless unless you are only deploying to a device
you patched the OS for. Better to patch llvm to support the
same TLS scheme used for Android/x86.
Interesting. A few others and I were talking about getting
Android/ARM to function with LDC today. I'll be sure to keep up
to date with your work!