-
-
Notifications
You must be signed in to change notification settings - Fork 14.1k
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
libcxx: hardcode full path to <version> #155489
base: staging
Are you sure you want to change the base?
Conversation
Hmm, I'm not sure about this. I thought it was fine at first, but... This isn't libcxx-private, at least according to: https://en.cppreference.com/w/cpp/header/version . For example, gcc's C++ stdlib has a This means all sorts of software (boost for example: https://www.boost.org/doc/libs/1_74_0/boost/config/detail/select_stdlib_config.hpp ) may wish to include As a small consideration, I'm not sure what the expected stability of these paths are ( OTOH this is, of course, a problem we should try to fix! Can we do something at the wrapper level to provide the expected behavior here instead? The benefit is fixing this at the wrapper (or clang?) level would fix all (current and potential) include'ers of I guess this is a long way to say I'd prefer if we could fix this more completely, but other than the consideration mentioned above I suppose I don't know that there are significant drawbacks to modifying libcxx in the suggested way (don't see how this would break things really, for example). cc @Mic92 for possible input on addressing this at the cc-wrapper level (thanks! ❤️). |
From what I understand, the In ideal situation, upstream or us could patch all the software to not conflict with this include from C++20, and it might just happen over time if we just leave things as is. But then folks will be getting the compilation errors, and those kind of look weird. Also, I wonder why we don't see this with libstdc++ yet. |
Motivation for this change
Fixes: #155458
Things done
nix-build . -A llvmPackages_11.libcxx.dev -A llvmPackages_12.libcxx.dev -A llvmPackages_13.libcxx.dev -A llvmPackages_git.libcxx.dev | xargs grep -r version
nix-build -E 'with import ./. {}; itpp.override { stdenv = llvmPackages_git.stdenv; }'