Hi George,
In the attachment, you will find the small script that I use to create
an archive library libRoot.a containing all the Root classes
and the link procedure to create a static module roota on Linux RH6.1
One must force some code (the G__*.o) files to be loaded explicitly.
To use the profiler, you have to compile the root source code with the option
-pg.
Modify the script to add your own classes and G_ code.
Rene Brun
George Heintzelman wrote:
>
> Rooters,
>
> I'm trying to do some profiling of programs linked with root libraries,
> using gprof. As those of you who have tried to do this will know,
> profiling with shared libraries does not work. So I wonder if anyone
> has a 'recipe' for making root with static libraries. I did manage to
> build things with some static libraries but I still seem to be running
> into problems arising from ROOT's explicit linking of shared libraries
> in LoadClass and similar places. Anyone know ways of fixing/getting
> around this? Profiling is a very important tool in achiving
> performance, and I am quite unhappy with not being able to do it
> effectively.
>
> George Heintzelman
>
/bin/rm roota
/bin/rm libRoot.a
ar rv libRoot.a \
$ROOTSYS/base/src/*.o \
$ROOTSYS/cint/src/*.o \
$ROOTSYS/clib/src/*.o \
$ROOTSYS/cont/src/*.o \
$ROOTSYS/g3d/src/*.o \
$ROOTSYS/gpad/src/*.o \
$ROOTSYS/graf/src/*.o \
$ROOTSYS/gui/src/*.o \
$ROOTSYS/hist/src/*.o \
$ROOTSYS/histpainter/src/*.o \
$ROOTSYS/html/src/*.o \
$ROOTSYS/matrix/src/*.o \
$ROOTSYS/meta/src/*.o \
$ROOTSYS/minuit/src/*.o \
$ROOTSYS/net/src/*.o \
$ROOTSYS/physics/src/*.o \
$ROOTSYS/postscript/src/*.o \
$ROOTSYS/proof/src/*.o \
$ROOTSYS/rint/src/*.o \
$ROOTSYS/tree/src/*.o \
$ROOTSYS/treeplayer/src/*.o \
$ROOTSYS/treeviewer/src/*.o \
$ROOTSYS/unix/src/*.o \
$ROOTSYS/x11/src/*.o \
$ROOTSYS/x11ttf/src/*.o \
$ROOTSYS/x3d/src/*.o \
$ROOTSYS/zip/src/*.o
echo 'int G__globalsetup() {}' >globalsetup.c
cc -c globalsetup.c
g++ -o roota \
$ROOTSYS/main/src/rmain.o \
$ROOTSYS/html/src/G*.o \
$ROOTSYS/histpainter/src/G*.o \
$ROOTSYS/treeplayer/src/G*.o \
$ROOTSYS/treeviewer/src/G*.o \
$ROOTSYS/x3d/src/G*.o \
$ROOTSYS/postscript/src/G*.o \
libRoot.a \
globalsetup.o \
$HOME/xpm-3.4j/lib/libXpm.a \
/usr/X11R6/lib/libX11.a -lm -ldl -rdynamic
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:29 MET