system that allows multiple copies of valgrind to be built so that we
can build both x86 and amd64 versions of the tools on amd64 machines.
The launcher is then modified to look at the program being run and
decide which tool to use to run it.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5027
- All the subdirectories have gone: arm/, x86/, amd64/, linux/,
x86-linux/, amd64-linux/, arm-linux/.
- The following files were moved out of those directories into include/:
amd64-linux/vki_arch.h --> vki-amd64-linux.h
x86-linux/vki_arch.h --> vki-x86-linux.h
x86-linux/vki_arch_posixtypes.h --> vki_posixtypes-x86-linux.h
linux/vki.h --> vki-linux.h
amd64-linux/vki_arch_posixtypes.h --> vki_posixtypes-amd64-linux.h
- The following very small files were inlined into tool.h using the "#if
defined(VGP_x86)..." technique:
x86/tool_arch.h
arm/tool_arch.h
amd64/tool_arch.h
The same technique was used twice to include the appropriate
vki-$PLATFORM and vki-$OS files into tool.h.
- The other files in those directories were removed.
- The build is much simpler, since we have 7(!) fewer Makefile.am files.
Far fewer -I options are needed when compiling, too.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3733
overhaul of the thread support. Many things are now probably broken,
but at least with --tool=none, simple and not-so-simple threaded and
non-thread programs work.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3265
- Added include/x86-linux/ and include/linux/ subdirectories, with Makefile.am
files.
- Overhauled the definitions of kernel types. include/vg_kerneliface.h is now
three files, include/linux/vki.h, include/x86-linux/vki_arch.h, and
include/x86-linux/vki_arch_posixtypes.h. These files separate the
common/Linux and x86/Linux parts cleanly. All code is copied verbatim from
the relevant kernel headers, except that VKI_/vki_ prefixes are added as
necessary to distinguish them from glibc types. (This is done consistently,
unlike previously when some types did not have the prefixes.)
All code is clearly marked to show which particular header file it came from,
and the Linux version used. (I used 2.6.8.1, the most recent stable release,
for all of them.)
A few of the types changed; this is because they changed between the older
versions of Linux and the current 2.6.8.1. I checked that all these changes
were ok with respect to backwards compatibility for our purposes.
- vg_unsafe.h has been removed; we are no longer including any kernel headers,
as we have our own copies for everything. This is because installed kernel
headers are not reliable, and often cause compilation problems. (bug
#92420 is a recent example)
- Removed some no-longer-needed header-presence tests from configure.in.
- Some code in the rest of Valgrind was changed to account for some slight
changes in the names of our VKI_/vki_ kernel constants and types.
- Updated README_MISSING_SYSCALL_OR_IOCTL accordingly.
- Fixed off-by-one error with VKI_GDT_ENTRY_TLS_MAX (merged from stable branch)
The end result is that the kernel types situation should be much clearer, and
similar files can be created relatively easily for other architectures as
necessary.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2884
- In Cachegrind, abstract out x86-specific use of CPUID to find cache
configuration. Required adding a cachegrind/x86/ directory, and fiddling
a bit with the build system.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2698