-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Upgrade to LLVM 16 & C++17, and bundle libc++ on Linux #87190
Conversation
…sion version numbers
This reverts commit b9e3ae6.
Looks like someone made LLVM too good, and broke the build
Sorry. I plead guilty. |
Plz stop fixing bugs, those were load-bearing bugs |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am wondering whether it would be better to link |
Agreed, statically linking libc++ would be fine with me. Also, the warning shrink looks good to me, that may also have been impacted by dotnet/llvm-project#444 |
Didn't mean to steal credit from you. 😅 Anyway, we are (back) at zero warnings with llvm-dwarfdump. |
Nope, no worries, you've done tons in this space and deserve the credit. I was just pointing out that, if that change hadn't yet been integrated, it might cause us to lower the count once again. I have one more change that will lower the count again on Linux (for some reason Linux still seems to have errors, but Mac doesn't). |
They ship different dwarfdump. macOS ships the LLVM one, which reports less errors but supports proprietary Apple sections (which were later replaced by DWARF5 standard). |
If someone wants to run experiments on static linking vs dynamic, they're welcome to - though the place to start that work is in the llvm-project repo where objwriter is generated. In my testing, via use of I don't think static linking is a realistic option for Mono - the bloat on 20-30 clang/llvm binaries would push us past the Nupkg size limit again |
This introduced build break in Android extra-platforms Mono legs:
|
This includes building against, linking, and shipping our own libc++ in lieu of system libstdc++, for LLVM builds. This is because LLVM 16 has a hard requirement on C++17 - our existing code assumes C++11