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.

Reply via email to