brew install (or upgrade, reinstall) a single, official formula (not cask)? If it's a general brew problem please file this issue at Homebrew/brew: https://github.com/Homebrew/brew/issues/new/choose. If it's a brew cask problem please file this issue at https://github.com/caskroom/homebrew-cask/issues/new. If it's a tap (e.g. Homebrew/homebrew-php) problem please file this issue at the tap.brew update and can still reproduce the problem?brew doctor, fixed all issues and can still reproduce the problem? I'm warned that the installation is outside /usr/local but I haven't "fixed" the issue since installing outside /usr/local is what triggered this issuebrew gist-logs <formula> (where <formula> is the name of the formula that failed) and included the output link? https://gist.github.com/andreasnoack/ce02bc62625bef597615a4e91aa97564brew gist-logs didn't work: ran brew config and brew doctor and included their output with your issue?Many Julia packages get their binary dependencies from a homebrew installation managed by the Julia package https://github.com/JuliaPackaging/Homebrew.jl. After the latest update of GCC, several users noticed (since it takes forever) that GCC was installed from source.
The command to reproduce this is
➜ ~ .julia/v0.6/Homebrew/deps/usr/bin/brew install --force-bottle gcc
==> Downloading https://homebrew.bintray.com/bottles/gcc-8.1.0.high_sierra.bottle.tar.gz
Already downloaded: /Users/andreasnoack/Library/Caches/Homebrew/gcc-8.1.0.high_sierra.bottle.tar.gz
==> Pouring gcc-8.1.0.high_sierra.bottle.tar.gz
Error: Failed changing install name in /Users/andreasnoack/.julia/v0.6/Homebrew/deps/usr/Cellar/gcc/8.1.0/lib/gcc/8/i386/libubsan.1.dylib
from @@HOMEBREW_CELLAR@@/gcc/8.1.0/lib/gcc/8/i386/libstdc++.6.dylib
to /Users/andreasnoack/.julia/v0.6/Homebrew/deps/usr/Cellar/gcc/8.1.0/lib/gcc/8/i386/libstdc++.6.dylib
Error: Updated load commands do not fit in the header of /Users/andreasnoack/.julia/v0.6/Homebrew/deps/usr/Cellar/gcc/8.1.0/lib/gcc/8/i386/libubsan.1.dylib. /Users/andreasnoack/.julia/v0.6/Homebrew/deps/usr/Cellar/gcc/8.1.0/lib/gcc/8/i386/libubsan.1.dylib needs to be relinked, possibly with -headerpad or -headerpad_max_install_names
Warning: Bottle installation failed: building from source.
and I tried with another fresh clone of homebrew so I think the issue is the path since bottle install works with my "system" homebrew installation.
The bottle block is:
bottle do
sha256 "283d21233301947b5fdfa832bc4b8f1d266b78729156c43b48ab771f345022b8" => :high_sierra
sha256 "0c4c66df38f02799b762d969634cd17f3edc973cf7d7b5349325c31e32e32e54" => :sierra
sha256 "a2b31d94e64afeec4912d65ad7a57a64995b0b7d11207be4f1b26253cdf7c8a3" => :el_capitan
end
Without a cellar :any_skip_relocation or cellar :any, it will be built from source when installed outside of /usr/local
Our CI programmatically determines if the bottle can be installed outside of /usr/local
Installing the bottle outside of /usr/local worked fine with GCC 7.3 so isn't it unintended that it doesn't work for 8.1?
This is now fixed if you brew update
This is now fixed if you
brew update
No. Just tried and the issue remains.
I'm getting the same issue on macOS 10.12.6, even after brew update.
Same issue on macOS 10.13.4.
same issue on Mac OS 10.13.5
Why is this issue closed? Still a serious problem effecting Macs trying to use HDF5, JLD, etc.
The gcc bottle is not marked as relocatable so we make no guarantees about --force-bottle working. We'd happily review a PR changing the formula in some way so that this doesn't happen but none of the maintainers are working on this and we don't just leave issues open no one is working on.
Is there any workaround to making HDF5, JLD etc. work on OSX besides compiling gcc8?
Our CI programmatically determines if the bottle can be installed outside of /usr/local
Where can the results of these CI runs be found? We need to determine what changed in the CI's attitude towards gcc between v7.3 and v8. This PR seems somewhat related: https://github.com/Homebrew/legacy-homebrew/pull/41568
@stillyslalom that's a red herring. Those particular checks have nothing to do with "Error: Updated load commands do not fit in the header" just with whether strings like /usr/local are found.
Good to know, but I'd still like to know where the results of the CI runs can be found.
@ilovezfs This still seems to be causing a lot of problems for folks, especially in Julia libraries that try and build (like HDF5.jl -- e.g. @denizyuret comment). Any chance this was closed prematurely?
https://github.com/Homebrew/homebrew-core/issues/27751#issuecomment-401712143
The gcc bottle is not marked as relocatable so we make no guarantees about --force-bottle working. We'd happily review a PR changing the formula in some way so that this doesn't happen but none of the maintainers are working on this and we don't just leave issues open no one is working on.
ok, thanks.
Most helpful comment
No. Just tried and the issue remains.