-
Notifications
You must be signed in to change notification settings - Fork 13.5k
[Clang][Cygwin] Disable shared libs on Cygwin by default #138119
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
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
This bit here is quite unintuitive to read, but I don't have any specific preference for any better way of doing it either...
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.
Indeed, that's unfortunate and has always been a problem.
LLVM_ENABLE_PIC
defaults to ON on Windows, so that condition never worked unless you explicitly disabledLLVM_ENABLE_PIC
as found out by @jeremyd2019.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.
this stops libclang.dll from building on (non-mingw) windows when we specify
LLVM_ENABLE_PIC
, can we revert that part of this change?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.
Right, so in order not to change the behaviour for other windows platforms, this should probably be
if ((NOT CYGWIN AND LLVM_ENABLE_PIC) OR ((WIN32 OR CYGWIN) AND NOT LIBCLANG_BUILD_STATIC))
, i.e. removing theWIN32 OR
part from the first part of the conditional?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'm confused now, the condition before had
WIN32 AND NOT LIBCLANG_BUILD_STATIC
but that branch was never hit becauseLLVM_ENABLE_PIC
was defaultedON
on Windows. What exactly isLIBCLANG_BUILD_STATIC
supposed to do, if not switch from building a shared libclang to building a static one?Oh, the docs on the option does say "in addition to a shared one"
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.
As I recall, the libclang.dll did build successfully so I think that could be reverted. Perhaps I/we just misunderstood what that option was supposed to do
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.
as in,
Although I'm still not clear on what the
WIN32 AND NOT LIBCLANG_BUILD_STATIC
case is supposed to be doing, it's pretty clear that Cygwin is like WIN32 in regards to its shared/static librariesThere 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.
sent out #138343