Differences between revisions 16 and 17
Revision 16 as of 2008-03-24 14:45:38
Size: 3750
Comment: add symmetrica on Solaris 9/10 and givaro-3.2.10.rc3.spkg issues on Solaris 9
Revision 17 as of 2008-03-24 18:22:28
Size: 3798
Comment:
Deletions are marked like this. Additions are marked like this.
Line 17: Line 17:
 * log2 isn't defined in math.h, but sunmath.h

The Solaris Port of Sage

This page tracks the Solaris port of Sage.

mabshoff is currently working on a 32 bit build on Solaris 9/Sparc. It should run on Solaris 10/Sparc.

Goal

  • Get Sage compiling and running with the minimum amount of external packages.
  • A 32 bit port using gcc 4.2.3. This requires a build from scratch of large portions of the GNU toolchain since the Sun supplied version are either buggy or plainly do not properly work
  • A 64 bit port using Sun's Forte compiler suite since it seems that there are fewer problems with that toolchain. This will likely be limited to Solaris 10, at least initially.

Open Issues

  • clisp fails to compile, but clisp 2.44.1 builds fine with gcc 3.4.6. It segfaults during "make check". This has been reported to clisp-devel, but no reaction so far
  • libfplll's Solaris workaround for round() is wrong for negative numbers. This was pointed out by Paul Zimmermann
  • Symmetrica seems to segfault on Sparc
  • givaro-3.2.10.rc3.spkg includes fenv.h in src/src/kernel/zpz/givgfq.inl - this is an issue on Solaris 9, but works fine on Solaris 10
  • log2 isn't defined in math.h, but sunmath.h

History of efforts

  • 2.11:
    • add Solaris 9 specific stdint.h workaround since Solaris 9 only supports a draft standard of C99. Solaris 10 has no such problem [#2660 - 32 bits only so far]
  • 2.10.4:
    • no significant changes
  • 2.10.3
    • start of integrating 64 bit build support - this will take a while to get in
  • 2.10.2:
    • same as 2.10.1 since the emphasis wasn't on this port this release.
  • 2.10.1:
    • drop in of stdint.h in $SAGE_LOCAL/include makes everything compile up to libfplll
    • fix libfplll build issue [spkg at 1957, merged in 2.10.1.rc2]
    • known issue: ATLAS screws up the combined Lapack+ATLAS dynamic library build. Maybe this is ld related?
    • because of the above issue numpy cannot be imported properly. Creating an liblapack.so manually from liblapack.a and rebuilding numpy makes numpy work

    • rpy doesn't build: error: conflicting types for 'uintptr_t' - probable cause is 32 bit vs 64 bit issues

    • fix rubiks build issue [spkg at 1959, merged in 2.10.1.rc2]
    • apply sage-lib build fixes from #1328 and #1329. Make sure to copy solaris_fix.h also into sage/rings [merged in 2.10.1.rc3]
  • 2.8.15:
    • The release has many Solaris specific fixes, but we need to fix #1325 before we will have something that can be used as a beta build.
  • 2.8.14:
    • new bug in matrix code that provides a special class for multivariate polynomials as entries causes segfaults all over the map.
    • int_fast64_t needs to be 4 bytes large, otherwise Sage throws an exception at startup. This needs fixing and actually causes doctest failures with the modp code
    • libfplll miscompiles, fix clear, but needs to be merged upstream
    • FLINT miscompiles, fixed upstream
    • lcalc miscompiles, fixes need to be integrated
    • clisp compiles, but segfaults. Solution: use 2.39 binary until issue is solved
    • cvxopt doesn't work (complex.h missing)
    • 2-3 patches are needed to sage.spkg - easy fixes, need to be merged upstream
    • failed doctest: number of partitions broken - maybe fpu precision issues
    • failed doctest: Schubert polynomial triggers error in symmetrica
  • 2.8.3:
    • worked reasonably well after workarounds, about 10-12 doctest failures
    • work arounds needed: clisp, lcalc
    • missing/failed spkgs: cvxopt
  • pre 2.8:
    • various people (David Kirby) worked on this, but I am not sure if Sage ever passed 100% of doctests

ToDo

  • make doctests pass 100% :)

  • open track tickets for all known issue
  • make building toolchain automatic
  • find way to make Sage aware of the toolchain