blob: 67c7e13f6dac5f7f206701142429ec53961bf641 [file] [log] [blame]
sewardj90238792003-05-05 00:23:42 +00001
sewardj945f39f2003-07-25 21:11:40 +00002Snapshot 20030725 (25 July 2003)
3~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
5Fixes some minor problems in 20030716.
6
7- Fix bugs in overlap checking for strcpy/memcpy etc.
8
9- Do overlap checking with Addrcheck as well as Memcheck.
10
11- Fix this:
12 Memcheck: the `impossible' happened:
13 get_error_name: unexpected type
14
15- Install headers needed to compile new skins.
16
17- Remove leading spaces and
18 colon created by this mechanism in the LD_LIBRARY_PATH / LD_PRELOAD
19 passed to non-traced children.
20
sewardjb9eda952003-07-26 21:39:05 +000021- Fix file descriptor leak in valgrind-listener.
22
sewardj945f39f2003-07-25 21:11:40 +000023
24
sewardj626fd892003-07-16 20:10:26 +000025Snapshot 20030716 (16 July 2003)
sewardj9d916ed2003-07-14 23:38:40 +000026~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
27
sewardj626fd892003-07-16 20:10:26 +00002820030716 is a snapshot of our current CVS head (development) branch.
sewardj9d916ed2003-07-14 23:38:40 +000029This is the branch which will become valgrind-2.0. It contains
30significant enhancements over the 1.9.X branch.
31
32Despite this being a snapshot of the CVS head, it is believed to be
33quite stable -- at least as stable as 1.9.6 or 1.0.4, if not more so
34-- and therefore suitable for widespread use. Please let us know asap
35if it causes problems for you.
36
37Two reasons for releasing a snapshot now are:
38
39- It's been a while since 1.9.6, and this snapshot fixes
40 various problems that 1.9.6 has with threaded programs
41 on glibc-2.3.X based systems.
42
43- So as to make available improvements in the 2.0 line.
44
sewardj626fd892003-07-16 20:10:26 +000045Major changes in 20030716, as compared to 1.9.6:
sewardj9d916ed2003-07-14 23:38:40 +000046
47- More fixes to threading support on glibc-2.3.1 and 2.3.2-based
48 systems (SuSE 8.2, Red Hat 9). If you have had problems
49 with inconsistent/illogical behaviour of errno, h_errno or the DNS
sewardj626fd892003-07-16 20:10:26 +000050 resolver functions in threaded programs, 20030716 should improve
sewardj9d916ed2003-07-14 23:38:40 +000051 matters. This snapshot seems stable enough to run OpenOffice.org
52 1.1rc on Red Hat 7.3, SuSE 8.2 and Red Hat 9, and that's a big
53 threaded app if ever I saw one.
54
55- Automatic generation of suppression records; you no longer
56 need to write them by hand. Use --gen-suppressions=yes.
57
sewardj21511802003-07-22 17:47:42 +000058- strcpy/memcpy/etc check their arguments for overlaps, when
59 running with the Memcheck or Addrcheck skins.
60
61- malloc_usable_size() is now supported.
62
63- new client requests:
64 - VALGRIND_COUNT_ERRORS, VALGRIND_COUNT_LEAKS:
65 useful with regression testing
66 - VALGRIND_NON_SIMD_CALL[0123]: for running arbitrary functions
67 on real CPU (use with caution!)
68
sewardj9d916ed2003-07-14 23:38:40 +000069- The GDB attach mechanism is more flexible. Allow the GDB to
70 be run to be specified by --gdb-path=/path/to/gdb, and specify
71 which file descriptor V will read its input from with
72 --input-fd=<number>.
73
sewardj21511802003-07-22 17:47:42 +000074- Cachegrind gives more accurate results (wasn't tracking instructions in
75 malloc() and friends previously, is now).
76
sewardj9d916ed2003-07-14 23:38:40 +000077- Complete support for the MMX instruction set.
78
79- Partial support for the SSE and SSE2 instruction sets. Work for this
80 is ongoing. About half the SSE/SSE2 instructions are done, so
81 some SSE based programs may work. Currently you need to specify
82 --skin=addrcheck. Basically not suitable for real use yet.
83
84- Significant speedups (10%-20%) for standard memory checking.
85
86- Fix assertion failure in pthread_once().
87
88- Fix this:
89 valgrind: vg_intercept.c:598 (vgAllRoadsLeadToRome_select):
90 Assertion `ms_end >= ms_now' failed.
91
92- Implement pthread_mutexattr_setpshared.
93
94- Understand Pentium 4 branch hints. Also implemented a couple more
95 obscure x86 instructions.
96
97- Lots of other minor bug fixes.
98
sewardj626fd892003-07-16 20:10:26 +000099- We have a decent regression test system, for the first time.
100 This doesn't help you directly, but it does make it a lot easier
101 for us to track the quality of the system, especially across
102 multiple linux distributions.
103
104 You can run the regression tests with 'make regtest' after 'make
105 install' completes. On SuSE 8.2 and Red Hat 9 I get this:
106
107 == 84 tests, 0 stderr failures, 0 stdout failures ==
108
109 On Red Hat 8, I get this:
110
111 == 84 tests, 2 stderr failures, 1 stdout failure ==
112 corecheck/tests/res_search (stdout)
113 memcheck/tests/sigaltstack (stderr)
114
115 sigaltstack is probably harmless. res_search doesn't work
116 on R H 8 even running natively, so I'm not too worried.
117
118 On Red Hat 7.3, a glibc-2.2.5 system, I get these harmless failures:
119
120 == 84 tests, 2 stderr failures, 1 stdout failure ==
121 corecheck/tests/pth_atfork1 (stdout)
122 corecheck/tests/pth_atfork1 (stderr)
123 memcheck/tests/sigaltstack (stderr)
124
125 You need to run on a PII system, at least, since some tests
126 contain P6-specific instructions, and the test machine needs
127 access to the internet so that corecheck/tests/res_search
128 (a test that the DNS resolver works) can function.
129
sewardj9d916ed2003-07-14 23:38:40 +0000130As ever, thanks for the vast amount of feedback :) and bug reports :(
131We may not answer all messages, but we do at least look at all of
132them, and tend to fix the most frequently reported bugs.
133
134
135
sewardj37918822003-05-05 01:05:09 +0000136Version 1.9.6 (7 May 2003 or thereabouts)
137~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
138
139Major changes in 1.9.6:
140
141- Improved threading support for glibc >= 2.3.2 (SuSE 8.2,
142 RedHat 9, to name but two ...) It turned out that 1.9.5
143 had problems with threading support on glibc >= 2.3.2,
144 usually manifested by threaded programs deadlocking in system calls,
145 or running unbelievably slowly. Hopefully these are fixed now. 1.9.6
146 is the first valgrind which gives reasonable support for
147 glibc-2.3.2. Also fixed a 2.3.2 problem with pthread_atfork().
148
149- Majorly expanded FAQ.txt. We've added workarounds for all
150 common problems for which a workaround is known.
151
152Minor changes in 1.9.6:
153
154- Fix identification of the main thread's stack. Incorrect
155 identification of it was causing some on-stack addresses to not get
156 identified as such. This only affected the usefulness of some error
157 messages; the correctness of the checks made is unchanged.
158
159- Support for kernels >= 2.5.68.
160
161- Dummy implementations of __libc_current_sigrtmin,
162 __libc_current_sigrtmax and __libc_allocate_rtsig, hopefully
163 good enough to keep alive programs which previously died for lack of
164 them.
165
166- Fix bug in the VALGRIND_DISCARD_TRANSLATIONS client request.
167
sewardj3d47b792003-05-05 22:15:35 +0000168- Fix bug in the DWARF2 debug line info loader, when instructions
169 following each other have source lines far from each other
170 (e.g. with inlined functions).
171
sewardj37918822003-05-05 01:05:09 +0000172- Debug info reading: read symbols from both "symtab" and "dynsym"
173 sections, rather than merely from the one that comes last in the
174 file.
175
176- New syscall support: prctl(), creat(), lookup_dcookie().
177
178- When checking calls to accept(), recvfrom(), getsocketopt(),
179 don't complain if buffer values are NULL.
180
181- Try and avoid assertion failures in
182 mash_LD_PRELOAD_and_LD_LIBRARY_PATH.
183
184- Minor bug fixes in cg_annotate.
185
186
187
sewardj90238792003-05-05 00:23:42 +0000188Version 1.9.5 (7 April 2003)
189~~~~~~~~~~~~~~~~~~~~~~~~~~~~
190
191It occurs to me that it would be helpful for valgrind users to record
192in the source distribution the changes in each release. So I now
193attempt to mend my errant ways :-) Changes in this and future releases
194will be documented in the NEWS file in the source distribution.
195
196Major changes in 1.9.5:
197
198- (Critical bug fix): Fix a bug in the FPU simulation. This was
199 causing some floating point conditional tests not to work right.
200 Several people reported this. If you had floating point code which
201 didn't work right on 1.9.1 to 1.9.4, it's worth trying 1.9.5.
202
203- Partial support for Red Hat 9. RH9 uses the new Native Posix
204 Threads Library (NPTL), instead of the older LinuxThreads.
205 This potentially causes problems with V which will take some
206 time to correct. In the meantime we have partially worked around
207 this, and so 1.9.5 works on RH9. Threaded programs still work,
208 but they may deadlock, because some system calls (accept, read,
209 write, etc) which should be nonblocking, in fact do block. This
210 is a known bug which we are looking into.
211
212 If you can, your best bet (unfortunately) is to avoid using
213 1.9.5 on a Red Hat 9 system, or on any NPTL-based distribution.
214 If your glibc is 2.3.1 or earlier, you're almost certainly OK.
215
216Minor changes in 1.9.5:
217
218- Added some #errors to valgrind.h to ensure people don't include
219 it accidentally in their sources. This is a change from 1.0.X
220 which was never properly documented. The right thing to include
221 is now memcheck.h. Some people reported problems and strange
222 behaviour when (incorrectly) including valgrind.h in code with
223 1.9.1 -- 1.9.4. This is no longer possible.
224
225- Add some __extension__ bits and pieces so that gcc configured
226 for valgrind-checking compiles even with -Werror. If you
227 don't understand this, ignore it. Of interest to gcc developers
228 only.
229
230- Removed a pointless check which caused problems interworking
231 with Clearcase. V would complain about shared objects whose
232 names did not end ".so", and refuse to run. This is now fixed.
233 In fact it was fixed in 1.9.4 but not documented.
234
235- Fixed a bug causing an assertion failure of "waiters == 1"
236 somewhere in vg_scheduler.c, when running large threaded apps,
237 notably MySQL.
238
239- Add support for the munlock system call (124).
240
241Some comments about future releases:
242
2431.9.5 is, we hope, the most stable Valgrind so far. It pretty much
244supersedes the 1.0.X branch. If you are a valgrind packager, please
245consider making 1.9.5 available to your users. You can regard the
2461.0.X branch as obsolete: 1.9.5 is stable and vastly superior. There
247are no plans at all for further releases of the 1.0.X branch.
248
249If you want a leading-edge valgrind, consider building the cvs head
250(from SourceForge), or getting a snapshot of it. Current cool stuff
251going in includes MMX support (done); SSE/SSE2 support (in progress),
252a significant (10-20%) performance improvement (done), and the usual
253large collection of minor changes. Hopefully we will be able to
254improve our NPTL support, but no promises.
255