From abc040f26cb13b17ac52ea8579dc0d0d894f8bfc Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 27 Feb 2020 12:46:37 +0100 Subject: Build: change libc compatibility code to only be used for new glibc This way we can still use fast math functions. --- intern/libc_compat/CMakeLists.txt | 2 ++ intern/libc_compat/libc_compat.c | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'intern/libc_compat') diff --git a/intern/libc_compat/CMakeLists.txt b/intern/libc_compat/CMakeLists.txt index 21d252806d4..f8fede5673b 100644 --- a/intern/libc_compat/CMakeLists.txt +++ b/intern/libc_compat/CMakeLists.txt @@ -32,4 +32,6 @@ set(SRC set(LIB ) +add_c_flag(-ffast-math) + blender_add_lib(bf_intern_libc_compat "${SRC}" "${INC}" "${INC_SYS}" "${LIB}") diff --git a/intern/libc_compat/libc_compat.c b/intern/libc_compat/libc_compat.c index bc1a43c6fb1..8da3ca218af 100644 --- a/intern/libc_compat/libc_compat.c +++ b/intern/libc_compat/libc_compat.c @@ -21,7 +21,11 @@ * incompatible with the system libraries that Blender is built on. To solve * this we add a few -ffast-math symbols that can be missing. */ -#include +#ifdef __linux__ +# include +# include + +# if defined(__GLIBC_PREREQ) && __GLIBC_PREREQ(2, 31) double __exp_finite(double x); double __acos_finite(double x); @@ -107,3 +111,6 @@ float __powf_finite(float x, float y) { return powf(x, y); } + +# endif /* __GLIBC_PREREQ */ +#endif /* __linux__ */ -- cgit v1.2.3