Merge pull request #18228 from cho-m/docs-no-deprecated-gcc

docs: remove references to deprecated/disabled GCC formulae
This commit is contained in:
Michael Cho 2024-09-02 12:38:01 -04:00 committed by GitHub
commit fafa61852d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 50 additions and 55 deletions

View File

@ -63,7 +63,7 @@ module Homebrew
}], }],
[:flag, "--cc=", { [:flag, "--cc=", {
description: "Attempt to compile using the specified <compiler>, which should be the name of the " \ description: "Attempt to compile using the specified <compiler>, which should be the name of the " \
"compiler's executable, e.g. `gcc-7` for GCC 7. In order to use LLVM's clang, specify " \ "compiler's executable, e.g. `gcc-9` for GCC 9. In order to use LLVM's clang, specify " \
"`llvm_clang`. To use the Apple-provided clang, specify `clang`. This option will only " \ "`llvm_clang`. To use the Apple-provided clang, specify `clang`. This option will only " \
"accept compilers that are provided by Homebrew or bundled with macOS. Please do not " \ "accept compilers that are provided by Homebrew or bundled with macOS. Please do not " \
"file issues if you encounter errors while using this option.", "file issues if you encounter errors while using this option.",

View File

@ -129,8 +129,8 @@ RSpec.describe "ENV" do
describe "#compiler" do describe "#compiler" do
it "allows switching compilers" do it "allows switching compilers" do
subject.public_send(:"gcc-6") subject.public_send(:"gcc-9")
expect(subject.compiler).to eq("gcc-6") expect(subject.compiler).to eq("gcc-9")
end end
end end
@ -179,16 +179,11 @@ RSpec.describe "ENV" do
end end
describe "#cxx11" do describe "#cxx11" do
it "supports gcc-5" do it "supports gcc-11" do
env["HOMEBREW_CC"] = "gcc-5" env["HOMEBREW_CC"] = "gcc-11"
env.cxx11
expect(env["HOMEBREW_CCCFG"]).to include("x")
end
example "supports gcc-6" do
env["HOMEBREW_CC"] = "gcc-6"
env.cxx11 env.cxx11
expect(env["HOMEBREW_CCCFG"]).to include("x") expect(env["HOMEBREW_CCCFG"]).to include("x")
expect(env["HOMEBREW_CCCFG"]).not_to include("g")
end end
it "supports clang" do it "supports clang" do

View File

@ -14,10 +14,10 @@ RSpec.describe CompilerSelector do
before do before do
allow(versions).to receive(:gcc_version) do |name| allow(versions).to receive(:gcc_version) do |name|
case name case name
when "gcc-7" then Version.new("7.1") when "gcc-12" then Version.new("12.1")
when "gcc-6" then Version.new("6.1") when "gcc-11" then Version.new("11.1")
when "gcc-5" then Version.new("5.1") when "gcc-10" then Version.new("10.1")
when "gcc-4.9" then Version.new("4.9.1") when "gcc-9" then Version.new("9.1")
else Version::NULL else Version::NULL
end end
end end
@ -29,68 +29,68 @@ RSpec.describe CompilerSelector do
end end
it "returns clang if it fails with non-Apple gcc" do it "returns clang if it fails with non-Apple gcc" do
software_spec.fails_with(gcc: "7") software_spec.fails_with(gcc: "12")
expect(selector.compiler).to eq(:clang) expect(selector.compiler).to eq(:clang)
end end
it "still returns gcc-7 if it fails with gcc without a specific version" do it "still returns gcc-12 if it fails with gcc without a specific version" do
software_spec.fails_with(:clang) software_spec.fails_with(:clang)
expect(selector.compiler).to eq("gcc-7") expect(selector.compiler).to eq("gcc-12")
end end
it "returns gcc-6 if gcc formula offers gcc-6 on mac", :needs_macos do it "returns gcc-11 if gcc formula offers gcc-11 on mac", :needs_macos do
software_spec.fails_with(:clang) software_spec.fails_with(:clang)
allow(Formulary).to receive(:factory) allow(Formulary).to receive(:factory)
.with("gcc") .with("gcc")
.and_return(instance_double(Formula, version: Version.new("6.0"))) .and_return(instance_double(Formula, version: Version.new("11.0")))
expect(selector.compiler).to eq("gcc-6") expect(selector.compiler).to eq("gcc-11")
end end
it "returns gcc-5 if gcc formula offers gcc-5 on linux", :needs_linux do it "returns gcc-10 if gcc formula offers gcc-10 on linux", :needs_linux do
software_spec.fails_with(:clang) software_spec.fails_with(:clang)
allow(Formulary).to receive(:factory) allow(Formulary).to receive(:factory)
.with("gcc@11") .with("gcc@11")
.and_return(instance_double(Formula, version: Version.new("5.0"))) .and_return(instance_double(Formula, version: Version.new("10.0")))
expect(selector.compiler).to eq("gcc-5") expect(selector.compiler).to eq("gcc-10")
end end
it "returns gcc-6 if gcc formula offers gcc-5 and fails with gcc-5 and gcc-7 on linux", :needs_linux do it "returns gcc-11 if gcc formula offers gcc-10 and fails with gcc-10 and gcc-12 on linux", :needs_linux do
software_spec.fails_with(:clang) software_spec.fails_with(:clang)
software_spec.fails_with(gcc: "5") software_spec.fails_with(gcc: "10")
software_spec.fails_with(gcc: "7") software_spec.fails_with(gcc: "12")
allow(Formulary).to receive(:factory) allow(Formulary).to receive(:factory)
.with("gcc@11") .with("gcc@11")
.and_return(instance_double(Formula, version: Version.new("5.0"))) .and_return(instance_double(Formula, version: Version.new("10.0")))
expect(selector.compiler).to eq("gcc-6") expect(selector.compiler).to eq("gcc-11")
end end
it "returns gcc-7 if gcc formula offers gcc-5 and fails with gcc <= 6 on linux", :needs_linux do it "returns gcc-12 if gcc formula offers gcc-11 and fails with gcc <= 11 on linux", :needs_linux do
software_spec.fails_with(:clang) software_spec.fails_with(:clang)
software_spec.fails_with(:gcc) { version "6" } software_spec.fails_with(:gcc) { version "11" }
allow(Formulary).to receive(:factory) allow(Formulary).to receive(:factory)
.with("gcc@11") .with("gcc@11")
.and_return(instance_double(Formula, version: Version.new("5.0"))) .and_return(instance_double(Formula, version: Version.new("11.0")))
expect(selector.compiler).to eq("gcc-7") expect(selector.compiler).to eq("gcc-12")
end end
it "returns gcc-7 if gcc-7 is version 7.1 but spec fails with gcc-7 <= 7.0" do it "returns gcc-12 if gcc-12 is version 12.1 but spec fails with gcc-12 <= 12.0" do
software_spec.fails_with(:clang) software_spec.fails_with(:clang)
software_spec.fails_with(gcc: "7") { version "7.0" } software_spec.fails_with(gcc: "12") { version "12.0" }
expect(selector.compiler).to eq("gcc-7") expect(selector.compiler).to eq("gcc-12")
end end
it "returns gcc-6 if gcc-7 is version 7.1 but spec fails with gcc-7 <= 7.1" do it "returns gcc-11 if gcc-12 is version 12.1 but spec fails with gcc-12 <= 12.1" do
software_spec.fails_with(:clang) software_spec.fails_with(:clang)
software_spec.fails_with(gcc: "7") { version "7.1" } software_spec.fails_with(gcc: "12") { version "12.1" }
expect(selector.compiler).to eq("gcc-6") expect(selector.compiler).to eq("gcc-11")
end end
it "raises an error when gcc or llvm is missing (hash syntax)" do it "raises an error when gcc or llvm is missing (hash syntax)" do
software_spec.fails_with(:clang) software_spec.fails_with(:clang)
software_spec.fails_with(gcc: "7") software_spec.fails_with(gcc: "12")
software_spec.fails_with(gcc: "6") software_spec.fails_with(gcc: "11")
software_spec.fails_with(gcc: "5") software_spec.fails_with(gcc: "10")
software_spec.fails_with(gcc: "4.9") software_spec.fails_with(gcc: "9")
expect { selector.compiler }.to raise_error(CompilerSelectionError) expect { selector.compiler }.to raise_error(CompilerSelectionError)
end end

View File

@ -862,7 +862,7 @@ __fish_brew_complete_arg 'instal' -l bottle-arch -d 'Optimise bottles for the sp
__fish_brew_complete_arg 'instal' -l build-bottle -d 'Prepare the formula for eventual bottling during installation, skipping any post-install steps' __fish_brew_complete_arg 'instal' -l build-bottle -d 'Prepare the formula for eventual bottling during installation, skipping any post-install steps'
__fish_brew_complete_arg 'instal' -l build-from-source -d 'Compile formula from source even if a bottle is provided. Dependencies will still be installed from bottles if they are available' __fish_brew_complete_arg 'instal' -l build-from-source -d 'Compile formula from source even if a bottle is provided. Dependencies will still be installed from bottles if they are available'
__fish_brew_complete_arg 'instal' -l cask -d 'Treat all named arguments as casks' __fish_brew_complete_arg 'instal' -l cask -d 'Treat all named arguments as casks'
__fish_brew_complete_arg 'instal' -l cc -d 'Attempt to compile using the specified compiler, which should be the name of the compiler\'s executable, e.g. `gcc-7` for GCC 7. In order to use LLVM\'s clang, specify `llvm_clang`. To use the Apple-provided clang, specify `clang`. This option will only accept compilers that are provided by Homebrew or bundled with macOS. Please do not file issues if you encounter errors while using this option' __fish_brew_complete_arg 'instal' -l cc -d 'Attempt to compile using the specified compiler, which should be the name of the compiler\'s executable, e.g. `gcc-9` for GCC 9. In order to use LLVM\'s clang, specify `llvm_clang`. To use the Apple-provided clang, specify `clang`. This option will only accept compilers that are provided by Homebrew or bundled with macOS. Please do not file issues if you encounter errors while using this option'
__fish_brew_complete_arg 'instal' -l colorpickerdir -d 'Target location for Color Pickers (default: `~/Library/ColorPickers`)' __fish_brew_complete_arg 'instal' -l colorpickerdir -d 'Target location for Color Pickers (default: `~/Library/ColorPickers`)'
__fish_brew_complete_arg 'instal' -l debug -d 'If brewing fails, open an interactive debugging session with access to IRB or a shell inside the temporary build directory' __fish_brew_complete_arg 'instal' -l debug -d 'If brewing fails, open an interactive debugging session with access to IRB or a shell inside the temporary build directory'
__fish_brew_complete_arg 'instal' -l debug-symbols -d 'Generate debug symbols on build. Source will be retained in a cache directory' __fish_brew_complete_arg 'instal' -l debug-symbols -d 'Generate debug symbols on build. Source will be retained in a cache directory'
@ -916,7 +916,7 @@ __fish_brew_complete_arg 'install' -l bottle-arch -d 'Optimise bottles for the s
__fish_brew_complete_arg 'install' -l build-bottle -d 'Prepare the formula for eventual bottling during installation, skipping any post-install steps' __fish_brew_complete_arg 'install' -l build-bottle -d 'Prepare the formula for eventual bottling during installation, skipping any post-install steps'
__fish_brew_complete_arg 'install' -l build-from-source -d 'Compile formula from source even if a bottle is provided. Dependencies will still be installed from bottles if they are available' __fish_brew_complete_arg 'install' -l build-from-source -d 'Compile formula from source even if a bottle is provided. Dependencies will still be installed from bottles if they are available'
__fish_brew_complete_arg 'install' -l cask -d 'Treat all named arguments as casks' __fish_brew_complete_arg 'install' -l cask -d 'Treat all named arguments as casks'
__fish_brew_complete_arg 'install' -l cc -d 'Attempt to compile using the specified compiler, which should be the name of the compiler\'s executable, e.g. `gcc-7` for GCC 7. In order to use LLVM\'s clang, specify `llvm_clang`. To use the Apple-provided clang, specify `clang`. This option will only accept compilers that are provided by Homebrew or bundled with macOS. Please do not file issues if you encounter errors while using this option' __fish_brew_complete_arg 'install' -l cc -d 'Attempt to compile using the specified compiler, which should be the name of the compiler\'s executable, e.g. `gcc-9` for GCC 9. In order to use LLVM\'s clang, specify `llvm_clang`. To use the Apple-provided clang, specify `clang`. This option will only accept compilers that are provided by Homebrew or bundled with macOS. Please do not file issues if you encounter errors while using this option'
__fish_brew_complete_arg 'install' -l colorpickerdir -d 'Target location for Color Pickers (default: `~/Library/ColorPickers`)' __fish_brew_complete_arg 'install' -l colorpickerdir -d 'Target location for Color Pickers (default: `~/Library/ColorPickers`)'
__fish_brew_complete_arg 'install' -l debug -d 'If brewing fails, open an interactive debugging session with access to IRB or a shell inside the temporary build directory' __fish_brew_complete_arg 'install' -l debug -d 'If brewing fails, open an interactive debugging session with access to IRB or a shell inside the temporary build directory'
__fish_brew_complete_arg 'install' -l debug-symbols -d 'Generate debug symbols on build. Source will be retained in a cache directory' __fish_brew_complete_arg 'install' -l debug-symbols -d 'Generate debug symbols on build. Source will be retained in a cache directory'

View File

@ -1091,7 +1091,7 @@ _brew_instal() {
'(--cask)--bottle-arch[Optimise bottles for the specified architecture rather than the oldest architecture supported by the version of macOS the bottles are built on]' \ '(--cask)--bottle-arch[Optimise bottles for the specified architecture rather than the oldest architecture supported by the version of macOS the bottles are built on]' \
'(--cask --build-from-source --force-bottle)--build-bottle[Prepare the formula for eventual bottling during installation, skipping any post-install steps]' \ '(--cask --build-from-source --force-bottle)--build-bottle[Prepare the formula for eventual bottling during installation, skipping any post-install steps]' \
'(--cask --build-bottle --force-bottle)--build-from-source[Compile formula from source even if a bottle is provided. Dependencies will still be installed from bottles if they are available]' \ '(--cask --build-bottle --force-bottle)--build-from-source[Compile formula from source even if a bottle is provided. Dependencies will still be installed from bottles if they are available]' \
'(--cask)--cc[Attempt to compile using the specified compiler, which should be the name of the compiler'\''s executable, e.g. `gcc-7` for GCC 7. In order to use LLVM'\''s clang, specify `llvm_clang`. To use the Apple-provided clang, specify `clang`. This option will only accept compilers that are provided by Homebrew or bundled with macOS. Please do not file issues if you encounter errors while using this option]' \ '(--cask)--cc[Attempt to compile using the specified compiler, which should be the name of the compiler'\''s executable, e.g. `gcc-9` for GCC 9. In order to use LLVM'\''s clang, specify `llvm_clang`. To use the Apple-provided clang, specify `clang`. This option will only accept compilers that are provided by Homebrew or bundled with macOS. Please do not file issues if you encounter errors while using this option]' \
'(--formula)--colorpickerdir[Target location for Color Pickers (default: `~/Library/ColorPickers`)]' \ '(--formula)--colorpickerdir[Target location for Color Pickers (default: `~/Library/ColorPickers`)]' \
'--debug[If brewing fails, open an interactive debugging session with access to IRB or a shell inside the temporary build directory]' \ '--debug[If brewing fails, open an interactive debugging session with access to IRB or a shell inside the temporary build directory]' \
'(--cask)--debug-symbols[Generate debug symbols on build. Source will be retained in a cache directory]' \ '(--cask)--debug-symbols[Generate debug symbols on build. Source will be retained in a cache directory]' \
@ -1149,7 +1149,7 @@ _brew_install() {
'(--cask)--bottle-arch[Optimise bottles for the specified architecture rather than the oldest architecture supported by the version of macOS the bottles are built on]' \ '(--cask)--bottle-arch[Optimise bottles for the specified architecture rather than the oldest architecture supported by the version of macOS the bottles are built on]' \
'(--cask --build-from-source --force-bottle)--build-bottle[Prepare the formula for eventual bottling during installation, skipping any post-install steps]' \ '(--cask --build-from-source --force-bottle)--build-bottle[Prepare the formula for eventual bottling during installation, skipping any post-install steps]' \
'(--cask --build-bottle --force-bottle)--build-from-source[Compile formula from source even if a bottle is provided. Dependencies will still be installed from bottles if they are available]' \ '(--cask --build-bottle --force-bottle)--build-from-source[Compile formula from source even if a bottle is provided. Dependencies will still be installed from bottles if they are available]' \
'(--cask)--cc[Attempt to compile using the specified compiler, which should be the name of the compiler'\''s executable, e.g. `gcc-7` for GCC 7. In order to use LLVM'\''s clang, specify `llvm_clang`. To use the Apple-provided clang, specify `clang`. This option will only accept compilers that are provided by Homebrew or bundled with macOS. Please do not file issues if you encounter errors while using this option]' \ '(--cask)--cc[Attempt to compile using the specified compiler, which should be the name of the compiler'\''s executable, e.g. `gcc-9` for GCC 9. In order to use LLVM'\''s clang, specify `llvm_clang`. To use the Apple-provided clang, specify `clang`. This option will only accept compilers that are provided by Homebrew or bundled with macOS. Please do not file issues if you encounter errors while using this option]' \
'(--formula)--colorpickerdir[Target location for Color Pickers (default: `~/Library/ColorPickers`)]' \ '(--formula)--colorpickerdir[Target location for Color Pickers (default: `~/Library/ColorPickers`)]' \
'--debug[If brewing fails, open an interactive debugging session with access to IRB or a shell inside the temporary build directory]' \ '--debug[If brewing fails, open an interactive debugging session with access to IRB or a shell inside the temporary build directory]' \
'(--cask)--debug-symbols[Generate debug symbols on build. Source will be retained in a cache directory]' \ '(--cask)--debug-symbols[Generate debug symbols on build. Source will be retained in a cache directory]' \

View File

@ -20,9 +20,9 @@ dependencies that you built on 10.8 or earlier. If you're reading this page beca
you were directed here by a build error, you can most likely fix the issue if you were directed here by a build error, you can most likely fix the issue if
you reinstall all the dependencies of the package you're trying to build. you reinstall all the dependencies of the package you're trying to build.
Example install using GCC 7: Example install using GCC 9:
```sh ```sh
brew install gcc@7 brew install gcc@9
brew install --cc=gcc-7 <formula> brew install --cc=gcc-9 <formula>
``` ```

View File

@ -5,7 +5,7 @@ Homebrew depends on having an up-to-date version of Xcode because it comes with
Rather than merging formulae for either of these cases at this time, we're listing them on this page. If you come up with a formula for a new version of GCC or cross-compiler suite, please link to it here. Rather than merging formulae for either of these cases at this time, we're listing them on this page. If you come up with a formula for a new version of GCC or cross-compiler suite, please link to it here.
- Homebrew provides a `gcc` formula for use with Xcode 4.2+. - Homebrew provides a `gcc` formula for use with Xcode 4.2+.
- Homebrew provides older GCC formulae, e.g. `gcc@7`. - Homebrew provides older GCC formulae, e.g. `gcc@9`.
- Homebrew provides some cross-compilers and toolchains, but these are named to avoid clashing with the default tools, e.g. `i686-elf-gcc`, `x86_64-elf-gcc`. - Homebrew provides some cross-compilers and toolchains, but these are named to avoid clashing with the default tools, e.g. `i686-elf-gcc`, `x86_64-elf-gcc`.
- Homebrew provides LLVM's Clang, which is bundled with the `llvm` formula. - Homebrew provides LLVM's Clang, which is bundled with the `llvm` formula.
- [RISC-V](https://github.com/riscv/homebrew-riscv) provides the RISC-V toolchain including binutils and GCC. - [RISC-V](https://github.com/riscv/homebrew-riscv) provides the RISC-V toolchain including binutils and GCC.

View File

@ -587,7 +587,7 @@ upgrade *`formula`* if it is already installed but outdated.
`--cc` `--cc`
: Attempt to compile using the specified *`compiler`*, which should be the name : Attempt to compile using the specified *`compiler`*, which should be the name
of the compiler's executable, e.g. `gcc-7` for GCC 7. In order to use LLVM's of the compiler's executable, e.g. `gcc-9` for GCC 9. In order to use LLVM's
clang, specify `llvm_clang`. To use the Apple-provided clang, specify `clang`. clang, specify `llvm_clang`. To use the Apple-provided clang, specify `clang`.
This option will only accept compilers that are provided by Homebrew or This option will only accept compilers that are provided by Homebrew or
bundled with macOS. Please do not file issues if you encounter errors while bundled with macOS. Please do not file issues if you encounter errors while

View File

@ -2,7 +2,7 @@
## Install previous versions of formulae ## Install previous versions of formulae
Some formulae in `homebrew/core` are made available as [versioned formulae](Versions.md) using a special naming format, e.g. `gcc@7`. If the version you're looking for isn't available, consider using `brew extract`. Some formulae in `homebrew/core` are made available as [versioned formulae](Versions.md) using a special naming format, e.g. `gcc@9`. If the version you're looking for isn't available, consider using `brew extract`.
## Quickly remove something from Homebrew's prefix ## Quickly remove something from Homebrew's prefix

View File

@ -1,6 +1,6 @@
# Formulae Versions # Formulae Versions
[homebrew/core](https://github.com/homebrew/homebrew-core) supports multiple versions of formulae by using a special naming format. For example, the formula for GCC 6 is named `gcc@6.rb` and begins with `class GccAT6 < Formula`. [homebrew/core](https://github.com/homebrew/homebrew-core) supports multiple versions of formulae by using a special naming format. For example, the formula for GCC 9 is named `gcc@9.rb` and begins with `class GccAT9 < Formula`.
## Acceptable versioned formulae ## Acceptable versioned formulae

View File

@ -368,7 +368,7 @@ An unsupported Homebrew development option to skip installing any dependencies o
Install the dependencies with specified options but do not install the formula itself\. Install the dependencies with specified options but do not install the formula itself\.
.TP .TP
\fB\-\-cc\fP \fB\-\-cc\fP
Attempt to compile using the specified \fIcompiler\fP, which should be the name of the compiler\[u2019]s executable, e\.g\. \fBgcc\-7\fP for GCC 7\. In order to use LLVM\[u2019]s clang, specify \fBllvm_clang\fP\&\. To use the Apple\-provided clang, specify \fBclang\fP\&\. This option will only accept compilers that are provided by Homebrew or bundled with macOS\. Please do not file issues if you encounter errors while using this option\. Attempt to compile using the specified \fIcompiler\fP, which should be the name of the compiler\[u2019]s executable, e\.g\. \fBgcc\-9\fP for GCC 9\. In order to use LLVM\[u2019]s clang, specify \fBllvm_clang\fP\&\. To use the Apple\-provided clang, specify \fBclang\fP\&\. This option will only accept compilers that are provided by Homebrew or bundled with macOS\. Please do not file issues if you encounter errors while using this option\.
.TP .TP
\fB\-s\fP, \fB\-\-build\-from\-source\fP \fB\-s\fP, \fB\-\-build\-from\-source\fP
Compile \fIformula\fP from source even if a bottle is provided\. Dependencies will still be installed from bottles if they are available\. Compile \fIformula\fP from source even if a bottle is provided\. Dependencies will still be installed from bottles if they are available\.