Open shawnl opened 5 years ago
Just got affected by that issue using the spike simulator + the SDL library (which includes the arm_neon header on ARM in its public headers)
While I was able to use a preprocessor trick that defined floatXX_t to sdl_floatXX_t around the SDL.h include (and #undef
ining those afterwards), it would probably be better not add a prefix to those types in the soft float library to avoid such conflicts.
MSVC also ships versions of this header (arm_neon.h and arm64_neon.h) with typedefs for float32_t and float64_t (on arm64). Moreover, when building for arm this header is included indirectly by intrin.h, the umbrella MSVC header for intrinsics on all architectures. This creates conflicts for applications that don't even use NEON intrinsics.
<arm_neon.h>
is defined by a spec that ARM releases, and implemented by compilers. It is not a "real" header file. This happen with either included first.Perhaps softfloat does not work with
<arm_neon.h>
, in which case a preprocessor#error
should give a more helpful error.