Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
linux:gentoo [2017/10/31 22:53] – Ajout de "Options de compilation différentes pour certains paquets" root | linux:gentoo [2021/06/26 09:23] (Version actuelle) – [Options différentes pour certains paquets] : ajout de "LDFLAGS" root |
---|
====Compilation==== | ====Compilation==== |
===Options différentes pour certains paquets=== | ===Options différentes pour certains paquets=== |
| |
| * Un fichier par paquet : |
| |
Dans le fichier ''/etc/portage/env/CATEGORIE/PAQUET'' : | Dans le fichier ''/etc/portage/env/CATEGORIE/PAQUET'' : |
CFLAGS="$CFLAGS -Og" | CFLAGS="$CFLAGS -Og" |
CXXFLAGS="$CXXFLAGS -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'' |