-
Notifications
You must be signed in to change notification settings - Fork 19
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
Windows builds #29
base: master
Are you sure you want to change the base?
Windows builds #29
Conversation
8501d1e
to
013718c
Compare
With this commit libc-headers becomes a standalone component, separate from the libc-extra-libraries one. The libc-extra-libraries component uses `orc inspect` to list and delete the files already provided by libc-headers component avoiding overlaps.
It's required to successfully build LLVM for Windows.
It breaks Windows builds.
Update for when you resume working on this: I've pushed on this repository Notes:
Things that need to be done:
Some of this tasks call for a more in depth handling of cross-compiling components, but I'd like to postpone that. |
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.
@Ale I aligned this PR to your feature/windows
, looks all very good to me, I only had a couple of comments about differences between your branch and mine (see the review)
(@ else: @) | ||
make -j16 | ||
(@ end @) |
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.
The part setting install
content in case ! is_windows
is useless, we can just leave build_system: make
(@= cmake(additional_cmake_args=cmake_opts) @) \ | ||
"(@= source_dir @)/llvm" \ | ||
-GNinja \ | ||
-DCMAKE_BUILD_RPATH="\$ORIGIN/../lib:$ORCHESTRA_ROOT/lib" \ | ||
-DCMAKE_INSTALL_RPATH="$RPATH_PLACEHOLDER/lib" \ | ||
-DCMAKE_BUILD_TYPE="(@= cmake_build_type @)" \ | ||
-DCMAKE_EXE_LINKER_FLAGS="(@= cflags @)" \ | ||
-DCMAKE_SHARED_LINKER_FLAGS="(@= cflags @)" \ | ||
-DCMAKE_MODULE_LINKER_FLAGS="(@= cflags @)" \ | ||
-DCMAKE_CXX_FLAGS="(@= cflags @)" \ | ||
-DLLVM_TARGETS_TO_BUILD="AArch64;AMDGPU;ARM;Mips;SystemZ;X86" \ | ||
-DLLVM_ENABLE_DUMP=ON \ | ||
-DLLVM_ENABLE_TERMINFO=OFF \ | ||
-DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF \ | ||
-DCMAKE_CXX_STANDARD=20 \ |
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.
Is there a reason why CMAKE_CXX_STANDARD is defined here and not by default_cmake_options
or additional_cmake_options
?
We need to integrate the precious suggestions by mstorsjo. |
This PR adds/fixes Windows builds for:
It also switches the libcs from having a special
@headers
build to depending on a separate component for the headers (this was required by mingw which had to be installed in three phases).Note: requires features from orchestra PR revng/revng-orchestra#25