I was reading something quite interesting here.

http://blogs.sun.com/rie/entry/tt_dependencies_tt_define_what

It is written with Solaris in mind, but basically says that linking to unnecessary libraries is is a way to slow down code. So I decided to use the method it suggests, and see what items in Sage link to things they don't need to. The list below is the binaries in local/bin. If it says "unused" after them, it means there's a library linked that is not used:

The worst offenders are ecl (3 unnecessary libraries), TSingular (2 unnecessary libraries), ESingular (2 unnecessary libraries). Most things do not link to anything they don't need, but there's several items that link to one unnecessary library.

The script to generate this information, which I is probably Solaris-specific, 
is:

#!/bin/sh
for i in `ls`
do
  if [ "x`file $i | grep 32-bit `" != x ] ; then
    echo $i
    ldd -u -r $i | grep unused
  fi
done

Note, in the case of scripts, which call binaries elsewhere, these are not listed. These are only 32-bit executable in local/bin - not shell scripts.


Here's the binaries:


adjacency
adjacency_gmp
allfaces
allfaces_gmp
allisog
annotate
bunzip2
bzcat
bzip2
bzip2recover
cdd_both_reps
cdd_both_reps_gmp
certtool
change_cost
class.x
conductor
cu2
cubex
cws.x
dikcube
dumpsexp
   unused object=/lib/libsocket.so.1
ecl
   unused object=/lib/libintl.so.1
   unused object=/lib/libpthread.so.1
   unused object=/lib/librt.so.1
ecm
ESingular
   unused object=/export/home/drkirkby/sage-4.6.alpha0/local/lib//libntl.so
   unused 
object=/export/home/drkirkby/sage-4.6.alpha0/local/lib//libreadline.so.6
f2c
findinf
fourier
fourier_gmp
fplll
fplll_micro
fplll_verbose
gd2copypal
gd2togif
gd2topng
gdcmpgif
gdparttopng
gdtopng
gen_test
generate
genus2reduction
gfan
gfan_buchberger
gfan_doesidealcontain
gfan_fancommonrefinement
gfan_fanlink
gfan_fanproduct
gfan_groebnercone
gfan_homogeneityspace
gfan_homogenize
gfan_initialforms
gfan_interactive
gfan_ismarkedgroebnerbasis
gfan_krulldimension
gfan_latticeideal
gfan_leadingterms
gfan_markpolynomialset
gfan_minkowskisum
gfan_minors
gfan_polynomialsetunion
gfan_render
gfan_renderstaircase
gfan_saturation
gfan_secondaryfan
gfan_stats
gfan_substitute
gfan_tolatex
gfan_topolyhedralfan
gfan_tropicalbasis
gfan_tropicalbruteforce
gfan_tropicalevaluation
gfan_tropicalfunction
gfan_tropicalhypersurface
gfan_tropicalintersection
gfan_tropicallifting
gfan_tropicallinearspace
gfan_tropicalmultiplicity
gfan_tropicalrank
gfan_tropicalstartingcone
gfan_tropicaltraverse
gfan_tropicalweildivisor
giftogd2
glpsol
gnutls-cli
gnutls-cli-debug
gnutls-serv
gp
gpg-error
gsl-histogram
gsl-randist
hmac256
   unused object=/lib/libsocket.so.1
iconv
indep
lcalc
   unused object=/export/home/drkirkby/sage-4.6.alpha0/local/lib//libgmp.so.3
lcdd
lcdd_gmp
libparse
   unused object=/usr/local/gcc-4.5.0/lib/libstdc++.so.6
LLL
llldiff
mcube
mwrank
nef.x
optimal
pngtogd
pngtogd2
poly.x
projection
projection_gmp
psktool
unused object=/export/home/drkirkby/sage-4.6.alpha0/local/lib//libgnutls-extra.so.26
python
   unused object=/lib/libsocket.so.1
python2.6
   unused object=/lib/libsocket.so.1
QuadraticSieve
ratpoint
redcheck
redcheck_gmp
Rscript
sage_pari
sage.bin
   unused object=/lib/libsocket.so.1
scdd
scdd_gmp
Singular-3-1-1
size222
solve_IP
sqlite3
srptool
unused object=/export/home/drkirkby/sage-4.6.alpha0/local/lib//libgnutls-extra.so.26
tachyon
tate
tconic
testcdd1
testcdd1_gmp
testcdd2
testcdd2_gmp
testlp1
testlp1_gmp
testlp2
testlp2_gmp
testlp3
testlp3_gmp
testshoot
testshoot_gmp
toric_ideal
torsion
TSingular
   unused object=/export/home/drkirkby/sage-4.6.alpha0/local/lib//libntl.so
   unused 
object=/export/home/drkirkby/sage-4.6.alpha0/local/lib//libreadline.so.6
twist
webpng

dave

--
To post to this group, send an email to [email protected]
To unsubscribe from this group, send an email to 
[email protected]
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to