OK, here goes:
http://boxen.math.washington.edu/home/dima/patches/gfortran-macosx.tgz
Instructions are included.
To apply patches, follow instructions on
http://sagemath.org/doc/developer/walk_through.html#reviewing-patches-with-queues

I tested that is builds Sage 4.5.3 on MacOSX 10.5 ppc (32 bit,
PowerBook G4).
("make test" is still running, I will post results when it is
complete)

It will be especially interesting to see this working on 10.4 and
10.6, and on 10.5 intel. And on 64bit.

Dima

On Sep 12, 3:33 pm, Dima Pasechnik <dimp...@gmail.com> wrote:
> On Sep 12, 2:38 am, Dima Pasechnik <dimp...@gmail.com> wrote:
>
> > I got stuck at scipy:
>
> I have fixed this by making changes in numpy's patch for gnu.py.
> The complete build of Sage-4.5.3.has successfully finished now.
> I'll post the necessary patched, and the test results, shortly.
>
>
>
> > In the log below, the line beginning with
> > "sage_fortran -Wall -shared -Wall -shared -undefined dynamic_lookup -
> > bundle..."
> > definitely looks weird, as -shared option should not be there...
> > (I must also say that the error message looks weird, too, as there is
> > no option -dynamiclib anywhere to
> > be see. However, it does react on -shared (which has no effect on
> > MacOSX, IMHO), as I see by running
> > the offending command by hand, in the spkg/build directory, with -
> > shared removed!)
>
> > I gather  that these options are set when building numpy.
> > And I gather that numpy doesn't quite recognize the compiler/linker,
> > as it should not be putting these -shared things there, even less
> > two times...
>
> > Any idea?
>
> > Here are the specs of sage_fortran:
>
> > sage_fortran  -v
> > Using built-in specs.
> > Target: powerpc-apple-darwin9
> > Configured with: /Builds/apple/gcc_42-5577/build/obj/src/configure --
> > disable-checking --prefix=/usr --mandir=/usr/share/man --enable-
> > languages=c,objc,c++,obj-c++,fortran --program-transform-name=/^[cg]
> > [^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin9 --
> > with-gxx-include-dir=/usr/include/c++/4.0.0 --program-prefix= --
> > host=powerpc-apple-darwin9 --target=powerpc-apple-darwin9
> > Thread model: posix
> > gcc version 4.2.1 (Apple Inc. build 5577)
>
> > install.log:
> > ...
> > building 'scipy.fftpack._fftpack' extension
> > compiling C sources
> > C compiler: gcc -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -
> > Wall -Wstrict-prototy
> > pes
>
> > creating build/temp.macosx-10.5-ppc-2.6/build
> > creating build/temp.macosx-10.5-ppc-2.6/build/src.macosx-10.5-ppc-2.6
> > creating build/temp.macosx-10.5-ppc-2.6/build/src.macosx-10.5-ppc-2.6/
> > scipy
> > creating build/temp.macosx-10.5-ppc-2.6/build/src.macosx-10.5-ppc-2.6/
> > scipy/fftpack
> > compile options: '-Ibuild/src.macosx-10.5-ppc-2.6 -I/usr/local/src/
> > sage/sage-4.5.3/local/l
> > ib/python2.6/site-packages/numpy/core/include -I/usr/local/src/sage/
> > sage-4.5.3/local/inclu
> > de/python2.6 -c'
> > gcc: build/src.macosx-10.5-ppc-2.6/fortranobject.c
> > gcc: scipy/fftpack/src/drfft.c
> > gcc: scipy/fftpack/src/zfftnd.c
> > gcc: scipy/fftpack/src/zrfft.c
> > gcc: scipy/fftpack/src/zfft.c
> > gcc: build/src.macosx-10.5-ppc-2.6/scipy/fftpack/_fftpackmodule.c
> > sage_fortran -Wall -shared -Wall -shared -undefined dynamic_lookup -
> > bundle build/temp.maco
> > sx-10.5-ppc-2.6/build/src.macosx-10.5-ppc-2.6/scipy/fftpack/
> > _fftpackmodule.o build/temp.ma
> > cosx-10.5-ppc-2.6/scipy/fftpack/src/zfft.o build/temp.macosx-10.5-
> > ppc-2.6/scipy/fftpack/sr
> > c/drfft.o build/temp.macosx-10.5-ppc-2.6/scipy/fftpack/src/zrfft.o
> > build/temp.macosx-10.5-
> > ppc-2.6/scipy/fftpack/src/zfftnd.o build/temp.macosx-10.5-ppc-2.6/
> > build/src.macosx-10.5-pp
> > c-2.6/fortranobject.o -L/usr/lib/gcc/powerpc-apple-darwin9/4.2.1 -
> > Lbuild/temp.macosx-10.5-
> > ppc-2.6 -ldfftpack -lgfortran -o build/lib.macosx-10.5-ppc-2.6/scipy/
> > fftpack/_fftpack.so
> > powerpc-apple-darwin9-gfortran-4.2.1: -bundle not allowed with -
> > dynamiclib
> > powerpc-apple-darwin9-gfortran-4.2.1: -bundle not allowed with -
> > dynamiclib
> > error: Command "sage_fortran -Wall -shared -Wall -shared -undefined
> > dynamic_lookup -bundle
> >  build/temp.macosx-10.5-ppc-2.6/build/src.macosx-10.5-ppc-2.6/scipy/
> > fftpack/_fftpackmodule
> > .o build/temp.macosx-10.5-ppc-2.6/scipy/fftpack/src/zfft.o build/
> > temp.macosx-10.5-ppc-2.6/
> > scipy/fftpack/src/drfft.o build/temp.macosx-10.5-ppc-2.6/scipy/fftpack/
> > src/zrfft.o build/t
> > emp.macosx-10.5-ppc-2.6/scipy/fftpack/src/zfftnd.o build/
> > temp.macosx-10.5-ppc-2.6/build/sr
> > c.macosx-10.5-ppc-2.6/fortranobject.o -L/usr/lib/gcc/powerpc-apple-
> > darwin9/4.2.1 -Lbuild/t
> > emp.macosx-10.5-ppc-2.6 -ldfftpack -lgfortran -o build/lib.macosx-10.5-
> > ppc-2.6/scipy/fftpa
> > ck/_fftpack.so" failed with exit status 1
> > Error building scipy.
>
> > On Sep 11, 4:16 am, kcrisman <kcris...@gmail.com> wrote:
>
> > > On Sep 10, 2:31 pm, Dima Pasechnik <dimp...@gmail.com> wrote:
>
> > > > On Sep 11, 1:31 am, kcrisman <kcris...@gmail.com> wrote:
>
> > > > > > Buthttp://r.research.att.com/tools/#gcc42provideshttp://r.research.att.c...
> > > > > > which will do the installation of "10.4u", whatever this means,
>
> > > > > Yeah, I'm not sure what this is either,
>
> > > > > > Apple's SDK with gcc42 and gfortran42.
>
> > > > > > So yes, it's the missing gcc42 for MacOSX 10.4, u(nstable?)
> > > > > > IMHO for that few 10.4 systems that are left around, it's good 
> > > > > > enough
> > > > > > - it's certainly no worse than using some rather
> > > > > > old (4.0) version of gcc...
>
> > > > > Do you think it will be possible to install this side-by-side with the
> > > > > Xcode?  I'm just scared that I'll hose my compiler by downloading
> > > > > this :(
>
> > > > yes, I think it is jolly possible; it's just a tar file, so you can
> > > > have a look what you get. As far as I can see no Xcode files get
> > > > overwritten.
>
> > > > > > > but I would be very
> > > > > > > happy if that were the case.  But ADC says "This release provides
> > > > > > > additional GCC and LLVM compiler options, general bug fixes, and 
> > > > > > > must
> > > > > > > be installed on Leopard, Mac OS X 10.5.0 and higher."  And in the
> > > > > > > documentation it says "Xcode 3.1.2 is compatible with Intel and
> > > > > > > PowerPC Macs running Mac OS X 10.5 Leopard."  You can develop for
> > > > > > > Tiger with it (even for Panther!) but can't actually run it
> > > > > > > (apparently) on Tiger.  Also, one apparently can't even try, as 
> > > > > > > only
> > > > > > > Leopard supports having multiple Xcode installations.
>
> > > > > > > :(
>
> > > > > > > > and ships gcc 4.2 as well as gcc 4.0.
>
> > > > > > > Just on the off chance you've tried this successfully... Is it
> > > > > > > relatively trivial to get it to use gcc 4.2 only?  I would be
> > > > > > > comfortable with requiring *developers* to have a later Xcode
>
> > > > > > It's trivial (on 10.5, but same should certainly apply to 10.4u).
> > > > > > E.g one can change the links in /usr/bin manually (i.e. gcc there 
> > > > > > is a
> > > > > > link to gcc4.0, so you change it to gcc4.2, and the same for cc and 
> > > > > > g+
> > > > > > +).
>
> > > > > Ok, you've already lost me at "change the links in /usr/bin manually",
> > > > > though maybe I can figure it out.  
>
> > > > on the Xcode version I have (3.1.2) gcc, etc are just symbolic links:
> > > > $ ls -l /usr/bin/gcc*
> > > > lrwxr-xr-x  1 root  wheel       7 Sep 10 17:50 /usr/bin/gcc -> gcc-4.2
> > > > -rwxr-xr-x  1 root  wheel   93088 Feb  5  2009 /usr/bin/gcc-4.0
> > > > -rwxr-xr-x  1 root  wheel  105680 Jul  7  2009 /usr/bin/gcc-4.2
>
> > > > $ ls -l /usr/bin/*fort*
> > > > lrwxr-xr-x  1 root  wheel      12 Sep 10 17:55 /usr/bin/gfortran ->
> > > > gfortran-4.2
> > > > -rwxr-xr-x  1 root  wheel   96136 Jan 26  2010 /usr/bin/gfortran-4.2
> > > > -rwxr-xr-x  1 root  wheel  519200 Jan 26  2010 /usr/bin/i686-apple-
> > > > darwin9-gfortran-4.2.1
> > > > -rwxr-xr-x  1 root  wheel  523296 Jan 26  2010 /usr/bin/powerpc-apple-
> > > > darwin9-gfortran-4.2.1
>
> > > > In order to get this, I did
> > > > cd /usr/bin
> > > > sudo ln -sf gcc-4.2 gcc
> > > > sudo ln -sf gcc-4.2 cc
> > > > sudo ln -sf g++-4.2 g++
> > > > sudo ln -sf gfortran-4.2 gfortran
>
> > > > That's it. (I don't know how to set this up in Xcode's GUI, but it's
> > > > not needed for Sage).
> > > > There are other ways: e.g. you can put these links to gcc-4.2 etc to
> > > > another directory that comes ahead of /usr/bin
> > > > in your PATH. Then, as long as your PATH is set this way, calling gcc
> > > > would call gcc-4.2
>
> > > > In order to switch back to gcc4.0 I  can do
> > > > cd /usr/bin
> > > > sudo ln -sf gcc-4.0 gcc
> > > > sudo ln -sf gcc-4.0 cc
> > > > sudo ln -sf g++-4.0 g++
>
> > > > Well, if you managed to nuke your Xcode you could always reinstall...
>
> > > > > But more practically, would I have
> > > > > to do some variable exporting before doing Sage?  Or would this alone
> > > > > make everything go solidly?  
> > > > > What about for the Fortran part?
>
> > > > the above fixes it. I noticed one minor problem with this gfortran:
> > > > one needs to specify
> > > > the location of libgfortran.a when using it as a linker, but that's
> > > > also trivially done.
>
> > > > > Or, again, maybe we could provide the 4.2 binary and the gfortran
> > > > > binary directly inside Sage, and use that for all gcc and cc and g++
> > > > > and whatever else there is that I don't know about...
>
> > > > > Anyway, changing how we support a particular platform probably
> > > > > deserves more discussion than its received on this thread, so for now
> > > > > I'll wait to see if it worked for you to use this toolkit to build
> > > > > Sage successfully (e.g. 4.6.alpha0) and then maybe I'll take a leap on
> > > > > *one* of my 10.4 boxes to see if it works.
>
> > > > Sure. I'll keep you posted on this.
>
> > > Thanks.  This certainly all sounds promising, and I can try it myself
> > > if it works for you.
>
> > > - kcrisman

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to