| Prochaine révision | Révision précédente |
| linux:gentoo [2017/07/29 14:38] – Création avec "Compression multithread" root | linux:gentoo [2021/06/26 09:23] (Version actuelle) – [Options différentes pour certains paquets] : ajout de "LDFLAGS" root |
|---|
| | ====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 : |
| | |
| | <file txt 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" |
| | </file> |
| | |
| | et |
| | |
| | <file txt j2.conf> |
| | MAKEOPTS="-j2" |
| | EMERGE_DEFAULT_OPTS="-j2 --load-average=2" |
| | </file> |
| | |
| | Puis dans le fichier ''package.env'', indiquer pour chaque paquet quel fichier utiliser : |
| | |
| | <file txt package.env> |
| | sys-devel/llvm j2.conf |
| | sys-devel/clang j2.conf |
| | |
| | dev-libs/ocl-icd O1.conf |
| | </file> |
| | |
| | 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==== | ====Compression multithread==== |
| [[https://www.linuxtricks.fr/wiki/compresser-en-multithreading-sous-linux|Source]], {{ :linux:gentoo:compresser_en_multithreading_sous_linux_-_documentation_-_wiki_-_linuxtricks.htm.maff |Archive}} | [[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}} |
| |
| <code bash> | <code bash> |
| |
| Cela marche pour les ''tar -czvf'' (''tar.gz'') et ''tar -cjvf'' (''tar.bz2''). Il n'y a pas équivalent pour ''tar.xz''. | 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'' |