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