177 Commits

Author SHA1 Message Date
Julian Seward
3f24896f10 Back out r14781, which was unintended.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14782
2014-11-25 11:43:54 +00:00
Julian Seward
bf927a2e32 arm64: implement "BRK #imm16".
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14781
2014-11-25 11:37:14 +00:00
Julian Seward
ca44cf32c3 Build system changes to enable building on MacOS X 10.10 (Yosemite).
See bug 339045.  Part of a patch from fxcoudert@gcc.gnu.org.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14695
2014-11-06 20:16:05 +00:00
Julian Seward
91350dc8a5 Add initial build support for Mac OS X 10.9 (Mavericks). Bug 326724
comment 12.  (Diego Giagio, diego@giagio.com)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14055
2014-06-20 11:48:38 +00:00
Mark Wielaard
fbd9fe855d Out of tree build. Partial fix for Bug 333628.
Patch by Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>.
Partial fix. make && make check now works with builddir != srcdir.
But make regtest doesn't yet.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13949
2014-05-09 13:34:13 +00:00
Mark Wielaard
f68b1089a7 Make sure all files under the new shared dir are included in make dist.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13868
2014-03-11 19:30:32 +00:00
Julian Seward
aa7f3955f4 Update implementation notes for the arm64-linux port.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13775
2014-01-13 11:50:17 +00:00
Florian Krohm
e9e22a3a00 Add a script 'check_headers_and_includes' to check that #include directives
are not against the grain.
Wrap this script together with 'check_makefile_consistency' into
'post_regtest_checks' and invoke that from the toplevel Makefile. So we can
easily add new checkers in the future.

Add a new make target 'post-regtest-checks' to just run those checks
and nothing else.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13570
2013-09-19 14:55:09 +00:00
Julian Seward
c2326cb8f0 Include autogen.sh in the tarfile. See #306310.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12983
2012-09-17 17:17:00 +00:00
Philippe Waroquiers
8d4c0e4bd6 Fix 306310 3.8.0 release tarball missing some files
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12964
2012-09-11 19:53:01 +00:00
Florian Krohm
0d0e6346db Add a tester for V-bit propagation through IROps.
The tester is located in memcheck/tests/vbit-test.
It needs the following support on the valgrind / VEX side:
(1) a new client request VG_USERREQ__VEX_INIT_FOR_IRI
(2) a new "special instruction" on all architectures inserted via
    VALGRIND_VEX_INJECT_IR
(3) VEX changes to detect the special insn and insert IR (ir_inject.c)

