-
-
Notifications
You must be signed in to change notification settings - Fork 9.9k
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
superenv: help Autotools with 10.12 SDK on 10.11 #970
Conversation
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.
Makes sense to me. Great work on this 👏
# Filter out symbols known not to be defined on 10.11 since GNU Autotools | ||
# can't reliably figure this out with Xcode 8 on its own yet. The Xcode | ||
# version doesn't need to be checked since these are harmless with Xcode 7 | ||
# even if they're unnecessary. |
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.
Personally I'd add the Xcode check anyway because better safe than sorry but will leave that decision up to you.
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.
if MacOS.version == "10.11" && DevelopmentTools.clang_build_version >= 800
yes?
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.
Yeh, or you can do MacOS::Xcode.version >= "8.0"
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.
My concern with that is that it won't fix the problem on a CLT-only install assuming Apple puts the same stuff in the 10.11 Xcode 8 CLT (if there is one actually coming out).
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.
Ah, I see. Yes, your version is better then. CC @DomT4 to confirm about the CLT?
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 not sure about the CLT on 10.11 yet to be honest because Apple releases CLT packages scoped to individual platforms, i.e. there's one available for macOS Sierra but not El Capitan, but when El Capitan gets its version it'll get its own .pkg
.
It seems feasible they could push a CLT for 10.11 without the problems, but who knows until they 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.
let's avoid speculatively fixing bugs and just do
if MacOS.version == "10.11" && MacOS::Xcode.installed? && MacOS::Xcode.version.to_i >= 8
We can always expand its scope later as needed.
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.
Agreed except avoid the .to_i
and just do MacOS::Xcode.version >= "8.0"
😉
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.
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.
Yeh, feel free 😁
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 wouldn't have thought OS X doesn't have basename_r
and dirname_r
lol.
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.
Part of me wonders if it's better to add this change as an unique method like determine_cccfg
, etc. I can't imagine this problem getting smaller in future years, and it may be easier to keep track of that way.
No big preference either way though, just a thought. Thanks for working on this & getting a PR pushed so quickly 🙇.
The GNU Autotools tests for whether a given symbol is defined are reliably coming to incorrect conclusions on 10.11 with the 10.12 SDK in Xcode 8. This overrides its decisions by forcing the right answer in superenv using ac_cv_func_* environment variables and setting them to "no" on 10.11. The list of problematic symbols is from grep 'weak$os10.11' MacOSX.sdk/usr/lib/system/libsystem_c.tbd
2505da3
to
1d7aa1f
Compare
PR refreshed.
It may eventually benefit from something like that, but I think for now that's probably over-engineering it. |
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 happy unless you're planning to add a test for this change or anything. Otherwise, let's ship it and see what breaks. |
🚀 |
Can confirm this at least fixes People will need to reinstall |
indeed. |
I got a malfunctioning |
That is to say: even with Xcode 8 and the associated CLT, on Sierra, But after this PR it seemed to work. |
This PR specifically has a |
@chdiza what's |
Maybe it wasn't this particular commit that fixed the problem, but another one that landed within around 24 hours. |
Erlang uses some customized Autotools tests, so the general superenv workaround in Homebrew/brew#970 is insufficient
Erlang uses some customized Autotools tests, so the general superenv workaround in Homebrew/brew#970 is insufficient Closes #4920. Signed-off-by: ilovezfs <[email protected]>
gnutls uses some customized Autotools tests, so the general superenv workaround in Homebrew/brew#970 is insufficient
gnutls uses some customized Autotools tests, so the general superenv workaround in Homebrew/brew#970 is insufficient
The GNU Autotools tests for whether a given symbol is defined are
reliably coming to incorrect conclusions on 10.11 with the 10.12 SDK
in Xcode 8. This overrides its decisions by forcing the right answer
in superenv using ac_cv_func_* environment variables and setting them to
"no" on 10.11. The list of problematic symbols is from
grep 'weak$os10.11' MacOSX.sdk/usr/lib/system/libsystem_c.tbd