On Thursday, 2 April 2020 at 17:16:56 UTC, burt wrote:
On Thursday, 2 April 2020 at 12:13:27 UTC, Adam D. Ruppe wrote:
On Thursday, 2 April 2020 at 11:29:24 UTC, burt wrote:
Anyway, I don't think this fails to work because of an error
in the d_android library. If you find anything else that may
cause it, I am glad to know, but thank you for your help.
Well, it is supposed to be a "just works" setup helper, so
anything in it is a problem! There was an off-by-one bug in
the downloader, maybe that missing byte made ldc ignore the
corrupted library file.
I think I managed to get phobos2 and druntime to link. However,
I still get linker errors saying that the following symbols are
undefined: statvfs, fmodl, modfl, getdelim, _tlsend,
__bss_end__, _tlsstart, __libc_current_sigrtmin,
__libc_current_sigrtmax, strtold. I'm not sure what to do about
that; did I forget to link something or are these symbols not
in the Android runtime?
I managed to narrow it down to just one error. The missing
`_tlsstart` and `_tlsend` symbols were because of the missing
`void main() {}`, that used to be added automatically in
d_android v0.0.5 but not in v0.1.0. It worked when I added an
empty main function.
Most of the other errors were because of the API level of
Android; for whatever reason, Android Studio chose API level 16
instead of at least 21, so changing minSdkVersion to 21 in
build.gradle made those errors go away.
However, I still get one undefined reference to __bss_end__, and
I don't know how to fix this. Is this also a problem with TLS or
the API level?
Thanks.