133 Commits

Author SHA1 Message Date
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
5d5dd0e06f Rename a conf variable.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10194
2009-06-01 23:59:20 +00:00
Nicholas Nethercote
c35861f4ab Update a comment.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10172
2009-05-31 07:03:05 +00:00
Nicholas Nethercote
265b63f49e Partly de-hackify auxprogs/Makefile.am. libmpiwrap.*.*.dSYM is now
installed on Darwin.  Installation and cleaning are more in line with the
other Makefile.am files.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10167
2009-05-29 05:40:33 +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
91e075d345 DARWIN sync: whitespace.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9965
2009-05-19 06:07:21 +00:00
Nicholas Nethercote
2001629c3f Updated copyright years.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9344
2009-03-10 22:02:09 +00:00
Nicholas Nethercote
3dfc8932ae Changed the way files are installed. Instead of going into
$INSTALL/<platform>/<filename>, they go to $INSTALL/<filename>-<platform>.
These filenames match those built in the build tree, and so simplifies the
build system signficantly and avoids the horrible sed renamings that were
previously required.  This will also help greatly with the treatment of
.dSYM debug directories in the DARWIN branch.

Files affected include:
- preload libraries such as vgpreload_core-<platform>.so and
  libmpiwrap-<platform>.so
- libraries such as libcoregrind_<platform>.a
- executables such as memcheck-<platform>

I updated the manual and added a note to the NEWS file about the change,
because it will affect a small number of users.

I did my best to update the AIX launcher/initimg correctly, but it hasn't
been tested.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9135
2009-02-11 00:35:45 +00:00
Nicholas Nethercote
7e242995e4 Fix a typo.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9127
2009-02-09 03:52:35 +00:00
Nicholas Nethercote
1690244664 Merged r9120 (Merge Makefile.{inplace,install}.am, and simplify installation
of libmpiwrap.so) from trunk.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9121
2009-02-06 23:27:16 +00:00
Nicholas Nethercote
009cd24326 Removed Makefile.core.am with some judicious refactoring.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9114
2009-02-06 04:49:14 +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
Julian Seward
0707edc9a5 Unbreak the build on aix5.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8867
2008-12-23 02:09:17 +00:00
Julian Seward
e352772610 Don't segfault the guest during a call MPI_Init(NULL,NULL), since
those are valid parameters to MPI_Init.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8812
2008-12-08 10:27:31 +00:00
Julian Seward
b9a0667306 Fixes for compilation warnings from the apparently very strict
gcc-4.3.2 shipped with Ubuntu 8.10.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8723
2008-11-01 23:55:32 +00:00
Julian Seward
30d5a4a135 Stop mpxlc complaining about GNU-isms when compiling libmpiwrap.c.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8443
2008-07-18 18:21:32 +00:00
Julian Seward
15bc099f92 Add a wrapper for MPI_Waitany.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8092
2008-05-15 05:48:16 +00:00
Julian Seward
5679a22410 Update copyright dates ("200X-2007" --> "200X-2008").
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7398
2008-02-11 11:34:59 +00:00
Julian Seward
4113460bd5 Update.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7397
2008-02-11 11:32:40 +00:00
Julian Seward
652c5531b1 AIX5 counterpart to r7302: Improve handling of programs which require
very large main thread stacks.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7306
2007-12-22 14:12:42 +00:00
Julian Seward
397511f653 Handle a whole bunch of obscure types.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6758
2007-06-05 19:51:35 +00:00
Julian Seward
65cb8fdd6a Test a whole bunch of obscure types.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6757
2007-06-05 19:51:02 +00:00
Julian Seward
274558de6d Merge (from branch) r6755 (Handle MPI_DOUBLE_PRECISION).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6756
2007-06-04 21:14:36 +00:00
Julian Seward
2f94452db6 Handle some more types: {REAL,INTEGER}{4,8} and 2INT. Also a change
to reduce the number of error messages printed if there is an
unhandled type.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6692
2007-04-05 00:35:20 +00:00
Julian Seward
2f05a25849 Test some Fortran types.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6688
2007-03-29 16:35:00 +00:00
Julian Seward
839e8253e8 Add a variant of gsl16test which handles the newer gsl-1.9 package.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6664
2007-03-26 15:27:01 +00:00
Julian Seward
5f8a2ddd11 Horrible hacks to make 'make dist' work properly. Previously it only
worked on systems when the configure script found a usable mpicc,
bizarrely.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6634
2007-03-08 01:52:37 +00:00
Julian Seward
3ae5768e35 Handle type MPI_PACKED and associated functions PMPI_Packed and
PMPI_Unpacked.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6575
2007-02-08 12:05:03 +00:00
Julian Seward
5d921b980a Inline a bunch of helper functions, in an attempt to minimise
extraneous frames in backtraces created by the library.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6523
2007-01-16 05:35:46 +00:00
Julian Seward
172505c978 Update copyright dates.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6488
2007-01-08 06:01:59 +00:00
Julian Seward
e0d88586fd Update for 2007.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6486
2007-01-08 05:53:25 +00:00
Julian Seward
dbea2713e3 Fixes for MPICH on amd64-linux.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6477
2007-01-06 05:28:27 +00:00
Julian Seward
508ef80b0d Fix installation of libmpiwrap.so on the primary platform.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6387
2006-12-10 02:26:50 +00:00
Julian Seward
cb4767c699 - remove some 'inline' directives so as to make stack backtraces
involving this library easier to make sense of

