Opened 7 years ago

Last modified 4 years ago

#13157 closed defect

inline_fortran is STILL broken on OS X — at Version 3

Reported by: benjaminfjones Owned by: was
Priority: major Milestone: sage-5.4
Component: interfaces Keywords: fortran osx
Cc: kcrisman, mvngu, flawrence Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Description (last modified by jdemeyer)

Despite #7465 being closed as "worksforme", the following snippet in the notebook in Sage-5.2 on Mac OS X 10.7.4 fails.

%fortran          	
C FILE: FIB1.F
      SUBROUTINE FIB(A,N)
C
C     CALCULATE FIRST N FIBONACCI NUMBERS
C
      INTEGER N
      REAL*8 A(N)
      DO I=1,N
         IF (I.EQ.1) THEN
            A(I) = 0.0D0
         ELSEIF (I.EQ.2) THEN
            A(I) = 1.0D0
         ELSE 
            A(I) = A(I-1) + A(I-2)
         ENDIF
      ENDDO
      END
C END FILE FIB1.F

Here is the error in full: http://pastebin.com/iVBkjckp

Looking through the convoluted ticket relationships (#7465, #8010, etc..) it looks like numpy spkg was patched to fix the problem with the -shared link flag at some point, and sometime later the numpy was upgraded (perhaps making the patch unnecessary (??)) and now it might be some other issue having to do with the gcc/gfortran spkg. Just a guess.

Change History (4)

comment:1 Changed 7 years ago by kcrisman

Umm, there is something really odd here. The flags passed seem to indicate something went quite wrong. For instance, one bit is

/var/folders/f4/881mfg491yxdf3zx37ynf5580000gn/T/tmpSLdvBd/Users/bael/.sage/temp/Baels_MacBook_Air.local/2689/tmp_0.o -LUsing built-in specs. COLLECT_GCC=gfortran COLLECT_LTO_WRAPPER=/Users/bael/sage/sage-5.0.1/local/bin/../libexec/gcc/x86_64-apple-darwin10.8.0/4.6.3/lto-wrapper /Users/bael/sage/sage-5.0.1/local/bin/../lib/gcc/x86_64-apple-darwin10.8.0/4.6.3 -l gfortran -o ./fortran_module_0.so -l gfortran -shared-libgcc

What the heck?

-LUsing built-in specs. COLLECT_GCC=gfortran 

No wonder the errors look like

gfortran: error: built-in: No such file or directory
gfortran: error: specs.: No such file or directory
gfortran: error: COLLECT_GCC=gfortran: No such file or directory

I don't know how that verbiage got passed there, though.

Anyway, since

/Users/bael/sage/sage-5.0.1/local/bin/../lib/gcc/x86_64-apple-darwin10.8.0/4.6.3" -lgfortran -o ./fortran_module_0.so" failed with exit status 1

that means it's no surprise that at the end

    os.unlink(name + '.so')
OSError: [Errno 2] No such file or directory: 'fortran_module_0.so'

though that is just a symptom.

Does ticket:8010:attachment:trac-8010_numpy.patch (sorry, can't get the link right) look like it might solve it for you, just on the off chance? One would have to make a new spkg, of course. But the patch was never applied, to my knowledge.

comment:2 Changed 7 years ago by kcrisman

Wait, there is no sage_fortran any more, so that doesn't make sense to apply anyway. And the current numpy code has

'linker_so'    : [None, "-g", "-Wall"],

so the shared business can't be the issue, or at least not in exactly the same way.

I can also confirm that this is not just a Lion issue; the same happens on 10.6.

comment:3 Changed 7 years ago by jdemeyer

  • Description modified (diff)
  • Summary changed from %fortran in the notebook (and fortran.eval on command line) is STILL broken on OS X to inline_fortran is STILL broken on OS X

Changed 7 years ago by jdemeyer

Note: See TracTickets for help on using tickets.