Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
valgrind [2021/11/12 11:31] – TODO item 1 (mostly) fixed, add link to freeres request PaulFloydvalgrind [2023/02/25 07:56] (current) – PaulFloyd
Line 1: Line 1:
-====== Installing Valgrind ======+===== Valgrind =====
  
-===== Installing from ports =====+The recommended installation method is %%FreeBSD%% Ports & Packages.
  
-//pkg install valgrind// will install Valgrind 3.18.1.+===== Installation =====
  
-//pkg install valgrind-devel// will install a version of Valgrind that is tracking the upstream git repository, 3.18.0.GIT.+Note: There may be some differences or delays between binary package versions and port versions, depending on whether you use [[QuarterlyBranch|Quarterly]] or Latest package branch.
  
-**There may be some delay between package builds and the above versions, particularly if you use the quarterly packages**'+==== Stable Version ====
  
-===== Prerequisites ===== +The ''%%devel/valgrind%%'' port follows the official Valgrind release cycle, which is roughly aligned with the %%RedHat%% Fedora release cycle, with bi-annual releases targeted for April and October.
-Building valgrind requires the following ports to be installed: +
-  * gmake +
-  * autoconf +
-  * automake+
  
-===== Obtaining the Valgrind source =====+Install using either:
  
-Starting with Valgrind 3.18.1 %%FreeBSD%% support has been integrated into the main Valgrind codebase.+  * Ports: ''%%cd /usr/ports/devel/valgrind && make install%%'' OR 
 +  * Packages: ''%%pkg install valgrind%%''
  
-[[https://valgrind.org/|TheValgrindHomePage]]+==== Development Version ====
  
-[[https://valgrind.org/downloads/current.html|GettingTheLatestValgrindSource]]+The ''%%devel/valgrind-devel%%'' port will install a version of Valgrind that is tracking the upstream git repository, and is updated if/when there are sufficient fixes between official Valgrind releases.
  
-Prior to 3.18.1 (though still maintained) the source was hosted on on github.+Install using either:
  
-To check out this version of the source+  * Ports: ''%%cd /usr/ports/devel/valgrind-devel && make install%%'' OR 
 +  * Packages: ''%%pkg install valgrind-devel%%'' 
 + 
 +===== Building from Source ===== 
 + 
 +==== Pre-Requisites ==== 
 + 
 +Building valgrind requires the following ports to be installed: 
 + 
 +  * devel/gmake 
 +  * devel/autoconf 
 +  * devel/automake 
 + 
 +==== Obtaining the Valgrind Source ==== 
 + 
 +Starting with Valgrind 3.18.1 %%FreeBSD%% support has been integrated into the main Valgrind codebase. Prior to 3.18.1 (though still maintained) the source was hosted on on GitHub 
 + 
 +  * [[https://valgrind.org/|Valgrind Homepage]] 
 +  * [[https://valgrind.org/downloads/current.html|Valgrind.org: Download Valgrind Source Code]] 
 + 
 +To check out pre-3.18.1 versions of the source:
  
 <code> <code>
Line 31: Line 48:
 </code> </code>
  
-An older version of Valgrind %%FreeBSD%% can be cloned from a mercurial repository on bitbucket.org: https://bitbucket.org/stass/valgrind-freebsd +The mercurial bitbucket repo that was the basis of the %%FreeBSD%% Valgrind port up to 3.17 is no longer accessible.
-To check out the source: +
-''%%hg clone https://bitbucket.org/stass/valgrind-freebsd%%''+
  
-===== Building =====+==== Building ====
  
 <code> <code>
Line 46: Line 61:
 ===== TODO ===== ===== TODO =====
  
-  - Signal delivery issue, particularly on i386 [fixed in the sourceware repo, not yet in ports] +  - Implement a %%FreeBSD%% fair scheduler. Linux has a futex based scheduler. It uses come GCC ''%%__sync%%'' builtins (also available with clang). And a couple of syscalls for futex. Shouldn't be too hard to port to use _umtx_op.
-  - Differences between lld and ld-bfd concerning ELF sections. +
-  - A proper implementation of vgdb-invoker. +
-  - Add freeres support to libc [[https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=259294|FreeresBugzillaItem]] +
-  - Much needs to be done for clang OMP. +
-  - Fix support for %%FreeBSD%% TLS TLS does affect Helgrind and possibly DRD. +
-    * http://people.freebsd.org/~marcel/tls.html %%FreeBSD%% TLS notes +
-    * http://lwn.net/Articles/5851/ Linux TLS notes+
   - Implement rfork.   - Implement rfork.
 +    * See https://github.com/paulfloyd/freebsd_valgrind/issues/197
 +  - Improve vgdb-invoker.
 +  - Implement some form of lldb-server.
 +  - Improve core dumps. Currently they are just Linux style core dumps with a %%FreeBSD%% tag.
 +  - Add freeres support to libc [[https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=259294|FreeBSD Bugzilla Issue #259294]]
 +  - Much needs to be done for Clang OMP.
 +  - Fix handling of thread TLS allocation for Helgrind.
 +    * See: https://github.com/paulfloyd/freebsd_valgrind/issues/113
  
 ===== Links ===== ===== Links =====
-  * [[https://github.com/paulfloyd/freebsd_valgrind|github repository]] + 
-  * [[http://www.freshports.org/devel/valgrind/|Valgrind port]] on freshports+  * [[https://github.com/paulfloyd/freebsd_valgrind|GitHub: paulfloyd/freebsd_valgrind Repository]] 
 +  * [[https://www.freshports.org/devel/valgrind/|FreshPorts: devel/valgrind Port]]
  
  • valgrind.1636716712.txt.gz
  • Last modified: 2021/11/12 11:31
  • by PaulFloyd