id summary reporter owner description type status milestone component version severity resolution keywords cc 12114 boost context does not preserve fpu context on ios arm64 devices ykirpichev@… olli "The problem with floating point calculations was observed when trying to use boost context on arm64 ios devices. It looks like, in certain conditions floating point arithmetic stops working properly. It is hard to provide exact way how to reproduce the issue, but after investigation it has been found out that __VFP_FP__ is not defined by clang++ when the following command is executed: ""/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++"" -x assembler-with-cpp -O3 -finline-functions -Wno-inline -Wall -gdwarf-2 -fexceptions -DBUNDLE_VERSION=1.60.0.yandex.4 -DYANDEX_BOOST -DMOBILE_BUILD -O2 -Wno-unused-variable -Wno-unknown-pragmas -Wno-reorder -Wno-unused-local-typedefs -stdlib=libc++ -fobjc-arc -fvisibility=hidden -Qunused-arguments -lc++ -miphoneos-version-min=6.1 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk -isystem /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/usr/include -arch arm64 -fembed-bitcode -O2 -arch arm64 -DBOOST_ALL_NO_LIB=1 -DBOOST_ATOMIC_STATIC_LINK=1 -DBOOST_CHRONO_STATIC_LINK=1 -DBOOST_CONTEXT_SOURCE -DBOOST_DISABLE_ASSERTS -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_SYSTEM_STATIC_LINK=1 -DBOOST_THREAD_BUILD_LIB=1 -DBOOST_THREAD_POSIX -DBOOST_THREAD_USE_LIB=1 -DNDEBUG -I""."" -c -o ""bin.v2/libs/context/build/6a8dcaa993b5623b8882ae19f514636b/asm/jump_arm64_aapcs_macho_gas.o"" ""libs/context/src/asm/jump_arm64_aapcs_macho_gas.S"" As a result floating point context is not stored/restored and eventually leads to some mysterious issues. The problem can be solved by defining __VFP_FP__ directly, however, better way to fix it is to remove #if (defined(__VFP_FP__) && !defined(__SOFTFP__)) from jump_arm64_aapcs_macho_gas.S. " Bugs closed To Be Determined context Boost 1.60.0 Problem fixed