Impossible de construire et d'installer Valgrind sur macOS High Sierra
Je ne peux pas installer Valgrind sur macOS High Sierra. Il n'est pas disponible via brew
. J'ai essayé avec 3.10 . Après make install
, je reçois ce message:
configure: error: Valgrind works on Darwin 10.x, 11.x, 12.x, 13.x and 14.x (Mac OS X 10.6/7/8/9/10)
Homebrew dit:
valgrind: This formula either does not compile or function as expected on macOS
versions newer than Sierra due to an upstream incompatibility.
Error: An unsatisfied requirement failed this build.
7 réponses
j'ai eu ce problème.
Donc, j'ai trouvé la solution. Vous devez installer valgrind par ce code
brew install --HEAD valgrind
j'ai créé un port de valgrind 3.13.0 Pour travailler sur macOS High Sierra (10.13.x). Vous pouvez l'obtenir ici: https://github.com/padiakalpesh/valgrind_3.13_high_sierra
une fois que vous avez obtenu la source, exécutez les commandes suivantes depuis l'intérieur du répertoire source:
./configure
make
sudo make install
j'ai obtenu ce travail en juillet 2018, pour référence:
https://gist.github.com/AlessandroMinali/d8316d6cc650c97027433644c2ff31ee
Edit ./ configurer
- 5468: applellvm-5.1|applellvm-6.*|applellvm-7.*|applellvm-8.*)
+ 5468: applellvm-5.1|applellvm-6.*|applellvm-7.*|applellvm-8.*|applellvm-9.*)
- 5879: 16.*)
+ 5879: 17.*)
Exécuter
./autogen.sh
./configure
make
make install
Créer le fichier ~/.valgrind.supp
# false positive for any executable (it seems)
# macOS 10.12.6
# valgrind 3.13.0
{
libtrace initialization false positive
Memcheck:Param
msg->desc.port.name
fun:mach_msg_trap
fun:mach_msg
fun:task_set_special_port
fun:_os_trace_create_debug_control_port
fun:_libtrace_init
}
Créer le fichier ~/.valgrindrc
--suppressions=$HOME/.valgrind.supp
dépannage
- si vous ne pouvez pas lire fichier de suppression copier-coller le contenu de $HOME
- si elle se plaint des versions clang, bump la première édition
- s'il se plaint de la version de Darwin, passez à la seconde édition
je construis assez régulièrement la version git head de Valgrind sur macOS. Si vous avez Xcode installé alors il n'y a pas beaucoup plus que de suivre les instructions ici .
je mettrai à jour mon script de construction plus tard.
comme alternative, vous voudrez peut-être considérer clang désinfectants. Cela peut être activé dans xcode, ou avec l'option-fsanitize=X (où X est Adresse, non défini, thread, mémoire et quelques autres).
utilisant le brew install --HEAD valgrind
a également fonctionné pour moi, mais soyez sûr de savoir que cela va prendre un certain temps pour tirer la version HEAD, et construire/installer.
cependant, aucun autre changement n'était nécessaire.
Valgrind est un logiciel assez sensible, et nécessite des mises à jour pour chaque version majeure de macOS.
en février 2018, il n'existe pas de version de Valgrind supportant macOS High Sierra (10.13). Vous devrez utiliser une version de développement de Valgrind, ou utiliser d'autres outils. (Apple Instruments peut avoir certaines des fonctionnalités que vous recherchez.)
la version MacPorts a commencé à fonctionner pour moi en septembre 2018!
la commande, par souci d'exhaustivité (complète très vite-apparemment, prébutit):
sudo port install valgrind-devel
Version:
$ valgrind --version
valgrind-3.14.0.GIT