Differences between revisions 16 and 86 (spanning 70 versions)
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 86 as of 2022-04-05 02:15:00
Size: 0
Editor: mkoeppe
Comment: outdated
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
== 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

== 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