c中的section属性

时间:2018-06-19 15:32:08

标签: gcc attributes clang elf

使用 __ attribute__((section(“ DANGER,\” \“,@ note#”)))= {0} 在elf中创建自己的节,命名为note类型时为危险。在gcc中它工作正常,但在clang注释中也被用作节标题名称。我将做什么?(如何在clang中创建类型为SHT_NOTE的节)。 程序如下

#include <stdio.h>
#include <string.h>
struct test_attribute 
{
int count;
};
struct test_attribute a __attribute__ ((section ("DANGER,\"\",@note#"))) = { 0 };
int main(){
a.count = 1;
}

下面是日志,

gcc

gcc test_arr.c readelf -s a.out的片段

[28]危险说明0000000000000000 00001064        0000000000000004 0000000000000000 0 0 4

clang test_arr.c

readelf -s a.out中的片段

[26]危险,“”,@ note#PROGBITS 0000000000601030 00001030        0000000000000004 0000000000000000 WA 0 0 4

注释:在lang节标题中将DANGER替换为DANGER,“”,@ note#,并将其类型作为PROGBITS替换为note。

0 个答案:

没有答案