Valgrind Home Information Source Code Documentation Contact How to Help Gallery

Supported Platforms


Current

The Valgrind 3.7.X series supports the following platforms.

  • x86/Linux: support is mature and almost complete.
  • AMD64/Linux: support is mature and almost complete. Note that AMD64 is just another name for x86-64, and that Valgrind works fine on Intel machines.
  • PPC32/Linux: support is new but fairly complete.
  • PPC64/Linux: support is new but fairly complete.
  • x86/Darwin (Mac OS X): support is new.
  • AMD64/Darwin (Mac OS X): support is new.
  • S390X/Linux: support is new in 3.7.0.
  • ARM/Linux support for ARMv7 is fairly complete.
  • ARM/Android support is new in 3.7.0.
  • MIPS32/Linux support is new in 3.8.0.

On Linux, you must be running kernel 2.6.X or later, and glibc 2.5.X or later. That covers the vast majority of installed systems at present. On Mac OS X you must be running 10.7.x or later.

For details of which distributions the current release (valgrind-3.9.0) builds and runs its regression tests on, see the release notes.

  • x86/FreeBSD: The FreeBSD port has been developed since Valgrind 2.X. The FreeBSD porting team actively maintains the port, typically tracking Valgrind releases within a week or two. Snapshots are on this FreeBSD page.

Experimental

The following experimental ports have been done. Note that they have varying levels of completeness and may not work reliably, and may target older versions of Valgrind.

  • x86/FreeBSD: Doug Rabson and others haved done a fairly complete port of Valgrind 3.X. Snapshots of the work in progress are at this FreeBSD page.

  • x86/NetBSD: Eric Auge, Kailash Sethuraman and Peter Bex are doing a port of Valgrind 3.X, available at this page.


Porting Plans

Valgrind 3.X has the infrastructure to support multiple platforms. A platform is a specific (CPU,OS) pairing, such as x86/Linux or AMD64/Linux.

Maintaining each port takes a lot of effort, more so than for most other programs. Valgrind is fragile due to the low-level nature of what it does. Also, each platform port has CPU-specific code, OS-specific code and platform-specific code, and testing all the combinations is difficult.

Because of this, we can only justify supporting platforms that are widely used. Unlike NetBSD or GCC, we are not interested in having Valgrind work on every platform in the known universe: the maintenance burden is too high. Therefore, porting Valgrind to different platforms is not simply a technical exercise: you also need to make a convincing case that the effort will be worth it, and that the port will be supported properly, at least in the foreseeable future. The following table summarises our current porting priorities.

Linux Darwin *BSD Solaris
x86 done done low
amd64 done done low
ppc32 done
ppc64 done
s390x done
arm medium
mips in progress

Some experimental ports have been worked on, as mentioned above. A less mature port for x86/Solaris has also been worked on.

Of the other table entries Arm/Linux is the most interesting. MIPS/Linux, x86/BSD, amd64/BSD and x86/Solaris are lower priorities.

There are many platforms not mentioned here. Some are of little interest (eg. SPARC/*, */AIX). Some would be technically difficult (eg. IA64/*). In particular Windows is not under consideration here because porting to it would require so many changes it would almost be a separate project. (However, Valgrind + Wine can be made to work with some effort.) Also, non-open-source OSes are difficult to deal with; being able to see the OS and associated (libc) source code makes things much easier. However, Valgrind is quite usable in conjunction with Wine, which means that it is possible to run Windows programs under Valgrind with some effort.

This message states our porting rationale and current priorities. As ever we retain a flexible approach, and are interested in hearing your comments/porting needs if you have any.

November 24, 2011.



Bad, Bad Bug!

Copyright © 2000-2013 Valgrind™ Developers

Best Viewed With A(ny) Browser