Issue 125831
Summary [LIBC] Invalid token in LIBC_NAMESPACE macro expansion
Labels libc
Assignees
Reporter samvangysegem
    When building the libc library based on the `release/20.x`, the compilation fails due to an invalid token in the LIBC_NAMESPACE macro expansion. This problem is rooted in the definition of `LLVM_VERSION_SUFFIX` in the `cmake/Modules/LLVMVersion.cmake` file:
```
if(NOT DEFINED LLVM_VERSION_SUFFIX)
  set(LLVM_VERSION_SUFFIX -rc1)
endif()
```
and its usage in `libc/CMakeLists.txt` to configure the `default_namespace` field as shown below:
```
# Defining a global namespace to enclose all libc functions.
set(default_namespace "__llvm_libc")
if(LLVM_VERSION_MAJOR)
 set(default_namespace "__llvm_libc_${LLVM_VERSION_MAJOR}_${LLVM_VERSION_MINOR}_${LLVM_VERSION_PATCH}_${LLVM_VERSION_SUFFIX}")
endif()
set(LIBC_NAMESPACE ${default_namespace}
  CACHE STRING "The namespace to use to enclose internal implementations. Must start with '__llvm_libc'."
)
```
For the `release/20.x` branch, `LIBC_NAMESPACE` is expanded to `__llvm_libc_20_1_0_-rc1` with the invalid token `-`. This can be fixed relatively easy by either updating the `LLVM_VERSION_SUFFIX` definition to not use the `-` token or by removing the `LLVM_VERSION_SUFFIX` from the libc default_namespace.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to