diff --git a/Library/Homebrew/cmd/install.rb b/Library/Homebrew/cmd/install.rb index 27a153d575..8a7c0fc80d 100644 --- a/Library/Homebrew/cmd/install.rb +++ b/Library/Homebrew/cmd/install.rb @@ -63,7 +63,7 @@ module Homebrew }], [:flag, "--cc=", { description: "Attempt to compile using the specified , 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 " \ "accept compilers that are provided by Homebrew or bundled with macOS. Please do not " \ "file issues if you encounter errors while using this option.", diff --git a/Library/Homebrew/test/ENV_spec.rb b/Library/Homebrew/test/ENV_spec.rb index 78649f3e83..1ee1ac45ff 100644 --- a/Library/Homebrew/test/ENV_spec.rb +++ b/Library/Homebrew/test/ENV_spec.rb @@ -129,8 +129,8 @@ RSpec.describe "ENV" do describe "#compiler" do it "allows switching compilers" do - subject.public_send(:"gcc-6") - expect(subject.compiler).to eq("gcc-6") + subject.public_send(:"gcc-9") + expect(subject.compiler).to eq("gcc-9") end end @@ -179,16 +179,11 @@ RSpec.describe "ENV" do end describe "#cxx11" do - it "supports gcc-5" do - env["HOMEBREW_CC"] = "gcc-5" - env.cxx11 - expect(env["HOMEBREW_CCCFG"]).to include("x") - end - - example "supports gcc-6" do - env["HOMEBREW_CC"] = "gcc-6" + it "supports gcc-11" do + env["HOMEBREW_CC"] = "gcc-11" env.cxx11 expect(env["HOMEBREW_CCCFG"]).to include("x") + expect(env["HOMEBREW_CCCFG"]).not_to include("g") end it "supports clang" do diff --git a/Library/Homebrew/test/compiler_selector_spec.rb b/Library/Homebrew/test/compiler_selector_spec.rb index c0d0731358..e95e4c2e72 100644 --- a/Library/Homebrew/test/compiler_selector_spec.rb +++ b/Library/Homebrew/test/compiler_selector_spec.rb @@ -14,10 +14,10 @@ RSpec.describe CompilerSelector do before do allow(versions).to receive(:gcc_version) do |name| case name - when "gcc-7" then Version.new("7.1") - when "gcc-6" then Version.new("6.1") - when "gcc-5" then Version.new("5.1") - when "gcc-4.9" then Version.new("4.9.1") + when "gcc-12" then Version.new("12.1") + when "gcc-11" then Version.new("11.1") + when "gcc-10" then Version.new("10.1") + when "gcc-9" then Version.new("9.1") else Version::NULL end end @@ -29,68 +29,68 @@ RSpec.describe CompilerSelector do end 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) 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) - expect(selector.compiler).to eq("gcc-7") + expect(selector.compiler).to eq("gcc-12") 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) allow(Formulary).to receive(:factory) .with("gcc") - .and_return(instance_double(Formula, version: Version.new("6.0"))) - expect(selector.compiler).to eq("gcc-6") + .and_return(instance_double(Formula, version: Version.new("11.0"))) + expect(selector.compiler).to eq("gcc-11") 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) allow(Formulary).to receive(:factory) .with("gcc@11") - .and_return(instance_double(Formula, version: Version.new("5.0"))) - expect(selector.compiler).to eq("gcc-5") + .and_return(instance_double(Formula, version: Version.new("10.0"))) + expect(selector.compiler).to eq("gcc-10") 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(gcc: "5") - software_spec.fails_with(gcc: "7") + software_spec.fails_with(gcc: "10") + software_spec.fails_with(gcc: "12") allow(Formulary).to receive(:factory) .with("gcc@11") - .and_return(instance_double(Formula, version: Version.new("5.0"))) - expect(selector.compiler).to eq("gcc-6") + .and_return(instance_double(Formula, version: Version.new("10.0"))) + expect(selector.compiler).to eq("gcc-11") 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(:gcc) { version "6" } + software_spec.fails_with(:gcc) { version "11" } allow(Formulary).to receive(:factory) .with("gcc@11") - .and_return(instance_double(Formula, version: Version.new("5.0"))) - expect(selector.compiler).to eq("gcc-7") + .and_return(instance_double(Formula, version: Version.new("11.0"))) + expect(selector.compiler).to eq("gcc-12") 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(gcc: "7") { version "7.0" } - expect(selector.compiler).to eq("gcc-7") + software_spec.fails_with(gcc: "12") { version "12.0" } + expect(selector.compiler).to eq("gcc-12") 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(gcc: "7") { version "7.1" } - expect(selector.compiler).to eq("gcc-6") + software_spec.fails_with(gcc: "12") { version "12.1" } + expect(selector.compiler).to eq("gcc-11") end it "raises an error when gcc or llvm is missing (hash syntax)" do software_spec.fails_with(:clang) - software_spec.fails_with(gcc: "7") - software_spec.fails_with(gcc: "6") - software_spec.fails_with(gcc: "5") - software_spec.fails_with(gcc: "4.9") + software_spec.fails_with(gcc: "12") + software_spec.fails_with(gcc: "11") + software_spec.fails_with(gcc: "10") + software_spec.fails_with(gcc: "9") expect { selector.compiler }.to raise_error(CompilerSelectionError) end diff --git a/completions/fish/brew.fish b/completions/fish/brew.fish index ec7866e034..b770dd0c80 100644 --- a/completions/fish/brew.fish +++ b/completions/fish/brew.fish @@ -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-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 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 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' @@ -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-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 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 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' diff --git a/completions/zsh/_brew b/completions/zsh/_brew index 926ca009f6..9cc8bebb27 100644 --- a/completions/zsh/_brew +++ b/completions/zsh/_brew @@ -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 --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)--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`)]' \ '--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]' \ @@ -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 --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)--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`)]' \ '--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]' \ diff --git a/docs/C++-Standard-Libraries.md b/docs/C++-Standard-Libraries.md index 2eaa89050c..1f1fc094b4 100644 --- a/docs/C++-Standard-Libraries.md +++ b/docs/C++-Standard-Libraries.md @@ -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 reinstall all the dependencies of the package you're trying to build. -Example install using GCC 7: +Example install using GCC 9: ```sh -brew install gcc@7 -brew install --cc=gcc-7 +brew install gcc@9 +brew install --cc=gcc-9 ``` diff --git a/docs/Custom-GCC-and-cross-compilers.md b/docs/Custom-GCC-and-cross-compilers.md index c925583965..2dda2d54f5 100644 --- a/docs/Custom-GCC-and-cross-compilers.md +++ b/docs/Custom-GCC-and-cross-compilers.md @@ -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. - 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 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. diff --git a/docs/Manpage.md b/docs/Manpage.md index 0ecf329441..cb18f0b395 100644 --- a/docs/Manpage.md +++ b/docs/Manpage.md @@ -587,7 +587,7 @@ upgrade *`formula`* if it is already installed but outdated. `--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 + 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 diff --git a/docs/Tips-N'-Tricks.md b/docs/Tips-N'-Tricks.md index 5eac0dda85..3e82d45543 100644 --- a/docs/Tips-N'-Tricks.md +++ b/docs/Tips-N'-Tricks.md @@ -2,7 +2,7 @@ ## 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 diff --git a/docs/Versions.md b/docs/Versions.md index c34784a9a3..fa88794270 100644 --- a/docs/Versions.md +++ b/docs/Versions.md @@ -1,6 +1,6 @@ # 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 diff --git a/manpages/brew.1 b/manpages/brew.1 index 7e030850c9..71ecea3f69 100644 --- a/manpages/brew.1 +++ b/manpages/brew.1 @@ -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\. .TP \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 \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\.