re PR libmudflap/49550 (Many libmudflap tests fail on Solaris 11/x86)
[gcc.git] / libmudflap / ChangeLog
1 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2
3 PR libmudflap/49550
4 * mf-runtime.c (__wrap_main) [__sun__ && __svr4__]: Don't register
5 stdin, stdout, stderr.
6 Register __ctype, __ctype_mask.
7
8 * configure.ac: Check for mmap64.
9 Check for rawmemchr, stpcpy, mempcpy.
10 * configure: Regenerate.
11 * config.h.in: Regenerate.
12 * mf-hooks1.c [HAVE_MMAP64] (__mf_0fn_mmap64): New function.
13 (mmap64): New wrapper function.
14 * mf-impl.h (__mf_dynamic_index) [HAVE_MMAP64]: Add dyn_mmap64.
15 * mf-runtime.c (__mf_dynamic) [HAVE_MMAP64]: Handle mmap64.
16
17 * mf-hooks2.c [HAVE_GETMNTENT && HAVE_SYS_MNTTAB_H]: Implement
18 getmntent wrapper.
19
20 * mf-hooks3.c (_REENTRANT): Define.
21
22 * testsuite/libmudflap.c/heap-scalestress.c (SCALE): Reduce to 10000.
23
24 * testsuite/libmudflap.c/pass-stratcliff.c: Include ../config.h.
25 (MIN): Define.
26 Use HAVE_RAWMEMCHR, HAVE_STPCPY, HAVE_MEMPCPY as guards.
27
28 * testsuite/libmudflap.c/pass47-frag.c: Expect __ctype warning on
29 *-*-solaris2.*.
30
31 2011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32
33 PR libmudflap/49549
34 * testsuite/lib/libmudflap.exp (load_gcc_lib): Load
35 target-supports.exp.
36 * testsuite/libmudflap.cth/cthfrags.exp: Only pass
37 --noinhibit-exec to GNU ld.
38
39 2011-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
40
41 PR libmudflap/38738
42 * configure.ac: Check for sys/mnttab.h.
43 Check for library containing connect.
44 * configure: Regenerate.
45 * config.h.in: Regenerate.
46 * mf-hooks2.c [HAVE_SYS_MNTTAB_H]: Include <sys/mnttab.h>.
47 * testsuite/libmudflap.c/pass-stratcliff.c (main) [__sun__ &&
48 __svr4__]: Disable rawmemchr, stpcpy, mempcpy tests.
49
50 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
51
52 * configure: Regenerate.
53
54 2011-01-03 Jakub Jelinek <jakub@redhat.com>
55
56 * mf-runtime.c (__mf_usage): Update copyright notice dates.
57
58 2010-10-31 Jason Merrill <jason@redhat.com>
59
60 PR testsuite/20003
61 * testsuite/libmudflap.cth/pass40-frag.c: Increase timeout to 30.
62
63 2010-08-20 Uros Bizjak <ubizjak@gmail.com>
64
65 * testsuite/libmudflap.c++/pass41-frag.cxx (dg-prune-output):
66 New dg directive.
67
68 2010-06-09 Iain Sandoe <iains@gcc.gnu.org>
69
70 PR bootstrap/43170
71 * configure: Regenerate.
72
73 2010-05-16 Uros Bizjak <ubizjak@gmail.com>
74
75 * testsuite/libmudflap.c/pass46-frag.c (dg-options): Remove -Wall.
76
77 2010-05-15 Uros Bizjak <ubizjak@gmail.com>
78
79 * testsuite/lib/mfdg.exp (additional_prunes): New global.
80 (dg-test): Clear additional_prunes before test is run.
81 (dg-prune-output): New procedure.
82 * testsuite/lib/libmudflap.exp (libmudflap-dg-test): Do not call
83 prune_gcc_output.
84 (libmudflap-dg-prune): New procedure.
85 * testsuite/libmudflap.c++/pass57-frag.cxx (dg-prune-output):
86 New dg directive.
87
88 2010-05-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
89
90 PR other/43620
91 * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
92 * Makefile.in: Regenerate.
93 * testsuite/Makefile.in: Regenerate.
94
95 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
96
97 * Makefile.in: Regenerate.
98 * aclocal.m4: Regenerate.
99 * testsuite/Makefile.in: Regenerate.
100
101 2010-03-15 David S. Miller <davem@davemloft.net>
102
103 * testsuite/libmudflap.c/pass54-frag.c: Add explicit return from
104 main.
105
106 2010-01-09 Jakub Jelinek <jakub@redhat.com>
107
108 * mf-runtime.c (__mf_usage): Update copyright notice dates.
109
110 2009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
111
112 * Makefile.in: Regenerate.
113 * configure: Regenerate.
114 * testsuite/Makefile.in: Regenerate.
115
116 2009-09-22 Frank Ch. Eigler <fche@redhat.com>
117
118 PR libmudflap/41433
119 * mf-runtime.c (__mf_init): Ignore $MUDFLAP_OPTIONS if
120 running setuid or setgid.
121
122 2009-09-01 Loren J. Rittle <ljrittle@acm.org>
123
124 * mf-runtime.c (__mf_init): Support FreeBSD.
125 Prime mutex which calls calloc upon first lock to avoid deadlock.
126 * mf-hooks1.c (__mf_0fn_mmap): Support FreeBSD.
127 Ignore red zone allocation request for initial thread's stack.
128
129 2009-09-01 Loren J. Rittle <ljrittle@acm.org>
130 Andreas Schwab <schwab@linux-m68k.org>
131
132 * testsuite/libmudflap.c/pass51-frag.c (MAP_FAILED): Define,
133 if not in system header; use it. On FreeBSD, must pass fd==-1
134 with MAP_ANON flag. Correct mmap error check.
135 * testsuite/libmudflap.c/fail40-frag.c: Ditto.
136
137 2009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
138
139 * configure.ac (AC_PREREQ): Bump to 2.64.
140
141 2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
142
143 * Makefile.am (install-html, install-pdf): Remove.
144 * Makefile.in: Regenerate.
145
146 * Makefile.in: Regenerate.
147 * aclocal.m4: Regenerate.
148 * config.h.in: Regenerate.
149 * configure: Regenerate.
150 * testsuite/Makefile.in: Regenerate.
151
152 2009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
153
154 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
155
156 2009-07-16 Joseph Myers <joseph@codesourcery.com>
157
158 * configure: Regenerate.
159
160 2009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
161
162 PR testsuite/40699
163 PR testsuite/40707
164 PR testsuite/40709
165 * testsuite/lib/libmudflap.exp: Revert 2009-06-30 commit.
166
167 2009-07-01 Richard Guenther <rguenther@suse.de>
168
169 PR tree-optimization/19831
170 * testsuite/libmudflap.c/fail11-frag.c: Make allocated memory
171 escape.
172 * testsuite/libmudflap.c/fail12-frag.c: Likewise.
173 * testsuite/libmudflap.c/fail16-frag.c: Likewise.
174 * testsuite/libmudflap.c/fail31-frag.c: Likewise.
175
176 2009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
177
178 * testsuite/lib/libmudflap.exp (libmudflap-init): Don't add "."
179 to ld_library_path. Use add_path. Add just find_libgcc_s to
180 ld_library_path, not every libgcc multilib directory.
181
182 2009-04-09 Nick Clifton <nickc@redhat.com>
183
184 * mf-hooks1.c: Change copyright header to refer to version 3
185 of the GNU General Public License with version 3.1 of the GCC
186 Runtime Library Exception and to point readers at the COPYING3
187 and COPYING3.RUNTIME files and the FSF's license web page.
188 * mf-heuristics.c: Likewise.
189 * mf-hooks2.c: Likewise.
190 * mf-hooks3.c: Likewise.
191 * mf-impl.h: Likewise.
192 * mf-runtime.c: Likewise.
193 * mf-runtime.h: Likewise.
194
195 2009-04-09 Jakub Jelinek <jakub@redhat.com>
196
197 * testsuite/lib/mfdg.exp: Change copyright header to refer to
198 version 3 of the GNU General Public License and to point readers
199 at the COPYING3 file and the FSF's license web page.
200 * testsuite/lib/libmudflap.exp: Likewise.
201
202 2009-03-31 Ben Elliston <bje@au.ibm.com>
203
204 PR libmudflap/38462
205 * testsuite/libmudflap.c/fail27-frag.c: Match `mudflap dead
206 object', not `mudflap object'.
207
208 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
209
210 * configure: Regenerate.
211
212 2009-02-03 Jakub Jelinek <jakub@redhat.com>
213
214 * mf-runtime.c (__mf_usage): Update copyright notice dates.
215
216 2009-01-23 Jie Zhang <jie.zhang@analog.com>
217
218 * mf-impl.h (__mf_get_state, __mf_set_state): Don't use
219 __thread when TLS support is emulated.
220 * mf-hooks3.c (__mf_get_state, __mf_set_state): Likewise.
221 * mf-runtime.c (__mf_state_1): Likewise.
222 * configure.ac: Use GCC_CHECK_EMUTLS.
223 * configure: Regenerate.
224 * config.h.in: Regenerate.
225
226 2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
227
228 * configure: Regenerate.
229
230 2008-11-26 Janis Johnson <janis187@us.ibm.com>
231
232 PR testsuite/28870
233 * testsuite/lib/mfdg.exp (dg-test): Use new timeout support.
234 (dg-timeout): Remove.
235 (standard-wait): Remove.
236 * testsuite/lib/libmudflap.exp: Include new timeout library files.
237 (libmudflap_target_compile): Set timeout value from new proc.
238
239 2008-11-10 Jakub Jelinek <jakub@redhat.com>
240
241 PR middle-end/35314
242 * testsuite/libmudflap.c/pass67-frag.c: New test.
243
244 2008-10-09 Jakub Jelinek <jakub@redhat.com>
245
246 PR c++/37568
247 * testsuite/libmudflap.c++/pass66-frag.cxx: New test.
248
249 2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
250 Steve Ellcey <sje@cup.hp.com>
251
252 * configure: Regenerate for new libtool.
253 * Makefile.in: Ditto.
254 * testsuite/Makefile.in: Ditto.
255
256 2008-09-15 Jakub Jelinek <jakub@redhat.com>
257
258 PR libmudflap/36397
259 * testsuite/libmudflap.c/pass64-frag.c: New test.
260
261 2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
262
263 * Makefile.in: Regenerate.
264 * config.h.in: Regenerate.
265 * configure: Regenerate.
266 * testsuite/Makefile.in: Regenerate.
267
268 2008-04-18 Paolo Bonzini <bonzini@gnu.org>
269
270 PR bootstrap/35457
271 * aclocal.m4: Regenerate.
272 * configure: Regenerate.
273
274 2008-03-20 Volker Reichelt <v.reichelt@netcologne.de>
275
276 * testsuite/libmudflap.c/pass63-frag.c: New test.
277
278 2008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
279
280 * aclocal.m4: Regenerate.
281 * configure: Likewise.
282 * Makefile.in: Likewise.
283 * testsuite/Makefile.in: Likewise.
284
285 2008-03-02 Jakub Jelinek <jakub@redhat.com>
286
287 * mf-runtime.c (__mf_usage): Update copyright notice dates.
288
289 2008-02-21 Uros Bizjak <ubizjak@gmail.com>
290
291 * testsuite/libmudflap.c/fail8-frag.c: Adjust scan pattern for
292 mudflap dead object.
293 * testsuite/libmudflap.c/fail9-frag.c: Ditto.
294
295 2008-01-24 David Edelsohn <edelsohn@gnu.org>
296
297 * configure: Regenerate.
298
299 2008-01-05 Jakub Jelinek <jakub@redhat.com>
300
301 PR tree-optimization/34618
302 * testsuite/libmudflap.c/pass62-frag.c: New test.
303
304 2008-01-03 Jakub Jelinek <jakub@redhat.com>
305
306 PR c++/34619
307 * testsuite/libmudflap.c++/pass61-frag.cxx: New test.
308
309 2008-01-01 Volker Reichelt <v.reichelt@netcologne.de>
310
311 PR libmudflap/26442
312 * testsuite/libmudflap.c++/pass60-frag.cxx: New test.
313
314 2007-10-15 Maciej W. Rozycki <macro@linux-mips.org>
315
316 * configure: Regenerate following changes to ../config/tls.m4.
317
318 2007-07-26 Tom Tromey <tromey@redhat.com>
319
320 * Makefile.in: Rebuilt.
321 * Makefile.am (clean-local): Removed.
322 (pth/mf-runtime.lo, pth/mf-heuristics.lo, pth/mf-hooks1.lo,
323 pth/mf-hooks2.lo, pth/mf-hooks3.lo): Likewise.
324 (libmudflapth_la_SOURCES): List sources.
325 (libmudflapth_la_LIBADD): Clear.
326 (libmudflapth_la_CFLAGS): New variable.
327
328 2007-07-05 H.J. Lu <hongjiu.lu@intel.com>
329
330 * aclocal.m4: Regenerated.
331
332 2007-06-02 Paolo Bonzini <bonzini@gnu.org>
333
334 * configure: Regenerate.
335
336 2007-05-31 Frank Ch. Eigler <fche@redhat.com>
337
338 From Andi Kleen <ak@suse.de>:
339 * mf-runtime.c (options): Rename structure for compatibility with
340 glibc getopt_long.
341
342 2007-05-23 Steve Ellcey <sje@cup.hp.com>
343
344 * Makefile.in: Regenerate.
345 * configure: Regenerate.
346 * aclocal.m4: Regenerate.
347 * testsuite/Makefile.in: Regenerate.
348
349 2007-03-14 Uros Bizjak <ubizjak@gmail.com>
350
351 * testsuite/libmudflap.cth/pass59-frag.c (main): Fix casting of arg.
352
353 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
354
355 * Makefile.am: Add dummy install-pdf target.
356 * Makefile.in: Regenerate
357
358 2007-02-07 Jakub Jelinek <jakub@redhat.com>
359
360 PR libgomp/28468
361 * configure: Regenerate.
362
363 2006-12-04 Eric Botcazou <ebotcazou@libertysurf.fr>
364
365 * configure: Regenerate.
366
367 2006-11-13 Daniel Jacobowitz <dan@codesourcery.com>
368
369 * configure: Regenerated.
370
371 2006-11-10 Frank Ch. Eigler <fche@redhat.com>
372
373 PR libmudflap/28578
374 * mf-hooks1.c (__mf_0fn_malloc): Make the bootstrap buffers
375 static but not function scope static.
376 (free): Skip deallocation attempts for objects placed into
377 bootstrap buffers.
378 * testsuite/libmudflap.cth/pass59-frag.c: New test.
379
380 2006-11-06 Frank Ch. Eigler <fche@redhat.com>
381
382 From Herman ten Brugge <hermantenbrugge@home.nl>:
383 * mf-runtime.c (__mf_uncache_object): Optimize the code so that
384 small and large objects are handled a lot faster.
385
386 2006-11-06 Frank Ch. Eigler <fche@redhat.com>
387
388 * configure.ac (__libc_freeres): Look for it.
389 * mf-impl.h (call_libc_freeres): New configuration flag.
390 * mf-runtime.c (__mf_set_default_options): Set it by default.
391 (__mfu_report): Call it if needed.
392 (__mfu_unregister): Remove "unaccessed registered object" warning.
393 * configure, config.h.in: Regenerated.
394
395 2006-09-18 Tom Tromey <tromey@redhat.com>
396
397 * configure: Rebuilt.
398
399 2006-06-21 Frank Ch. Eigler <fche@redhat.com>
400
401 PR 21274
402 mf-runtime.h installation based on ssp patch for PR 26473 from
403 Mark Mitchell <mark@codesourcery.com>.
404 * configure.ac (ACX_NONCANONICAL_TARGET): Use it.
405 * Makefile.am (target_noncanonical): Define.
406 (libsubincludedir): New variable.
407 (nobase_libsubinclude_HEADERS): Add mf-runtime.h.
408 (include_HEADERS): Remove.
409 * configure, aclocal.m4, config.h.in: Regenerated.
410 * Makefile.in, testsuite/Makefile.in: Likewise.
411 * mf-runtime.h: Add #ifndef protection for conflicting _REENTRANT
412 and _THREAD_SAFE redefinition values.
413
414 2006-05-23 Carlos O'Donell <carlos@codesourcery.com>
415
416 * Makefile.am: Add install-html target. Add install-html to .PHONY
417 * Makefile.in: Regenerate.
418
419 2006-04-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
420
421 PR mudflap/26789
422 * testsuite/libmudflap.c++/error1-frag.cxx: New test.
423
424 PR mudflap/26790
425 * testsuite/libmudflap.c++/error2-frag.cxx: New test.
426
427 2006-04-10 Matthias Klose <doko@debian.org>
428
429 * testsuite/lib/libmudflap.exp (libmudflap-init): Recognize multilib
430 directory names containing underscores.
431
432 2005-11-22 Janis Johnson <janis187@us.ibm.com>
433
434 * testsuite/lib/libmudflap.exp (libmudflap-init): Remove -static from
435 MUDFLAP_FLAGS if static library not supported.
436 * testsuite/libmudflap.c/cfrags.exp (MUDFLAP_FLAGS): new.
437 * testsuite/libmudflap.c/externs.exp: Ditto.
438 * testsuite/libmudflap.c++/ctors.exp: Ditto.
439 * testsuite/libmudflap.c++/c++frags.exp: Ditto.
440 * testsuite/libmudflap.cth/cthfrags.exp: Ditto.
441
442 2005-10-04 James E Wilson <wilson@specifix.com>
443
444 * configure.ac (mudflap_cv_entry_point): Use quadrigraphs to declare
445 $name as array of characters with unknown bound. Also store into the
446 array.
447 * configure: Regenerate.
448
449 2005-09-30 James E. Wilson <wilson@specifix.com>
450
451 * configure.ac (pthread.h): Use AC_CHECK_HEADERS instead of
452 AC_CHECK_HEADER.
453 (target_thread_file): New. Set from sed'ed gcc output.
454 (posix_threads): New. Set from target_thread_file. Use instead of
455 ac_have_pthread_h.
456 (pthread_create_version): Move initialization before code using it.
457 * configure: Regenerate.
458
459 * mf-heuristics.c (_end, ENTRY_POINT): Make them arrays with unknown
460 bounds.
461
462 2005-09-29 James E. Wilson <wilson@specifix.com>
463
464 * mf-hooks1.c (__mf_0fn_mmap, mmap, __mf_0fn_munmap, munmap): Protect
465 with HAVE_MMAP ifdef.
466
467 2005-09-23 Frank Ch. Eigler <fche@elastic.org>
468
469 PR 23084.
470 * mf-hooks2.c (accept): Tolerate NULL sockaddr* parameter.
471
472 2005-09-23 Frank Ch. Eigler <fche@elastic.org>
473
474 * testsuite/libmudflap.c++/pass58-frag.cxx: New test for heisenbug 19319.
475
476 2005-09-23 Tom Tromey <tromey@redhat.com>
477
478 * aclocal.m4, configure: Rebuilt.
479 * configure.ac: Use GCC_CHECK_TLS.
480 * acinclude.m4 (LIBMUDFLAP_CHECK_TLS, LIBMUDFLAP_ENABLE): Moved
481 to ../config.
482
483 2005-08-22 Jim Wilson <wilson@specifix.com>
484
485 * mf-hooks2.c (MF_REGISTER_fopen): Define to __MF_TYPE_STATIC when
486 __FreeBSD__ is defined.
487
488 2005-08-17 Jim Wilson <wilson@specifix.com>
489
490 * mf-hooks1.c (malloc, calloc, realloc, free,
491 __mf_wrap_alloca_indirect): Call BEGIN_MALLOC_PROTECT before calling
492 the real routines, and END_MALLOC_PROTECT afterwards.
493 * mf-impl.h (enum __mf_state_enum): Expand comment. Add in_malloc.
494 (BEGIN_PROTECT): Handle in_malloc state.
495 (BEGIN_MALLOC_PROTECT, END_MALLOC_PROTECT): New.
496 * testsuite/libmudflap.c/hook2-allocstuff.c: New.
497
498 2005-08-17 Kelley Cook <kcook@gcc.gnu.org>
499
500 * All files: Update FSF address.
501
502 2005-08-15 Ulrich Weigand <weigand@informatik.uni-erlangen.de>
503
504 * mf-hooks3.c (main_seen_p): Remove.
505 (__mf_get_state): Remove attempt to recognize the main thread.
506
507 2005-08-15 Maciej W. Rozycki <macro@linux-mips.org>
508
509 * configure.ac: Test for the name of the symbol used for the entry
510 point; define ENTRY_POINT to the result.
511 * configure: Regenerate.
512 * config.h.in: Regenerate.
513 * mf-heuristics.c: Replace _start with ENTRY_POINT throughout.
514
515 2005-08-14 Ulrich Weigand <weigand@informatik.uni-erlangen.de>
516
517 * mf-runtime.c (__mf_state_1): Initialize to reentrant.
518 (__mf_init): Set thread state active.
519 * mf-hooks3.c (__mf_pthread_spawner): Always set thread
520 state active.
521 (pthread_create wrapper): Always use thread spawner.
522
523 * testsuite/libmudflap.cth/pass37-frag.c: Increase timeout.
524 * testsuite/libmudflap.cth/pass39-frag.c: Likewise.
525
526 2005-07-16 Richard Henderson <rth@redhat.com>
527
528 * acinclude.m4: New file.
529 * configure.ac: Invoke LIBMUDFLAP_CHECK_TLS.
530 * configure, config.h.in, Makefile.in, testsuite/Makefile.in: Rebuild.
531 * mf-hooks1.c (__mf_0fn_malloc): Move body from ...
532 (__mf_0fn_calloc): ... here.
533 * mf-hooks3.c (struct pthread_info): Remove.
534 (__mf_pthread_info, __mf_pthread_info_idx): Remove.
535 (LIBMUDFLAPTH_THREADS_MAX): Set to 1021.
536 (struct mf_thread_data): New.
537 (mf_thread_data, mf_thread_data_lock): New.
538 (__mf_allocate_blank_threadinfo): Remove.
539 (__mf_find_threadinfo): Rewrite and simplify. Only use if TLS is
540 not available.
541 (__mf_state_perthread): Remove.
542 (__mf_get_state, __mf_set_state): New.
543 (__mf_pthread_cleanup): Use &errno, rather than saved pointer.
544 Update mf_thread_data killing procedure.
545 (__mf_pthread_spawner): Similarly.
546 (__mf_0fn_pthread_create): Only use wrapper if necessary. Remove
547 code to allocate thread stack space.
548 (__mf_0fn_pthread_join, pthread_join): Remove.
549 (__mf_0fn_pthread_exit, pthread_exit): Remove.
550 * mf-impl.h (dyn_pthread_join, dyn_pthread_exit): Remove.
551 (__mf_state_1): Rename from __mf_state; use TLS when available.
552 (__mf_get_state, __mf_set_state): New. Update all users.
553 * mf-runtime.c (begin_recursion_protect1): New.
554 (BEGIN_RECURSION_PROTECT): Use it.
555 (__mf_state_1): Rename from __mf_state; use TLS when available.
556 (threads_active_p): Remove.
557 (__mf_usage): Compute it directly.
558
559 2005-06-19 Ulrich Weigand <uweigand@de.ibm.com>
560
561 * testsuite/libmudflap.c/externs-1.c (main): Add return statement.
562
563 2005-06-15 Frank Ch. Eigler <fche@redhat.com>
564
565 Fix for uncaching bug reported by Herman ten Brugge.
566 * mf-runtime.c (__mf_uncache_object): Search whole cache.
567 * testsuite/libmudflap.c/fail40-frag.c: New test.
568
569 2005-05-23 Alfred M. Szmidt <ams@gnu.org>
570
571 PR libmudflap/21724
572 * Makefile.am (AM_MAKEFLAGS): Pass includedir.
573 * Makefile.in: Amend.
574
575 2005-06-14 Frank Ch. Eigler <fche@redhat.com>
576
577 PR mudflap/21023
578 * testsuite/libmudflap.c/externs.exp, externs-{1,2}.c: New test files.
579 * testsuite/libmudflap.c/cfrags.exp: Bypass new sources.
580
581 2005-06-14 Frank Ch. Eigler <fche@redhat.com>
582
583 PR libmudflap/21094
584 * testsuite/libmudflap.c++/*.exp: Assert build tree g++.
585
586 2005-06-14 Frank Ch. Eigler <fche@redhat.com>
587
588 PR mudflap/22064
589 * mf-impl.h (mudflap_mode, violation_mode): Make these ordinary
590 unsigned vars with #defines instead of enums.
591
592 2005-05-09 Mike Stump <mrs@apple.com>
593
594 * configure: Regenerate.
595
596 2005-04-12 Mike Stump <mrs@apple.com>
597
598 * configure: Regenerate.
599
600 2005-04-12 Frank Ch. Eigler <fche@redhat.com>
601
602 PR mudflap/19266
603 * testsuite/libmudflap.c++/c++frags.exp: Also test -O permutation.
604 * testsuite/libmudflap.c++/pass57-frag.cxx: New test.
605
606 2005-04-04 Alan Modra <amodra@bigpond.net.au>
607
608 * mf-runtime.c (__mfu_unregister): Warning fix for char unsigned.
609
610 2005-03-31 Mike Stump <mrs@apple.com>
611
612 * mf-runtime.h: Add libmudflap copyright clause.
613
614 2005-03-21 Mike Stump <mrs@apple.com>
615
616 * mf-heuristics.c: Fix whitespace at end of line.
617 * mf-hooks1.c: Likewise.
618 * mf-hooks2.c: Likewise.
619 * mf-hooks3.c: Likewise.
620 * mf-impl.h: Likewise.
621 * mf-runtime.c: Likewise.
622 * mf-runtime.h: Likewise.
623
624 2005-03-21 Zack Weinberg <zack@codesourcery.com>
625
626 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
627 In all substitutions, expand gcc_version in Makefile.
628 * aclocal.m4, configure: Regenerate.
629 * Makefile.am: Set gcc_version.
630 * Makefile.in, testsuite/Makefile.in: Regenerate.
631
632 2005-03-17 Frank Ch. Eigler <fche@redhat.com>
633
634 * mf-runtime.c (__mfu_check): Respect ignore_reads configuration.
635 * testsuite/libmudflap.c/{pass56,fail39}-frag.c: New tests.
636
637 2005-02-13 Frank Ch. Eigler <fche@redhat.com>
638
639 PR mudflap/19319
640 * testsuite/libmudflap.c++/pass55-frag.c: New test.
641
642 2005-01-05 Richard Henderson <rth@redhat.com>
643
644 * testsuite/libmudflap.c/pass32-frag.c: Fix typo.
645
646 2005-01-02 Greg McGary <greg@mcgary.org>
647
648 * mf-impl.h (uintptr_t): Get typedef via stdint.h or define explicitly.
649 * mf-runtime.h: New file, replaces mf-runtime.h.in.
650 * configure.ac (AC_CONFIG_FILES): mf-runtime.h is no longer generated.
651 * Makefile.in: Ditto.
652 * testsuite/lib/libmudflap.exp: Add -I${srcdir}/.. to get mf-runtime.h
653 * testsuite/libmudflap.c/pass32-frag.c: s/uintptr_t/__mf_uintptr_t/
654 * testsuite/libmudflap.c/fail36-frag.c: New test.
655 * testsuite/libmudflap.c/fail37-frag.c: New test.
656 * testsuite/libmudflap.c/fail38-frag.c: New test.
657
658 2004-12-08 Kelley Cook <kcook@gcc.gnu.org>
659
660 * Makefile.am: Add ../config to ACLOCAL_AMFLAGS.
661 * aclocal.m4, Makefile.in, testsuite/Makefile.in: Regenerate.
662
663 2004-12-02 Richard Sandiford <rsandifo@redhat.com>
664
665 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
666 * aclocal.m4: Include ../config/gcc-version.m4.
667 * configure, Makefile.in, testsuite/Makefile.in: Regenerate.
668
669 2004-11-29 Kelley Cook <kcook@gcc.gnu.org>
670
671 * Makefile.am: Define ACLOCAL_AMFLAGS.
672 * acinclude.m4: Remove.
673 * stamp-h.in: Remove superfluous stamp file.
674 * aclocal.m4, configure, Makefile.in: Regenerate.
675 * testsuite/Makefile.in: Likewise.
676
677 2004-11-24 Kelley Cook <kcook@gcc.gnu.org>
678
679 * Makefile.am: Revert previous.
680 * acinclude.m4: Restore.
681 * aclocal.m4, configure, Makefile.in: Regenerate.
682 * testsuite/Makefile.in: Likewise.
683
684 2004-11-24 Kelley Cook <kcook@gcc.gnu.org>
685
686 * Makefile.am: Define ACLOCAL_AMFLAGS.
687 * acinclude.m4: Remove.
688 * aclocal.m4, configure, Makefile.in: Regenerate.
689 * testsuite/Makefile.in: Likewise.
690
691 2004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
692
693 * testsuite/lib/libmudflap.exp: Use new procs in target-libpath.exp.
694
695 2004-11-23 Kelley Cook <kcook@gcc.gnu.org>
696
697 * Makefile.in, configure, aclocal.m4: Regenerate with automake 1.9.3.
698 * testsuite/Makefile.in: Likewise.
699
700 2004-11-01 Andreas Schwab <schwab@suse.de>
701
702 * configure.ac: (target_alias): Default to $host_alias, not
703 $target.
704 * configure: Regenerated.
705
706 2004-10-28 Frank Ch. Eigler <fche@redhat.com>
707
708 * testsuite/libmudflap.c/fail35-,pass53-,pass54-frag.c: New tests.
709 * testsuite/libmudflap.c/pass35-frag.c: Correct embedded warning
710 message.
711
712 2004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
713
714 PR other/18138
715 * testsuite/lib/libmudflap.exp: Accept more than one multilib libgcc.
716
717 2004-10-12 Frank Ch. Eigler <fche@redhat.com>
718
719 * configure.ac: Check for more headers, functions.
720 * mf-hooks2.c (mkbuffer, unmkbuffer): New helper functions for
721 tracking overridden FILE buffers.
722 (fopen, setvbuf): New/revised hook functions for buffer overriding.
723 (setbuf,setlinebuf,fdopen,freopen,fopen64,freopen64,fclose): Ditto.
724 (fflush): Accept given NULL stream (means "all streams").
725 * mf-runtime.h.in:
726 * mf-runtime.c (__mfu_check): Accept accesses that span adjacent
727 HEAP/GUESS objects.
728 (LOOKUP_CACHE_SIZE_MAX): Raise to 64K entries tentatively.
729 (__mf_adapt_cache): Use them all.
730 * testsuite/libmudflap.c/pass35-frag.c: Update warning message.
731 * testsuite/libmudflap.c++/ctors.exp: Ditto.
732 * testsuite/libmudflap.c/{pass51,pass52}-frag.c: New tests.
733 * configure, config.h.in: Regenerated.
734
735 2004-10-05 Frank Ch. Eigler <fche@redhat.com>
736
737 * configure.ac: Checking for sys/socket.h once is enough.
738 * configure: Regenerated.
739
740 2004-10-04 Frank Ch. Eigler <fche@redhat.com>
741
742 * configure.ac: Look for more headers & functions.
743 * mf-hooks2.c (getmntent, inet_ntoa, getproto*): New wrapper functions.
744 * mf-runtime.h.in: Add new "#pragma redefine_extname"s for them.
745 * mf-runtime.c (options): Clean up integer signedness warnings.
746 (main): Add a declaration to fix a warning.
747 * mf-hooks3.c (pthread_exit): Add not-reached exit() to wrapper.
748 * configure, config.h.in: Regenerated.
749
750 2004-10-02 Frank Ch. Eigler <fche@redhat.com>
751
752 * testsuite/libmudflap.c/pass50-frag.c, fail33-frag.c, fail34-frag.c:
753 New tests for proper base/limit checking for aggregates.
754
755 2004-09-15 Joseph S. Myers <jsm@polyomino.org.uk>
756
757 * testsuite/libmudflap.c/pass35-frag.c: Update expected message.
758
759 2004-09-07 Frank Ch. Eigler <fche@redhat.com>
760
761 * configure.ac: Look for pwd.h, grp.h, netdb.h headers and functions.
762 * mf-hooks2.c (strerror): Unregister previous string returned by
763 previous strerror.
764 (getlogin,cuserid,getpwnam,getpwuid,getgrnam,getgrgid): New wrappers.
765 (getservent,getservbyname,getservbyport,gai_strerror): Ditto.
766 * mf-runtime.h.in: Add redefine_extname pragmas for them all.
767 * mf-runtime.c (__mf_describe_object): Clarify object life status.
768 * testsuite/libmudflap.c/pass48-frag.c, pass49-frag.c, fail32-frag.c:
769 New tests.
770 * configure, config.h.in: Regenerated.
771
772 2004-08-03 Dale Johannesen <dalej@apple.com>
773
774 * mf-runtime.c: Conditionalize POSIX_SOURCE for Darwin.
775
776 2004-08-03 Frank Ch. Eigler <fche@redhat.com>
777
778 * mf-runtime.c (compare_uintptr_t): Remove function. Inline
779 simplified contents in all former callers.
780
781 2004-07-27 Ulrich Weigand <weigand@informatik.uni-erlangen.de>
782
783 * mf-runtime.c (__mf_fini): Set mudflap_mode to mode_nop in
784 the statically linked case.
785
786 2004-07-27 Frank Ch. Eigler <fche@redhat.com>
787
788 * splay-tree.[ch]: Remove. Merge contents into ...
789 * mf-runtime.c: ... here, renaming symbols and making all functions
790 static. Remove unused min/max functions.
791 * Makefile.am: Forget about splay-tree.[ch].
792 * Makefile.in, testsuite/Makefile.in: Regenerated.
793
794 2004-07-21 Frank Ch. Eigler <fche@redhat.com>
795
796 * mf-runtime.c (__mfu_check): Remove mistaken mode-nop handling.
797 (__mfu_usage): Include (C) 2004.
798 * mf-hooks3.c (__mf_find_threadinfo): Don't call tracing functions
799 here. Include a comment explaining why.
800
801 2004-07-20 Frank Ch. Eigler <fche@redhat.com>
802
803 * mf-impl.h (__mf_options): Add ignore_reads and timestamps fields.
804 * mf-runtime.c (options): Give them a name.
805 (__mf_set_default_options): Set them.
806 (__mf_insert_new_object, __mfu_unregister): Optionalize timestamps.
807 (__mf_violation): Warning cleanup.
808 * mf-impl.h (MF_VALIDATE_EXTENT): Support ignore_reads option.
809 * splay-tree.c (splay_tree_delete_helper): Remove obsolete decl.
810
811 2004-07-15 Frank Ch. Eigler <fche@redhat.com>
812
813 g++/15861
814 * mf-runtime.c (__mf_init): Make it non-static. Tolerate
815 repeated invocation.
816
817 2004-07-09 Frank Ch. Eigler <fche@redhat.com>
818
819 Test case for g++/15861
820 * testsuite/libmudflap.c++/ctors-[12].cxx: New test case halves.
821 * testsuite/libmudflap.c++/ctors.exp: Driver.
822 * testsuite/libmudflap.c++/c++frags.exp: Elide redundant default.
823 Look only for *frag* test cases.
824
825 2004-07-08 Frank Ch. Eigler <fche@redhat.com>
826
827 ANSI C conversion, libmudflap specialization, recursion limiting.
828 * splay-tree.h (splay_tree_{de,}allocate_fn): Remove allocation_data
829 argument and indirection function pointers, update callers.
830 (splay_tree_s): Add statistics and recursion control fields
831 num_keys, max_depth, depth, rebalance_p.
832 * splay-tree.c (splay_tree_splay_helper): Track recursion depth.
833 Back out of search if it exceeds limit.
834 (splay_tree_splay): Manage recursion limiting with rebalancing as
835 needed.
836 (splay_tree_new): More initialization.
837 (splay_tree_rebalance): New function.
838 (splay_tree_foreach): Rewrite using nonrecursive logic.
839 (splay_tree_xmalloc_allocate, splay_tree_xmalloc_deallocate):
840 Remove. Point indirect calls to mf-runtime.c's routines.
841 (splay_tree_compare_ints, splay_tree_compare_pointers): Remove unused
842 functions.
843 (splay_tree_delete, splay_tree_delete_helper): Ditto.
844 * testsuite/heap-scalestress.c: New test based on one from
845 Eyal Lebedinsky <eyal@eyal.emu.id.au>:
846
847 2004-07-05 Matthias Klose <doko@debian.org>
848
849 * libtool-version: New.
850 * Makefile.am (libmudflap_la_LDFLAGS, libmudflapth_la_LDFLAGS):
851 Use -version-info for soname.
852 * Makefile.in: Regenerate.
853 * configure.ac: Remove libtool_VERSION macro
854 * configure: Regenerate
855
856 2004-07-05 Zack Weinberg <zack@codesourcery.com>
857
858 * mf-runtime.h.in: Wrap declarations of struct __mf_cache,
859 __mf_lookup_cache, __mf_lc_mask, or __mf_lc_shift in
860 #ifndef _MUDFLAP.
861
862 2004-06-29 Frank Ch. Eigler <fche@redhat.com>
863
864 Splay tree implementation fork.
865 * splay-tree.c, splay-tree.h: Copied & modified from libiberty.
866 Use hard-coded comparison function for uintptr_t. Remove key/value
867 deallocation logic. Cache last splayed key for consecutive lookups.
868 * Makefile.am, Makefile.in: Use them, don't link to them.
869 * mf-runtime.c (__mf_object_tree): Adapt to simpler splay_tree_new.
870 (__mf_find_objects2): Flip successor/predecessor search sequence.
871 * ansidecl.h, libiberty.h: Removed dummy files.
872
873 2004-06-29 Nick Clifton <nickc@redhat.com>
874
875 * configure.ac (AC_CHECK_HEADERS): Add dirent.h
876 * configure: Regenerate.
877 * mf-hooks2.c: Surround uses of dirent.h with #ifdef
878 HAVE_DIRENT_H.
879 Remove spurious inclusion of <strings.h>.
880
881 2004-06-29 Nick Clifton <nickc@redhat.com>
882
883 * mf-runtime.c (pthread_join): Only apply the weak pragma if the
884 function actually exists.
885
886 2004-06-25 Frank Ch. Eigler <fche@redhat.com>
887
888 * ansidecl.h, libiberty.h: New dummy files for building splay-tree.
889 * config.h.in: Regenerated.
890
891 2004-06-24 Frank Ch. Eigler <fche@redhat.com>
892
893 Adopt splay trees for object database.
894 * Makefile.am: Copy splay-tree.* from libiberty.
895 * Makefile.in, testsuite/Makefile.in: Regenerated.
896 * mf-runtime.h.in (__mf_unregister): Add third parameter (type).
897 * mf-hooks[123].c (*): Add new third parameter to mf_unregister.
898 * mf-impl.h (BEGIN_PROTECT): Remove some trace text.
899 * mf-runtime.c: Rewrite code dealing with object database to use
900 libiberty splay trees. Remove tree liveness aging option.
901 * testsuite/libmudflap.c/fail18-frag.c: Add volatile flag.
902
903 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
904
905 * configure.ac: New name of configure.in. Update
906 AC_INIT, AC_CONFIG_SRCDIR, AC_CONFIG_HEADERS, AC_CONFIG_FILES,
907 AC_OUTPUT, AM_INIT_AUTOMAKE to the preferred style for
908 Autoconf 2.5x and Automake 1.7 or later.
909 * configure.in: Remove.
910 * configure: Regenerate.
911
912 * Makefile.am: Remove useless multilib rules.
913 * Makefile.in: Regenerate.
914
915 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
916
917 * .cvsignore: New file.
918
919 2004-06-10 Stephen Crowley <stephen.crowley@sbcglobal.net>
920
921 PR libmudflap/13505
922 * mf-hooks2.c (semctl): Add cygwin porting hack.
923
924 2004-06-09 Frank Ch. Eigler <fche@redhat.com>
925
926 ctype support.
927 * configure.in: Look for ctype header and glibc implementation.
928 * mf-hooks2.c (__ctype_{b,toupper,tolower}_loc): Sample ctype
929 array hooks for glibc 2.3.
930 * mf-runtime.h.in: Wrap them.
931 * mf-runtime.c (__mf_init): Leave marker regarding other ctype
932 implementations.
933 * testsuite/libmudflap.c/pass47-frag.c: New test.
934 * configure, config.h.in: Regenerated.
935
936 2004-06-04 Frank Ch. Eigler <fche@redhat.com>
937
938 Portability improvements, e.g., libmudflap/15293.
939 * configure.in: Look for glibc extension functions. Look for
940 support of -f{function,data}-sections. Look for more headers.
941 Create testsuite/mfconfig.exp. Correct more "test x.." thinkos.
942 * Makefile.am: Use $(SECTION_FLAGS). Collapse piecemeal-compiled
943 mf-hooks* into usual single object per source.
944 * mf-hooks*.c: Remove all #if WRAP_foo conditionals.
945 * mf-hooks2.c: #include a bunch more system headers. Define strnlen
946 if system doesn't provide one.
947 * mf-hooks3.c (struct pthread_info): Add stack_*_alloc fields.
948 (pthread_create): Use it to properly GC dead thread stacks.
949 * mf-runtime.c (__mf_violation): Correct snprintf type warning.
950 * testsuite/Makefile.am: Stop generating site.exp.
951 * testsuite/mfconfig.exp.in: New file.
952 * testsuite/config/default.exp: Load new mfconfig.exp.
953 * testsuite/lib/libmudflap.exp (libmudflap-init): Add extra libraries.
954 (prune_gcc_output): Add glibc static linking warnings.
955 * testsuite/libmudflap.*/*frags.exp: Enumerate needed -lmudflap* libs.
956 * testsuite/libmudflap.c/pass46-frag.c: Ditto.
957 * configure, Makefile, aclocal.m4, config.h.in, testsuite/Makefile.in:
958 Regenerated with autoconf 2.57 and automake 1.7.
959
960 2004-06-04 Per Bothner <per@bothner.com>
961
962 * configure.in (LIBMUDFLAPTH): Fix thinko.
963
964 * configure.in: Check for more headers.
965 * mf-hooks2.c: Conditionalize on HAVE_SYS_SOCKET_H etc.
966
967 * mf-runtime.c: In two places conditionalize on SIUSR1 rather than
968 HAVE_SIGNAL as mingw has signal.h but not SIUSR1.
969
970 2004-06-01 Andreas Jaeger <aj@suse.de>
971
972 * configure.in: Handle multilibs, support
973 --enable-version-specific-runtime-libs.
974 * Makefile.am (lib_LTLIBRARIES): Rename to ...
975 (toolexeclib_LTLIBRARIES): this for multilib support.
976 * Makefile.in: Regenerated.
977 * configure: Regenerated.
978 * aclocal.m4: Regenerated.
979 * config.h.in: Regenerated.
980 * testsuite/Makefile.in: Regenerated.
981
982 2004-06-01 Andreas Jaeger <aj@suse.de>
983
984 * testsuite/lib/libmudflap.exp (libmudflap-init): Handle
985 multilibs, using multilib directory instead of hardcoded path.
986 Set LD_RUN_PATH.
987
988 2004-05-21 Frank Ch. Eigler <fche@redhat.com>
989
990 * Makefile.am (AM_MAKEFLAGS): Pass RUNTESTFLAGS.
991 * Makefile.in: Ditto.
992
993 2004-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
994
995 * acinclude.m4 (lt_cv_deplibs_check_method): Use pass_all on sh*.
996 * aclocal.m4, configure: Rebuilt.
997
998 2004-05-17 Frank Ch. Eigler <fche@redhat.com>
999
1000 * lib/libmudflap.exp (libmudflap-init): For C++ test cases only,
1001 import some build settings from libstdc++-v3 testsuite_flags.
1002 * .../cfrags.exp, .../c++frags.exp, .../cthfrags.exp: Corresponding
1003 changes to pass test language.
1004
1005 * mf-runtime.c (__mfu_check): Poison the cache with antidote for
1006 quicker mode-nop handling.
1007
1008 2004-03-25 Frank Ch. Eigler <fche@redhat.com>
1009
1010 * mf-impl.h: Added libgcc license header.
1011
1012 2004-03-20 Frank Ch. Eigler <fche@redhat.com>
1013
1014 * mf-hooks[123].c, mf-runtime.c, mf-heuristics.c:
1015 Added libgcc license header.
1016 * mf-hooks3.c (__mf_0fn_pthread_create): Correct arg constness.
1017 (pthread_create): Simplify stack allocation syntax.
1018
1019 2004-03-08 Loren J. Rittle <ljrittle@acm.org>
1020
1021 * mf-hooks2.c: Support FreeBSD.
1022 (WRAP_gets): Avoid gets().
1023 * testsuite/libmudflap.c/pass-stratcliff.c: Do not
1024 test unimplemented mem/str calls on FreeBSD.
1025 * testsuite/libmudflap.c/pass21-frag.c: Do not include
1026 <alloca.h> on FreeBSD.
1027
1028 2004-01-30 Frank Ch. Eigler <fche@redhat.com>
1029
1030 * testsuite/libmudflap.c/pass36-frag.c: Add missing free() call.
1031 * testsuite/libmudflap.c/pass46-frag.c: New test for -fmudflapir.
1032 * testsuite/libmudflap.cth/cthfrags.exp: Add -DSTATIC to compiler
1033 flags for static linking permutation.
1034 * testsuite/libmudflap.cth/pass40-frag.c: When -DSTATIC, avoid
1035 some pthreads code that croaks on linux glibc tls.
1036
1037 2004-01-27 Frank Ch. Eigler <fche@redhat.com>
1038
1039 * testsuite/libmudflap.c/fail31-frag.c, pass45-frag.c: New tests.
1040
1041 2004-01-15 Frank Ch. Eigler <fche@redhat.com>
1042
1043 * testsuite/libmudflap.c/pass44-frag.c: New test.
1044
1045 2004-01-12 Frank Ch. Eigler <fche@redhat.com>
1046
1047 * testsuite/libmudflap.c/fail{28,29,30}-frag.c: New tests.
1048
1049 2004-01-08 Frank Ch. Eigler <fche@redhat.com>
1050
1051 * testsuite/libmudflap.c/pass43-frag.c: Added missing program rc.
1052
1053 2003-12-11 Frank Ch. Eigler <fche@redhat.com>
1054
1055 * testsuite/libmudflap.c/pass42-frag.c, pass43-frag.c: New tests.
1056
1057 2003-12-08 Andrew Pinski <pinskia@physics.uc.edu>
1058
1059 PR libmudflap/12670
1060 * configure.in: Add check for see if
1061 socklen_t typedef is in sys/socket.h.
1062 * mf-hooks1.c: Add define if socklen_t
1063 is not typedef.
1064 * mf-hooks2.c: Likewise.
1065 * mf-hooks3.c: Likewise.
1066 * config.h.in: Regen.
1067 * configure: Regen.
1068
1069 2003-12-08 Frank Ch. Eigler <fche@redhat.com>
1070
1071 * mf-runtime.c (__mf_watch_or_not): Tweak tracing message.
1072 * testsuite/libmudflap.c/fail21-frag.c: Defeat aliasing
1073 optimizations.
1074 * testsuite/libmudflap.c/pass25-frag.c: Ditto.
1075 * testsuite/libmudflap.c/pass26-frag.c: Tolerate non-overlapping
1076 (unoptimized) allocation of stack space.
1077
1078 2003-12-07 Richard Henderson <rth@redhat.com>
1079
1080 * testsuite/libmudflap.c/fail23-frag.c (main): Adjust addend to 11.
1081 * testsuite/libmudflap.c/fail27-frag.c (foo): Mark noinline.
1082
1083 2003-12-06 Andrew Pinski <apinski@apple.com>
1084
1085 partial PR libmudflap/12670
1086 * mf-hooks1.c: Respect Darwin checks. Conditionalize POSIX_SOURCE.
1087 * mf-hooks2.c: Likewise.
1088 * mf-hooks3.c: Likewise.
1089
1090 2003-11-19 Frank Ch. Eigler <fche@redhat.com>
1091
1092 libstdc++/11696
1093 * mf-runtime.h.in: Switch to #pragma redefine_extname for
1094 symbols interposed at compile time.
1095 * testsuite/libmudflap.c++/pass41-frag.cxx: New test.
1096
1097 libmudflap/12939
1098 * mf-hooks2.c (semctl): Tolerate FreeBSD.
1099
1100 * configure.in: Reorganize check for <pthread.h>.
1101 * configure: Regenerated.
1102
1103 2003-11-04 David Edelsohn <edelsohn@gnu.org>
1104
1105 * mf-runtime.c (_ALL_SOURCE): Define for AIX.
1106 (_LARGE_FILE_API): Define for AIX.
1107 * mf-hooks[123]: Same.
1108 (_XOPEN_SOURCE_EXTENDED): Define to 1 for AIX.
1109
1110 2003-10-21 David Edelsohn <edelsohn@gnu.org>
1111
1112 * mf-runtime.c (_XOPEN_SOURCE_EXTENDED): Define to 1 for AIX.
1113
1114 2003-07-29 Frank Ch. Eigler <fche@redhat.com>
1115
1116 2003-07-29 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
1117
1118 * configure.in: Update check for union semun.
1119
1120 2003-07-29 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
1121
1122 PR other/11673
1123 * mf-hooks2.c [WRAP_semctl]: Fix check for HAVE_UNION_SEMUN.
1124
1125 2003-07-29 Frank Ch. Eigler <fche@redhat.com>
1126
1127 PR other/11673
1128 * configure.in: Add checks for 64-bit LFS functions, struct semun
1129 definition, for BSD compatibility.
1130 * mf-hooks1.c: Respect BSD checks. Conditionalize POSIX_SOURCE.
1131 * mf-hooks2.c: Ditto. Include <strings.h> for bcmp* decls.
1132 * mf-hooks3.c: Ditto.
1133 (pthread_create): Try MAP_ANON on platforms without the MAP_ANONYMOUS
1134 mmap flag.
1135 * configure, config.h.in: Regenerated.
1136
1137 2003-07-23 Frank Ch. Eigler <fche@redhat.com>
1138
1139 Multithreading fixes:
1140 * mf-runtime.c (__mf_object): Store allocating/deallocating
1141 thread id.
1142 (options): Support new "-thread-stack" option.
1143 Rename "-heur-argv-environ" option to "-heur-stdlib".
1144 Disable "-lc-mask" and "-lc-shift" options.
1145 (__mf_dynamic): Add function pointers for pthread_join/_exit.
1146 (__assert_fail): New self-contained function for glibc.
1147 * mf-hooks3.c: Essentially rewritten, particularly related to
1148 use of __mf_pthread_info array.
1149 (pthread_join, _exit): New hook functions.
1150 * mf-impl.h (BEGIN_PROTECT): Handle starting_p case.
1151 * testsuite/libmudflap.cth/pass40-frag.c: New test.
1152
1153 Warning cleanups:
1154 * mf-heuristics.c: Add type casts for tracing, sub calls.
1155 * mf-impl.h (BEGIN_PROTECT): Redefine to omit result type.
1156 Update all callers to declare explicit result holder.
1157 (END_PROTECT): Removed.
1158 * testsuite/*/*frags.exp: Clean up default MUDFLAP_OPTIONS.
1159
1160 2003-07-15 Diego Novillo <dnovillo@redhat.com>
1161
1162 * testsuite/libmudflap.c/fail21-frag.c: Add volatile modifiers.
1163 * testsuite/libmudflap.c/fail15-frag.c: Likewise.
1164 * testsuite/libmudflap.c/fail13-frag.c: Likewise.
1165
1166 2003-07-04 Frank Ch. Eigler <fche@redhat.com>
1167
1168 * mf-hooks1.c, 2.c, 3.c: New file, splits up content from old ...
1169 * mf-hooks: Removed.
1170 * mf-impl.h (MF_VALIDATE_EXTENT, BEGIN_PROTECT, END_PROTECT):
1171 Move these macros from old mf-hooks.c here.
1172 * Makefile.am: Adapt to split-up hook sources for faster builds.
1173 * Makefile.in: Regenerated.
1174
1175 * mf-heuristics.c: Remove #if-0 block.
1176
1177 * mf-impl.h (__mf_state): Reorganize declaration and implementation.
1178 (__mf_starting_p): New state only for use while dlsym bootstrapping.
1179 (CALL_REAL, __mf_init): Corresponding changes.
1180 (TRACE, VERBOSE_TRACE): Include thread id and "mf:" prefix. Update
1181 all callers to remove redundant "mf:" prefix.
1182 * mf-runtime.h.in: #define a few reentrancy macros for libmudflapth.
1183 * mf-hooks3.c: Rewrite chunks to support per-thread __mf_state value.
1184 (__mf_pthread_info): Become a hash table.
1185
1186 * testsuite/lib/mfdg.exp: Support new "dg-timeout" and
1187 "dg-repetitions" directives to control test case execution.
1188 * testsuite/libmudflap.cth/pass37-frag.c: Add timeout and repeat
1189 options.
1190 * testsuite/libmudflap.cth/pass39-frag.c: Ditto for this new test.
1191
1192 2003-06-25 Frank Ch. Eigler <fche@redhat.com>
1193
1194 * mf-hooks.c (alloca): Separate into stub.
1195 (__mf_wrap_alloca_indirect): New function. Use CALL_REAL
1196 malloc/free for alloca blocks.
1197 (pthread_create): Tolerate failing pthread_attr_get* calls.
1198 * mf-runtime.c (__mf_fini): Call __mf_wrap_alloca_indirect.
1199 * mf-impl.h (CALL_WRAP): Remove macro.
1200 * testsuite/libmudflap.c/pass21-frag.c: Include <alloca.h>.
1201 * testsuite/libmudflap.c/pass23-frag.c: Include more struct
1202 padding for ia64 BIT_FIELD_REF constructs.
1203
1204 2003-06-19 Frank Ch. Eigler <fche@redhat.com>
1205
1206 * mf-hooks.c (struct pthread_info): Add "thread_errno" field.
1207 (__mf_pthread_spawner, __mf_pthread_cleanup): Use it with GUESS
1208 libmudflap object type.
1209 * mf-runtime.c (__mfu_unregister): Correct cemetary logic to avoid
1210 crashes on unregistering STATIC objects.
1211
1212 2003-06-17 Frank Ch. Eigler <fche@redhat.com>
1213
1214 Based on patch from Eyal Lebedinsky <eyal@eyal.emu.id.au>:
1215 * mf-hooks.c (__mf_pthread_spawner): Register thread errno.
1216 (time, strerror, fopen, fopen64, fclose, fread): New hooks.
1217 (fwrite, fgetc, fgets, getc, gets, ungetc, fputc): New hooks.
1218 (fputs, putc, puts, clearerr, feof, ferror, fileno): New hooks.
1219 (printf, fprintf, sprintf, snprintf, vprintf, vfprintf): New hooks.
1220 (vsprintf, vsnprintf, access, remove, fflush, fseek): New hooks.
1221 (fseeko64, ftell, ftello64, rewind, fgetpos, fsetpos): New hooks.
1222 (stat, stat64, fstat, lstat, mkfifo, setvbuf, setbuf): New hooks.
1223 (setvbuf, opendir, closedir, readdir, recv, recvfrom): New hooks.
1224 (recvmsg, send, sendto, sendmsg, setsockopt, getsockopt): New hooks.
1225 (accept, bind, connect, gethostname, sethostname): New hooks.
1226 (gethostbyname, wait, waitpid, popen, pclose, execve): New hooks.
1227 (execv, execvp, system, dlopen, dlclose, dlerror, dlsym): New hooks.
1228 (semop, semctl, shmctl, shmat, shmdt): New hooks.
1229 * mf-runtime.h.in: Corresponding changes.
1230 * mf-runtime.c (__mf_ini): Register stdio objects. Use STATIC type.
1231 (opts) Rename heur_argv_environ to heur_std_data.
1232 (__mf_wrap_main): Use STATIC type for argv/environ strings.
1233 * Makefile.am: Corresponding changes.
1234 * Makefile.in: Regenerated.
1235
1236 2003-06-11 Frank Ch. Eigler <fche@redhat.com>
1237
1238 * mf-heuristics.c (__mf_heuristic_check): Disable stack_bounds
1239 heuristic for threaded case, and for non-x86-linux targets.
1240 * mf-hooks.c (__mf_0fn_calloc): Provide a working dummy implementation
1241 for use during pre-main() program startup.
1242 (__mf_0fn_*): Make these functions non-static.
1243 * mf-impl.h (DECLARE, CALL_REAL): Support calls to 0fn backup hook
1244 functions.
1245 * mf-runtime.c (__mf_state): Set initial state to "starting".
1246 (__mf_resolve_single_dynamic): Tolerate repeated calls for same symbol.
1247 (__wrap_main): New function to register argv[] and environ[] strings.
1248 (__mf_ini): Call it.
1249 (*): In all trace functions, use "%p" as formatter for uintptr_t.
1250
1251 * testsuite/libmudflap.c/pass38-frag.c: New test case.
1252 * testsuite/libmudflap.cth/pass37-frag.c: Improved test.
1253
1254 * acinclude.m4: Add comments with aoliva's concerns about x86_64
1255 pass_all.
1256 * aclocal.m4, configure: Regenerated.
1257
1258 2003-06-04 Frank Ch. Eigler <fche@redhat.com>
1259
1260 * acinclude.m4: Correct typo in AC_MSG_CHECKING.
1261 * aclocal.m4, configure: Regenerated.
1262
1263 2003-06-03 Frank Ch. Eigler <fche@redhat.com>
1264
1265 * acinclude.m4: Force "pass_all" deplibs_check_method for libtool
1266 for x86_64 target. Disable caching for this value.
1267 * aclocal.m4, configure: Regenerated.
1268
1269 2003-06-02 Frank Ch. Eigler <fche@redhat.com>
1270
1271 * testsuite/libmudflap.c/pass38-frag.c: Deleted. -fwritable-strings
1272 is about to become deprecated, and its present handling bugs are
1273 unworthy of fixing.
1274
1275 2003-05-30 Frank Ch. Eigler <fche@redhat.com>
1276
1277 * testsuite/libmudflap.c/pass38-frag.c: New test for
1278 -fwritable-strings.
1279
1280 2003-05-23 Frank Ch. Eigler <fche@redhat.com>
1281
1282 * mf-runtime.c (__mf_sigusr1_handle): Call unlocked variant of
1283 __mf_report, asserting reentrant calling context.
1284
1285 2003-05-23 Frank Ch. Eigler <fche@redhat.com>
1286
1287 * mf-hooks.c (realloc): Correct reentrancy logic.
1288 * testsuite/libmudflap.c/hook-allocstuff.c: New test case.
1289
1290 2003-05-20 Frank Ch. Eigler <fche@redhat.com>
1291
1292 * mf-hooks.c (LIBMUDFLAPTH_THREADS_MAX): New macro, replaces
1293 PTHREAD_THREADS_MAX. Update users.
1294 * mf-runtime.c (__mf_usage): Print [active] instead of [default]
1295 for active options.
1296 * testsuite/Makefile.am (all-local): Prime dejagnu site.exp file
1297 with libmudflapth presence indicator.
1298 * testsuite/Makefile.in: Regenerated.
1299
1300 2003-05-16 Frank Ch. Eigler <fche@redhat.com>
1301
1302 * Makefile.am (AM_CFLAGS): Remove "-ansi".
1303 * configure.in: Remove silly no-pthreads => no-shared logic.
1304 * Makefile.in, configure: Regenerated.
1305 * mf-heuristics.c (__mf_heuristic_check): Remove reentrancy hacks.
1306 * mf-hooks.c (BEGIN_PROTECT, END_PROTECT): Reorganize reentrancy
1307 code. Count reentrancy events.
1308 (all hook functions): Don't directly manipulate __mf_state variable.
1309 Add TRACE calls to hook functions without them.
1310 * mf-impl.h (LOCKTH): Try to count lock contention events.
1311 (VERBOSE_TRACE, TRACE): Remove reentrancy hacks.
1312 * mf-runtime.c (BEGIN_RECURSION_PROTECT, END_RECURSION_PROTECT):
1313 Reorganize reentrancy code.
1314 (external __mf_ entry points): Use RECURSION_PROTECT mechanism to
1315 identify reentrancy with mutex holding times.
1316 (internal __mfu_ entry points): Remove internal reentrancy code.
1317 (__mf_init): Use ordinary locked calls.
1318 (__mfu_report): Print the two new counts.
1319 * testsuite/lib/libmudflap.exp: Filter out junk ld/pthreads messages.
1320 * testsuite/libmudfap.cth/cthfrags.exp: New test driver.
1321 * testsuite/libmudflap.cth/pass37-frag.c: New pthreads test.
1322 * testsuite/libmudfap.cth/cfrags.exp: Adapt to new libmudflap
1323 option defaults.
1324
1325 2003-05-09 Frank Ch. Eigler <fche@redhat.com>
1326
1327 * configure.in: Add pthread support, plus glibc and porting hacks.
1328 * Makefile.am (LIBMUDFLAPTH): New conditional, to build -lmudflapth
1329 from objects built into ./pth/.
1330 * mf-runtime.c (__mfu_watch,register,...): Fork new unlocked
1331 functions for internal entry points. Update callers to pick
1332 locked vs. unlocked variants.
1333 (__mf_resolve_single_dynamic): Extend to support symbol versioning
1334 info coming in from a static data structure.
1335 (*): Reorder miscellaneous declarations to group data vs functions.
1336 (__mf_set_default_options): Simplify.
1337 (__mf_usage): Mention threading status of host executable.
1338 * mf-impl.h: Move max/min decls here. Reorganize __mf_dynamic
1339 decls to match above.
1340 (LOCKTH, UNLOCKTH): New macros for Big Libmudflap Lock management.
1341 * mf-heuristics.c: Choose between locked/unlocked calls. Add
1342 some lock/unlock markers. Remove some unused code.
1343 * mf-hooks: Ditto.
1344 (pthread_create): New hook function.
1345 (__mf_pthread_cleanup, _spawner): New helper functions.
1346 * configure. aclocal.m4, config.h.in, Makefile.in: Regenerated.
1347
1348 2003-05-02 Frank Ch. Eigler <fche@redhat.com>
1349
1350 * testsuite/libmudflap.c/fail27-frag.c: Add more volatile flags.
1351
1352 2002-04-28 Frank Ch. Eigler <fche@redhat.com>
1353
1354 * Makefile.am (HOOKOBJS): Add *time related hooks.
1355 * configure.in: Look for pthreads.h header.
1356 * mf-hooks.c (asctime, ctime, gmtime, localtime): New wrappers.
1357 * mf-runtime.c: Begin sketching some pthreads support.
1358 (__mf_usage): Check for -lpthread presence.
1359 (__mf_unregister): Confirm matching unregistration base.
1360 (__mf_find_objects_rec): Reduce unnecessary recursion.
1361 * mf-runtime.h.in: Add "nothrow" attribute to functions. Add
1362 #defines for new hook functions.
1363 * mf-impl.h: Corresponding changes.
1364 * config.h.in, configure, Makefile.in: Regenerated.
1365
1366 2002-04-27 Diego Novillo <dnovillo@redhat.com>
1367
1368 * testsuite/libmudflap.c/fail1-frag.c: Add volatile
1369 modifiers to prevent being optimized away.
1370 * testsuite/libmudflap.c/fail10-frag.c: Likewise.
1371 * testsuite/libmudflap.c/fail13-frag.c: Likewise.
1372 * testsuite/libmudflap.c/fail14-frag.c: Likewise.
1373 * testsuite/libmudflap.c/fail15-frag.c: Likewise.
1374 * testsuite/libmudflap.c/fail2-frag.c: Likewise.
1375 * testsuite/libmudflap.c/fail20-frag.c: Likewise.
1376 * testsuite/libmudflap.c/fail3-frag.c: Likewise.
1377
1378 2003-04-15 Frank Ch. Eigler <fche@redhat.com>
1379
1380 * Makefile.am (libmudflap_la_LIBADD): Remove -ldl.
1381 * configure.in: Look for uintptr_t and -ldl on target.
1382 * mf-runtime.h.in: Adjust uintptr_t declaration logic.
1383 * Makefile.in, aclocal.m4, configure, config.h.in: Regenerated.
1384 * testsuite/Makefile.in: Regenerated.
1385 * mf-runtime.c (__mf_sigusr1_respond): Tweak declaration and calls
1386 for better C compliance.
1387
1388 2003-04-15 Frank Ch. Eigler <fche@redhat.com>
1389
1390 * mf-hooks.c (MF_VALIDATE_EXTENT): Remove unnecessary reentrancy
1391 prevention code.
1392 * mf-runtime.c (__mf_set_default_options): Turn off
1393 check-initialization.
1394 (__mf_describe_object): Shorten description.
1395 * testsuite/libmudflap.c/fail25-frag.c: Turn on check-initialization.
1396
1397 2003-04-07 Frank Ch. Eigler <fche@redhat.com>
1398
1399 * mf-hooks.c (__mf_0fn_mmap): Correct return value, as per <rth>.
1400
1401 2003-04-02 Frank Ch. Eigler <fche@redhat.com>
1402
1403 * mf-hooks.c (BEGIN_PROTECT): Handle startup-time reentrant
1404 calls specially.
1405 (__mf_0fn_malloc ... _munmap): New dummy backup calls.
1406 * mf-impl.h (CALL_BACKUP): New macros.
1407 * mf-runtime.c (__mf_init): Tweak __mf_state during startup.
1408
1409 2003-03-31 Frank Ch. Eigler <fche@redhat.com>
1410
1411 * Makefile.am (AM_CFLAGS): Remove optimization flags.
1412 (HOOKOBJS): Remove dlopen hook.
1413 (libmudflap_la_LIBADD): Add -ldl.
1414 * mf-hooks.c (dlopen): Remove hook.
1415 * mf-impl.h (__mf_dynamic): Ditto.
1416 * mf-runtime.c (__mf_resolve_dynamics): Ditto.
1417 * Makefile.in: Regenerated.
1418
1419 2003-03-28 Frank Ch. Eigler <fche@redhat.com>
1420
1421 * configure.in: Check for target gettimeofday, signal, some headers.
1422 * mf-impl.h (__mf_opts): Add new "sigusr1_report" field. Comment
1423 out inop multi_threaded field.
1424 * mf-runtime.c (options): Handle new "-sigusr1-report" option.
1425 (__mf_set_options): Correct handling of "-help".
1426 (__mf_sigusr1_respond): New function to manage SIGUSR1 response.
1427 (__mf_check, __mf_register, __mf_unregister): Call it.
1428 (__mf_insert_new_object, __mf_unregister): Respect HAVE_GETTIMEOFDAY.
1429 (__mf_report_leaks): Make callable
1430 (__mf_tree_analyze): Traverse in-order. Accumulate address bit
1431 distribution statistics.
1432 (__mf_adapt_cache): Rewrite shift guessing logic based on address
1433 bit distributions.
1434 * config.h.in, configure: Regenerated.
1435 * testsuite/libmudflap.c/fail27-frag.c: New test.
1436 * testsuite/libmudflap.c/pass36-frag.c: New test.
1437
1438 2003-03-11 Frank Ch. Eigler <fche@redhat.com>
1439
1440 * mf-runtime.h.in: Tweak.
1441 * Makefile.am, configure.in: Tweak mf-runtime.h generation some more.
1442 Don't use intermediate files nor AC_OUTPUT-time postprocessing.
1443 * Makefile.in, testsuite/Makefile.in, configure: Regenerated.
1444
1445 2003-03-10 Frank Ch. Eigler <fche@redhat.com>
1446
1447 * configure.in: Tweak generation of mf-runtime.h some more. It
1448 needs to work from both config.status and configure.
1449 * configure: Regenerated.
1450
1451 2003-03-10 Frank Ch. Eigler <fche@redhat.com>
1452
1453 * Makefile.am: Reorganize hook file building. Add auto dependencies.
1454 * configure.in: Tweak generation of mf-runtime.h.
1455 * mf-runtime.h.in: Add new __MF_TYPE_HEAP_I.
1456 * mf-hooks.c (*): Adapt to initialized-heap object type.
1457 * mf-impl.h: Tweak cemetary boundaries.
1458 * mf-runtime.c (__mf_check): Adapt to new initialized-heap object
1459 type.
1460 (__mf_insert_new_object, __mf_register, __mf_unregister): Ditto.
1461 (__mf_describe_object, __mf_report_leaks, __mf_violation): Ditto.
1462 * testsuite/lib/libmudflap.exp (includes): Include build tree.
1463 * testsuite/libmudflap.c/pass{26,5}: Further adapt to initialization
1464 checking.
1465 * testsuite/.../fail{25,26}-frag.c: New tests.
1466 * testsuite/.../pass{32,33,34,35}-frag.c: New tests.
1467 * Makefile.in, configure: Regenerated.
1468
1469 2003-03-05 Frank Ch. Eigler <fche@redhat.com>
1470
1471 * mf-runtime.c (__mf_set_default_options): Turn on initialization
1472 checking by default.
1473 (__mf_insert_new_object): As a temporary hack, assume that new
1474 objects registered on the stack start out initialized.
1475 * testsuite/libmudflap.c/fail9,pass23,pass[6789]-*: Initialize
1476 heap objects by hand.
1477
1478 2003-03-05 Frank Ch. Eigler <fche@redhat.com>
1479
1480 Switch to macro-style hooks for str*/mem*/b* functions.
1481 * mf-runtime.h.in (__MF_TYPE_*): Moved some internal values out.
1482 (mem*, str*, b*): Added macro-style hooks for _MUDFLAP case.
1483 * mf-runtime.c: #include config.h to enable glibc backtraces again.
1484 (__mf_set_default_options): Turn off heur_proc_map.
1485 (*): Adapt to to macro-style hook functions.
1486 (__mf_object_dead_head, __mf_object_cemetary): Correct bounds.
1487 (__mf_check, __mf_register, __mf_unregister): Tweak tracing message.
1488 (__mf_violation): Handle __MF_VIOL_WATCH.
1489 * mf-impl.h (__MF_TYPE_*): Moved these internal values here.
1490 (__mf_dynamic): Removed mem*/str*/b* functions.
1491 (TRACE, VERBOSE_TRACE): Add reentrancy locking.
1492 (WRAPPER2): New macro for macro-style hooks.
1493 * mf-hooks.c: Convert mem*/str*/b* functions to simpler
1494 macro-style hooks.
1495 (BEGIN_PROTECT): Tweak tracing vs reentrancy-lock ordering.
1496 * mf-heuristics.c: Adapt to macro-style hook functions.
1497 Correct some comments.
1498 * testsuite/lib/mfdg.exp (dg-test): Simplify result string for
1499 output pattern tests.
1500 * testsuite/libmudflap.c/fail[89]-frag.c: Elaborate output test.
1501 * testsuite/libmudflap.c++/c++frags.exp: Enable non-static tests.
1502
1503 2003-02-28 Frank Ch. Eigler <fche@redhat.com>
1504
1505 * testsuite/libmudflap.c/fail23-frag.c, pass30-frag.c: New tests
1506 for global array registration.
1507 * testsuite/libmudflap.c++/fail24-frag.cxx, pass31-frag.cxx: Ditto.
1508 * testsuite/libmudflap.c++/c++frags.exp: Tweak -static multilib hack.
1509
1510 2003-02-27 Frank Ch. Eigler <fche@redhat.com>
1511
1512 * Makefile.am: Add gross make bug workarounds. Tweaked
1513 SUBDIRS and AM_CFLAGS.
1514 * Makefile.in: Regenerated.
1515
1516 2003-02-26 Frank Ch. Eigler <fche@redhat.com>
1517
1518 Switch to dejagnu.
1519 * configure.in (AC_PROG_CXX): Don't look for C++ any more.
1520 * Makefile.am (TESTS): Remove simple automake testing.
1521 * configure, Makefile.in: Regenerated.
1522 (SUBDIRS): Include new testsuite/ directory.
1523 * tests/*: Removed all files; moved bulk under:
1524 * testsuite/*: New subdirectory tree.
1525 * testsuite/libmudflap.c/cfrags.exp: New file, C test driver.
1526 * testsuite/libmudflap.c++/c++frags.exp: New file, C++ test driver.
1527 * testsuite/lib/libmudflap.exp: New file, derived from libstdc++.
1528 * testsuite/lib/mfdg.exp: New file, derived from dejagnu.
1529 * testsuite/config/default.exp: New file.
1530 * testsuite/Makefile.am, Makefile.in: New files.
1531
1532 2003-01-29 Frank Ch. Eigler <fche@redhat.com>
1533
1534 * Makefile.am (TESTS_ENVIRONMENT): Remove redundant "-mode-check".
1535 (TESTS): Add fail22 and pass29 tests.
1536 * mf-runtime.h.in: Change API to take void*/size_t region parameters.
1537 Add new access-type parameter for __mf_check. Move __MF_VIOL* out.
1538 * mf-impl.h: Corresponding changes. Update CLAMP* macros for void*
1539 values. Move __MF_VIOL* here.
1540 * mf-runtime.c (*): Adapt to void*/size_t API in mf-runtime.h.
1541 (check_initialization): New field in __mf_opts. Default off.
1542 (read_count,write_count): New fields in __mf_object.
1543 (__mf_check): Implement basic initialization checking.
1544 (__mf_insert_new_object): Assume STATIC|GUESS regions are initialized.
1545 (__mf_describe_object): Print new fields.
1546 (__mf_violation): Identify check/read vs. check/write in messages.
1547 * test/pass29-frag.c, test/fail22-frag.c: Basic tests for new
1548 "-check-initialized" mudflap option.
1549 * test/pass25-frag.c, test/fail21-frag.c: Adapt to API changes.
1550 * mf-hooks.c (MF_VALIDATE_EXTENT): Add new access-type parameter.
1551 Drop __FILE__/__LINE__ hack. Update callers.
1552 (*): Adapt to new mf-runtime.h API.
1553 * Makefile.in: regenerated.
1554
1555 2003-01-24 Frank Ch. Eigler <fche@redhat.com>
1556
1557 * configure.in: Build mf-runtime.h a more proper way.
1558 * mf-hooks.c (strdup, strndup): Correct reentrancy logic.
1559 * mf-runtime.c (verbose_violations): Turn on by default.
1560 * mf-runtime.h.in: Remove some miscellaneous stuff ...
1561 * mf-impl.h: ... and move it here.
1562 * configure: Regenerated.
1563
1564 2003-01-22 Frank Ch. Eigler <fche@redhat.com>
1565
1566 * configure.in: Look for C++ compiler.
1567 * test/*-frag.c, mf-driver.c: Reformatted with GNU indent and
1568 fixed type warnings when built with C++.
1569 * test/pass27-frag.cxx, pass28-frag.cxx: New C++ tests.
1570 * Makefile.am (TESTS): Run them.
1571 (*) Add new rules for building and running C++ tests.
1572 (TESTFLAGS): Set new default to avoid libstdc++-v3 shlib issues.
1573 * mf-runtime.h.in: Protect with extern "C".
1574 * Makefile, configure: Regenerated.
1575
1576 2003-01-06 Frank Ch. Eigler <fche@redhat.com>
1577
1578 Portability improvements.
1579 * configure.in: Look for glibc backtrace headers/functions.
1580 * mf-hooks.c: Don't include <execinfo.h> any more.
1581 * mf-runtime.c (__mf_set_options): Call more stdlib functions
1582 via CALL_REAL.
1583 (__mf_backtrace): Provide alternate baby implementation in
1584 absence of glibc.
1585 * test/mf-driver.c: Portability tweaks.
1586 * acinclude.m4: New file, containing top level libtool.m4.
1587 * aclocal.m4, configure, Makefile.in, config.h.in: Regenerated.
1588
1589 2002-12-19 Frank Ch. Eigler <fche@redhat.com>
1590
1591 * mf-runtime.h.in (HAVE_UINTPTR_T): Define unconditionally.
1592
1593 2002-11-08 Frank Ch. Eigler <fche@redhat.com>
1594
1595 * mf-runtime.c (options): Add new "wipe-heap", "wipe-stack"
1596 options.
1597 (__mf_unregister): Implement stack/heap object wiping.
1598 (__mf_set_options): Renamed from __mf_process_opts.
1599 (__mf_uncache_object): Change arg type, correct callers.
1600 * mf-impl.h: Corresponding changes.
1601 * mf-hooks.c (realloc): Save/restore heap-wiping flag.
1602 * mf-runtime.h.in (__mf_set_options): Extend public API.
1603 * test/pass26-frag.c: New test for stack wiping.
1604 * Makefile.am (TESTS): Run it.
1605 * Makefile.in: Regenerated.
1606
1607 2002-11-07 Frank Ch. Eigler <fche@redhat.com>
1608
1609 * mf-runtime.h.in (__mf_watch, __mf_unwatch): Extend public API.
1610 * mf-runtime.c (__mf_object_t): Add watching_p field.
1611 (__mf_watch_or_not): New function to implement
1612 object watch flagging.
1613 (__mf_watch, __mf_unwatch): New wrappers for above.
1614 (__mf_check, __mf_describe_object): Handle objects with watching_p.
1615 (__mf_count_violation): Enlarge array.
1616 (__mf_uncache_object): Renamed from __mf_remove_old_object. Don't
1617 unlink object. Clear cache properly.
1618 (__mf_unregister): Unlink object explicitly before uncaching.
1619 * test/fail21-frag.c, pass25-frag.c: New tests.
1620 * Makefile.in, aclocal.m4: Regenerated.
1621
1622 2002-11-05 Frank Ch. Eigler <fche@redhat.com>
1623
1624 * test/fail20-frag.c: New test for NULL pointer dereferencing.
1625 * Makefile.am (TESTS): Add it.
1626 * test/pass-stratcliff.c: Add decls of stpcpy.
1627 * configure.in: Test for <stdint.h>. Generate mf-runtime.h in
1628 build tree from config.h and new file mf-runtime.h.in.
1629 * mf-runtime.h.in: Renamed from mf-runtime.h. Tweak uintptr_t decl.
1630 * Makefile.in, configure, config.h.in: Regenerated.
1631 * mf-hooks.c: Add #undef for wrapped glibc str*/mem* macros.
1632 * mf-runtime.c (options, __mf_set_default_options): Support new
1633 default "abbreviate" option.
1634 (__mf_object.description_epoch): New field.
1635 (__mf_describe_object): Conditionally abbreviate objects already
1636 displayed in current epoch. Accept NULL input to increment epoch.
1637 (__mf_fini, __mf_ini): Reset description epoch.
1638 (__mf_register, __mf_unregister, __mf_adapt_cache, __mf_init): Ensure
1639 that NULL pointer slot in lookup cache is invalidated. Register a
1640 NOACCESS region around NULL.
1641 * mf-impl.h: Corresponding changes.
1642
1643 2002-10-16 Frank Ch. Eigler <fche@redhat.com>
1644
1645 * test/fail19-frag.c, pass24-frag.c, pass-stratcliff.c: New tests.
1646 * Makefile.am: Run them. Install mf-runtime.h.
1647 * Makefile.in: Regenerated.
1648 * mf-hooks.c: Add some markers for more missing functions.
1649 * mf-runtime.c (__mf_adapt_cache): Experiment with a utilization-based
1650 statistic to tune tune cache size (mask).
1651
1652 2002-10-01 Frank Ch. Eigler <fche@redhat.com>
1653
1654 * test/pass23-frag.c: New test for bit_field_ref expressions.
1655 * Makefile.am, Makefile.in: Add new test.
1656 * mf-hooks.c (mmap, munmap): Rewrite to track individual pages.
1657 (MF_VALIDATE_EXTENT): Accept zero-size mem/str operations.
1658 * mf-runtime.c (__mf_init): Register errno global.
1659 (__mf_find_object): Removed function.
1660 (__mf_check): Rewrite logic to support accesses across some
1661 contiguous but distinctly registered objects.
1662 (__mf_remove_old_object): Tolerate cache entries that span
1663 contiguous objects.
1664
1665 2002-09-30 Frank Ch. Eigler <fche@redhat.com>
1666
1667 * test/pass21-frag.c, pass22-frag.c: New tests: alloca, bitfields.
1668 * Makefile.am, Makefile.in: Run new tests.
1669 * mf-hooks.c (alloca): Correct stack direction logic.
1670
1671 2002-09-26 Frank Ch. Eigler <fche@redhat.com>
1672
1673 * mf-impl.h (adapt_cache): New option.
1674 * mf-runtime.c (__mf_set_default_options): Set its default value.
1675 Tweak the tree_aging parameter down.
1676 (__mf_check): Maintain separate counter for cache-adaptation.
1677 (__mf_tree_analyze): New function to collect object tree stats.
1678 (__mf_adapt_cache): New function to automate cache parameters.
1679
1680 2002-09-24 Frank Ch. Eigler <fche@redhat.com>
1681
1682 * mf-heuristics.c (__init_misc, __mf_heuristic_check): Add
1683 hypothetical #if-0'd argv/envp region registration.
1684 * mf-runtime.c (__mf_init): Add kludged form of above.
1685 (*) Add "heur_argv_environ" flag, default on, to govern this.
1686 * mf-impl.h: Corresponding changes.
1687
1688 2002-09-20 Frank Ch. Eigler <fche@redhat.com>
1689
1690 * test/fail18-frag.c: New test file for NOACCESS regions.
1691 * Makefile.am (TESTS): Add new test.
1692 * Makefile.in: Regenerated.
1693
1694 * mf-heuristics.c (__mf_heuristics_check): Correct deja_vu logic.
1695 * mf-impl.h (tree_aging): Add new mudflap_option, default 1000000.
1696 (optimize_object_tree): Remove unused mudflap_option.
1697 * mf-runtime.h (__MF_TYPE_NOACCESS): New region type. Add printing
1698 support throughout. Use .._MAX_CEM for cemetary upper bound.
1699 * mf-runtime.c (__mf_init): Register __mf_* globals as NOACCESS
1700 regions.
1701 (__mf_object): Add new liveness field for use by tree aging.
1702 (__mf_check): Trigger tree aging when needed.
1703 (__mf_age_tree): New function to decay liveness field.
1704 (__mf_find_objects_rec): Use liveness field to rotate tree.
1705 (__mf_insert_new_object): Only provide backtrace for HEAP objects.
1706 (__mf_unregister): Ditto.
1707 (__mf_register): Tweak duplicate-static message.
1708 (__mf_violation: Tweak nearby-object counter printing.
1709
1710 2002-09-16 Frank Ch. Eigler <fche@redhat.com>
1711
1712 * test/pass20-frag.c: New test file.
1713 * Makefile.am (TESTS): Reorganize. Add pass20 test.
1714 * Makefile.in: Regenerated.
1715
1716 * mf-impl.h (TRACE_IN, TRACE_OUT): Remove macros. Update callers.
1717 * mf-hooks.c (BEGIN_PROTECT): Add hook tracing here.
1718 * mf-heuristic.c (__mf_heuristic_check): Track seen /proc/self/map
1719 entries to avoid repeat registration.
1720 * mf-runtime.c (__mf_object_cemetary): Don't bother bury GUESS regions.
1721 (__mf_register, __mf_unregister): Rewrite GUESS handling logic.
1722
1723 2002-09-09 Frank Ch. Eigler <fche@redhat.com>
1724
1725 * Makefile.am: Create test sources with #include, not cat>>.
1726 * Makefile.in: Regenerated.
1727 * test/buildtest.sh: Removed.
1728 * test/driver.c (abort_handler, main): Be quiet.
1729
1730 2002-09-06 Frank Ch. Eigler <fche@redhat.com>
1731
1732 * test/pass18-frag.c, pass19-frag.c: New tests.
1733 * Makefile.am (check): Run them. Rebuild test programs each time.
1734 * Makefile.in: Regenerated.
1735
1736 2002-09-06 Frank Ch. Eigler <fche@redhat.com>
1737
1738 * mf-runtime.c (__mf_register): Correct SEGV-inducing error in
1739 overlapping object search.
1740 (__mf_violation): Likewise for nearby objects.
1741 Improve nearby-object listing.
1742
1743 cleanup:
1744 * mf-runtime.c, mf-hooks.c: Remove "{{{"/"}}}" folding marks.
1745 * mf-heuristics.c (__mf_heuristic_check): Tweak message.
1746
1747 2002-09-03 Frank Ch. Eigler <fche@redhat.com>
1748
1749 alloca support:
1750 * Makefile.am (AM_CFLAGS): New definition of needed settings.
1751 (HOOKOBJS): Add alloca-hook.o.
1752 * mf-hooks.c (alloca): New function to implement alloca in libiberty
1753 style.
1754 * mf-runtime.c (__mf_report): Call alloca(0) to flush remaining blocks.
1755 (__mf_backtrace): Reimplement without using alloca.
1756 * Makefile.in: Regenerated.
1757
1758 cleanup:
1759 * mf-hooks.c: Use VERBOSE_TRACE throughout instead of fprintf(stderr).
1760 Correct signedness bugs in length-tracking variables.
1761 * mf-impl.h: Make options unsigned.
1762 (CALL_WRAP): New macro to parallel CALL_REAL().
1763 (DECLARE): Remove erroneous ";" at end.
1764 * mf-runtime.c, mf-hooks.c, mf-heuristics.c: Replace remaining %p
1765 formatting specs with %08lx. Correct several compiler warnings.
1766
1767 2002-08-28 Frank Ch. Eigler <fche@redhat.com>
1768
1769 * mf-runtime.c (__mf_violation): Try harder to locate nearby objects.
1770
1771 2002-08-27 Frank Ch. Eigler <fche@redhat.com>
1772
1773 libmudflap hook breakup:
1774 * Makefile.am (TESTS_ENVIRONMENT): Add ../../gcc to LD_LIBRARY_PATH
1775 for libgcc_s.
1776 (TESTS): Make dependent on libmudflap.
1777 (HOOKOBJS): Break up mf-hooks.o into many little hook objects,
1778 compiled from segments of mf-hooks.c.
1779 * mf-hooks.c: Corresponding changes: wrap each function in
1780 #ifdef/#endif.
1781 * Makefile.in: Regenerated.
1782
1783 Heuristics reorganization:
1784 * mf-heuristics.c (__mf_register_ro_sections, __mf_init_heuristics):
1785 Remove these functions. Update callers.
1786 (__mf_heuristic_check): Incorporate all the various heuristics.
1787 Encode cacheability/retry judgement into trinary return value.
1788 Separate start-end logic into a separate fallback heuristic. Only
1789 register relevant /proc/self/map segments.
1790 * mf-impl.h: Corresponding changes.
1791 * mf-runtime.c (__mf_check): Reorganize heuristics fallback logic.
1792 (__mf_init): Don't call __mf_init_heuristics.
1793
1794 Tracing cleanup:
1795 * mf-heuristics.c, mf-runtime.c: Use new MUDFLAP_OPTION
1796 "-verbose-trace" to emit all tracing messages other than those of
1797 basic public api. Eliminate some duplicate/excessive messages.
1798 * mf-runtime.h: Corresponding changes.
1799
1800 2002-08-27 Graydon Hoare <graydon@redhat.com>
1801
1802 * mf-impl.h (WRAPPER): Change to create linker aliases for __wrap
1803 and __real when compiled with -DPIC.
1804 * mf-hooks.c (WRAPPER): Change all uses of WRAPPER macro slightly.
1805 * Makefile.am (AUTOMAKE_OPTIONS): Fix LD_LIBRARY_PATH for tests.
1806 * Makefile.in: Regenerate.
1807
1808 2002-08-26 Graydon Hoare <graydon@redhat.com>
1809
1810 * mf-impl.h: New file, private implementation header.
1811 * mf-runtime.h: Reorganize a bit.
1812 (CLAMPSZ): Fix arithmetic.
1813 (__MF_CACHE_MISS_P): Fix arithmetic.
1814 * mf-runtime.c: Reorganize a bit.
1815 (__mf_dynamic): New structure.
1816 (resolve_single_dynamic): New function.
1817 (__mf_resolve_dynamics): New function.
1818 (__mf_init): Initialize dynamic wrappers.
1819 * mf-hooks.c: Macro-ize __real calls.
1820 Clamp various bits of arithmetic.
1821 Add explicit __mf_check call contexts.
1822 * Makefile.am: Add dependencies on mf-impl.h
1823 * Makefile.in: Regenerate.
1824 * configure.in: Comment out shared override.
1825 * configure: Regenerate.
1826
1827 2002-08-22 Graydon Hoare <graydon@redhat.com>
1828
1829 * mf-runtime.c (__mf_process_opts): Sanity-check free_queue_length.
1830 (__mf_check): Re-inialize and check heuristics before violation.
1831 (__mf_register): Permit updating pure-guess regions.
1832 * mf-hooks.c (__wrap_free): Correct some free queue logic.
1833 (__wrap_dlopen): New wrapper function.
1834 (__wrap_mmap): New wrapper function.
1835 (__wrap_munmap): New wrapper function.
1836 * mf-heuristics.c (__mf_register_ro_sections): Register *all* regions
1837 which are not stack addresses.
1838 (is_stack_address): New function.
1839 (__mf_init_heuristics): Save and restore state, always initialize with
1840 "starting" state.
1841
1842 2002-08-21 Frank Ch. Eigler <fche@redhat.com>
1843
1844 * mf-hooks.c (MF_VALIDATE_EXTENT): Rewrite to correct off-by-one
1845 error. Pass location string.
1846 (wrap_strcpy, wrap_strncpy): Remove extra %s in trace strings.
1847 * mf-runtime.c (options): Add lc-mask, lc-shift options.
1848 (__mf_process_opts): Apply some sanity checking for lc-mask.
1849 (__mf_check, __mf_violation): Take new location-string argument.
1850 Update callers to pass NULL if necessary.
1851 (__mf_backtrace): New smart backtracer function. Calls replace
1852 several ad-hoc blocks elsewhere.
1853 (__mf_describe_object): Remove bad reentrancy test. Improve
1854 tracing message.
1855 * mf-runtime.h: Corresponding changes. Public/private markup.
1856 (__MF_CACHE_MISS_P): New macro.
1857
1858 2002-08-20 Graydon Hoare <graydon@redhat.com>
1859
1860 * mf-runtime.h: New option: stack_bound (heuristic).
1861 Move some macros out of implementation files.
1862 * mf-runtime.c: New option string: -stack-bound.
1863 Unify recursion protection with hooks.
1864 Add more logging.
1865 (__mf_check): Call __mf_heuristic_check.
1866 (__mf_process_opts): Fix "no-" processing.
1867 * mf-heuristics.c (__mf_heuristic_check): New function.
1868 * mf-hooks.c: Much off-by-one fixing, recursion protection.
1869
1870 2002-08-20 Frank Ch. Eigler <fche@redhat.com>
1871
1872 Option parsing improvements, region splitting bug fixes:
1873 * mf-heuristics.c (__mf_register_ro_sections): Add warned casts.
1874 * mf-runtime.h (heur_proc_map): New libmudflap option.
1875 * mf-runtime.c (__mf_set_default_options): Set it.
1876 (__mf_usage): Print default values/status.
1877 (__mf_process_opts): Support general "no-" option string prefix.
1878 (__mf_init): Print __mf_usage on unknown-option error.
1879 (__mf_register): Print trace message up front.
1880 Correct region splitting logic for case where a subregion disappears.
1881 Correct memory leak.
1882 (__mf_violation): Make even basic message conditional on option.
1883
1884 Build cleanup:
1885 * Makefile.am (TESTS_ENVIRONMENT): Add -no-heur-proc-map.
1886 (clean-local): New target.
1887 (test/*x rules): Add -g CFLAGS.
1888 (CFLAGS): Add -freorder-blocks.
1889 (MFCONFIG_CFLAGS, INCLUDE): Remove unneeded settings.
1890 * Makefile.in: Regenerated.
1891 * Makefile, mf-config.h: Removed files.
1892
1893 2002-08-16 Graydon Hoare <graydon@redhat.com>
1894
1895 * mf-runtime.c (__mf_insert_new_object): Factor out of
1896 __mf_register.
1897 (__mf_remove_old_object): Factor out of __mf_unregister.
1898 (__mf_register): Handle guessed regions, splitting
1899 guesses when new registrations arrive.
1900 (__mf_unregister): Do not unregister guesses.
1901 * mf-runtime.h: Move convenience macros around,
1902 declare new option fields. Add __MF_TYPE_GUESS.
1903 * mf-hooks.c (__wrap_*alloc): Use crumple zones.
1904 (__wrap_free): Call __real_free for deferred frees.
1905 * Makefile.am: Add more tests, fix dependency.
1906 * Makefile.in: Regenerate.
1907 * test/pass[13..17]-frag.c: New testcases.
1908 * test/fail[13..17]-frag.c: New testcases.
1909
1910 2002-08-15 Graydon Hoare <graydon@redhat.com>
1911
1912 * mf-heuristics.c: New file.
1913 * mf-runtime.c (options): Add -trace-calls option.
1914 (__mf_init): Call __mf_init_heuristics.
1915
1916 2002-08-14 Graydon Hoare <graydon@redhat.com>
1917
1918 * Makefile.am (TESTS): Add testsuite support.
1919 * Makefile.in: Regenerate.
1920 * test/mf-driver.c: New file.
1921 * test/buildtest.sh: New file.
1922 * test/passNN-frag.c: New testcases.
1923 * test/failNN-frag.c: New testcases.
1924
1925 2002-08-14 Graydon Hoare <graydon@redhat.com>
1926
1927 * mf-hooks.c: Change __real_strlen() to __real_strlen()+1 when
1928 verifying non-size-limited string extents.
1929
1930 2002-08-14 Frank Ch. Eigler <fche@redhat.com>
1931
1932 * mf-hooks.c: Make __wrap string* functions use __real_str[n]len
1933 instead of plain str[n]len for internal checks.
1934 * mf-runtime.c (__mf_violation): Print optional stack traceback.
1935
1936 2002-08-14 Frank Ch. Eigler <fche@redhat.com>
1937
1938 * mf-hooks.c: Remove #if-0 around hooks that are now ld-wrapped.
1939
1940 2002-08-13 Graydon Hoare <graydon@redhat.com>
1941
1942 * mf-runtime.c: Rework configuration to operate on
1943 environment variable options rather than #defines
1944 (__mf_violation): Add simple fork-a-gdb violaiton mode.
1945 (__mf_init): Set static __mf_active_p flag on startup,
1946 to inhibit mudflap wrap-based checking during crt0.s.
1947 * mf-runtime.h: Declare options structure.
1948 * mf-hooks.c: New wrappings for mem*, b*, str*
1949 libc functions (temporarily #if 0-ed out).
1950
1951 2002-08-12 Frank Ch. Eigler <fche@redhat.com>
1952
1953 * Makefile.am, configure.in: New files.
1954 * Makefile.in, Makefile, configure, config.h.in: New generated files.
1955 * stamp-h.in, aclocal.m4: Ditto.
1956
1957 2002-08-08 Frank Ch. Eigler <fche@redhat.com>
1958
1959 * Makefile: New file.
1960 * mf-config.h: New file: runtime configuration.
1961 * mf-hooks.c: New file: interposed libc functions.
1962 * mf-runtime.c: New file: bulk of runtime.
1963 * mf-runtime.h: New file: public functions.