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.6.5+ds-1+rpi1~1^2~19^2~5^2~215^2~4 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=3c9c7a0e727eb6380bee29120736dba6da2232a3;p=gtk4.git build: Make sure ifuncs exist when using fp16 Fixes msys compiles on Windows (and everywhere else hopefully). Fixes #4285 --- diff --git a/meson.build b/meson.build index 897de13766..02a2786c5c 100644 --- a/meson.build +++ b/meson.build @@ -712,12 +712,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, }; @@ -730,7 +742,7 @@ int main () { __builtin_cpu_supports ("f16c"); #endif - return 0; + return ifunc_test (); }''' if cc.get_id() != 'msvc' test_f16c_cflags = [ '-mf16c' ]