From ac64d0656f423a5cd911fe0ebb02dbad195c30ce Mon Sep 17 00:00:00 2001 From: Michael Jones Date: Thu, 4 Apr 2024 11:54:11 -0700 Subject: [PATCH 1/2] [libc] Temporary math macros fix Downstream's having some issues due to math-macros.h issues. These will be fixed properly soon. See https://github.com/llvm/llvm-project/issues/87683 for tracking this tech debt. --- libc/include/llvm-libc-macros/math-macros.h | 9 +++++++++ utils/bazel/llvm-project-overlay/libc/BUILD.bazel | 3 +-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/libc/include/llvm-libc-macros/math-macros.h b/libc/include/llvm-libc-macros/math-macros.h index 1497e32044e97..99fb3dbf0a9b4 100644 --- a/libc/include/llvm-libc-macros/math-macros.h +++ b/libc/include/llvm-libc-macros/math-macros.h @@ -9,6 +9,9 @@ #ifndef LLVM_LIBC_MACROS_MATH_MACROS_H #define LLVM_LIBC_MACROS_MATH_MACROS_H +// TODO: Remove this. This is a temporary fix for a downstream problem. +#ifdef LLVM_LIBC_FULLBUILD + #include "limits-macros.h" #define FP_NAN 0 @@ -79,4 +82,10 @@ template inline constexpr bool isnan(T x) { #endif +#else + +#include + +#endif // LLVM_LIBC_FULLBUILD + #endif // LLVM_LIBC_MACROS_MATH_MACROS_H diff --git a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel index 9dfe4c48184e3..c06253b19558c 100644 --- a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel +++ b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel @@ -68,7 +68,6 @@ libc_support_library( name = "llvm_libc_macros_math_macros", hdrs = ["include/llvm-libc-macros/math-macros.h"], deps = [":llvm_libc_macros_limits_macros"], - defines = ["__FP_LOGBNAN_MIN"], ) libc_support_library( @@ -1000,8 +999,8 @@ libc_support_library( libc_support_library( name = "__support_osutil_quick_exit", - hdrs = ["src/__support/OSUtil/quick_exit.h"], srcs = ["src/__support/OSUtil/linux/quick_exit.cpp"], + hdrs = ["src/__support/OSUtil/quick_exit.h"], deps = [ ":__support_osutil_syscall", ], From d95569b714ffebd2ae14567256fc4ff020d5f543 Mon Sep 17 00:00:00 2001 From: Michael Jones Date: Thu, 4 Apr 2024 14:00:13 -0700 Subject: [PATCH 2/2] rename macro and set it for source/tests --- libc/cmake/modules/LLVMLibCCompileOptionRules.cmake | 7 +++++++ libc/include/llvm-libc-macros/math-macros.h | 8 +++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/libc/cmake/modules/LLVMLibCCompileOptionRules.cmake b/libc/cmake/modules/LLVMLibCCompileOptionRules.cmake index 40a1cfda060e6..5b3a10d55fed3 100644 --- a/libc/cmake/modules/LLVMLibCCompileOptionRules.cmake +++ b/libc/cmake/modules/LLVMLibCCompileOptionRules.cmake @@ -43,6 +43,7 @@ function(_get_common_compile_options output_var flags) list(APPEND compile_options "-fpie") if(LLVM_LIBC_FULL_BUILD) + list(APPEND compile_options "-DLIBC_FULL_BUILD") # Only add -ffreestanding flag in full build mode. list(APPEND compile_options "-ffreestanding") endif() @@ -126,6 +127,7 @@ function(_get_common_test_compile_options output_var c_test flags) list(APPEND compile_options "-fpie") if(LLVM_LIBC_FULL_BUILD) + list(APPEND compile_options "-DLIBC_FULL_BUILD") # Only add -ffreestanding flag in full build mode. list(APPEND compile_options "-ffreestanding") list(APPEND compile_options "-fno-exceptions") @@ -178,5 +180,10 @@ function(_get_hermetic_test_compile_options output_var flags) -Wno-multi-gpu --cuda-path=${LIBC_CUDA_ROOT} -nogpulib -march=${LIBC_GPU_TARGET_ARCHITECTURE} -fno-use-cxa-atexit) endif() + + if(LLVM_LIBC_FULL_BUILD) + list(APPEND compile_options "-DLIBC_FULL_BUILD") + endif() + set(${output_var} ${compile_options} PARENT_SCOPE) endfunction() diff --git a/libc/include/llvm-libc-macros/math-macros.h b/libc/include/llvm-libc-macros/math-macros.h index 99fb3dbf0a9b4..6046ea98cb8ac 100644 --- a/libc/include/llvm-libc-macros/math-macros.h +++ b/libc/include/llvm-libc-macros/math-macros.h @@ -10,7 +10,9 @@ #define LLVM_LIBC_MACROS_MATH_MACROS_H // TODO: Remove this. This is a temporary fix for a downstream problem. -#ifdef LLVM_LIBC_FULLBUILD +// This cannot be left permanently since it would require downstream users to +// define this macro. +#ifdef LIBC_FULL_BUILD #include "limits-macros.h" @@ -82,10 +84,10 @@ template inline constexpr bool isnan(T x) { #endif -#else +#else // LIBC_FULL_BUILD #include -#endif // LLVM_LIBC_FULLBUILD +#endif // LIBC_FULL_BUILD #endif // LLVM_LIBC_MACROS_MATH_MACROS_H