Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade NDK to version 9d #57

Open
lamerman opened this issue Feb 23, 2017 · 4 comments
Open

Upgrade NDK to version 9d #57

lamerman opened this issue Feb 23, 2017 · 4 comments

Comments

@lamerman
Copy link

lamerman commented Feb 23, 2017

I upgraded NDK to version 9d locally to be able to build position independent executables (PIE). As I understood they are supported starting from android-16. The version of NDK (8e) that is currently used supports only <= android-14. The NDK 9d supports platforms from android-9 to android-19 and we still can build everything: boost, etc...

I tried it already and it works. It compiles and I can run produced binaries like rosbag/record on modern android devices without errors.

What do you think about changing the NDK version? I could help with the small patch actually.

@ernestmc
Copy link

Hi @lamerman ,
I'm not aware of this build option. Would mind explaining why is this useful and in what use cases? Thanks a lot and excuse my ignorance.

@lamerman
Copy link
Author

lamerman commented Feb 23, 2017

@ernestmc , You can get more information here: http://stackoverflow.com/questions/24818902/running-a-native-library-on-android-l-error-only-position-independent-executab/26422855#26422855

In short starting from android-16 it's not possible to run not position independent executables. Currently you are compiling for android-14 and you cannot run the compiled executables on modern devices >= android 4.1.

What is proposed to update the NDK version. Then the one who compiles ROS for android will be free to choose the target platform from 9 to 19. Currently it's not possible, he can choose only up to 14 because of 8e NDK restriction.

So the user will be to compile with more recent android target no matter what for. For me it's position independent executables, but it's not the main point here. The main is to update NDK if we can, without a lot of effort.

@lamerman
Copy link
Author

I opened the pull request #58 with the NDK version upgrade

@ernestmc
Copy link

Thanks for your explanation!

jubeira pushed a commit to jubeira/roscpp_android that referenced this issue Feb 1, 2019
…-debug-symbols

Patch android.toolchain.cmake to build without debug symbols
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants