On Friday, 2 June 2017 at 10:40:48 UTC, Petar Kirov [ZombineDev]
wrote:
On Friday, 2 June 2017 at 10:12:27 UTC, Joakim wrote:
On Friday, 2 June 2017 at 09:39:46 UTC, Petar Kirov
[ZombineDev] wrote:
On Friday, 2 June 2017 at 08:58:01 UTC, Joakim wrote:
On Friday, 2 June 2017 at 08:36:49 UTC, Dušan Pavkov wrote:
[...]
I'd guess that's the issue, as I haven't tested against
those older versions of Android and this app links against
Android API 21, ie 5.0 Lollipop:
https://github.com/joakim-noah/android/blob/master/samples/Teapot/build-apk#L17
I'm pretty sure it'd work for your older Android versions if
built slightly differently, as I used to support back to
Android API 9 until a couple months ago:
https://gist.github.com/joakim-noah/f475b0be37b3834b4e50d68996b6ee1d#file-ldc_1-1-0_android_arm-L3438
It can be still made to so but I set API 21 as the minimum,
because anything older has been declining for some time now:
http://blog.davidecoppola.com/2016/12/android-version-distribution-history-visualization-2012-2016/
Just FYI, I have the same issue with Android 6.0.1.
Hmm, is that the 64-bit Xiaomi device you mentioned in the
github issues just now?
Yep
My guess there would be that it's because ldc only supports
32-bit Android/ARM devices right now, and 64-bit devices like
Xiaomi probably don't run 32-bit native Android libraries in
their apps, though I don't know that for sure. I just tried
installing the teapot app on another 32-bit 6.0.1 phone that
I'd never tried before, worked fine.
Running 32-bit apps on 64-bit Android, shouldn't be an issue as
far I know. See:
https://stackoverflow.com/questions/30782848/how-to-use-32-bit-native-libraries-on-64-bit-android-device
64-bit ARMv8 hardware should run 32-bit ARMv7 binaries, but it
depends on software support too, like providing the 32-bit system
shared libraries that this 32-bit teapot shared library links
against. I found that SO link inconclusive, but I just found
this blog post from a couple years ago that says that it depends
on the device:
https://ph0b.com/android-abis-and-so-files/
With your 64-bit device, either it doesn't list ARMv7 as a
supported ABI or there's some bug that's stopping it from running
this 32-bit ARMv7 library on ARMv8.
This is not an issue for Java, because the Android runtime
compiles Java bytecode to native code _after_ the app is
downloaded, but other languages have to provide pre-compiled
libraries for each CPU architecture. Not a big deal as there
are only really two in wide deployment, 32-bit and 64-bit ARM,
with the vast majority 32-bit right now.
Perhaps you can help us get on 64-bit ARM, as you mentioned in
the github issues.
Yes, ultimately I'm interested in writing a Vulkan library that
runs on both 32 and 64-bit Linux, Windows and Android, so I'm
interested in helping with the AArch64 support too, though my
compiler-foo is pretty slim. As mentioned in the GH issue [0],
what do I need to bootstrap LDC on Android?
[0]: https://github.com/joakim-noah/android/issues/10
I've followed up on github, we can discuss there.