mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-03 10:05:29 +00:00
* configure.in support
* new supp file darwin11.supp
* comment out many intercepts in mc_replace_strmem.c and
vg_replace_malloc.c that are apparently unnecessary for Darwin
* add minimal handling for the following new syscalls and mach traps:
mach_port_set_context
task_get_exception_ports
getaudit_addr
psynch_mutexwait
psynch_mutexdrop
psynch_cvbroad
psynch_cvsignal
psynch_cvwait
psynch_rw_rdlock
psynch_rw_wrlock
psynch_rw_unlock
psynch_cvclrprepost
* wqthread_hijack on amd64-darwin: deal with
tst->os_state.pthread having an apparently different offset,
which caused an assertion failure
* m_debuginfo: for 32 bit processes on Lion, use the DebugInfoFSM
cleanup added in r12041/12042 to handle apparently new dyld
behaviour, which is to map text areas r-- first and only
vm_protect them later to r-x.
The following cleanups remain to be done
* remove apparently pointless, commented out wrapper macro
invokations in mc_replace_strmem.c, eg
//MEMMOVE(VG_Z_DYLD, memmove)
(or determine that they are still necessary, and uncomment)
* ditto in vg_replace_malloc.c, plus general VGO_darwin cleanups
there
* write proper syscall wrappers for
mach_port_set_context
task_get_exception_ports
getaudit_addr
psynch_mutexwait
psynch_mutexdrop
psynch_cvbroad
psynch_cvsignal
psynch_cvwait
psynch_rw_rdlock
psynch_rw_wrlock
psynch_rw_unlock
psynch_cvclrprepost
These are currently just no-ops and may be causing Memcheck to
report false undef-value errors
* figure out why it doesn't work properly unless built with gcc-4.2 on
Lion.
gcc-4.2 is the "normal" gcc (i686-apple-darwin11-gcc-4.2.1). Plain
gcc is the hybrid gcc-front-end clang-back-end thing
(i686-apple-darwin11-llvm-gcc-4.2). Whereas on Snow Leopard, plain
gcc is the normal gcc.
The symptoms of the failure are that wqthread_hijack in
syswrap-amd64-linux.c hits this /*NOTREACHED*/ vg_assert(0); right
at the end (you need a pretty complex threaded app to trigger this),
which makes me think that either ML_(wqthread_continue_NORETURN) or
call_on_new_stack_0_1 do return, which they are not expected to.
* figure out if some of the uninitialised value errors reported in
system libraries on are caused by Memcheck being confused by LLVM
generated code, as per bug #242137
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12043
122 lines
3.0 KiB
Makefile
122 lines
3.0 KiB
Makefile
|
|
AUTOMAKE_OPTIONS = foreign 1.7 dist-bzip2
|
|
|
|
include $(top_srcdir)/Makefile.all.am
|
|
|
|
TOOLS = memcheck \
|
|
cachegrind \
|
|
callgrind \
|
|
massif \
|
|
lackey \
|
|
none \
|
|
helgrind \
|
|
drd
|
|
|
|
EXP_TOOLS = exp-sgcheck \
|
|
exp-bbv \
|
|
exp-dhat
|
|
|
|
# DDD: once all tools work on Darwin, TEST_TOOLS and TEST_EXP_TOOLS can be
|
|
# replaced with TOOLS and EXP_TOOLS.
|
|
TEST_TOOLS = $(TOOLS)
|
|
if !VGCONF_OS_IS_DARWIN
|
|
TEST_EXP_TOOLS = $(EXP_TOOLS)
|
|
else
|
|
TEST_EXP_TOOLS = exp-bbv
|
|
endif
|
|
|
|
|
|
# Put docs last because building the HTML is slow and we want to get
|
|
# everything else working before we try it.
|
|
SUBDIRS = \
|
|
include \
|
|
VEX \
|
|
coregrind \
|
|
. \
|
|
$(TOOLS) \
|
|
$(EXP_TOOLS) \
|
|
tests \
|
|
perf \
|
|
gdbserver_tests \
|
|
auxprogs \
|
|
mpi \
|
|
docs
|
|
DIST_SUBDIRS = $(SUBDIRS)
|
|
|
|
SUPP_FILES = \
|
|
glibc-2.2.supp glibc-2.3.supp glibc-2.4.supp glibc-2.5.supp \
|
|
glibc-2.6.supp glibc-2.7.supp glibc-2.X.supp.in \
|
|
xfree-3.supp xfree-4.supp \
|
|
glibc-2.34567-NPTL-helgrind.supp \
|
|
glibc-2.2-LinuxThreads-helgrind.supp \
|
|
glibc-2.X-drd.supp \
|
|
exp-sgcheck.supp \
|
|
darwin9.supp darwin9-drd.supp \
|
|
darwin10.supp darwin10-drd.supp \
|
|
darwin11.supp \
|
|
bionic.supp
|
|
DEFAULT_SUPP_FILES = @DEFAULT_SUPP@
|
|
|
|
# We include all the base .supp files in the distribution, but not
|
|
# default.supp, as it is built from the base .supp files at compile-time.
|
|
dist_noinst_DATA = $(SUPP_FILES)
|
|
|
|
pkglib_DATA = default.supp
|
|
|
|
pkgconfigdir = $(libdir)/pkgconfig
|
|
pkgconfig_DATA = valgrind.pc
|
|
|
|
BUILT_SOURCES = default.supp valgrind.pc
|
|
CLEANFILES = default.supp
|
|
|
|
default.supp: $(DEFAULT_SUPP_FILES)
|
|
echo "# This is a generated file, composed of the following suppression rules:" > default.supp
|
|
echo "# " $(DEFAULT_SUPP_FILES) >> default.supp
|
|
cat $(DEFAULT_SUPP_FILES) >> default.supp
|
|
|
|
## Preprend @PERL@ because tests/vg_regtest isn't executable
|
|
regtest: check
|
|
gdbserver_tests/make_local_links $(GDB)
|
|
@PERL@ tests/vg_regtest gdbserver_tests $(TEST_TOOLS) $(TEST_EXP_TOOLS)
|
|
nonexp-regtest: check
|
|
@PERL@ tests/vg_regtest $(TEST_TOOLS)
|
|
exp-regtest: check
|
|
@PERL@ tests/vg_regtest gdbserver_tests $(TEST_EXP_TOOLS)
|
|
# Nb: gdbserver_tests are put in exp-regtest rather than nonexp-regtest
|
|
# because they are tested with various valgrind tools, so might be using
|
|
# an experimental tool.
|
|
|
|
## Preprend @PERL@ because tests/vg_perf isn't executable
|
|
perf: check
|
|
@PERL@ perf/vg_perf perf
|
|
|
|
# Nb: no need to include any Makefile.am files here, or files included from
|
|
# them, as automake includes them automatically. Also not COPYING, README
|
|
# or NEWS.
|
|
# We include valgrind.spec as well as valgrind.spec.in to save packagers
|
|
# from having to run configure (bug 188560).
|
|
EXTRA_DIST = \
|
|
COPYING.DOCS \
|
|
README_DEVELOPERS \
|
|
README_PACKAGERS \
|
|
README_MISSING_SYSCALL_OR_IOCTL \
|
|
README.s390 \
|
|
README.android \
|
|
valgrind.pc.in \
|
|
valgrind.spec.in \
|
|
valgrind.spec
|
|
|
|
dist_noinst_SCRIPTS = \
|
|
vg-in-place
|
|
|
|
all-local: default.supp
|
|
mkdir -p $(inplacedir)
|
|
rm -f $(inplacedir)/default.supp
|
|
ln -s ../default.supp $(inplacedir)
|
|
|
|
clean-local:
|
|
rm -rf $(inplacedir)
|
|
|
|
# Need config.h in the installed tree, since some files depend on it
|
|
pkginclude_HEADERS = config.h
|