The README file in vbit-test has some more information.
See also VEX r2490.  Fixes bugzilla #300102.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12906
2012-08-28 16:50:39 +00:00
Julian Seward
ccc74aefd3 Move older news into its own file, NEWS.old, so as not to overrun TeX
default memory limits when building the PDF docs.  Fixes #304754.
(Mark Wielaard, mjw@redhat.com)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12863
2012-08-08 20:38:03 +00:00
Julian Seward
f0c0f9f3ce Add initial support for MacOSX 10.8. Note this is still very borked
and pretty much unusable for real work.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12814
2012-08-02 18:25:04 +00:00
Petar Jovanovic
7be71ddd81 Adding README.mips to EXTRA_DIST in Makefile.am.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12678
2012-06-27 16:07:30 +00:00
Florian Krohm
46b85eeb12 Require automake-1.10 for proper handling of include file dependencies
in .S files. Also included here is some cleanup, including a reversion
of r10378. Fixes bugzilla #197914.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12555
2012-05-06 03:37:25 +00:00
Philippe Waroquiers
57ec7947c7 Remove strange e which appeared in r12456, replace by a real e.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12457
2012-03-25 14:55:17 +00:00
Philippe Waroquiers
565baa930a Have check_makẹfile_consistency run at the end of make regtest
This ensures that a missing file in the Makefile is detected,
without blocking the tests.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12456
2012-03-25 10:54:59 +00:00
Tom Hughes
e9f922b442 Hide our use of pkglibdir to stop automake 1.11.2 and later complaining.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12396
2012-02-21 15:53:35 +00:00
Florian Krohm
bc733a9e4a Remove TEST_TOOLS and TEXT_EXP_TOOLS as they are no longer needed.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12262
2011-11-08 20:16:09 +00:00
Bart Van Assche
b89d16e2ba Check Makefile.am consistency before running regression tests. Closes #283813.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12214
2011-10-23 12:14:51 +00:00
Julian Seward
8885c4e740 Add initial support for Mac OS X 10.7 (Lion). Tracked by bug #275168.
* 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
2011-09-21 08:43:08 +00:00
Nicholas Nethercote
178baefe16 I am an idiot: remove the beginnings of an experimental tool that I
accidentally committed.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11957
2011-08-08 02:27:20 +00:00
Nicholas Nethercote
a71f5978fc Fix a Massif bug: when realloc'ing a block, any values in the part of the
block beyond the original request weren't copied.  They are now.  This is
important because a program could use malloc_usable_size to gain legitimate
access to those extra bytes.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11956
2011-08-08 01:58:50 +00:00
Julian Seward
634a591426 Add a file containing information on how to cross-compile for Android.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11888
2011-07-12 13:34:31 +00:00
Julian Seward
887fed8e7b Add a suppression file for Android's libc (bionic).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11873
2011-07-11 20:52:10 +00:00
Julian Seward
ad7de5b336 Delete the AIX5 port. The last release this worked for is 3.4.1,
and then only on AIX 5.2 and 5.3.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11842
2011-06-28 07:25:29 +00:00
Julian Seward
b71e8bb6c5 Rename 'exp-ptrcheck' to 'exp-sgcheck' and hope this does not cause
too much build carnage.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11745
2011-05-11 16:04:28 +00:00
Julian Seward
2ee9e90486 Implement a GDB server in Valgrind. See #214909.
(Philippe Waroquiers, philippe.waroquiers@skynet.be)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11727
2011-05-06 21:02:55 +00:00
Julian Seward
dae0b7a571 'make dist' fixes following s390x-linux merge. (Christian Borntraeger
<borntraeger@de.ibm.com>)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11616
2011-03-10 12:36:09 +00:00
Julian Seward
230002ce29 Add DHAT as an experimental tool. DHAT (a Dynamic Heap Analysis Tool)
is a heap profiler that is complementary to Massif.  DHAT tracks heap
allocations, and connects which memory accesses are to which blocks.
It can find the following information:

* total allocation and max liveness

* average block lifetime (# instructions between allocation and
  freeing)

* average number of reads and writes to each byte in the block
  ("access ratios")

* average of longest interval of non-access to a block, also 
  measured in instructions

* which fields of blocks are used a lot, and which aren't
  (hot-field profiling)

Using these stats it is possible to identify allocation points with
the following characteristics:

* potential process-lifetime leaks (blocks allocated by the point just
  accumulate, and are freed only at the end of the run)

* excessive turnover: points which chew through a lot of heap, even if
  it is not held onto for very long

* excessively transient: points which allocate very short lived blocks

* useless or underused allocations: blocks which are allocated but not
  completely filled in, or are filled in but not subsequently read.

* blocks which see extended periods of inactivity.  Could these
  perhaps be allocated later or freed sooner?

* blocks with inefficient layout (hot fields spread out over
  multiple cache lines), or with alignment holes



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11431
2010-10-12 10:09:15 +00:00
Nicholas Nethercote
6fd0eb7b07 Merged the MACOSX106 branch to the trunk. Merge command:
svn merge -r11143:HEAD svn://svn.valgrind.org/valgrind/branches/MACOSX106

There were some easy-to-resolve conflicts.

