If you are already running Android 5.0 (Lollipop), you may have noticed issues with some Android engines (either provided as direct binary, such as these examples
, or provided in a directly-available form such as this chess engine package
). The underlying problem is that non-PIC/non-PIE code is no longer supported for security reasons, which implies that prior dynamically compiled engines no longer work.
I did a quick experiment with my own engine, compiled different ways, and on 5.0, dynamically compiled binaries only run when made position independent. Static compiled binaries still work. Summarizing:
Code: Select all
bikjump18_dyn : runs prior to Lollipop, but not on Lollipop
bikjump18_dyn_pie : runs on Lollipop (but only Android 4.1+)
bikjump18_static : runs on all
Although the recommendation going forward is to use position-independent compilations, at the moment providing a static binary seems the simplest solution.
I hope to update my own engine package soon so that all works well again.