MATLAB: Gfortran not found by mex -setup

-setupfortranMATLABmex

I'm trying to set up mex compilers on R2016b. I have GCC 8.2.0 installed (same version for gcc-c++ and gfortran). I was able to set up the GCC C and C++ compilers without a problem. When I try mex -setup FORTRAN I get an error:
Error using mex
No supported compiler or SDK was found. For options, visit
http://www.mathworks.com/support/compilers/R2016b/glnxa64.html.
But gfortran is definitely there:
system('which gfortran')
/usr/bin/gfortran
ans =
0
I understand that this is several versions newer than the officially supported version, but in my experience MATLAB usually just gives you a warning about using an unsupported version of the compiler rather than flat-out refusing to use it. What could be causing MATLAB to fail in setting up the Fortran compiler?

Best Answer

Well, I found the solution embarrasingly quickly after continuing to search.
See this answer. The blog post linked in that answer gives instructions for applying the fix on a Mac; ignore all instructions about the Mac SDK.
Quick solution:
  • Edit /usr/local/MATLAB/R2016b/bin/glnxa64/mexopts/gfortran.xml
  • In the line beginning with "LINKLIBS=..." remove both references to gfortranbegin
  • Add -lgcc_s.1 to the end of that line inside the quotes
  • At the bottom of the file, within the GFORTRANBEGIN_LIBDIR block, replace 'dirExists name="$$"' with 'dirExists name="/"'.
  • Save the file and set up the Fortran compiler as normal. This worked for me on Gentoo using gfortran 8.2.0-r6.
Related Question