Then I had to fix up coregrind/link_tool_exe*.in -- those files had been
added independently on both the trunk and the branch, AFAICT.  I just
overwrote the trunk versions with the branch versions.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11194
2010-07-01 00:20:20 +00:00
Julian Seward
73c516ce43 Include missing file, else tarball build breaks on Darwin.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10836
2009-08-17 16:02:16 +00:00
Nicholas Nethercote
f8dfb1aa98 Enable Helgrind tests on Darwin -- only 4 of them fail on my machine.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10804
2009-08-14 02:12:54 +00:00
Nicholas Nethercote
0aea3c35b3 DRD now works on Darwin!
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10596
2009-07-24 19:34:55 +00:00
Nicholas Nethercote
9c040c96bf Add exp-bbv to the tool-suite. I'm seeing a couple of amd64-linux test
failures, but they can be fixed up in-repo.  This resolves bug 198395.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10444
2009-07-14 01:39:54 +00:00
Nicholas Nethercote
30c6047c99 Include valgrind.spec in the tarball, as it makes things easier for
packagers.  Fixes bug 188560.

Also updated the contents of valgrind.spec.in a bit.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10405
2009-07-04 00:38:11 +00:00
Nicholas Nethercote
b05a2a18d7 This commit merges the BUILD_TWEAKS branch onto the trunk. It has the
following improvements:

- Arch/OS/platform-specific files are now included/excluded via the
  preprocessor, rather than via the build system.  This is more consistent
  (we use the pre-processor for small arch/OS/platform-specific chunks
  within files) and makes the build system much simpler, as the sources for
  all programs are the same on all platforms.

- Vast amounts of cut+paste Makefile.am code has been factored out.  If a
  new platform is implemented, you need to add 11 extra Makefile.am lines.
  Previously it was over 100 lines.

- Vex has been autotoolised.  Dependency checking now works in Vex (no more
  incomplete builds).  Parallel builds now also work.  --with-vex no longer
  works;  it's little use and a pain to support.  VEX/Makefile is still in
  the Vex repository and gets overwritten at configure-time;  it should
  probably be renamed Makefile-gcc to avoid possible problems, such as
  accidentally committing a generated Makefile.  There's a bunch of hacky
  copying to deal with the fact that autotools don't handle same-named files
  in different directories.  Julian plans to rename the files to avoid this
  problem.

- Various small Makefile.am things have been made more standard automake
  style, eg. the use of pkginclude/pkglib prefixes instead of rolling our
  own.

- The existing five top-level Makefile.am include files have been
  consolidated into three.

- Most Makefile.am files now are structured more clearly, with comment
  headers separating sections, declarations relating to the same things next
  to each other, better spacing and layout, etc.

- Removed the unused exp-ptrcheck/tests/x86 directory.

- Renamed some XML files.

- Factored out some duplicated dSYM handling code.

- Split auxprogs/ into auxprogs/ and mpi/, which allowed the resulting
  Makefile.am files to be much more standard.

- Cleaned up m_coredump by merging a bunch of files that had been
  overzealously separated.

The net result is 630 fewer lines of Makefile.am code, or 897 if you exclude
the added Makefile.vex.am, or 997 once the hacky file copying for Vex is
removed.  And the build system is much simpler.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10364
2009-06-24 00:37:09 +00:00
Nicholas Nethercote
c019d97d9d Get rid of ACKNOWLEDGEMENTS, because it overlaps hugely with AUTHORS.
Improve AUTHORS a bit at the same time.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10309
2009-06-12 07:38:24 +00:00
Nicholas Nethercote
b67eef4699 Remove exp-omega's code. It was disabled in 3.4.0 to few complaints.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10247
2009-06-04 23:11:50 +00:00
Nicholas Nethercote
07045477ca Merge the DARWIN branch onto the trunk.
I tried using 'svn merge' to do the merge but it did a terrible job and
there were bazillions of conflicts.  So instead I just took the diff between
the branch and trunk  at r10155, applied the diff to the trunk, 'svn add'ed
the added files (no files needed to be 'svn remove'd) and committed.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10156
2009-05-28 01:53:07 +00:00
Nicholas Nethercote
55bc428656 Fix a make dist problem with default.supp -- it was being included in the
tarball, and thus its contents depended on the machine 'make dist' was run
on, not the install machine.  This commit excludes it from the tarball,
so it will be built at compile-time.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9909
2009-05-19 00:32:20 +00:00
Nicholas Nethercote
e91540cc58 Merged r9596 (build system tweaks, minus the Darwin bits) from the DARWIN
branch.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9598
2009-04-24 04:12:28 +00:00
Julian Seward
6b47103529 Update the sed expressions that handle the output of ld --verbose:
GNU ld changed the output of ld --verbose recently, it used to emit:
  PROVIDE (__executable_start = 0x400000); . = 0x400000 + SIZEOF_HEADERS;

  and now emits:

  PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x08048000)); . = SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS;

