diff --git "a/sig/sig-QA/\347\274\226\350\257\221\350\247\204\350\214\203.md" "b/sig/sig-buildsystem/\347\274\226\350\257\221\350\247\204\350\214\203.md" similarity index 79% rename from "sig/sig-QA/\347\274\226\350\257\221\350\247\204\350\214\203.md" rename to "sig/sig-buildsystem/\347\274\226\350\257\221\350\247\204\350\214\203.md" index b3b2fc26f51a8e7bd66dea8ded0369d08b92e2b3..55aae37291b59741ce886bf28b022d3ab364b5d9 100644 --- "a/sig/sig-QA/\347\274\226\350\257\221\350\247\204\350\214\203.md" +++ "b/sig/sig-buildsystem/\347\274\226\350\257\221\350\247\204\350\214\203.md" @@ -37,10 +37,18 @@ Ninja: 开源的编译执行工具,高效执行ninja文件描述的编译过 **反例** :在模块的编译添加 `` -fstack-protector-strong`` **要求** :对于全局已经添加的默认选项,模块开发者应当知晓,不需要为了满足内外部规则再次添加。 -| 编译选项 | 编译参数 | 默认值 | -|--|--|--| -| 栈保护 | -fstack-protector-strong | 开 | -| Fortify Source | -D_FORTIFY_SOURCE=2 -O2 | 开 | +| 安全编译选项 | 编译参数 | 实施建议 | 作用阶段 | +|:-:|:-:|:-:|:-:| +| 栈保护 | -fstack-protector-all or -fstack-protector-strong | 必选 | 编译选项 | +| 立即绑定 | -Wl,-z,now | 必选 | 链接选项 | +| 堆栈不可执行 | -Wl,-z,noexecstack | 必选 | 链接选项 | +| 地址无关 | -fPIC or -fpic | 必选 | 编译选项 | +| 随机化 | -fPIE or -fpie、-pie | 必选 | 编译选项、链接选项 | +| GOT表保护 | -Wl,-z,relro | 必选 | 链接选项 | +| 动态库搜索路径 | -Wl,-rpath、-Wl,-rpath-link | 禁选 | 链接选项 | +| 删除符号表 | -s or strip工具 | 必选 | 链接选项 | +| Fortify Source | -D_FORTIFY_SOURCE=2 -O2 | 可选 | 编译选项 | +| 整数溢出检查 | -ftrapv | 可选 | 编译选项 | ### 规则1.3