I’m building the llvm-18.1.3 and facing the all warnings being treated as errors error as follows:
/home/pi/llvm-project-llvmorg-18.1.3/libc/src/stdlib/bsearch.cpp:16:28: error: ‘void* __llvm_libc_18_1_3_::bsearch(const void*, const void*, size_t, size_t, int (*)(const void*, const void*))’ aliased to external symbol ‘bsearch’
16 | LLVM_LIBC_FUNCTION(void *, bsearch,
| ^~~~~~~
/home/pi/llvm-project-llvmorg-18.1.3/libc/src/__support/common.h:28:34: note: in definition of macro ‘LLVM_LIBC_FUNCTION_IMPL’
28 | decltype(LIBC_NAMESPACE::name) name [[gnu::alias(#name)]];
| ^~~~
/home/pi/llvm-project-llvmorg-18.1.3/libc/src/stdlib/bsearch.cpp:16:1: note: in expansion of macro ‘LLVM_LIBC_FUNCTION’
16 | LLVM_LIBC_FUNCTION(void *, bsearch,
| ^~~~~~~~~~~~~~~~~~
/home/pi/llvm-project-llvmorg-18.1.3/libc/src/stdlib/bsearch.cpp:16:28: error: ‘void* __llvm_libc_18_1_3_::bsearch(const void*, const void*, size_t, size_t, int (*)(const void*, const void*))’ specifies less restrictive attribute than its target ‘void* bsearch(const void*, const void*, size_t, size_t, __compar_fn_t)’: ‘nonnull’ [-Werror=missing-attributes]
16 | LLVM_LIBC_FUNCTION(void *, bsearch,
| ^~~~~~~
/home/pi/llvm-project-llvmorg-18.1.3/libc/src/__support/common.h:28:34: note: in definition of macro ‘LLVM_LIBC_FUNCTION_IMPL’
28 | decltype(LIBC_NAMESPACE::name) name [[gnu::alias(#name)]];
| ^~~~
/home/pi/llvm-project-llvmorg-18.1.3/libc/src/stdlib/bsearch.cpp:16:1: note: in expansion of macro ‘LLVM_LIBC_FUNCTION’
16 | LLVM_LIBC_FUNCTION(void *, bsearch,
| ^~~~~~~~~~~~~~~~~~
In file included from /usr/include/stdlib.h:846,
from /usr/include/c++/12/cstdlib:75,
from /usr/include/c++/12/stdlib.h:36,
from /home/pi/llvm-project-llvmorg-18.1.3/libc/src/stdlib/bsearch.h:12,
from /home/pi/llvm-project-llvmorg-18.1.3/libc/src/stdlib/bsearch.cpp:9:
/usr/include/arm-linux-gnueabihf/bits/stdlib-bsearch.h:20:1: note: ‘void* __llvm_libc_18_1_3_::bsearch(const void*, const void*, size_t, size_t, int (*)(const void*, const void*))’ target declared here
20 | bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size,
| ^~~~~~~
cc1plus: all warnings being treated as errors
So, I’ve added set(CMAKE_COMPILE_WARNING_AS_ERROR OFF)
line to the end of the file libc/src/stdlib/CMakeLists.txt
as follow:
…
if(LIBC_TARGET_ARCHITECTURE_IS_GPU)
add_entrypoint_object(
malloc
ALIAS
DEPENDS
.${LIBC_TARGET_OS}.malloc
)
add_entrypoint_object(
free
ALIAS
DEPENDS
.${LIBC_TARGET_OS}.free
)
endif()
set(CMAKE_COMPILE_WARNING_AS_ERROR OFF)
Then, I built again, however, this error continues.
What is my fixing wrong and how can I fix this build breaking?