Changes between Version 295 and Version 296 of CygwinPort

04/12/13 08:35:28 (9 years ago)



  • CygwinPort

    v295 v296  
    11= Information for the port to Cygwin =
    22As of Sage 5.9.beta4, Sage should build "out of the box" with a Cygwin that has the same prereqs as any other Sage, with the very minor caveats below, and start.  See #6743 or below for more details. The only exception is that rebase and forking problems continue (see below and #14031).  The ''only'' special prerequisites are
    3  * That the gcc versions must match, if you install gcc4-core, gcc4-gfortran, and gcc4-g++ (with just gcc4-core, Sage's gcc 4.7 gets built)
    4  * That we need libmpfr4 in addition
     3 * That the gcc versions must match, if you install gcc4-core, gcc4-gfortran, and gcc4-g++ (with just gcc4-core, Sage's gcc 4.7.x gets built)
    54 * That we need liblapack-devel and lapack
    65We no longer need `SAGE_PORT=yes`, as of this release!
    491490* I launched the build yesterday night and found it back this morning having installed most of the spkg, it just failed during compilation of the Sage library because of a fork error, that was expected. So to summarize, great news!
    492491* Cygwin has recently (early 2013) integrated Python 2.7 which happens to be the same version that Sage ships. That's a problem because on Cygwin libpython2.7.dll is installed in the "bin" directory and we don't include it in LD_LIBRARY_PATH. That would not be a problem because most of Cygwin dll system uses the PATH var where "bin" is present, but dlopen  does not use PATH, so the _ctypes module of python which uses it to load libpython sees an empty LD_LIBRARY_PATH, then looks for default dirs, which point to /usr/lib,bin, and if you have a system wide python 2.7 installed, loads the libpython2.7 from there at a different address than the initial libpython loaded by Sage's python initially. And then when you try to fork(), Cygwin whines because it's using the dlopened libpython, but the libraries loaded during fork use PATH which points to the Sage's libpython (already loaded once, but whatever), so the base address are different and BOOM (not that this base address conflict is not a problem for dlopen at first...). This is now #14380/
     493=== Testing Sage 5.9.beta5 on 32 bits Windows XP running under Virtualbox 4.1.18 on 64 bits Debian sid/experimental ===
     494* Still had to set SAGE_PORT because of broken #14406, should be fixed in #14447.
     495* All of Sage built fine without rebasing until building the doc!
     496* Rebased and the doc built fine.
     497* Testing seems ok (whether I use "./sage -tp" or "make ptest").