Outils pour utilisateurs

Outils du site


linux:gentoo

Compilation

Options différentes pour certains paquets

  • Un fichier par paquet :

Dans le fichier /etc/portage/env/CATEGORIE/PAQUET :

CFLAGS="$CFLAGS -Og"
CXXFLAGS="$CXXFLAGS -Og"
  • Un fichier de config :

Dans le dossier /etc/portage/env, créer les fichiers :

O1.conf
COMMON_FLAGS="${COMMON_FLAGS} -O1"
CFLAGS="${COMMON_FLAGS} -O1"
CXXFLAGS="${COMMON_FLAGS} -O1"
FCFLAGS="${COMMON_FLAGS} -O1"
FFLAGS="${COMMON_FLAGS} -O1"
LDFLAGS="${LDFLAGS} -Wl,-O1"

et

j2.conf
MAKEOPTS="-j2"
EMERGE_DEFAULT_OPTS="-j2 --load-average=2"

Puis dans le fichier package.env, indiquer pour chaque paquet quel fichier utiliser :

package.env
sys-devel/llvm j2.conf
sys-devel/clang j2.conf
 
dev-libs/ocl-icd O1.conf

Ici, on utilise :

  • j2.conf quand le paquet ne peut pas compiler avec tous les cœurs. Notamment car on ne peut pas différencier le nombre d'instances en parallèle pour le compilateur et le lieur.
  • O1.conf quand on a les erreurs classiques de type undefined symbol pour les fonctions mal déclarées inline et qui ne compile que sans -O0.

debugcompress vs -Wl,--compress-debug-sections,zlib

C'est la même chose :

  • debugcompress et -Wl,--compress-debug-sections,zlib : 534056 o
  • debugcompress : 534080 o
  • -Wl,--compress-debug-sections,zlib : 534056 o
  • sans rien : 1097752 o

clang

Ne pas compiler avec default-compiler-rt. Sinon, il sera nécessaire de lier chaque compilation clang avec -lgcc_s pour éviter les erreurs de type undefined reference to symbol '_Unwind_Resume@@GCC_3.0'.

clang 7, undefined reference '_Unwind_Resume@@GCC_' Archive du 27/01/2019 le 15/01/2020

Compression multithread

Compresser en multithreading sous Linux Archive du 30/01/2015 le 13/12/2019

echo "app-arch/pigz symlink" >> /etc/portage/package.use/custom
echo "app-arch/lbzip2 symlink" >> /etc/portage/package.use/custom
 
emerge pigz lbzip2

Cela marche pour les tar -czvf (tar.gz) et tar -cjvf (tar.bz2). Il n'y a pas équivalent pour tar.xz.

Gestion des paquets

  • Liste des paquets installés depuis un dépôt : equery has repository ${repo_name} ou eix –installed-from-overlay
linux/gentoo.txt · Dernière modification : 2021/06/26 09:23 de root