105 Commits

Author SHA1 Message Date
Douglas Eichelberger
08af78a2a5 brew style --fix 2023-04-25 09:26:24 -07:00
Douglas Eichelberger
24cf6076e8 brew style --fix 2023-04-24 20:42:39 -07:00
Carlo Cabrera
f75c56a90d
Merge pull request #14873 from carlocab/no_fixup_chains
Pass `-no_fixup_chains` to linker when required
2023-03-28 12:25:48 +08:00
Douglas Eichelberger
76671ef555 Typecheck ENV extensions 2023-03-09 20:51:01 -08:00
Carlo Cabrera
4c4e9369b1
Fix brew style 2023-03-07 23:28:59 +08:00
Carlo Cabrera
46c3c86caa
Parse ld version from -version_details 2023-03-07 22:41:07 +08:00
Carlo Cabrera
c4fe6e7617
Incoroporate feedback from code review
- check the version of `/usr/bin/ld` for support of `-no_fixup_chains`
- check for usage of the `-fuse-ld` flag, since this flag is only
  supported by Apple ld64

Also, call `no_fixup_chains` when setting up the build environment.
2023-03-05 16:55:00 +08:00
Carlo Cabrera
1b12d74945
Pass -no_fixup_chains to linker when required
Invoking `ld` with `-undefined dynamic_lookup` emits a warning starting
Xcode 14:

    ld: warning: -undefined dynamic_lookup may not work with chained fixups

Chained fixups is a linker optimisation that results in faster binary
load times, and is enabled by default starting Xcode 13 when the target
is macOS 12 or newer.

However, this interacts poorly with `-undefined dynamic_lookup`, and
Xcode will disable chained fixups when it is invoked with this flag
starting Xcode 14.3. Until then, we may be shipping binaries that are
broken in subtle ways, so let's disable chained fixups when necessary
instead.

I patterned the changes here after the handling of `-no_weak_imports`.
The only difference is that we need to check the flags that were passed
to the linker first to see if we do need to disable chained fixups.

For additional context, see:

https://developer.apple.com/documentation/xcode-release-notes/xcode-13-release-notes
https://www.wwdcnotes.com/notes/wwdc22/110362/
https://www.emergetools.com/blog/posts/iOS15LaunchTime
https://github.com/python/cpython/issues/97524
https://github.com/pybind/pybind11/pull/4301
2023-03-04 00:19:13 +08:00
Mike McQuaid
b3db997e7b
os/mac/extend/ENV/super: handle nil sdk.
I'm aware this is not meant to happen but: sometimes it does and the
lack of handling produces a subpar error.
2023-02-23 15:31:04 +00:00
Bo Anderson
cbc895ce2b
Add Pathname shim extension RBI definitions 2022-09-08 03:26:50 +01:00
Lukas Oberhuber
0b554a4138 Style 2022-08-04 08:53:07 -07:00
Lukas Oberhuber
bee3531090 Improve style 2022-08-01 15:25:34 -07:00
Lukas Oberhuber
cd9fe97c55 Improve style 2022-07-30 11:10:26 +01:00
Lukas Oberhuber
215e545660 brew style 2022-07-26 19:28:30 +01:00
Lukas Oberhuber
c2a95f077f Compiler -g flag set based on --debug-symbols 2022-07-26 17:18:01 +01:00
Bo Anderson
4de9dd0cfa
ENV/super: always set HOMEBREW_DEVELOPER_DIR regardless of macOS version 2022-04-11 15:13:33 +01:00
Douglas Eichelberger
65f1766497 Remove unknown YARD tags 2021-11-30 08:01:20 -08:00
Bo Anderson
6337dbfac9
ENV/super: enable deterministic archive generation 2021-11-26 13:04:33 +00:00
Evan Phoenix
b5ccf8aac2 Do not pass -Wl,-headerpad_max_install_names to b-linux-path
One of the more curious bugs, if you use
-Wl,-headerpad_max_install_names on linux, it tries to link a library
named "eaderpath_max_install_names" in, which causes all kinds of weird
havoc.

