Problem with Octave while doing "port upgrade outdated"
ryandesign at macports.org
Thu Dec 19 00:40:33 PST 2013
On Dec 18, 2013, at 21:12, Jerry <lanceboyle at qwest.net> wrote:
> Hi list,
> I ran port upgrade outdated today and it errored out on octave with this:
> ---> Configuring octave
> Error: Failed to configure octave, consult /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_math_octave/octave/work/octave-3.6.4/config.log
> Error: org.macports.configure for port octave returned: configure failure: command execution failed
> Please see the log file for port octave for details:
> Error: Unable to upgrade port: 1
> To report a bug, follow the instructions in the guide:
> I have attached the config.log and main.log files indicated in the above output.
> <Log Files.zip>
According to the main.log, it’s having fortran problems:
:info:configure checking whether LSAME is called correctly from Fortran... no
:info:configure checking whether ISAMAX is called correctly from Fortran... no
:info:configure checking whether SDOT is called correctly from Fortran... no
:info:configure checking whether DDOT is called correctly from Fortran... no
:info:configure checking whether CDOTU is called correctly from Fortran... no
:info:configure checking whether ZDOTU is called correctly from Fortran... no
:info:configure checking whether the integer size is correct... no
:info:configure configure: error: A BLAS library was detected but found incompatible with your Fortran 77 compiler settings.
From the config.log, we see why: all the tests go something like this:
configure:54810: checking whether the integer size is correct
configure:54844: /opt/local/bin/gfortran-mp-4.5 -o conftest -pipe -Os -m64 -arch x86_64 conftest.f -framework vecLib -lm >&5
f951: error: unrecognized command line option "-arch”
MacPorts should not be supplying -arch flags to compilers like fortran that do not understand them.
MacPorts bases its decision on whether -arch flags are supported on the value of configure.compiler. However ports like octave that use the new fortran recipe introduced somewhat recently do not set configure.compiler, thus we have a problem.
Setting configure.compiler in these ports is not the solution; the fortran recipe was introduced as a way to use a fortran compiler that did not involve changing the C/C++ compilers, since we do not want to change the C/C++ compilers on Mavericks or later, since changing the C++ compiler would introduce a different C++ library and mixing two different C++ libraries causes problems.
This needs to be filed in the issue tracker, if it’s not already there. I’m not sure what the solution is. Maybe MacPorts base needs to become smarter about when to use -arch flags, basing the decision on each individual compiler executable, rather than assuming the entire collection of compilers will be changed simultaneously.
More information about the macports-users