Add 436413 Warn about realloc of size zero to NEWS
[valgrind.git] / docs / internals / BIG_APP_NOTES.txt
blob8f0a5db9d91b8a9c4cf0a431307b62b24ffde04e
2 Building Firefox-2.0.0.12 from source, for testing Helgrind
3 -----------------------------------------------------------
5 wget
6 ftp://ftp.mozilla.org/pub/firefox/releases/2.0.0.12/source/firefox-2.0.0.12-source.tar.bz2
8 bzip2 -dc firefox-2.0.0.12-source.tar.bz2 | tar xvf -
10 mv mozilla firefox-2.0.0.12
12 mkdir InstFirefox20012
13 export XYZZYFOOBAR=`pwd`/InstFirefox20012
15 cd firefox-2.0.0.12
17 ./configure --prefix=$XYZZYFOOBAR --enable-application=browser \
18     --enable-optimize="-O -g"
20 make -j 2
21 make install
23 cd ../InstFirefox20012
25 MOZ_NO_REMOTE=1 NO_EM_RESTART=1 \
26 LD_LIBRARY_PATH=`pwd`/lib/firefox-2.0.0.12:\
27 `pwd`/lib/firefox-2.0.0.12/components:\
28 `pwd`/lib/firefox-2.0.0.12/plugins \
29 /home/sewardj/VgTRUNK/hgdev/Inst/bin/valgrind --tool=helgrind \
30 --trace-children=no -v ./lib/firefox-2.0.0.12/firefox-bin
32 # start and then quit firefox a couple of times before measuring
33 # it, analysing results, etc.  This is because (I think) the new
34 # build is probably a different version from whatever you used 
35 # before and so on the first run, the new build wants to mess with
36 # ~/.mozilla (or something) and that makes it take much longer than
37 # subsequent runs.
39 # Patch the recycling allocator thusly (is this still necessary) ?
42 $ diff -U3 ./xpcom/ds/nsRecyclingAllocator.cpp-ORIG ./xpcom/ds/nsRecyclingAllocator.cpp
43 --- ./xpcom/ds/nsRecyclingAllocator.cpp-ORIG    2008-03-14 19:09:17.000000000 +0100
44 +++ ./xpcom/ds/nsRecyclingAllocator.cpp 2008-03-14 19:39:34.000000000 +0100
45 @@ -156,7 +156,7 @@
46          mLock = nsnull;
47      }
48  }
50 +#include "/home/sewardj/VgTRUNK/hgde2/Inst/include/valgrind/helgrind.h"
51  // Allocation and free routines
52  void*
53  nsRecyclingAllocator::Malloc(PRSize bytes, PRBool zeroit)
54 @@ -169,7 +169,7 @@
55      if (freeBlock)
56      {
57          void *data = DATA(freeBlock);
59 +if (bytes > 0) VALGRIND_HG_CLEAN_MEMORY(data,bytes);
60          if (zeroit)
61              memset(data, 0, bytes);
62          return data;
66 Building OpenOffice 2.4/3.0 from source
67 ---------------------------------------
69 svn co svn://svn.gnome.org/svn/ooo-build/trunk ooo-build
71 cd ooo-build
73 export ARCH_FLAGS="-g -O"
74 export DOWNLOADCACHE=~/DOWNLOADS/OOo
76 #export ARCH_FLAGS="-g -O -fno-inline -fno-inline-functions"  
77 # very slow, and not helpful
79 ./autogen.sh --with-distro=SUSE-11.0
80    --disable-gstreamer --disable-mono
82 #  --with-max-jobs=2 --with-num-cpus=2 sounds good on paper, but often
83 #  cause the build to fail
84 # --with-alloc=system is used by default
86 ./download
88 make
90 # make now runs the 'inner' configure (of OOo proper) and
91 # invariably fails.  To fix, install 987,654,321 packages you never 
92 # heard of before, that OOo absolutely needs, and go back to the
93 # autogen step.  You probably need to do this ten times or more.
95 #   configure: error: \genbrk\ not found in $PATH, install the icu 
96 #   development tool \genbrk""
98 # means you have to install packages: icu libicu-devel
100 # eventually you might get through the inner configure.  After
101 # a couple of hours of flat out computation on both cores of
102 # a fast Core 2, the build might complete successfully.
104 # in the likely event of even all that not working, go on to #go-oo
105 # at irc.freenode.org and ask questions
107 # eventually ...
109 ./bin/ooinstall ~/OOoBuild/Inst01
110 cd ~/OOoBuild/Inst01
111 valgrind -v ./program/soffice.bin
114 # Hacking OOo
116 # Use two shells, (C)ompile and (R)un.  In (C):
118 cd build/ooh680-m12
119 . ./LinuxX86Env.Set.sh  (or ". ./LinuxX86-64Env.Set.sh")
120 ./solenv/bin/linkoo ~/OOoBuild/Inst01
122 # This replaces all the .so's in the install tree with symlinks 
123 # back into the build tree, so you can then re-run without 
124 # having to endlessly reinstall.  It also creates 'ooenv' in
125 # ~/OOoBuild/Inst01/program, which needs to be sourced
126 # once before running.
128 # So having changed something in OOo, eg in svx/, do:
130 (cd svx && build)
132 # Meanwhile in the (R)un shell:
133 source ooenv  # just once!
134 # appears to complain aobut "ulimit -c", but OK nevertheless
136 valgrind [args] ./soffice.bin
139 ## More notes, 2 May 08
140 export DOWNLOADCACHE=~/DOWNLOADS/OOo to cache downloaded tarballs
141 ##export CONFIGURE_FLAGS=--disable-mediawiki is needed for dev300-m10
142 ##or not -- causes the build to fail later.  Don't use this.
145 # These are packages I had to install on a fairly vanilla OpenSUSE
146 # 10.3 in order to get a build working
148 perl-Archive-Zip-1.20
149 cups-devel-1.2.12
150 libjpeg-devel-6.2.0
151 libxslt-devel
152   libgcrypt-devel
153   liggpg-error-devel
154   libxml2-devel
155   readline-devel
156 python-devel
157   blt
158   python-tk
159 libcurl-devel
160   libidn-devel
161 boost-devel
162 unixODBC-devel
163 mozilla-xulrunner181-devel
164   mozilla-nspr-devel
165   mozilla-nss-devel
166   mozilla-xulrunner181
167 neon-devel
168 gnome-vfs2-devel
169   avahi-devel
170   dbus-1-devel
171   dbus-1-glib
172   gconf2-devel
173   hal-devel
174   indent
175   libblkid-devel
176   libbonobo-devel
177   libcom_err-devel
178   libext2fs-devel
179   libidl-devel
180   libusb-devel
181   libuuid-devel
182   orbit2-devel
183   popt-devel
184 qt3-devel
185   liblcms-devel
186   libmnt-devel
188 export QTDIR=/usr/lib/qt3
190 kdebase3-devel
191   (tons of stuff)