120 Commits

Author SHA1 Message Date
ilovezfs
88a1b2853a superenv: more 10.11 clock_gettime Autotools fixes
some build systems check ac_cv_search_clock_gettime instead of
ac_cv_func_clock_gettime so the former should also be set to "no"

libev.m4 unsets ac_cv_func_clock_gettime, but if ac_have_clock_syscall
is defined, it will leave ac_cv_func_clock_gettime alone:

  http://cvs.schmorp.de/libev/libev.m4?view=markup#l23
2016-09-28 03:31:32 -07:00
Markus Reiter
58e36c7319 Fix Style/GuardClause. 2016-09-24 12:24:35 +02:00
Markus Reiter
e851c9bf6c Style/Alias: Prefer alias. 2016-09-23 18:19:53 +02:00
Markus Reiter
fe2d51e0b9 Fix Style/IfUnlessModifier. 2016-09-23 15:30:07 +02:00
ilovezfs
390bcf413b no_weak_imports: always check for support
ENV.no_weak_imports should be a no-op when Xcode doesn't support the
feature to avoid breaking builds with <= Xcode 7.
2016-09-17 08:29:47 -07:00
ilovezfs
1d7aa1fe0b superenv: help Autotools with 10.12 SDK on 10.11
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
2016-09-15 03:34:43 -07:00
Misty De Meo
e93771ae07 no_weak_imports: call ENV.append, not .add 2016-08-24 16:20:13 +10:00
Mike McQuaid
602fb0e575 Make -no_weak_imports opt-in.
The experiment to add `-no_weak_imports` unconditionally has been a bit
of a failure. It's broken more than it's fixed and I don't think we can
have this as a default for Xcode 8.

Add `ENV.no_weak_imports` to be used by formulae authors and make
`ENV.no_weak_imports a no-op (for now).

We may reconsider this behaviour in future.
2016-08-22 10:39:38 +01:00
Tim D. Smith
9c7f24b84a Add permit_weak_imports directive
Issue Homebrew/homebrew-core#3727 suggested we set -no_weak_imports for
new versions of Xcode to ensure that e.g. building on 10.11 against the
10.12 SDK doesn't result in a situation where autotools thinks symbols
exist that don't actually exist on the current platform.

Further discussion in golang/go#16770 revealed that some packages
require weak imports to build normally.
2016-08-17 23:02:44 -07:00
Mike McQuaid
27fc2abaca shared: handle missing Xcode/CLT version.
Fixes https://github.com/Homebrew/homebrew-core/issues/3973.
2016-08-17 13:23:13 +01:00
Mike McQuaid
5609183567 superenv: add LDFLAGS if disabling weak imports. 2016-08-16 15:26:28 +01:00
Mike McQuaid
53d1000739 ENV/std: add LDFLAGS if disabling weak imports. 2016-08-16 15:26:28 +01:00
Mike McQuaid
b33fe79478 mac/ENV/shared: add check for disabling weak imports. 2016-08-16 15:26:28 +01:00
Mike McQuaid
74d4479246 Add OS X-specific SharedEnvExtension. 2016-08-16 15:26:28 +01:00
ilovezfs
356018501b ENV: fix homebrew_extra_pkg_config_paths
Switch to HOMEBREW_LIBRARY since HOMEBREW_LIBRARY_PATH already includes
"/Homebrew" and HOMEBREW_LIBRARY is less confusing.

Closes #530.

Signed-off-by: ilovezfs <ilovezfs@icloud.com>
2016-07-16 08:09:43 -07:00
Mike McQuaid
a02be9eea2 ENV: move to new paths. (#507)
Move some stuff formerly in `Library/ENV` around:
- Move `Library/ENV/$XCODE_VERSION` to `Library/Homebrew/env/super` as they are
  all superenv wrappers and all symlinks to the same version. We never needed
  the "separate shims for separate versions" functionality and it just adds
  confusion.
- Move `Library/ENV/pkgconfig` to `Library/Homebrew/env/pkgconfig` to get more
  things under `Library/Homebrew`
- Move `Library/ENV/scm` to `Library/scm` as these wrappers are not actually
  used by or related to superenv (or stdenv) in any way.
2016-07-15 19:03:45 +01:00
Dominyk Tiller
91af4aa0fe
super: migrate xml2 cmake to mac/super
Looks like it was accidentally left behind (?)
2016-07-15 05:23:28 +01:00
Dominyk Tiller
706e7e71a0
mac/super: restore definition of effective_sysroot
In 0d189fae57
we completely removed `effective_sysroot`, which consequently left all the
`effective_sysroot`/usr/include calls pointing at `/usr/include`. This is wildly
problematic on systems where the Command Line Tools aren't installed because
`/usr/include` is not a default-created folder prior to CLT installation.

I'm unsure if `effective_sysroot` should still be mentioned in Library/Homebrew/extend/ENV/super.rb
at all. If it can be deleted, feel free to do that without waiting for me to review.

This seems to fix:
* https://github.com/Homebrew/homebrew-core/issues/2991
* https://github.com/Homebrew/homebrew-core/issues/2986
* https://github.com/Homebrew/homebrew-core/issues/2962
2016-07-15 05:14:51 +01:00
Mike McQuaid
0d189fae57 superenv: port to generic OS. (#457) 2016-07-12 12:01:20 +01:00
Mike McQuaid
498e81c9fc stdenv: port to generic OS. (#456) 2016-07-12 11:39:39 +01:00