-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
llvm: build pure llvm toolchain + zig: enable mingw64 & ucrt64 #21485
base: master
Are you sure you want to change the base?
Conversation
without target triple zig compiler segfaulted for me. why did you remove it? |
im so confused right now.. on clang, it will always fails at
|
d0da9f9
to
bf0445d
Compare
I downloaded your PKGBUILD file for mingw-w64-clang-x86_64-zig, and built it locally. your PKGBUILD file: the built package: the build script (powershell): |
yes, zig will build fine under current libc++ on this repo, but clang from this PR will fail to load with the new libc++ from this PR. edit: its not clang, but cmake that failed to load with the new libc++. |
1e86213
to
99720b8
Compare
@lazka please review |
mingw-w64-libc++/PKGBUILD
Outdated
fi | ||
|
||
# Targeting Win 7 will just lead to libc++ looking | ||
# up new APIs at runtime, so there is no downside really | ||
local _win32_winnt | ||
if [[ ${MSYSTEM} == CLANGARM64 ]]; then | ||
if [[ ${MSYSTEM} == CLANG* ]]; then |
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.
why?
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 hit linker errors from undefined stdlib implementations (_free, _memcpy, etc) when compiling ruby v3.3.4 on clang32 system.. just want to experiment something here..
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.
it also makes sense as UCRT is available only in Windows 10 or later (I forgot it at the moment)
I'm afraid I don't know enough about llvm to know what this is trying to change any why, so I can't. And llvm is too much of a core package to just press merge and see. |
this change is needed to make zig build on mingw64 and ucrt64, because zig needs llvm with builtin compiler-rt |
34ebc89
to
8b3345e
Compare
8b3345e
to
9bbe67b
Compare
afd3ef5
to
69f1be5
Compare
- builds a pure llvm toolchain on top of MinGW - builds libc++ and libunwind with builtin compiler-rt on all systems - emulated TLS is disabled when building with Clang - remove dependency of libgcc_s and libpthread on non Clang systems - fix building of libc++abi shared library
Notes:
We previously build with
-DLIBCXXABI_ENABLE_STATIC_UNWINDER=ON
which actually leads to libc++ not depends on libunwind, with both libc++ and libunwind exporting the same unwind functions.If we set
-DLIBCXXABI_ENABLE_STATIC_UNWINDER=OFF
, then libc++ will correctly depends on libunwind.