- try to handle 'long double' better.  The problem is that the 
  library needs to know how many bytes are written when a 'long double'
  is stored, which is sometimes not the same as what sizeof(long double)
  says.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6371
2006-11-24 15:18:15 +00:00
Julian Seward
68926403fa Fix compilation warning, and partially de-leak.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6370
2006-11-23 15:14:18 +00:00
Julian Seward
0341e4d47f Add a simple script which drives 'kdiff3' through a large source tree
(3 such trees, really).  This makes it easy to do 3 way merges of such
trees and easily stop and resume without losing work.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6312
2006-10-17 21:04:15 +00:00
Julian Seward
88f082bfb0 Merge r6201: Fix compile warning on aix.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6303
2006-10-17 02:28:53 +00:00
Julian Seward
ff7968b2c1 Merge r6139:
- Minor changes for mpxlc

- kludge; add option "initkludge" to cause PMPI_Init to return
  &mpiwrap_walk_type_EXTERNALLY_VISIBLE
  and adjust mpiwrap_type_test.c accordingly

and also add an export script so that libmpiwrap.so is built
correctly on AIX5 (r????).



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6275
2006-10-17 01:46:55 +00:00
Julian Seward
39c5df84e3 Merge r6092 and some of r6093:
AIX5 kernel-interface stuff.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6245
2006-10-17 01:04:15 +00:00
Julian Seward
713b2d46c0 Merge r6086:
Makefile.am changes for AIX5.  Almost all boilerplate stuff fitting in
with the existing factorisation scheme.  The only change of interest
is that configure.in now generates automake symbols of name
VGP_platform and VGO_os, whereas previously it just made VG_platform
which was a bit inconsistent with the VGP/VGO/VGA scheme used in C
code.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6242
2006-10-17 00:56:43 +00:00
Julian Seward
ae8215b3ac Create a new module, m_vki, and move all knowledge about the kernel
interface, except for the syscall numbers, into that.  Mostly this
means moving include/vki-*.h to include/vki/vki-*.h.

include/pub_tool_basics.h previously dragged in the entire kernel
interface.  I've done away with that, so that modules which need to
see the kernel interface now have to include pub_{core,tool}_vki.h
explicitly.  This is why there are many modified .c files -- they have
all acquired an extra #include line.

This certainly breaks all platforms except x86.  Will fix shortly.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6225
2006-10-14 19:26:10 +00:00
Julian Seward
8d4d7ccb0b A patch for the "Open POSIX Test Suite"
(http://posixtest.sourceforge.net) version 1.5.1, which makes it
possible to run the suite on V and conveniently compare results
against a native run (using the diff-results script).



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5982
2006-07-06 01:54:34 +00:00
Cerion Armour-Brown
0626013e5b handy script to decode ppc instructions
- thanks to Stephen McCamant for this one.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5977
2006-06-24 19:57:45 +00:00
Julian Seward
ad67fd79fe Update copyright dates.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5954
2006-06-05 23:21:15 +00:00
Julian Seward
447e53e319 Restrict to *.[chS]; otherwise it ends up losing permissions on
executable files.  Also bump dates to 2006.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5953
2006-06-05 23:20:25 +00:00
Nicholas Nethercote
ca69c8f35f Added a useful script.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5948
2006-06-01 13:44:07 +00:00
Julian Seward
c53831d78d (1) build libmpiwrap.so with -fPIC, not -fpic.
(2) if the build/install fails, just keep going anyway.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5916
2006-05-21 17:12:27 +00:00
Julian Seward
970537cd77 Not all MPI implementations define MPI_UNSIGNED_LONG_LONG.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5848
2006-04-13 22:03:16 +00:00
Nicholas Nethercote
3d12e0e9db Terminology change: previously in Memcheck we had the four states:
noaccess, writable, readable, other

Now they are:

   noaccess, undefined, defined, partdefined

As a result, the following names:

   make_writable, make_readable,
   check_writable, check_readable, check_defined

have become:

   make_mem_undefined, make_mem_defined,
   check_mem_is_addressable, check_mem_is_defined, check_value_is_defined

(and likewise for the upper-case versions for client request macros).
The old MAKE_* and CHECK_* macros still work for backwards compatibility.

This is much better, because the old names were subtly misleading.  For
example:

  - "readable" really meant "readable and writable".
  - "writable" really meant "writable and maybe readable, depending on how
    the read value is used".
  - "check_writable" really meant "check writable or readable"

The new names avoid these problems.

The recently-added macro which was called MAKE_DEFINED is now
MAKE_MEM_DEFINED_IF_ADDRESSABLE.

I also corrected the spelling of "addressable" in numerous places in
memcheck.h.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5802
2006-03-31 11:57:59 +00:00
Julian Seward
d579d5f93e Only complain once for each missing wrapper.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5795
2006-03-28 01:02:38 +00:00