Most notably, gtester inside glib fails to run for bizarre reasons.
-Wl,-headerpad_max_install_names is not an option anywhere outside macos
anyway, so move it to macos only and avoid the heartache of extremely
weild bugs.
2021-11-09 20:38:26 -08:00
Bo Anderson
4836ea0ba2
Remove XQuartz handling 2021-11-05 12:40:22 +00:00
fn ⌃ ⌥
61a7ffb999 development_tools: add type signatures 2021-09-29 15:12:53 -07:00
Mike McQuaid
2b6e580636
ENV/super: add shims_path helper method.
This allows us to stop repeatedly hardcoding this on macOS/Linux in
formulae.
2021-09-08 12:35:36 +01:00
Bo Anderson
1e567161d1
ENV/shared: specify which Perl version we want to use 2021-05-10 05:50:02 +01:00
Liyang HU
adac92b326 Library/Homebrew/extend/os/mac/extend/ENV/super.rb: obsolete HOMEBREW_CCCFG flag s
@Bo98's comment https://github.com/Homebrew/brew/pull/10802#issuecomment-792072121
2021-03-06 23:15:55 +00:00
Bo Anderson
65c03573c6
ENV: fix missing arg for generic OS and correct type sigs 2021-02-26 18:23:48 +00:00
carlocab
d7323f30d3
extend/os/mac/extend/ENV: fix pkg-config paths 2020-12-24 15:23:23 +00:00
Rylan Polster
af6be13e7c test: don't try to use Xcode SDK for build requirement 2020-12-21 09:25:29 -05:00
Mike McQuaid
87dd13aea6
Deprecate cask requirements.
This probably has to wait until 2.7.0 now and will require a bunch of
formula changes/deprecations but we should probably start moving in this
direction given we're not installing any of these on our CI any more.
2020-12-15 14:19:45 +00:00
Markus Reiter
5be4c9b5e0 Upgrade typed sigils. 2020-11-25 17:04:19 +01:00
Mike McQuaid
9bd312bab2
Merge pull request #9267 from reitermarkus/macos-version-11.1
Handle macOS versions >= 11.1 correctly.
2020-11-25 14:36:01 +00:00
Markus Reiter
8598b1186a Handle macOS versions >= 11.1 correctly. 2020-11-23 13:46:15 +01:00
Markus Reiter
0424940496 Add types for ENV extensions. 2020-11-23 02:06:37 +01:00
Markus Reiter
da9289eff0 Add more type signatures. 2020-11-13 12:26:36 +01:00
EricFromCanada
3768b7a6e9 apidoc: update comment wording, punctuation, formatting 2020-11-06 00:21:02 -05:00
Markus Reiter
24ae318a3d Move type annotations into files. 2020-10-10 14:59:39 +02:00
Mike McQuaid
3923d331de
Fix brew style 2020-09-15 13:39:06 +01:00
Mike McQuaid
f161e56ce0 ENV: check SDK exists when setting up.
Reuse code from `brew doctor` that checks and produces a fatal error
and from `install.rb` that runs it.

Closes #8646
2020-09-11 12:05:22 +01:00
Markus Reiter
276c570c16 Pass individual args explicitly to ENV extensions. 2020-07-28 02:52:45 +02:00
Markus Reiter
25b3632c4c Pass args to ENV instead of using global args. 2020-07-25 03:57:43 +02:00
Mike McQuaid
6f1970fd24
Fix more 10.x hardcodings. 2020-06-23 17:10:07 +01:00
Misty De Meo
613c397b34 ENV: SDK can be nil 2020-06-04 17:38:25 -07:00
Bo Anderson
41a666febb ENV/std: port superenv SDK changes 2020-04-23 18:11:10 +01:00
Bo Anderson
ae6c58c7bc ENV/super: always set HOMEBREW_SDKROOT for Xcode builds 2020-04-23 11:10:54 +01:00
Bo Anderson
32744e1746 ENV/std: remove space in -isysroot 2020-04-12 14:51:21 +01:00
Bo Anderson
8900e852d6 Revert "ENV/std: withdraw support for Homebrew supplied *.pc files"
This reverts commit fa3591681800f9da06cd2d0179a5ef9e63b10729.
2020-04-10 21:47:54 +01:00
Bo Anderson
e8e6592701 ENV/super: don't set PKG_CONFIG 2020-04-10 18:36:18 +01:00
Bo Anderson
e60f071c50 ENV/super: refactor SDK root selection 2020-04-07 17:22:16 +01:00
Mike McQuaid
e2cfc2b50f
Merge pull request #7278 from Bo98/libxml2-10.15.4
ENV: don't help include libxml2 on macOS SDK 10.15.4 and later
2020-04-05 16:28:58 +01:00
Bo Anderson
aac3337c64
Merge pull request #7277 from Bo98/sdkroot-pkgconfig
shims/mac/super/pkg-config: pass and use HOMEBREW_SDKROOT
2020-04-05 15:35:54 +01:00
Bo Anderson
32497bd511 ENV: don't help include libxml2 on macOS SDK 10.15.4 and later 2020-04-05 15:30:39 +01:00