Valgrind Home Information Source Code Documentation Contact How to Help Gallery

Supported Platforms


Current

Valgrind supports the following platforms:

  • x86/Linux: up to and including SSSE3, but not higher -- no SSE4, AVX, AVX2. This target is in maintenance mode now..
  • AMD64/Linux: up to and including AVX2. This is the primary development target and tends to be well supported.
  • PPC32/Linux, PPC64/Linux, PPC64LE/Linux: up to and including Power8.
  • S390X/Linux: supported.
  • ARM/Linux: supported since ARMv7.
  • ARM64/Linux: supported for ARMv8.
  • MIPS32/Linux, MIPS64/Linux: supported.
  • X86/FreeBSD, AMD64/FreeBSD: supported since FreeBSD 11.3.
  • X86/Solaris, AMD64/Solaris, X86/illumos, AMD64/illumos: supported since Solaris 11.
  • X86/Darwin (10.5 to 10.13), AMD64/Darwin (10.5 to 10.13): supported.
  • ARM/Android, ARM64/Android, MIPS32/Android, X86/Android: supported.

On Linux, you must be running kernel 3.0 or later, and glibc 2.5.X or later. On Mac OS X you must be running 10.9.x or later.

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

Out Of Tree

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

  • RISCV64/Linux: early port to RV64. Links: code repository.
  • X86/NetBSD A port is maintained out of tree, up to version 3.17

Historical

The following are no longer actively developed ports. They are noted here for historical reference and include both in-tree and out-of-tree ports. It can be useful to review a previous port as a potential starting point if one decides to support Valgrind on the same platform again.

  • X86/FreeBSD Doug Rabson and others did a fairly complete port of early Valgrind 3.X starting in 2004. This was maintained out of tree until Valgrind 3.18.1 when it was merged in-tree.
  • PPC32/AIX5, PPC64/AIX5: in-tree port to AIX5, available in Valgrind versions 3.3.0–3.7.0 (2007–2011).
  • TILEGX/Linux: in-tree port to TileGX, available in Valgrind versions 3.11.0–3.13.0 (2015–2017).
  • X86/NetBSD: out-of-tree port to NetBSD, developed during 2005–2007. Links: archived project page.
  • X86/Windows, AMD64/Windows: out-of-tree port to Windows, developed during 2011–2013. Links: project page, code repository.
  • AMD64/NetBSD, AMD64/OpenBSD: out-of-tree port to NetBSD and OpenBSD, developed in 2014. Links: project presentation.
  • SPARC64/Linux, SPARC64/Solaris: out-of-tree port to SPARC64, developed during 2014–2017. Links: code repository.

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.

Windows is not under consideration 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. As ever we retain a flexible approach, and are interested in hearing your comments/porting needs if you have any.



Bad, Bad Bug!

Copyright © 2000-2023 Valgrind™ Developers

Hosting kindly provided by sourceware.org