.. _spkg_valgrind:

valgrind: Memory error detector, call graph generator, runtime profiler
=======================================================================

Description
-----------

This is an optional spkg. It supports Linux on x86, x86-64, ppc, ppc64
and ARM as well as Darwin (Mac OS X 10.5 and 10.6) on x86 and x86-64.

Valgrind is an instrumentation framework for building dynamic analysis
tools. There are Valgrind tools that can automatically detect many
memory management and threading bugs, and profile your programs in
detail. You can also use Valgrind to build new tools.

The Valgrind distribution currently includes six production-quality
tools: a memory error detector, two thread error detectors, a cache and
branch-prediction profiler, a call-graph generating cache and
branch-prediction profiler, and a heap profiler. It also includes three
experimental tools: a heap/stack/global array overrun detector, a second
heap profiler that examines how heap blocks are used, and a SimPoint
basic block vector generator. It runs on the following platforms:
X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux, PPC64/Linux,
S390X/Linux, ARM/Android (2.3.x), X86/Darwin and AMD64/Darwin (Mac OS X
10.6 and 10.7).

License
-------

Valgrind is Open Source / Free Software, and is freely available under
the GNU General Public License, version 2.


Upstream Contact
----------------

-  http://www.valgrind.org/
-  valgrind-user, valgrind-devel mailing lists

Dependencies
------------

-  None


Special Build Instructions
--------------------------

-  To build on OS X, you need to use Apple's compiler. FSF GCC is
   unsupported.

Patches
~~~~~~~

-  None.

Type
----

experimental


Dependencies
------------


Version Information
-------------------

package-version.txt::

    3.14.0


Equivalent System Packages
--------------------------

homebrew:

.. CODE-BLOCK:: bash

    $ brew install valgrind


macports:
install the following packages: valgrind

opensuse:

.. CODE-BLOCK:: bash

    $ sudo zypper install valgrind


void:

.. CODE-BLOCK:: bash

    $ sudo xbps-install  valgrind


See https://repology.org/project/valgrind/versions


However, these system packages will not be used for building Sage
because spkg-configure.m4 has not been written for this package;
see :trac:`27330`

