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 the version 9d #58

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

lamerman
Copy link

We can do upgrade of NDK up to the 9d with minimal changes. It brings users more modern
available platforms from android-9 up to android-19. Before they could choose
only android-14 as maximum platform.

The update of the default target version is proposed from android-14 to android-16
as the latest creates "position independent executables (PIE)" by default. It's not possible
to run not PIE on platforms >= android-16. It seems to be more logical to switch default
to support modern android android-16 to android-25 than supporting the previous versions.

It's still possible for user to compile to older versions, down to android-9. He just has
to manually switch the target version.

We can do upgrade of NDK up to the 9d with minimal changes. It brings users more modern
available platforms from android-9 up to android-19. Before they could choose
only android-14 as maximum platform.

The update of the default target version is proposed from android-14 to android-16
as the latest creates "position independent executables (PIE)" by default. It's not possible
to run not PIE on platforms >= android-16. It seems to be more logical to switch default
to support modern android android-16 to android-25 than supporting the previous versions.

It's still possible for user to compile to older versions, down to android-9. He just has
to manually switch the target version.
@lamerman
Copy link
Author

If you accept this solution, then before merging it to master the docker image needs to be regenerated as it was changed.
Today I tested this change and it produced binaries rosbag/record that I could actually run on my android phone with android 6.0.

@adamantivm
Copy link
Member

Sorry for such a naïve question but is there any reason we may not as well move straight to the highest supported version, r13b? Would that break other things?

@lamerman
Copy link
Author

lamerman commented Feb 24, 2017

@adamantivm , no it will not break anything I think and it's probably even better. I tried to do it yesterday. The problem starts with boost, that you need to change it in order to compile for > 9d.
So 9d is the last version when it still works with zero efforts and brings you much later in terms of the android version.
It's better to do 10, 13, but it will require effort at least for boost, as current boost does not compile with higher versions. There is one fork of the boost you use that claims to compile with NDK 10 though. Maybe then it will require work for something else.
I would frankly do what we can do now with zero effort and then think about more heavyweight updates.

@lamerman
Copy link
Author

Maybe I misunderstood your question "Would that break other things?". I answered in terms of user experience, and probably you asked about compilation of ndk. For compilation, yes it will break at least boost.

@ernestmc
Copy link

Yes, the problem with the newer versions of the NDK is that they've switched to Clang as the default compiler and some things may need fixing before compiling.
Thanks for your PR @lamerman. I'll review it as soon as I can.

jubeira pushed a commit to jubeira/roscpp_android that referenced this pull request Feb 1, 2019
…t-state-publisher

Enable robot_state_publisher and dependencies
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

Successfully merging this pull request may close these issues.

3 participants