惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Apple Machine Learning Research
Apple Machine Learning Research
月光博客
月光博客
量子位
IT之家
IT之家
Jina AI
Jina AI
Help Net Security
Help Net Security
Cyberwarzone
Cyberwarzone
人人都是产品经理
人人都是产品经理
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
AWS News Blog
AWS News Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
罗磊的独立博客
P
Proofpoint News Feed
S
Schneier on Security
Spread Privacy
Spread Privacy
The Hacker News
The Hacker News
Know Your Adversary
Know Your Adversary
雷峰网
雷峰网
L
LINUX DO - 热门话题
博客园 - 聂微东
C
Cisco Blogs
酷 壳 – CoolShell
酷 壳 – CoolShell
Security Latest
Security Latest
阮一峰的网络日志
阮一峰的网络日志
I
Intezer
K
Kaspersky official blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threatpost
Last Week in AI
Last Week in AI
博客园 - Franky
G
GRAHAM CLULEY
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tailwind CSS Blog
L
LINUX DO - 最新话题
T
The Exploit Database - CXSecurity.com
博客园 - 三生石上(FineUI控件)
P
Privacy International News Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
有赞技术团队
有赞技术团队
Schneier on Security
Schneier on Security
V
V2EX
V
Visual Studio Blog
S
Security @ Cisco Blogs
博客园 - 叶小钗
H
Hacker News: Front Page
小众软件
小众软件
WordPress大学
WordPress大学
V2EX - 技术
V2EX - 技术
美团技术团队

LLVM

指令调度在 LLVM 与 OoO 的区别与联系? - V2EX 使用 LLVM 的 clang 替换苹果自带的有问题吗 - V2EX 请问 LLVM 如何链接多个目标文件呢? - V2EX 基于 llvm 开发编程语言,有必要学汇编吗?理由是什么,谢谢 - V2EX 想更熟悉 LLVM,是不是要学会 c++?还要学其他的吗? - V2EX 我用 llvm 实现了 bb 语言的加法和减法,也套娃的实现了打印功能,那怎么实现更高级的,如 http 请求功能呢,该怎么套娃呢?套 c 语言吗 - V2EX 我想用 llvm 制作一门语言的编译器,是不是要学会 llvm ir 里的哪个奇怪的语法 - V2EX LLVM 8.0 发布 WebAssembly target 移除实验标签 - V2EX 假如要实现一个基于 LLVM IR 的包管理器,有什么坑或者硬伤吗? - V2EX LLVM/Clang LLD LLDB 5.0 正式发布 - V2EX 有哪位在 RHEL5 下编译过 llvm? - V2EX 有没有朋友了解 klee 和 llvm 啊? - V2EX 大家能访问 LLVM(llvm.org)吗 - V2EX ClangFormat 代码格式化工具 - V2EX llvm足够成熟了么?跟GCC相比有什么优劣? - V2EX 王垠果然开始在 LLVM 上做事情了…… - V2EX 居然看到LLVM了 - V2EX
用 Clang 编译时如何将编译参数存进 ELF 的某个 section 里? - V2EX
dangyuluo · 2020-09-04 · via LLVM

这是一个创建于 2110 天前的主题,其中的信息可能已经有所发展或是发生改变。

最近遇到一个问题,就是需要从编译好的 ELF 里提取出编译时的参数,比如 Wall,Werror 一类的。GCC 下很容易,有一个 section 叫.GCC.command.line。但是 Clang 编译出的 ELF 里没有类似的 section 。

请问哪位有点思路?我应该怎么去找。谢谢

dangyuluo

2

dangyuluo      2020 年 9 月 4 日

@secondwtq 哈是的,我是打开了-frecord-gcc-switches 。原来 Clang 的对应 flag 叫-grecord-gcc-switches,就一个字母区别😓😓

明天再搞

ivan_wl

3

ivan_wl      2020 年 9 月 4 日

1. 把编译参数写入一个文本文件
2. 生成一个.S 汇编,定义全局符号,用.incbin 包含刚才的文本文件,结尾再加个.byte 0,这样就定义了一个字符串
3. 带着这个.S 一起编译就行了,c 代码中可以用.S 定义的全局符号访问这个字符串了

secondwtq

4

secondwtq      2020 年 9 月 4 日

-g 是调试信息 flag, -grecord-gcc-switches 是把参数存进调试信息,不是 .GCC.command.line 。GCC 也有 -grecord-gcc-switches 。
我说是兼容的就是名字是一样的。当然实现可能会塞点私货。
你要是没有 -frecord-gcc-switches 那估计是版本老了点。