-
Notifications
You must be signed in to change notification settings - Fork 11.9k
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
'__config_site' file not found on Ubuntu noble for libc++-18 #96210
Comments
I don't think this is a libc++ issue, we didn't change anything on our side. This seems like a packaging issue to me. @mpusz Are you able to find |
No, it is not there. The file is missing. |
@tstellar Is LLVM responsible for those |
@sylvestre maintains this. |
@petrhosek, didn't we introduce some changes around the libcxx multilib build to address this? I have a vague recollection that this cropped up for us about a month ago, but I don't recall the full story. |
@mpusz reports that the file isn't anywhere in his include tree, which would point to a different issue though. It looks like a packaging issue to me, not a libc++ issue. |
Yes, there is
There is no |
Same issue: Ubuntu LLVM version 18.1.8. Package is llvm-toolchain-jammy-18 |
Do we have any update on this issue? CI runs fail because of it for two weeks now 😢 For example: https://github.com/mpusz/mp-units/actions/runs/9732819135 |
No, those changes were related to multilib build which is not the issue here. I'm not aware of any related recent changes, and I agree with @ldionne, this looks like a packaging issue. |
@mpusz I think the symlink is not the problem here. It is expected that However, I don't understand why Clang isn't also adding a search path for FWIW, I tried reproducing with:
I build that Docker image, I then do
This results in the right paths being searched and I am not seeing any problem. There's probably something wrong with this reproducer, however if you're able to tweak your build configuration to reproduce it simply like the above, that would also be helpful for us to investigate. |
@ldionne Thanks for investigating it. I just added
|
@mpusz I see this is running
In your
Something looks incorrect here since we should be looking for |
@ldionne That's a Good catch! I confirm that I was able to compile the code without turning on the C++ module support. The problem seems to be in |
Ok, so this is probably neither a packaging nor a libc++ issue, but instead a |
Trying to ping some Can anyone think of what might cause this? The TLDR is that a few weeks ago, |
@mpusz Since you're using Ubuntu I expect |
@mordante Do you know what would have changed recently that broke this? |
The last time it worked for me was here: https://github.com/mpusz/mp-units/actions/runs/9517456102/job/26236105038. See "Create Conan package" |
It also seemed to work on clang-17: https://github.com/mpusz/mp-units/actions/runs/9732819135/job/26932056092 At least before llvm-17 Ubuntu noble packages broke: https://github.com/mpusz/mp-units/actions/runs/9792077689/job/27037164301 😢 (probably I should submit another bug for it) |
@ldionne I don't know what changed. However looking at @mpusz's logs there seems to be a different CMake version (at the patch level). I'm not sure when the BTW I see some other build issues due to |
Yeah, |
Ok, so wrapping up, it looks like we basically have a workaround for the issue and it has been fixed in LLVM 19. The workaround is to use an absolute path for Is that right? If so and if we agree there's nothing left that needs to be acted upon in this issue, let's close it. |
I didn't check the workaround as I depend on CMake to call it correctly. I don't know how to force CMake to use the absolute path here. |
Also, I am not sure if that is a correct summary. I was able to compile the code with clang-18 and modules enabled when I installed either libc++-17 (before it became broken) or libc++-19. It just does not work with libc++-18. |
Can you show us the diff in what header files are installed by each version of libc++? Specifically, I'm interested in knowing the path of |
libc++-19
libc++-17
It seems that there is a physical file (not a symbolic link) directly in the library tree for both of them. Also, there is no x86_64-pc-linux-gnu directory for any of them:
|
Leaving a broken package as the latest on the download page without at least a clear workaround note in the release notes (they will only see this if they search for obscure issue #96210) doesn't seem overly user friendly? |
I didn't know this problem before.
So it looks like the difference between |
About
I think it is because I enabled LLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON this option in the pacakges to enable multiarch for this libs |
This issue was not happening for me with version |
@sylvestre Since this seems to be the cause of the problem, can you undo that? It seems like that should not be a problem with LLVM 19 since clang-scan-deps is going to be fixed, but for LLVM 18 it's breaking folks. |
@ldionne I could cherry pick the fix in clang-scan-deps? Do you know which one it is? |
I can't find anything on I know @MaskRay 's #80527 landed some months ago and that may help fix this issue, but I don't know for sure. Folks on this issue mention that the issue wasn't happening with LLVM 18.1.6, but it is happening with LLVM 18.1.8. I looked at the very few commits between those two versions ( By the way, it would be really nice to have visibility into what the change was -- where's the code that controls that? |
This is this commit: |
@sylvestre Does the LLVM 19 package also contain that commit? I.e. are the APT packages for LLVM 19 also built with If the LLVM 19 packages are not built with In case the LLVM 19 package is indeed built with |
19 doesn't have this change yet |
Ok, so then we basically don't know whether LLVM 19 would be broken by enabling IMO, the best course of action would be to revert your change from LLVM 18 since it's actively breaking folks, and to investigate whether the same problem arises with LLVM tip-of-trunk with |
@sylvestre, do we have any updates on this issue? Our CI has been failing for over three weeks because of it. This has already hidden some regressions in the project because we started to take failed CI for granted. |
@mpusz I revert the fix. I will try to trigger the builds tomorrow (Sunday) |
I don't think that this is In particular, we use |
I also think this could be caused by https://bugs.debian.org/1075931, which includes a patch, but I haven't tested it. |
Pinging @petrhosek since it seems that |
# Description Move to Clang 17, this is needed due to llvm/llvm-project#106204 and llvm/llvm-project#96210 (comment). In addition, we install `ssh` package. --------- Co-authored-by: Filippo Brizzi <[email protected]>
For about a week now, libc++-18 does not provide the
/usr/include/c++/v1/__config_site
header file.Installed with:
libc++-19 is OK.
Compilation error log:
More info can be found here: https://github.com/mpusz/mp-units/actions/runs/9597865534/job/26467862493.
The text was updated successfully, but these errors were encountered: