Disable -ffast-math for iOS builds #2176
Closed
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.
This PR disables the
-ffast-math
option for iOS builds.We found that for all MAVSDK 1.4.7+, this option has been breaking
std::isfinite
in the code.This breaks the mission upload logic, which checks with
std::isfinite
to decide wheter speed or gimbal attitude has changed.We do not enable
-ffast-math
on any other platform.Specifically this line breaks:
MAVSDK/src/mavsdk/plugins/mission/mission_impl.cpp
Line 436 in aa7087d
With
-ffast-math
enabled on iOS, this check will return true, despite the value being NaN. TThis is allowed, since
-ffast-math
implies-ffinite-math-only
, which is explicitly allowed to do this. However, apple clang must only recently have started doing this optimization, hence the problem not present on CI builds for MAVSDK <= 1.4.7.