diff --git a/000-toc.md b/000-toc.md index d74a006..673d258 100644 --- a/000-toc.md +++ b/000-toc.md @@ -41,16 +41,22 @@ --- -## Chapitre 3 — Outils et chaîne de compilation -3.1. Compilateurs : gcc, clang, autres -3.2. Préprocesseur, compilation, assemblage, édition de liens -3.3. Fichiers source, objets, exécutables -3.4. Warnings, erreurs, diagnostics -3.5. Options importantes du compilateur -3.6. Standards de compilation (`-std=c99`, `-std=c11`, etc.) -3.7. Fichiers de debug -3.8. Compilation séparée -3.9. Compilation croisée +## [Chapitre 3](./ch003-ctools.md) — Outils et chaîne de compilation +3.1. [Compilateurs : rôle et implémentations](./ch003-ctools.md) +3.2. [Étapes de la chaîne de compilation](./ch003-ctools.md#32-étapes-de-la-chaîne-de-compilation) +3.3. [Assembleur utilisé selon la toolchain](./ch003-ctools.md#33-assembleur-utilisé-selon-la-toolchain) +3.4. [Fichiers générés](./ch003-ctools.md#34-fichiers-générés) +3.5. [Warnings et erreurs](./ch003-ctools.md#35-warnings-et-erreurs) +3.6. [Options du compilateur](./ch003-ctools.md#36-options-du-compilateur) +3.7. [Fichiers de debug](./ch003-ctools.md#37-informations-de-debug) +3.8. [Compilation séparée](./ch003-ctools.md#38-compilation-séparée) +3.9. [Compilation croisée](./ch003-ctools.md#39-compilation-croisée) +3.10 [Linker](./ch003-ctools.md#310-linker) +3.11 [Symboles](./ch003-ctools.md#311-symboles) +3.12 [Formats binaires](./ch003-ctools.md#312-formats-binaires) +3.13 [ABI (introduction)](./ch003-ctools.md#313-abi-introduction) +3.14 [Linker script](./ch003-ctools.md#314-linker-script) +3.15 [Résumé](./ch003-ctools.md#315-résumé) --- diff --git a/ch003-ctools.md b/ch003-ctools.md index 13da89b..24b749b 100644 --- a/ch003-ctools.md +++ b/ch003-ctools.md @@ -37,8 +37,6 @@ Traite : - #define - #ifdef ---- - Exemple : ```c @@ -248,9 +246,7 @@ arm-none-eabi-gcc main.c ## 3.10 Linker -Le linker combine les objets. - -Il : +Le linker combine les objets. Il : - fusionne les sections - résout les symboles - construit le binaire @@ -284,9 +280,9 @@ Le linker associe : ### Le binaire final a un format. -- ELF (Linux) -- PE (Windows) -- Mach-O (macOS) +- **ELF** (Linux) +- **PE** (Windows) +- **Mach-O** (macOS) ### Contenu : @@ -320,9 +316,7 @@ Linux x86_64 : Windows x86_64 : - rcx, rdx, r8 ---- - -Même CPU ≠ même ABI +**Même CPU ≠ même ABI** --- @@ -339,8 +333,6 @@ SECTIONS } ``` ---- - Utilisation - embarqué - systèmes bas niveau