blob: b398a34045f81a0b1152f06c16c1a5850ccefe5b [file] [log] [blame]
sewardj90238792003-05-05 00:23:42 +00001
sewardj9d916ed2003-07-14 23:38:40 +00002Snapshot 20030715 (15 July 2003)
3~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
520030715 is a snapshot of our current CVS head (development) branch.
6This is the branch which will become valgrind-2.0. It contains
7significant enhancements over the 1.9.X branch.
8
9Despite this being a snapshot of the CVS head, it is believed to be
10quite stable -- at least as stable as 1.9.6 or 1.0.4, if not more so
11-- and therefore suitable for widespread use. Please let us know asap
12if it causes problems for you.
13
14Two reasons for releasing a snapshot now are:
15
16- It's been a while since 1.9.6, and this snapshot fixes
17 various problems that 1.9.6 has with threaded programs
18 on glibc-2.3.X based systems.
19
20- So as to make available improvements in the 2.0 line.
21
22Major changes in 20030715, as compared to 1.9.6:
23
24- More fixes to threading support on glibc-2.3.1 and 2.3.2-based
25 systems (SuSE 8.2, Red Hat 9). If you have had problems
26 with inconsistent/illogical behaviour of errno, h_errno or the DNS
27 resolver functions in threaded programs, 20030715 should improve
28 matters. This snapshot seems stable enough to run OpenOffice.org
29 1.1rc on Red Hat 7.3, SuSE 8.2 and Red Hat 9, and that's a big
30 threaded app if ever I saw one.
31
32- Automatic generation of suppression records; you no longer
33 need to write them by hand. Use --gen-suppressions=yes.
34
35- The GDB attach mechanism is more flexible. Allow the GDB to
36 be run to be specified by --gdb-path=/path/to/gdb, and specify
37 which file descriptor V will read its input from with
38 --input-fd=<number>.
39
40- Complete support for the MMX instruction set.
41
42- Partial support for the SSE and SSE2 instruction sets. Work for this
43 is ongoing. About half the SSE/SSE2 instructions are done, so
44 some SSE based programs may work. Currently you need to specify
45 --skin=addrcheck. Basically not suitable for real use yet.
46
47- Significant speedups (10%-20%) for standard memory checking.
48
49- Fix assertion failure in pthread_once().
50
51- Fix this:
52 valgrind: vg_intercept.c:598 (vgAllRoadsLeadToRome_select):
53 Assertion `ms_end >= ms_now' failed.
54
55- Implement pthread_mutexattr_setpshared.
56
57- Understand Pentium 4 branch hints. Also implemented a couple more
58 obscure x86 instructions.
59
60- Lots of other minor bug fixes.
61
62As ever, thanks for the vast amount of feedback :) and bug reports :(
63We may not answer all messages, but we do at least look at all of
64them, and tend to fix the most frequently reported bugs.
65
66
67
sewardj37918822003-05-05 01:05:09 +000068Version 1.9.6 (7 May 2003 or thereabouts)
69~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70
71Major changes in 1.9.6:
72
73- Improved threading support for glibc >= 2.3.2 (SuSE 8.2,
74 RedHat 9, to name but two ...) It turned out that 1.9.5
75 had problems with threading support on glibc >= 2.3.2,
76 usually manifested by threaded programs deadlocking in system calls,
77 or running unbelievably slowly. Hopefully these are fixed now. 1.9.6
78 is the first valgrind which gives reasonable support for
79 glibc-2.3.2. Also fixed a 2.3.2 problem with pthread_atfork().
80
81- Majorly expanded FAQ.txt. We've added workarounds for all
82 common problems for which a workaround is known.
83
84Minor changes in 1.9.6:
85
86- Fix identification of the main thread's stack. Incorrect
87 identification of it was causing some on-stack addresses to not get
88 identified as such. This only affected the usefulness of some error
89 messages; the correctness of the checks made is unchanged.
90
91- Support for kernels >= 2.5.68.
92
93- Dummy implementations of __libc_current_sigrtmin,
94 __libc_current_sigrtmax and __libc_allocate_rtsig, hopefully
95 good enough to keep alive programs which previously died for lack of
96 them.
97
98- Fix bug in the VALGRIND_DISCARD_TRANSLATIONS client request.
99
sewardj3d47b792003-05-05 22:15:35 +0000100- Fix bug in the DWARF2 debug line info loader, when instructions
101 following each other have source lines far from each other
102 (e.g. with inlined functions).
103
sewardj37918822003-05-05 01:05:09 +0000104- Debug info reading: read symbols from both "symtab" and "dynsym"
105 sections, rather than merely from the one that comes last in the
106 file.
107
108- New syscall support: prctl(), creat(), lookup_dcookie().
109
110- When checking calls to accept(), recvfrom(), getsocketopt(),
111 don't complain if buffer values are NULL.
112
113- Try and avoid assertion failures in
114 mash_LD_PRELOAD_and_LD_LIBRARY_PATH.
115
116- Minor bug fixes in cg_annotate.
117
118
119
sewardj90238792003-05-05 00:23:42 +0000120Version 1.9.5 (7 April 2003)
121~~~~~~~~~~~~~~~~~~~~~~~~~~~~
122
123It occurs to me that it would be helpful for valgrind users to record
124in the source distribution the changes in each release. So I now
125attempt to mend my errant ways :-) Changes in this and future releases
126will be documented in the NEWS file in the source distribution.
127
128Major changes in 1.9.5:
129
130- (Critical bug fix): Fix a bug in the FPU simulation. This was
131 causing some floating point conditional tests not to work right.
132 Several people reported this. If you had floating point code which
133 didn't work right on 1.9.1 to 1.9.4, it's worth trying 1.9.5.
134
135- Partial support for Red Hat 9. RH9 uses the new Native Posix
136 Threads Library (NPTL), instead of the older LinuxThreads.
137 This potentially causes problems with V which will take some
138 time to correct. In the meantime we have partially worked around
139 this, and so 1.9.5 works on RH9. Threaded programs still work,
140 but they may deadlock, because some system calls (accept, read,
141 write, etc) which should be nonblocking, in fact do block. This
142 is a known bug which we are looking into.
143
144 If you can, your best bet (unfortunately) is to avoid using
145 1.9.5 on a Red Hat 9 system, or on any NPTL-based distribution.
146 If your glibc is 2.3.1 or earlier, you're almost certainly OK.
147
148Minor changes in 1.9.5:
149
150- Added some #errors to valgrind.h to ensure people don't include
151 it accidentally in their sources. This is a change from 1.0.X
152 which was never properly documented. The right thing to include
153 is now memcheck.h. Some people reported problems and strange
154 behaviour when (incorrectly) including valgrind.h in code with
155 1.9.1 -- 1.9.4. This is no longer possible.
156
157- Add some __extension__ bits and pieces so that gcc configured
158 for valgrind-checking compiles even with -Werror. If you
159 don't understand this, ignore it. Of interest to gcc developers
160 only.
161
162- Removed a pointless check which caused problems interworking
163 with Clearcase. V would complain about shared objects whose
164 names did not end ".so", and refuse to run. This is now fixed.
165 In fact it was fixed in 1.9.4 but not documented.
166
167- Fixed a bug causing an assertion failure of "waiters == 1"
168 somewhere in vg_scheduler.c, when running large threaded apps,
169 notably MySQL.
170
171- Add support for the munlock system call (124).
172
173Some comments about future releases:
174
1751.9.5 is, we hope, the most stable Valgrind so far. It pretty much
176supersedes the 1.0.X branch. If you are a valgrind packager, please
177consider making 1.9.5 available to your users. You can regard the
1781.0.X branch as obsolete: 1.9.5 is stable and vastly superior. There
179are no plans at all for further releases of the 1.0.X branch.
180
181If you want a leading-edge valgrind, consider building the cvs head
182(from SourceForge), or getting a snapshot of it. Current cool stuff
183going in includes MMX support (done); SSE/SSE2 support (in progress),
184a significant (10-20%) performance improvement (done), and the usual
185large collection of minor changes. Hopefully we will be able to
186improve our NPTL support, but no promises.
187