web-dev-qa-db-fra.com

À quoi sert -no-pie?

Je travaillais sur Ubuntu 17.10 avec GPROF pour certains tests avec des fichiers c et lorsque j'exécute avec gprof le fichier généré (gmon.out), en compilant et en liant avec l'option -pg, j'ai un graphique vide et plat. Cependant, j'ai trouvé qu'il s'agit d'un bug gcc et je devrais compiler et lier le fichier avec -no-pie.

  • Compiler: gcc -c main.c fichier-1.c fichier-2.c -pg [-no-pie]

  • Lien: gcc -o test main.o fichier-1.o fichier-2.o -pg [-no-pie]

J'ai la version gcc 7.2.

Comment fonctionne cette option et pourquoi les graphiques sont vides si je n'utilise pas cette option?

7
Repikas

Ce drapeau indique à gcc de ne pas faire un exécutable indépendant de la position (PIE). PIE est une fonction de sécurité où le noyau charge le binaire et les dépendances dans un emplacement aléatoire de mémoire virtuelle à chaque exécution.

3
Paul