From: Benjamin Otte Date: Fri, 22 Oct 2021 14:31:40 +0000 (+0200) Subject: build: Make sure ifuncs exist when using fp16 X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2^2~60^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=2a4b90a81c207576f5dacf0bc19385d3e1a80a39;p=gtk4.git build: Make sure ifuncs exist when using fp16 Fixes msys compiles on Windows (and everywhere else hopefully). Fixes #4285 (cherry picked from commit 3c9c7a0e727eb6380bee29120736dba6da2232a3) --- diff --git a/meson.build b/meson.build index a136768caf..2646a97d2e 100644 --- a/meson.build +++ b/meson.build @@ -693,12 +693,24 @@ if get_option('f16c').enabled() # if !defined(__amd64__) && !defined(__x86_64__) # error "F16C intrinsics are only available on x86_64" # endif +#if !defined __has_attribute +# error "No __has_attribute() support" +#endif +#if !__has_attribute(ifunc) +# error "ifunc not supported" +#endif +static int resolved_ifunc (void) { return 0; } +static void *resolve_ifunc (void) { return resolved_ifunc; } +int ifunc_test (void) __attribute__((ifunc ("resolve_ifunc"))); +#else +int ifunc_test (void) { return 0; } #endif #if defined(__SSE__) || defined(_MSC_VER) # include #else # error "No F16C intrinsics available" #endif + int main () { float f[4] = { 0, }; unsigned short h[4] = { 0, }; @@ -711,7 +723,7 @@ int main () { __builtin_cpu_supports ("f16c"); #endif - return 0; + return ifunc_test (); }''' if cc.get_id() != 'msvc' test_f16c_cflags = [ '-mf16c' ]