====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 :
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
MAKEOPTS="-j2"
EMERGE_DEFAULT_OPTS="-j2 --load-average=2"
Puis dans le fichier ''package.env'', indiquer pour chaque paquet quel fichier utiliser :
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'''.
[[https://forums.gentoo.org/viewtopic-t-1092354-start-0.html|clang 7, undefined reference '_Unwind_Resume@@GCC_']] {{ :linux:gentoo:gentoo_forums_voir_le_sujet_-_clang_7_undefined_reference_unwind_resume_gcc_solved_2020-01-15_07_22_51_.html |Archive du 27/01/2019 le 15/01/2020}}
====Compression multithread====
[[https://www.linuxtricks.fr/wiki/compresser-en-multithreading-sous-linux|Compresser en multithreading sous Linux]] {{ :linux:gentoo:compresser_en_multithreading_sous_linux_-_documentation_-_wiki_-_linuxtricks_2019-12-13_3_10_32_pm_.html |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''