GNU链接器(LD):输入分区的垃圾回收及保护处理(KEEP命令)介绍

0 参考资料

c 复制代码
GNU-LD-v2.30-中文手册.pdf
GNU linker.pdf

1 前言

一个完整的编译工具链应该包含以下4个部分:

(1)编译器

(2)汇编器

(3)链接器

(4)lib库

在GNU工具链中,对应的是:

(1)编译器:GCC(GNU Compiler Collection,GNU编译器套件)

(2)汇编器:GAS(GNU Assembler,GNU汇编器)

(3)链接器:LD(GNU Linker,GNU链接器)

(4)lib库:glibc(GNU C Library,GNU C 库)

本文介绍GNU链接器(LD)链接器脚本中输入分区的垃圾回收及保护处理(KEEP命令)。

2 GNU链接器(LD):输入分区的垃圾收集处理(KEEP命令)介绍

当我们的编译命令添加了'--gc-sections'命令选项,链接时会进行垃圾收集,可能会将不需要被当做垃圾处理的分区处理掉。为了避免这种情况发生,可以使用KEEP()命令将不需要淘汰的输入分区保护起来。例子如下:

c 复制代码
KEEP(*(.init))

以上KEEP命令保护.init段,.init段会被libc_nano(精简版C库)使用到,要避免被优化掉。

相关推荐
xian_wwq7 天前
【学习笔记】变电保护、测控、安自、自动化系统概述
笔记·学习·保护
晴夏。10 天前
UE垃圾回收的全方面讲解(通俗易懂)【底层实现、触发方式、引用保持、优化、工具】
ue5·游戏引擎·ue·垃圾回收
耿雨飞25 天前
Python 后端开发技术博客专栏 | 第 04 篇 Python 内存管理与垃圾回收 -- 从引用计数到分代回收
开发语言·python·垃圾回收
ん贤1 个月前
Go GC垃圾回收机制
算法·go·gc·垃圾回收
想搞艺术的程序员2 个月前
Java Survivor区学习笔记
java·笔记·学习·垃圾回收
cur1es2 个月前
【JVM类加载&双亲委派模型&垃圾回收机制】
java·jvm·gc·垃圾回收·类加载·双亲委派模型
weisian1513 个月前
JVM--8-深入JVM垃圾回收:从垃圾识别到回收算法
jvm·垃圾回收·gc算法·可达性分析·标记清除·引用计数法·复制算法
蜂蜜黄油呀土豆3 个月前
深入解析Java虚拟机垃圾回收机制
java·jvm·cms·垃圾回收·g1
蜂蜜黄油呀土豆3 个月前
Java虚拟机垃圾回收机制解析
java·jvm·性能优化·gc·垃圾回收
笨手笨脚の3 个月前
深入理解 Java 虚拟机-04 垃圾收集器
java·jvm·垃圾收集器·垃圾回收