On Feb 22, 2010, at 3:27 AM, Dr. David Kirkby wrote:

This came up on the thread "mercurial on t2" but I thought I'd start a new thread on it.

I'd propose that we include in any binary distribution gcc's C, C++ and Fortran shared libraries. They would be placed in $SAGE_LOCAL/ lib. Then we can ensure that people will run Sage with what libraries Sage was built with, rather than what versions they may or may not have lying around.

The amount of bloat this would add to the binary would be very small. For Solaris, the compressed sizes of the files are:

-rwxr-xr-x 1 drkirkby staff 1.5M Feb 22 10:10 libstdc++.so. 6.0.10.gz -rwxr-xr-x 1 drkirkby staff 717K Feb 22 10:10 libgfortran.so. 3.0.0.gz
-rw-r--r--   1 drkirkby staff        80K Feb 22 10:10 libgcc_s.so.1.gz

So adding all 3 adds 2.3 MB of extra code to the binary. But given the binary is 500 MB (not untypical), that is less than 0.5% of bloat.

By doing this, we ensure that people

* Always have the libraries.
* Always have the exact same versions Sage was built with.

I believe the Fortran library might already be included for Linux (I have not checked), but I'd suggest all 3 were added to binaries.

The C library is the one people most likely will have, but given it is by far the smallest, we might as well include it to be 100% sure.

Comments?

Are there issues if the gcc and core C libraries don't match? For example, If a user uses cython in the notebook, will it pick up the users g++ and Sage's libstdc++? What about someone who starts with a binary then starts developing with it or installs optional packages?

I guess a lot of binaries statically link the core C libraries in, which of course doesn't make sense for us. On the other hand, a quick google search seems to indicate that not even Firefox ships with libstdc++, and the link at http://kbase.redhat.com/faq/docs/DOC-8313 seems to indicate that shipping core libraries is rarely the right thing to do, and great care is made to keep them backwards compatible.

Perhaps we should check to make sure the libraries are at least installed at first startup, but is this really a common occurrence? If not, I'm not convinced we should do something that might cause weird issues for everyone to cater to the 1% of users who have a strange, custom *nix build on odd hardware.

- Robert

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