第 138 期 2022-07-28 Go语言链接器简介

【预告】第 138 期 2022-07-28 Go语言链接器简介

YouTube

介绍链接器的功能和Go链接器的实现。

大纲

  • 链接器概述

  • Go语言编译流程透视

  • ELF文件格式解析

  • Go链接器工作流程

  • 重定位

分享者自我介绍

史斌(benshi001@github)

  • 给 Go语言提交过 131 个补丁(排名全球前 50)

  • 给 llvm 提交过 130 个补丁

  • 同时拥有 go 和 llvm 官方 gerrit 的 code review 权限

  • 同时拥有 go 和 llvm 官方 git 仓库的 push 权限

  • Go语言中国贡献者俱乐部成员

计划分享时间

2022-07-28 21:00:00 UTC+8

分享地址

Bilibili 直播: 哔哩哔哩直播,二次元弹幕直播平台

Slides

金山文档:https://kdocs.cn/l/cbCC83vUlmwS

参考资料

编译原理龙书:https://book.douban.com/subject/3296317/

Go链接器源码:go/src/cmd/link at master · golang/go · GitHub

Intel X86 处理器手册:

RISCV 处理器手册:GitHub - riscv/riscv-isa-manual: RISC-V Instruction Set Manual

PPT下载地址一(附件):
Go夜读-Go链接器-史斌.pptx (3.6 MB)

PPT下载地址二(金山文档):
https://kdocs.cn/l/cbCC83vUlmwS

问问里面的汇编通过什么工具看的?objdump没有这么详细的信息.

除了 objdump , 还有别的二进制工具可以查看 ELF 信息。

https://www.gnu.org/software/binutils/

常用的 nm, readelf, objdump ,可以仔细看看他们的命令行选项。