-
Notifications
You must be signed in to change notification settings - Fork 13k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[LIBC] Invalid token in LIBC_NAMESPACE macro expansion #125831
Comments
@llvm/issue-subscribers-libc Author: s.vgys (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.
|
Thanks for the report! It sounds like we could use cmakes's |
Hi! This issue may be a good introductory issue for people new to working on LLVM. If you would like to work on this issue, your first steps are:
If you have any further questions about this issue, don't hesitate to ask via a comment in the thread below. |
@llvm/issue-subscribers-good-first-issue Author: s.vgys (samvangysegem)
When building the libc library based on the `release/20.x` branch, 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`
llvm-project/cmake/Modules/LLVMVersion.cmake Lines 12 to 14 in d185bd9
and its usage to configure the llvm-project/libc/CMakeLists.txt Lines 52 to 58 in d185bd9
For the |
Sounds good! I'll make a PR with the fix. |
@nickdesaulniers Could we mark this issue to be included in the next patch release for the release/20.x branch? Then I can add the cherry-pick message for backporting... |
done |
…llvm#126193) Resolves llvm#125831 (cherry picked from commit 51759ff)
When building the libc library based on the
release/20.x
branch, the compilation fails due to an invalid token in the LIBC_NAMESPACE macro expansion. This problem is rooted in the definition ofLLVM_VERSION_SUFFIX
llvm-project/cmake/Modules/LLVMVersion.cmake
Lines 12 to 14 in d185bd9
and its usage to configure the
default_namespace
fieldllvm-project/libc/CMakeLists.txt
Lines 52 to 58 in d185bd9
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 theLLVM_VERSION_SUFFIX
definition to not use the-
token or by removing theLLVM_VERSION_SUFFIX
from the libc default_namespace.The text was updated successfully, but these errors were encountered: