[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