-
-
Notifications
You must be signed in to change notification settings - Fork 13k
Closed as not planned
Closed as not planned
Copy link
Labels
bugReproducible Homebrew/homebrew-core bugReproducible Homebrew/homebrew-core bugstaleNo recent activityNo recent activity
Description
brew gist-logs <formula>
link OR brew config
AND brew doctor
output
$ brew gist-logs llvm@19
Error: No logs.
$ brew config
HOMEBREW_VERSION: 4.4.5
ORIGIN: https://github.com/Homebrew/brew
HEAD: 254bf3fe9d8fa2e1b2fb55dbcf535b2d870180c4
Last commit: 2 days ago
Core tap JSON: 13 Nov 02:59 UTC
Core cask tap JSON: 13 Nov 02:59 UTC
HOMEBREW_PREFIX: /opt/homebrew
HOMEBREW_CASK_OPTS: []
HOMEBREW_MAKE_JOBS: 8
Homebrew Ruby: 3.3.6 => /opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.3.6/bin/ruby
CPU: octa-core 64-bit dunno
Clang: 16.0.0 build 1600
Git: 2.39.5 => /Library/Developer/CommandLineTools/usr/bin/git
Curl: 8.7.1 => /usr/bin/curl
macOS: 15.1-arm64
CLT: 16.1.0.0.1.1729049160
Xcode: N/A
Rosetta 2: false
$ brew doctor
Your system is ready to brew.
Verification
- My
brew doctor
output saysYour system is ready to brew.
and am still able to reproduce my issue. - I ran
brew update
and am still able to reproduce my issue. - I have resolved all warnings from
brew doctor
and that did not fix my problem. - I searched for recent similar issues at https://github.com/Homebrew/homebrew-core/issues?q=is%3Aissue and found no duplicates.
What were you trying to do (and why)?
The changes in #196094 and #197410 have an issue; they conflate the SDK version with the deployment target, but these two are not the same!
In almost all cases, you want to use the latest SDK available, since:
- SDKs are backwards compatible, so you can still compile for a lower deployment target.
- Newer SDKs can contain important ABI fixes and may show more compiler warnings.
- The SDK version is embedded in the final binary (
vtool -show a.out
), and may have subtle effects at runtime.
In particular, the version in -target
is the deployment target, and shouldn't be used to determine the SDK version, because a user might want to compile for a lower deployment target than the SDK that they have installed.
See also related #197278 and #197277.
What happened (include all command output)?
As an example, the following results in a link error if the macOS 11.0 SDK is not installed:
$ echo "int main() { return 0; }" > foo.c
$ /opt/homebrew/opt/llvm/bin/clang -target arm64-apple-macosx11.0 foo.c
ld: library 'System' not found
clang: error: linker command failed with exit code 1 (use -v to see invocation)
What did you expect to happen?
Linking succeeded.
Step-by-step reproduction instructions (by running brew
commands)
brew install llvm@19
echo "int main() { return 0; }" > foo.c
# Any of these fail
/opt/homebrew/opt/llvm/bin/clang -target x86_64-apple-macosx10.14 foo.c
/opt/homebrew/opt/llvm/bin/clang -target x86_64-apple-darwin18.0 foo.c
/opt/homebrew/opt/llvm/bin/clang -target arm64-apple-macosx11.0 foo.c
/opt/homebrew/opt/llvm/bin/clang -target arm64-apple-darwin20.0 foo.c
Metadata
Metadata
Assignees
Labels
bugReproducible Homebrew/homebrew-core bugReproducible Homebrew/homebrew-core bugstaleNo recent activityNo recent activity