深入探讨链接器的工作原理 (2008)
A deep dive into how linkers work (2008)

原始链接: https://lwn.net/Articles/276782/

Ian Lance Taylor 的“链接器”系列是一篇内容广泛的、由 20 部分组成的文章,详细介绍了链接器的内部工作原理。 本教程涵盖动态链接、地址空间、目标文件格式、共享库、重定位、位置相关共享库、线程本地存储优化、符号版本、松弛优化、并行链接、归档格式、符号解析、静态链接与静态链接等主题。 动态链接、初始化代码、COMDAT 部分、C++ 模板实例化、异常帧、警告符号、增量链接、__start 和 __stop 符号、字节交换以及“gold”状态更新。 该系列还包括有关整个程序优化和初始化代码以用于各种目的的讨论,例如内存管理、进程启动顺序和其他相关概念。 它最初发布时没有版权保护,允许不受限制的使用、修改、表演和分发。

相关文章

原文
Posted Apr 7, 2008 6:28 UTC (Mon) by JesseW (subscriber, #41816)
Parent article: Striking gold in binutils

Since I couldn't find any well-linked ToC of Ian's 20-part essay on linkers either on his blog, or here, I decided to post one. (And yes, I know the post URLs are consecutive numbers; nevertheless...)

I compiled the titles mainly from Ian's section titles, as Ian just referred to the parts by number.

And now, the author of gold, Ian Lance Taylor's 20 part Linker posts...

  1. Introduction, personal history, first half of what's-a-linker
  2. What's-a-linker: Dynamic linking, linker data types, linker operation
  3. Address spaces, Object file formats
  4. Shared Libraries
  5. More Shared Libraries -- specifically, linker implementation; ELF Symbols
  6. Relocations, Position Dependent Shared Libraries
  7. Thread Local Storage (TLS) optimization
  8. ELF Segments and Sections
  9. Symbol Versions, Relaxation optimization,
  10. Parallel linking
  11. Archive format
  12. Symbol resolution
  13. Symbol resolution from the user's point of view; Static Linking vs. Dynamic Linking
  14. Link time optimization, aka Whole Program optimization; Initialization Code
  15. COMDAT sections
  16. C++ Template Instantiation, Exception Frames
  17. Warning Symbols,
  18. Incremental Linking
  19. __start and __stop Symbols, Byte Swapping
  20. Last post; Update on gold's status

I release this message (the ToC and comments) into the public domain, no right reserved. Use it, copy it, perform it, create derivative works with no restrictions and without any further permission from me.


联系我们 contact @ memedata.com