configure: Downgrade -Wincompatible-function-pointer-types to a warning on ARM.
commit59b5b79c0c9ca6589f02f707328d849b08c89a73
authorMartin Storsjö <martin@martin.st>
Thu, 11 Aug 2022 11:26:31 +0000 (11 14:26 +0300)
committerAlexandre Julliard <julliard@winehq.org>
Mon, 15 Aug 2022 16:13:23 +0000 (15 18:13 +0200)
treec34e87c6fa261dca68934eac965fb731bd322618
parent8c46e2a85b588273fc6c6123b3b542e5b25d8d2e
configure: Downgrade -Wincompatible-function-pointer-types to a warning on ARM.

Clang 16 is defaulting -Wincompatible-function-pointer-types to
an error instead of a warning. This isn't an issue for most of Wine,
but the error shows up in a lot of cases if doing a non-PE build for
ARM (32 bit, 64 has no such issues), in particular around the integration
of libxml2 and faudio.

The root cause of the issue is that some functions are specified with
e.g. __attribute__((pcs("aapcs-vfp"))) - which is equal to the
default calling convention when compiling with -mfloat-abi=hard - but
Clang's warning doesn't treat such function pointers as equal. (This
could maybe be considered a bug or limitation in Clang though.)

There's also some smaller amount of cases where our attributes
actually do conflict, where we mix __attribute__((pcs("aapcs"))), i.e.
arm softfloat calling convention, with the default calling convention
(which is set to hardfloat), but they drown in the noise from the
other ones.

Therefore, on arm, try to downgrade this diagnostic back to a warning,
not an error - while keeping the warnings visible.

Signed-off-by: Martin Storsjö <martin@martin.st>
configure
configure.ac