-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit f836a52
Showing
2,858 changed files
with
973,911 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
|
||
Julian Seward was the original founder, designer and author of Valgrind, | ||
created the dynamic translation frameworks, wrote Memcheck and 3.3.X | ||
Helgrind, and did lots of other things. | ||
|
||
Nicholas Nethercote did the core/tool generalisation, wrote | ||
Cachegrind and Massif, and tons of other stuff. | ||
|
||
Tom Hughes did a vast number of bug fixes, helped out with support for | ||
more recent Linux/glibc versions, set up the present build system, and has | ||
helped out with test and build machines. | ||
|
||
Jeremy Fitzhardinge wrote Helgrind (in the 2.X line) and totally | ||
overhauled low-level syscall/signal and address space layout stuff, | ||
among many other things. | ||
|
||
Josef Weidendorfer wrote and maintains Callgrind and the associated | ||
KCachegrind GUI. | ||
|
||
Paul Mackerras did a lot of the initial per-architecture factoring | ||
that forms the basis of the 3.0 line and was also seen in 2.4.0. | ||
He also did UCode-based dynamic translation support for PowerPC, and | ||
created a set of ppc-linux derivatives of the 2.X release line. | ||
|
||
Greg Parker wrote the Mac OS X port. | ||
|
||
Dirk Mueller contributed the malloc/free mismatch checking | ||
and other bits and pieces, and acts as our KDE liaison. | ||
|
||
Robert Walsh added file descriptor leakage checking, new library | ||
interception machinery, support for client allocation pools, and minor | ||
other tweakage. | ||
|
||
Bart Van Assche wrote and maintains DRD. | ||
|
||
Cerion Armour-Brown worked on PowerPC instruction set support in | ||
the Vex dynamic-translation framework. | ||
|
||
Donna Robinson created and maintains the very excellent | ||
http://www.valgrind.org. | ||
|
||
Vince Weaver wrote and maintains BBV. | ||
|
||
Frederic Gobry helped with autoconf and automake. | ||
|
||
Daniel Berlin modified readelf's dwarf2 source line reader, written by Nick | ||
Clifton, for use in Valgrind.o | ||
|
||
Michael Matz and Simon Hausmann modified the GNU binutils demangler(s) for | ||
use in Valgrind. | ||
|
||
David Woodhouse has helped out with test and build machines over the course | ||
of many releases. | ||
|
||
Many, many people sent bug reports, patches, and helpful feedback. | ||
|
||
Development of Valgrind was supported in part by the Tri-Lab Partners | ||
(Lawrence Livermore National Laboratory, Los Alamos National | ||
Laboratory, and Sandia National Laboratories) of the U.S. Department | ||
of Energy's Advanced Simulation & Computing (ASC) Program. |
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,204 @@ | ||
|
||
# This file should be included (directly or indirectly) by every | ||
# Makefile.am that builds programs. And also the top-level Makefile.am. | ||
|
||
#---------------------------------------------------------------------------- | ||
# Global stuff | ||
#---------------------------------------------------------------------------- | ||
|
||
inplacedir = $(top_builddir)/.in_place | ||
|
||
# This used to be required when Vex had a handwritten Makefile. It | ||
# shouldn't be needed any more, though. | ||
##.NOTPARALLEL: | ||
|
||
#---------------------------------------------------------------------------- | ||
# noinst_PROGRAMS and noinst_DSYMS targets | ||
#---------------------------------------------------------------------------- | ||
|
||
# On Darwin, for a program 'p', the DWARF debug info is stored in the | ||
# directory 'p.dSYM'. This must be generated after the executable is | ||
# created, with 'dsymutil p'. We could redefine LINK with a script that | ||
# executes 'dsymutil' after linking, but that's a pain. Instead we use this | ||
# hook so that every time "make check" is run, we subsequently invoke | ||
# 'dsymutil' on all the executables that lack a .dSYM directory, or that are | ||
# newer than their corresponding .dSYM directory. | ||
build-noinst_DSYMS: $(noinst_DSYMS) | ||
for f in $(noinst_DSYMS); do \ | ||
if [ ! -e $$f.dSYM -o $$f -nt $$f.dSYM ] ; then \ | ||
echo "dsymutil $$f"; \ | ||
dsymutil $$f; \ | ||
fi; \ | ||
done | ||
|
||
# This is used by coregrind/Makefile.am and Makefile.tool.am for doing | ||
# "in-place" installs. It copies $(noinst_PROGRAMS) into $inplacedir. | ||
# It needs to be depended on by an 'all-local' rule. | ||
inplace-noinst_PROGRAMS: $(noinst_PROGRAMS) | ||
mkdir -p $(inplacedir); \ | ||
for f in $(noinst_PROGRAMS) ; do \ | ||
rm -f $(inplacedir)/$$f; \ | ||
ln -f -s ../$(subdir)/$$f $(inplacedir); \ | ||
done | ||
|
||
# Similar to inplace-noinst_PROGRAMS | ||
inplace-noinst_DSYMS: build-noinst_DSYMS | ||
mkdir -p $(inplacedir); \ | ||
for f in $(noinst_DSYMS); do \ | ||
rm -f $(inplacedir)/$$f.dSYM; \ | ||
ln -f -s ../$(subdir)/$$f.dSYM $(inplacedir); \ | ||
done | ||
|
||
# This is used by coregrind/Makefile.am and by <tool>/Makefile.am for doing | ||
# "make install". It copies $(noinst_PROGRAMS) into $prefix/lib/valgrind/. | ||
# It needs to be depended on by an 'install-exec-local' rule. | ||
install-noinst_PROGRAMS: $(noinst_PROGRAMS) | ||
$(mkinstalldirs) $(DESTDIR)$(pkglibdir); \ | ||
for f in $(noinst_PROGRAMS); do \ | ||
$(INSTALL_PROGRAM) $$f $(DESTDIR)$(pkglibdir); \ | ||
done | ||
|
||
# Similar to install-noinst_PROGRAMS. | ||
# Nb: we don't use $(INSTALL_PROGRAM) here because it doesn't work with | ||
# directories. XXX: not sure whether the resulting permissions will be | ||
# correct when using 'cp -R'... | ||
install-noinst_DSYMS: build-noinst_DSYMS | ||
$(mkinstalldirs) $(DESTDIR)$(pkglibdir); \ | ||
for f in $(noinst_DSYMS); do \ | ||
cp -R $$f.dSYM $(DESTDIR)$(pkglibdir); \ | ||
done | ||
|
||
# This needs to be depended on by a 'clean-local' rule. | ||
clean-noinst_DSYMS: | ||
for f in $(noinst_DSYMS); do \ | ||
rm -rf $$f.dSYM; \ | ||
done | ||
|
||
#---------------------------------------------------------------------------- | ||
# Flags | ||
#---------------------------------------------------------------------------- | ||
|
||
# Baseline flags for all compilations. Aim here is to maximise | ||
# performance and get whatever useful warnings we can out of gcc. | ||
AM_CFLAGS_BASE = \ | ||
-O2 -g \ | ||
-Wall \ | ||
-Wmissing-prototypes \ | ||
-Wshadow \ | ||
-Wpointer-arith \ | ||
-Wstrict-prototypes \ | ||
-Wmissing-declarations \ | ||
@FLAG_W_NO_FORMAT_ZERO_LENGTH@ \ | ||
-fno-strict-aliasing | ||
|
||
# These flags are used for building the preload shared objects. | ||
# The aim is to give reasonable performance but also to have good | ||
# stack traces, since users often see stack traces extending | ||
# into (and through) the preloads. | ||
if VGCONF_OS_IS_DARWIN | ||
AM_CFLAGS_PIC = -dynamic -O -g -fno-omit-frame-pointer -fno-strict-aliasing -mno-dynamic-no-pic | ||
else | ||
AM_CFLAGS_PIC = -fpic -O -g -fno-omit-frame-pointer -fno-strict-aliasing | ||
endif | ||
|
||
|
||
# Flags for specific targets. | ||
# | ||
# Nb: the AM_CPPFLAGS_* values are suitable for building tools and auxprogs. | ||
# For building the core, coregrind/Makefile.am files add some extra things. | ||
# | ||
# Also: in newer versions of automake (1.10 onwards?) asm files ending with | ||
# '.S' are considered "pre-processed" (as opposed to those ending in '.s') | ||
# and so the CPPFLAGS are passed to the assembler. But this is not true for | ||
# older automakes (e.g. 1.8.5, 1.9.6), sigh. So we include | ||
# AM_CPPFLAGS_<PLATFORM> in each AM_CCASFLAGS_<PLATFORM> variable. This | ||
# means some of the flags are duplicated on systems with newer versions of | ||
# automake, but this does not really matter and seems hard to avoid. | ||
|
||
AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@ = \ | ||
-I$(top_srcdir) \ | ||
-I$(top_srcdir)/include \ | ||
-I$(top_srcdir)/VEX/pub \ | ||
-DVGA_@VGCONF_ARCH_PRI@=1 \ | ||
-DVGO_@VGCONF_OS@=1 \ | ||
-DVGP_@VGCONF_ARCH_PRI@_@VGCONF_OS@=1 | ||
if VGCONF_HAVE_PLATFORM_SEC | ||
AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@ = \ | ||
-I$(top_srcdir) \ | ||
-I$(top_srcdir)/include \ | ||
-I$(top_srcdir)/VEX/pub \ | ||
-DVGA_@VGCONF_ARCH_SEC@=1 \ | ||
-DVGO_@VGCONF_OS@=1 \ | ||
-DVGP_@VGCONF_ARCH_SEC@_@VGCONF_OS@=1 | ||
endif | ||
|
||
AM_FLAG_M3264_X86_LINUX = @FLAG_M32@ | ||
AM_CFLAGS_X86_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \ | ||
$(AM_CFLAGS_BASE) | ||
AM_CCASFLAGS_X86_LINUX = $(AM_CPPFLAGS_X86_LINUX) @FLAG_M32@ -g | ||
|
||
AM_FLAG_M3264_AMD64_LINUX = @FLAG_M64@ | ||
AM_CFLAGS_AMD64_LINUX = @FLAG_M64@ -fomit-frame-pointer \ | ||
@PREFERRED_STACK_BOUNDARY@ $(AM_CFLAGS_BASE) | ||
AM_CCASFLAGS_AMD64_LINUX = $(AM_CPPFLAGS_AMD64_LINUX) @FLAG_M64@ -g | ||
|
||
AM_FLAG_M3264_PPC32_LINUX = @FLAG_M32@ | ||
AM_CFLAGS_PPC32_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) | ||
AM_CCASFLAGS_PPC32_LINUX = $(AM_CPPFLAGS_PPC32_LINUX) @FLAG_M32@ -g | ||
|
||
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@ | ||
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) | ||
AM_CCASFLAGS_PPC64_LINUX = $(AM_CPPFLAGS_PPC64_LINUX) @FLAG_M64@ -g | ||
|
||
AM_FLAG_M3264_PPC32_AIX5 = @FLAG_MAIX32@ | ||
AM_CFLAGS_PPC32_AIX5 = @FLAG_MAIX32@ -mcpu=powerpc $(AM_CFLAGS_BASE) | ||
AM_CCASFLAGS_PPC32_AIX5 = $(AM_CPPFLAGS_PPC32_AIX5) \ | ||
@FLAG_MAIX32@ -mcpu=powerpc -g | ||
|
||
AM_FLAG_M3264_PPC64_AIX5 = @FLAG_MAIX64@ | ||
AM_CFLAGS_PPC64_AIX5 = @FLAG_MAIX64@ -mcpu=powerpc64 $(AM_CFLAGS_BASE) | ||
AM_CCASFLAGS_PPC64_AIX5 = $(AM_CPPFLAGS_PPC64_AIX5) \ | ||
@FLAG_MAIX64@ -mcpu=powerpc64 -g | ||
|
||
AM_FLAG_M3264_X86_DARWIN = -arch i386 | ||
AM_CFLAGS_X86_DARWIN = $(WERROR) -arch i386 $(AM_CFLAGS_BASE) \ | ||
-mmacosx-version-min=10.5 -fno-stack-protector \ | ||
-mdynamic-no-pic | ||
AM_CCASFLAGS_X86_DARWIN = $(AM_CPPFLAGS_X86_DARWIN) -arch i386 -g | ||
|
||
AM_FLAG_M3264_AMD64_DARWIN = -arch x86_64 | ||
AM_CFLAGS_AMD64_DARWIN = $(WERROR) -arch x86_64 $(AM_CFLAGS_BASE) \ | ||
-mmacosx-version-min=10.5 -fno-stack-protector | ||
AM_CCASFLAGS_AMD64_DARWIN = $(AM_CPPFLAGS_AMD64_DARWIN) -arch x86_64 -g | ||
|
||
# Flags for the primary target. These must be used to build the | ||
# regtests and performance tests. In fact, these must be used to | ||
# build anything which is built only once on a dual-arch build. | ||
# | ||
AM_FLAG_M3264_PRI = $(AM_FLAG_M3264_@VGCONF_PLATFORM_PRI_CAPS@) | ||
AM_CPPFLAGS_PRI = $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) | ||
AM_CFLAGS_PRI = $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) | ||
AM_CCASFLAGS_PRI = $(AM_CCASFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) | ||
|
||
if VGCONF_HAVE_PLATFORM_SEC | ||
AM_FLAG_M3264_SEC = $(AM_FLAG_M3264_@VGCONF_PLATFORM_SEC_CAPS@) | ||
else | ||
AM_FLAG_M3264_SEC = | ||
endif | ||
|
||
|
||
# Baseline link flags for making vgpreload shared objects. | ||
# | ||
PRELOAD_LDFLAGS_COMMON_LINUX = -nodefaultlibs -shared -Wl,-z,interpose,-z,initfirst | ||
PRELOAD_LDFLAGS_COMMON_AIX5 = -nodefaultlibs -shared -Wl,-G -Wl,-bnogc | ||
PRELOAD_LDFLAGS_COMMON_DARWIN = -dynamic -dynamiclib -all_load | ||
|
||
PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@ | ||
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@ | ||
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@ | ||
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@ | ||
PRELOAD_LDFLAGS_PPC32_AIX5 = $(PRELOAD_LDFLAGS_COMMON_AIX5) @FLAG_MAIX32@ | ||
PRELOAD_LDFLAGS_PPC64_AIX5 = $(PRELOAD_LDFLAGS_COMMON_AIX5) @FLAG_MAIX64@ | ||
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386 | ||
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
|
||
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-ptrcheck \ | ||
exp-bbv | ||
|
||
# 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 \ | ||
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 \ | ||
aix5libc.supp xfree-3.supp xfree-4.supp \ | ||
glibc-2.34567-NPTL-helgrind.supp \ | ||
glibc-2.2-LinuxThreads-helgrind.supp \ | ||
glibc-2.X-drd.supp \ | ||
exp-ptrcheck.supp \ | ||
darwin9.supp darwin9-drd.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 | ||
@PERL@ tests/vg_regtest $(TEST_TOOLS) $(TEST_EXP_TOOLS) | ||
nonexp-regtest: check | ||
@PERL@ tests/vg_regtest $(TEST_TOOLS) | ||
exp-regtest: check | ||
@PERL@ tests/vg_regtest $(TEST_EXP_TOOLS) | ||
|
||
## 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 \ | ||
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) | ||
|
||
|
Oops, something went wrong.