octave should have matching compilers availble #201376
Open
Description
brew gist-logs <formula>
link OR brew config
AND brew doctor
output
% brew config
HOMEBREW_VERSION: 4.4.12
ORIGIN: https://github.com/Homebrew/brew
HEAD: 3001afe88112c13b5aafdd92e097680897060881
Last commit: 24 hours ago
Branch: stable
Core tap JSON: 16 Dec 15:42 UTC
Core cask tap JSON: 16 Dec 15:42 UTC
HOMEBREW_PREFIX: /opt/homebrew
HOMEBREW_CASK_OPTS: []
HOMEBREW_MAKE_JOBS: 14
Homebrew Ruby: 3.3.6 => /opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.3.6/bin/ruby
CPU: 14-core 64-bit arm_brava
Clang: 16.0.0 build 1600
Git: 2.39.5 => /Applications/Xcode.app/Contents/Developer/usr/bin/git
Curl: 8.7.1 => /usr/bin/curl
macOS: 15.2-arm64
CLT: 16.2.0.0.1.1733547573
Xcode: 16.2
Rosetta 2: false
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)?
For users to be able to install octave packages, the octave should be compiled with the same C/C+++/Fortran compilers
as on their systems. Currently there is a mismatch (at least for darwin24 systems), see e.g.
Homebrew/brew#18943 (comment)
What happened (include all command output)?
octave:1> pkg install -forge -verbose control
downloading tarball(s) from:
- https://packages.octave.org/download/control-4.1.0.tar.gz
mkdir (/var/folders/ds/5xsh6x4914x78jswflyz20c40000gn/T/oct-fvBVdD)
untar (/var/folders/ds/5xsh6x4914x78jswflyz20c40000gn/T/control-4.1.0-JcHsDy.tar.gz, /var/folders/ds/5xsh6x4914x78jswflyz20c40000gn/T/oct-fvBVdD)
checking for mkoctfile... /opt/homebrew/Cellar/octave/9.3.0/bin/mkoctfile-9.3.0 --verbose
checking for octave-config... /opt/homebrew/Cellar/octave/9.3.0/bin/octave-config-9.3.0
...<deleted>...
clang++ -std=gnu++17 -c -fPIC -I/opt/homebrew/Cellar/octave/9.3.0/include/octave-9.3.0/octave/.. -I/opt/homebrew/Cellar/octave/9.3.0/include/octave-9.3.0/octave -I/opt/homebrew/Cellar/octave/9.3.0/include -pthread -g -O2 -Wall -Wno-deprecated-declarations common.cc -o /var/folders/ds/5xsh6x4914x78jswflyz20c40000gn/T//oct-DD7Qiz.o
clang++ -std=gnu++17 -I/opt/homebrew/Cellar/octave/9.3.0/include/octave-9.3.0/octave/.. -I/opt/homebrew/Cellar/octave/9.3.0/include/octave-9.3.0/octave -I/opt/homebrew/Cellar/octave/9.3.0/include -pthread -g -O2 -Wall -Wno-deprecated-declarations -o __control_slicot_functions__.oct /var/folders/ds/5xsh6x4914x78jswflyz20c40000gn/T//oct-pYUwFC.o /var/folders/ds/5xsh6x4914x78jswflyz20c40000gn/T//oct-DD7Qiz.o slicotlibrary.a -bundle -undefined dynamic_lookup -bind_at_load -bundle_loader /opt/homebrew/Cellar/octave/9.3.0/bin/octave-9.3.0 -L/opt/homebrew/Cellar/octave/9.3.0/lib/octave/9.3.0 -L/opt/homebrew/Cellar/octave/9.3.0/lib -bundle -undefined dynamic_lookup -bind_at_load -bundle_loader /opt/homebrew/Cellar/octave/9.3.0/bin/octave-9.3.0 -L/opt/homebrew/opt/openblas/lib -lopenblas -L/opt/homebrew/opt/gcc/bin/../lib/gcc/current/gcc/aarch64-apple-darwin23/14 -L/opt/homebrew/opt/gcc/bin/../lib/gcc/current/gcc -L/opt/homebrew/opt/gcc/bin/../lib/gcc/current/gcc/aarch64-apple-darwin23/14/../../.. -lemutls_w -lheapt_w -lgfortran -lquadmath -loctinterp -loctave
ld: warning: duplicate -bundle_loader option, '/opt/homebrew/Cellar/octave/9.3.0/bin/octave-9.3.0' ignored
ld: warning: search path '/opt/homebrew/opt/gcc/bin/../lib/gcc/current/gcc/aarch64-apple-darwin23/14' not found
ld: warning: search path '/opt/homebrew/opt/gcc/bin/../lib/gcc/current/gcc/aarch64-apple-darwin23/14/../../..' not found
ld: library 'emutls_w' not found
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [__control_slicot_functions__.oct] Error 1
error: pkg: error running 'make' for the control package
error: called from
configure_make at line 117 column 9
install at line 202 column 7
pkg at line 619 column 9
octave:2>
What did you expect to happen?
With self-compiled octave binary on the same system, it works fine:
clang++ -std=gnu++17 -I/usr/local/include/octave-10.0.0/octave/.. -I/usr/local/include/octave-10.0.0/octave -I/usr/local/include -pthread -ggdb3 -O2 -march=native -mcpu=native -flto=thin -Wall -Wno-deprecated-declarations -o __control_slicot_functions__.oct /var/folders/ds/5xsh6x4914x78jswflyz20c40000gn/T//oct-wQ6p9k.o /var/folders/ds/5xsh6x4914x78jswflyz20c40000gn/T//oct-zBcofN.o slicotlibrary.a -bundle -undefined dynamic_lookup -bind_at_load -L/usr/local/lib -bundle -undefined dynamic_lookup -bind_at_load -L/opt/homebrew/opt/openblas/lib -lopenblas -L/opt/homebrew/lib -L/opt/homebrew/Cellar/gcc/14.2.0_1/bin/../lib/gcc/current/gcc/aarch64-apple-darwin24/14 -L/opt/homebrew/Cellar/gcc/14.2.0_1/bin/../lib/gcc/current/gcc -L/opt/homebrew/Cellar/gcc/14.2.0_1/bin/../lib/gcc/current/gcc/aarch64-apple-darwin24/14/../../.. -lemutls_w -lheapt_w -lgfortran -lquadmath -L/opt/homebrew/lib -bundle_loader /usr/local/bin/octave-10.0.0
copyfile /var/folders/ds/5xsh6x4914x78jswflyz20c40000gn/T/oct-rC69gC/control-4.1.0/src/__control_helper_functions__.oct /var/folders/ds/5xsh6x4914x78jswflyz20c40000gn/T/oct-rC69gC/control-4.1.0/src/__control_slicot_functions__.oct /var/folders/ds/5xsh6x4914x78jswflyz20c40000gn/T/oct-rC69gC/control-4.1.0/inst/aarch64-apple-darwin24.1.0-api-v59
The control package was installed into the directory
/Users/dmitri/.local/share/octave/api-v59/packages/control-4.1.0.
Step-by-step reproduction instructions (by running brew
commands)
see above