https://git.reactos.org/?p=reactos.git;a=commitdiff;h=0133dba0c6396d3cf6531c9164f6c37e4d2721a0

commit 0133dba0c6396d3cf6531c9164f6c37e4d2721a0
Author:     Timo Kreuzer <timo.kreu...@reactos.org>
AuthorDate: Sat Nov 9 12:36:10 2024 +0200
Commit:     Timo Kreuzer <timo.kreu...@reactos.org>
CommitDate: Sun Jan 26 18:08:55 2025 +0200

    [CMAKE] Disable GCC builtin math functions
---
 sdk/cmake/gcc.cmake | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

diff --git a/sdk/cmake/gcc.cmake b/sdk/cmake/gcc.cmake
index a628c1b92c7..6043ab70e2e 100644
--- a/sdk/cmake/gcc.cmake
+++ b/sdk/cmake/gcc.cmake
@@ -56,6 +56,59 @@ if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
         add_compile_options("$<$<COMPILE_LANGUAGE:C>:-Wold-style-declaration>")
     endif()
 
+    # Disable all math intrinsics. The reason is that these are implicitly 
declared
+    # extern by GCC, which causes inline functions to generate global symbols.
+    # And since GCC is retarded, these symbols are not marked as weak, so they
+    # conflict with each other in multiple compilation units.
+    add_compile_options(-fno-builtin-acosf)
+    add_compile_options(-fno-builtin-acosl)
+    add_compile_options(-fno-builtin-asinf)
+    add_compile_options(-fno-builtin-asinl)
+    add_compile_options(-fno-builtin-atan2f)
+    add_compile_options(-fno-builtin-atan2l)
+    add_compile_options(-fno-builtin-atanf)
+    add_compile_options(-fno-builtin-atanl)
+    add_compile_options(-fno-builtin-ceilf)
+    add_compile_options(-fno-builtin-ceill)
+    add_compile_options(-fno-builtin-coshf)
+    add_compile_options(-fno-builtin-coshl)
+    add_compile_options(-fno-builtin-cosf)
+    add_compile_options(-fno-builtin-cosl)
+    add_compile_options(-fno-builtin-expf)
+    add_compile_options(-fno-builtin-expl)
+    add_compile_options(-fno-builtin-fabsf)
+    add_compile_options(-fno-builtin-fabsl)
+    add_compile_options(-fno-builtin-floorf)
+    add_compile_options(-fno-builtin-floorl)
+    add_compile_options(-fno-builtin-fmodf)
+    add_compile_options(-fno-builtin-fmodl)
+    add_compile_options(-fno-builtin-frexpf)
+    add_compile_options(-fno-builtin-frexpl)
+    add_compile_options(-fno-builtin-hypotf)
+    add_compile_options(-fno-builtin-hypotl)
+    add_compile_options(-fno-builtin-ldexpf)
+    add_compile_options(-fno-builtin-ldexpl)
+    add_compile_options(-fno-builtin-logf)
+    add_compile_options(-fno-builtin-logl)
+    add_compile_options(-fno-builtin-log10f)
+    add_compile_options(-fno-builtin-log10l)
+    add_compile_options(-fno-builtin-modff)
+    add_compile_options(-fno-builtin-modfl)
+    add_compile_options(-fno-builtin-powf)
+    add_compile_options(-fno-builtin-powl)
+    add_compile_options(-fno-builtin-sinhf)
+    add_compile_options(-fno-builtin-sinhl)
+    add_compile_options(-fno-builtin-sinf)
+    add_compile_options(-fno-builtin-sinl)
+    add_compile_options(-fno-builtin-sqrtf)
+    add_compile_options(-fno-builtin-sqrtl)
+    add_compile_options(-fno-builtin-tanhf)
+    add_compile_options(-fno-builtin-tanhl)
+    add_compile_options(-fno-builtin-tanf)
+    add_compile_options(-fno-builtin-tanl)
+    add_compile_options(-fno-builtin-feraiseexcept)
+    add_compile_options(-fno-builtin-feupdateenv)
+
     if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 11)
         add_compile_options(-fno-builtin-ceil)
         add_compile_options(-fno-builtin-ceilf)

Reply via email to