I’m digging into this deeper. I’d really like to run the arm-gcc-non-eabi package that ships on Fedora 29. I’m not exactly sure why this error is happening. I don’t see anything in the diff that alerts me to an issue with acos.
$ dnf list arm*
Installed Packages
arm-image-installer.noarch 2.10-1.fc29
arm-none-eabi-binutils-cs.x86_64 1:2.32-1.fc29
arm-none-eabi-gcc-cs.x86_64 1:7.4.0-1.fc29
arm-none-eabi-gcc-cs-c++.x86_64 1:7.4.0-1.fc29
$ diff /usr/arm-none-eabi/include/c++/7.4.0/cmath /home/me/Downloads/gcc-arm-none-eabi-6-2017-q2-update/arm-none-eabi/include/c++/6.3.1/cmath
3c3
< // Copyright (C) 1997-2017 Free Software Foundation, Inc.
---
> // Copyright (C) 1997-2016 Free Software Foundation, Inc.
47d46
< #include <bits/std_abs.h>
52a52
> #undef abs
82a83,105
> #ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
> inline _GLIBCXX_CONSTEXPR double
> abs(double __x)
> { return __builtin_fabs(__x); }
> #endif
>
> #ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
> inline _GLIBCXX_CONSTEXPR float
> abs(float __x)
> { return __builtin_fabsf(__x); }
>
> inline _GLIBCXX_CONSTEXPR long double
> abs(long double __x)
> { return __builtin_fabsl(__x); }
> #endif
>
> template<typename _Tp>
> inline _GLIBCXX_CONSTEXPR
> typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
> double>::__type
> abs(_Tp __x)
> { return __builtin_fabs(__x); }
>
1015d1037
< #ifndef _GLIBCXX_NO_C99_ROUNDING_FUNCS
1022d1043
< #endif
1148d1168
< #ifndef _GLIBCXX_NO_C99_ROUNDING_FUNCS
1156d1175
< #endif
1866,1913c1885
< #if __cplusplus > 201402L
< namespace std _GLIBCXX_VISIBILITY(default)
< {
< _GLIBCXX_BEGIN_NAMESPACE_VERSION
<
< // [c.math.hypot3], three-dimensional hypotenuse
< #define __cpp_lib_hypot 201603
<
< template<typename _Tp>
< inline _Tp
< __hypot3(_Tp __x, _Tp __y, _Tp __z)
< {
< __x = std::abs(__x);
< __y = std::abs(__y);
< __z = std::abs(__z);
< if (_Tp __a = __x < __y ? __y < __z ? __z : __y : __x < __z ? __z : __x)
< return __a * std::sqrt((__x / __a) * (__x / __a)
< + (__y / __a) * (__y / __a)
< + (__z / __a) * (__z / __a));
< else
< return {};
< }
<
< inline float
< hypot(float __x, float __y, float __z)
< { return std::__hypot3<float>(__x, __y, __z); }
<
< inline double
< hypot(double __x, double __y, double __z)
< { return std::__hypot3<double>(__x, __y, __z); }
<
< inline long double
< hypot(long double __x, long double __y, long double __z)
< { return std::__hypot3<long double>(__x, __y, __z); }
<
< template<typename _Tp, typename _Up, typename _Vp>
< typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type
< hypot(_Tp __x, _Up __y, _Vp __z)
< {
< using __type = typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type;
< return std::__hypot3<__type>(__x, __y, __z);
< }
< _GLIBCXX_END_NAMESPACE_VERSION
< } // namespace
< #endif // C++17
<
<
< #if _GLIBCXX_USE_STD_SPEC_FUNCS
---
> #if __STDCPP_WANT_MATH_SPEC_FUNCS__ == 1
[me@Brix ~]$ diff /usr/arm-none-eabi/include/c++/7.4.0/cmath /home/me/Downloads/gcc-arm-none-eabi-6-2017-q2-update/arm-none-eabi/include/c++/6.3.1/cmath
3c3
< // Copyright (C) 1997-2017 Free Software Foundation, Inc.
---
> // Copyright (C) 1997-2016 Free Software Foundation, Inc.
47d46
< #include <bits/std_abs.h>
52a52
> #undef abs
82a83,105
> #ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
> inline _GLIBCXX_CONSTEXPR double
> abs(double __x)
> { return __builtin_fabs(__x); }
> #endif
>
> #ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
> inline _GLIBCXX_CONSTEXPR float
> abs(float __x)
> { return __builtin_fabsf(__x); }
>
> inline _GLIBCXX_CONSTEXPR long double
> abs(long double __x)
> { return __builtin_fabsl(__x); }
> #endif
>
> template<typename _Tp>
> inline _GLIBCXX_CONSTEXPR
> typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
> double>::__type
> abs(_Tp __x)
> { return __builtin_fabs(__x); }
>
1015d1037
< #ifndef _GLIBCXX_NO_C99_ROUNDING_FUNCS
1022d1043
< #endif
1148d1168
< #ifndef _GLIBCXX_NO_C99_ROUNDING_FUNCS
1156d1175
< #endif
1866,1913c1885
< #if __cplusplus > 201402L
< namespace std _GLIBCXX_VISIBILITY(default)
< {
< _GLIBCXX_BEGIN_NAMESPACE_VERSION
<
< // [c.math.hypot3], three-dimensional hypotenuse
< #define __cpp_lib_hypot 201603
<
< template<typename _Tp>
< inline _Tp
< __hypot3(_Tp __x, _Tp __y, _Tp __z)
< {
< __x = std::abs(__x);
< __y = std::abs(__y);
< __z = std::abs(__z);
< if (_Tp __a = __x < __y ? __y < __z ? __z : __y : __x < __z ? __z : __x)
< return __a * std::sqrt((__x / __a) * (__x / __a)
< + (__y / __a) * (__y / __a)
< + (__z / __a) * (__z / __a));
< else
< return {};
< }
<
< inline float
< hypot(float __x, float __y, float __z)
< { return std::__hypot3<float>(__x, __y, __z); }
<
< inline double
< hypot(double __x, double __y, double __z)
< { return std::__hypot3<double>(__x, __y, __z); }
<
< inline long double
< hypot(long double __x, long double __y, long double __z)
< { return std::__hypot3<long double>(__x, __y, __z); }
<
< template<typename _Tp, typename _Up, typename _Vp>
< typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type
< hypot(_Tp __x, _Up __y, _Vp __z)
< {
< using __type = typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type;
< return std::__hypot3<__type>(__x, __y, __z);
< }
< _GLIBCXX_END_NAMESPACE_VERSION
< } // namespace
< #endif // C++17
<
<
< #if _GLIBCXX_USE_STD_SPEC_FUNCS
---
> #if __STDCPP_WANT_MATH_SPEC_FUNCS__ == 1