[Bf-blender-cvs] [abc040f26cb] master: Build: change libc compatibility code to only be used for new glibc
Brecht Van Lommel
noreply at git.blender.org
Thu Feb 27 12:54:36 CET 2020
Commit: abc040f26cb13b17ac52ea8579dc0d0d894f8bfc
Author: Brecht Van Lommel
Date: Thu Feb 27 12:46:37 2020 +0100
Branches: master
https://developer.blender.org/rBabc040f26cb13b17ac52ea8579dc0d0d894f8bfc
Build: change libc compatibility code to only be used for new glibc
This way we can still use fast math functions.
===================================================================
M intern/libc_compat/CMakeLists.txt
M intern/libc_compat/libc_compat.c
===================================================================
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 <math.h>
+#ifdef __linux__
+# include <features.h>
+# include <math.h>
+
+# 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__ */
More information about the Bf-blender-cvs
mailing list