* gcc.c (MFWRAP_SPEC): Don't wrap pthread_join or pthread_exit.
* acinclude.m4: New file.
* configure.ac: Invoke LIBMUDFLAP_CHECK_TLS.
* configure, config.h.in, Makefile.in, testsuite/Makefile.in: Rebuild.
* mf-hooks1.c (__mf_0fn_malloc): Move body from ...
(__mf_0fn_calloc): ... here.
* mf-hooks3.c (struct pthread_info): Remove.
(__mf_pthread_info, __mf_pthread_info_idx): Remove.
(LIBMUDFLAPTH_THREADS_MAX): Set to 1021.
(struct mf_thread_data): New.
(mf_thread_data, mf_thread_data_lock): New.
(__mf_allocate_blank_threadinfo): Remove.
(__mf_find_threadinfo): Rewrite and simplify. Only use if TLS is
not available.
(__mf_state_perthread): Remove.
(__mf_get_state, __mf_set_state): New.
(__mf_pthread_cleanup): Use &errno, rather than saved pointer.
Update mf_thread_data killing procedure.
(__mf_pthread_spawner): Similarly.
(__mf_0fn_pthread_create): Only use wrapper if necessary. Remove
code to allocate thread stack space.
(__mf_0fn_pthread_join, pthread_join): Remove.
(__mf_0fn_pthread_exit, pthread_exit): Remove.
* mf-impl.h (dyn_pthread_join, dyn_pthread_exit): Remove.
(__mf_state_1): Rename from __mf_state; use TLS when available.
(__mf_get_state, __mf_set_state): New. Update all users.
* mf-runtime.c (begin_recursion_protect1): New.
(BEGIN_RECURSION_PROTECT): Use it.
(__mf_state_1): Rename from __mf_state; use TLS when available.
(threads_active_p): Remove.
(__mf_usage): Compute it directly.
From-SVN: r102108
2005-06-15 Frank Ch. Eigler <fche@redhat.com>
Fix for uncaching bug reported by Herman ten Brugge.
* mf-runtime.c (__mf_uncache_object): Search whole cache.
* testsuite/libmudflap.c/fail40-frag.c: New test.
From-SVN: r100985
2005-06-14 Frank Ch. Eigler <fche@redhat.com>
PR mudflap/21023
* tree-mudflap.c (mudflap_finish_file): Exclude non-public
rather than static objects (!) from libmudflap registration.
* testsuite/libmudflap.c/externs.exp, externs-{1,2}.c: New test files.
* testsuite/libmudflap.c/cfrags.exp: Bypass new sources.
From-SVN: r100950
2005-06-14 Frank Ch. Eigler <fche@redhat.com>
PR mudflap/22064
* mf-impl.h (mudflap_mode, violation_mode): Make these ordinary
unsigned vars with #defines instead of enums.
From-SVN: r100945
* configure.ac: Do not invoke TL_AC_GCC_VERSION.
In all substitutions, expand gcc_version in Makefile.
* aclocal.m4, configure: Regenerate.
* Makefile.am: Set gcc_version.
* Makefile.in, testsuite/Makefile.in: Regenerate.
From-SVN: r96817
* mf-impl.h (uintptr_t): Get typedef via stdint.h or define explicitly.
* mf-runtime.h: New file, replaces mf-runtime.h.in.
* configure.ac (AC_CONFIG_FILES): mf-runtime.h is no longer generated.
* Makefile.in: Ditto.
* testsuite/lib/libmudflap.exp: Add -I${srcdir}/.. to get mf-runtime.h
* testsuite/libmudflap.c/pass32-frag.c: s/uintptr_t/__mf_uintptr_t/
* testsuite/libmudflap.c/fail36-frag.c: New test.
* testsuite/libmudflap.c/fail37-frag.c: New test.
* testsuite/libmudflap.c/fail38-frag.c: New test.
From-SVN: r92815
* lib/target-libpath.exp: New file defining set_ld_library_path_env_vars
and restore_ld_library_path_env_vars.
* g++.dg/compat/compat.exp, lib/g++.exp, lib/gcc-dg.exp,
lib/gfortran.exp, lib/objc.exp, lib/treelang.exp: Use new procs.
* ada/acats/run_acats (LD_LIBRARY_PATH): Add previous LD_LIBRARY_PATH
to LD_LIBRARY_PATH. Export LD_LIBRARY_PATH.
* testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
* testsuite/lib/libjava.exp,
testsuite/libjava.jacks/jacks.exp: Use new procs in target-libpath.exp.
* testsuite/lib/libmudflap.exp: Use new procs in target-libpath.exp.
* testsuite/lib/libstdc++.exp: Use new procs in target-libpath.exp.
From-SVN: r91137
gcc/testsuite:
PR other/18138
* lib/g++.exp: Accept more than one multilib libgcc.
* lib/gcc-dg.exp: Likewise.
* lib/objc.exp: Likewise.
* lib/treelang.exp: Likewise.
* lib/gfortran.exp: Likewise.
libffi:
PR other/18138
* testsuite/lib/libffi-dg.exp: Accept more than one multilib
libgcc.
libjava:
PR other/18138
* testsuite/lib/libjava.exp: Accept more than one multilib
libgcc.
libmudflap!:
PR other/18138
* testsuite/lib/libmudflap.exp: Accept more than one multilib
libgcc.
libstdc++-v3:
PR other/18138
* testsuite/lib/libstdc++.exp: Accept more than one multilib
libgcc.
From-SVN: r89528
2004-10-02 Frank Ch. Eigler <fche@redhat.com>
* tree-mudflap.c (mf_build_check_statement_for): Reorganize to
take check-base and -limit arguments.
(mf_xform_derefs_1): Reorganize slightly to pass proper base/limit
check ranges for ARRAY_REF and COMPONENT_REF.
(execute_mudflap_fnction_ops, ..._decls): Limit unnecessary
instrumentation.
2004-10-02 Frank Ch. Eigler <fche@redhat.com>
* testsuite/libmudflap.c/pass50-frag.c, fail33-frag.c, fail34-frag.c:
New tests for proper base/limit checking for aggregates.
From-SVN: r88432
2004-08-03 Frank Ch. Eigler <fche@redhat.com>
* mf-runtime.c (compare_uintptr_t): Remove function. Inline
simplified contents in all former callers.
From-SVN: r85475
2004-07-27 Ulrich Weigand <weigand@informatik.uni-erlangen.de>
* mf-runtime.c (__mf_fini): Set mudflap_mode to mode_nop in
the statically linked case.
From-SVN: r85229
2004-07-09 Frank Ch. Eigler <fche@redhat.com>
Test case for g++/15861
* testsuite/libmudflap.c++/ctors-[12].cxx: New test case halves.
* testsuite/libmudflap.c++/ctors.exp: Driver.
* testsuite/libmudflap.c++/c++frags.exp: Elide redundant default.
Look only for *frag* test cases.
From-SVN: r84392
2004-07-08 Frank Ch. Eigler <fche@redhat.com>
ANSI C conversion, libmudflap specialization, recursion limiting.
* splay-tree.h (splay_tree_{de,}allocate_fn): Remove allocation_data
argument and indirection function pointers, update callers.
(splay_tree_s): Add statistics and recursion control fields
num_keys, max_depth, depth, rebalance_p.
* splay-tree.c (splay_tree_splay_helper): Track recursion depth.
Back out of search if it exceeds limit.
(splay_tree_splay): Manage recursion limiting with rebalancing as
needed.
(splay_tree_new): More initialization.
(splay_tree_rebalance): New function.
(splay_tree_foreach): Rewrite using nonrecursive logic.
(splay_tree_xmalloc_allocate, splay_tree_xmalloc_deallocate):
Remove. Point indirect calls to mf-runtime.c's routines.
(splay_tree_compare_ints, splay_tree_compare_pointers): Remove unused
functions.
(splay_tree_delete, splay_tree_delete_helper): Ditto.
* testsuite/heap-scalestress.c: New test based on one from
Eyal Lebedinsky <eyal@eyal.emu.id.au>:
From-SVN: r84303