(Jakub Jelinek)




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9157
2009-02-14 16:07:40 +00:00
Nicholas Nethercote
97ac32d13b Don't install unnecessary .supp files (part 2 of 2).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9125
2009-02-09 03:25:04 +00:00
Nicholas Nethercote
0b2d785793 Makefile.flags.am
Remove mentions of empty variables.

Makefile.am
    Only install default.supp;  other .supp files aren't necessary to
    install.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9123
2009-02-09 01:52:55 +00:00
Nicholas Nethercote
44f04e904c Avoid unnecessary EXTRA_DIST files in Makefile.am.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9112
2009-02-06 04:13:52 +00:00
Nicholas Nethercote
ed322feb84 Rename all the arch/OS/platform-related variables in configure.in to make it
clearer what they mean:
- They all have VGCONF_ prefixes now, to indicate they come out of
  configure.in (and are clearly distinguished from the VGA_/VGO_/VGP_
  #defines passed in to C files).
- The ones that refer to the primary *or* secondary platform have _INCLUDES_
  in them.
- The ones that are in all-caps have a _CAPS suffix.

So, for example, what was VGP_X86_LINUX is now
VGCONF_PLATFORMS_INCLUDE_X86_LINUX, which is more verbose but also a lot
clearer.  The names of the #defines used in the C files (VGA_x86, VGO_linux,
etc) are unchanged.

cputest.c: changed to reflect the Valgrind installation's capabilities,
rather than the machine's capabilities.  In particular, if
--enable-only32bit is used on a 64-bit machine, then this program will claim
to only support 32-bits.  Also use the VGA/VGO/VGP macros which are clearer
than the __i386__ ones.  (This is partially merged from the DARWIN branch.)

configure.in: clean up the comments, distinguish different sections more
clearly, and generally make it more readable.

valgrind.pc.in: try to make this more accurate.  I doubt anyone's using it.
It doesn't appear to be set up to handle dual-architecture builds.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9031
2009-01-22 21:56:32 +00:00
Nicholas Nethercote
ffbb6cb7b0 Generate default.supp at compile-time, not configure-time.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8994
2009-01-20 06:56:26 +00:00
Nicholas Nethercote
dafa3d1d8c trunk/memcheck/tests/Makefile.am
trunk/memcheck/tests/vcpu_bz2.c
trunk/memcheck/tests/vcpu_bz2.vgtest
    vcpu_bz2.c was (I think) an "svn copy" of perf/bz2.c.  Because it's a
    copy, the two can get out of sync, which was a problem with Greg
    Parker's Darwin patch.  So we remove vcpu_bz2.c, and make
    vcpu_bz2.vgtest invoke perf/bz2 directly.

trunk/cachegrind/tests/wrap5.c
trunk/cachegrind/tests/Makefile.am
trunk/cachegrind/tests/wrap5.vgtest
    wrap5.c was likewise an "svn copy" of memcheck/tests/wrap5.c, so we do
    the equivalent thing with it.

trunk/Makefile.am
    Fix a typo.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8919
2009-01-08 06:07:05 +00:00
Julian Seward
80801101b4 Include vg-in-place in the distro tarball.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8823
2008-12-13 18:46:44 +00:00