Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Upgrades Android NDK to the current supported LTS version: r23c.
There had been some significant changes over the years; so I used the Build System Maintainers Guide to get everything working again; and ultimately simplify things considerably. The key changes needed include:
as
.sysroot
; so it's no longer necessary to includesysroot
header and library directories explicitly.libc++
STL, and build systems should prefer to let Clang link the STL.-mfpu=neon
is not needed when compiling (only-mfpu=vfpv3-d16
is needed if NEON is not required) Note: NDK r23 is the last version that will support disabling NEON. This option has already been removed from master, but it's still available on the 3.x branch.I also made some additional changes:
create(env)
, which was only being used by Android.CCACHE
environmental variable.ANDROID_HOME
.ANDROID_NDK_ROOT
as an option.True
variablecan_vectorize
arm64v8
to match the version used in the Java code.-mstackrealign
compile flag to properly align stacks for global constructors.-Oz
not-Os
optimization mode is used. Note: Clang's-Oz
is similar to GCC's-Os
. Clang's-Os
provides a more middle ground option between size and speed.--fix-cortex-a8
for armv7 builds, because it only applied to Thumb builds, which are not been created, and, as far a I know, Clang would now automatically apply this fix anyway.-Wl,-z,noexecstack
and-Wl,-z,relro
linker options, because they are the default with LLD.Rebel version of godotengine/godot#61691 and godotengine/godot#61692 to implement godotengine/godot#44055.