ELD User Guide
This document describes usage of ELD
- 1. Getting started
- 2. Supported Linking Modes
- 3. Supported Targets
- 4. Linker Script
- 5. Diagnostics
- 6. ELD (debugging guide)
- 6.1. Big picture
- 6.2. Entry point and driver selection
- 6.3. Argument parsing and preprocessing
- 6.4. Input actions (what gets fed to the linker)
- 6.5. Link pipeline overview (doLink -> Linker)
- 6.6. Prepare phase (Linker::prepare)
- 6.7. Normalize phase (Linker::normalize)
- 6.8. Resolve + layout + emit (Linker::link)
- 6.9. Internal inputs and “internal sections”
- 6.10. Section merging (input sections -> output sections)
- 6.11. String merging (MergeString fragments)
- 6.12. Relocations: read -> scan -> apply -> (optional) emit reloc sections
- 6.13. Dynamic relocations (what creates
.rel[a].dyn/.rel[a].plt) - 6.14. Garbage collection (
--gc-sections) - 6.15. Fragment model (Fragment / FragmentRef)
- 6.16. Map files (layout printers)
- 6.17. Reproducing failures (tarball + mapping file)
- 6.18. Crash/signal behavior (what gets written on a crash)
- 6.19. Where failures typically come from (symptoms -> pipeline stage)
- 6.20. Practical debugging checklist
- 6.21. Debugging runtime crashes in ELD-built images
- 7. Shared Library Versioning
- 8. GNU ELF Symbol Versioning
- 9. Image Structure and Generation
- 10. Linker Map Files
- 11. Image layout
- 12. Linker Plugins
- 13. Linker Plugins
- 14. Linker Optimization Features
- 15. ELF TOOLS
- 16. LTO Support
- 17. Getting Image Details
- 18. Command-line options
- 19. Target Specific Features
- 20. SFrame Support
- 20.1. Overview
- 20.2. SFrame vs EhFrame
- 20.3. Command Line Options
- 20.4. Usage Examples
- 20.5. Section Processing
- 20.6. Supported Architectures
- 20.7. Integration with Debugging Tools
- 20.8. Garbage Collection Behavior
- 20.9. Error Handling
- 20.10. Performance Considerations
- 20.11. Best Practices
- 20.12. Troubleshooting
- 21. Linker support and frequently asked questions!!!
- 21.1. General Linker Questions
- 21.2. Input File to Linker
- 21.3. Linker Script General Questions
- 21.4. Linker Script PHDRS
- 21.5. MEMORY command: common issues and fixes
- 21.6. String Merging
- 21.7. Hexagon
- 21.8. RISC-V
- 21.9. Usage
- 21.10. Linker Plugin Framework
- 21.11. Symbol Resolution
- 21.12. Build time issues
- 21.13. Hexagon
- 21.14. ARM
- 21.15. Runtime issues
- 21.16. Improving your image/build
- 21.17. LinkerPlugin API