Gnu: binutils: ld: .gnu.warning.链接时的主动警告 glibc

这个是一个gnu的extension,glibc会使用这个功能,标记即将被淘汰的符号,产生链接时的警告,比如:

cpp 复制代码
/* When a reference to SYMBOL is encountered, the linker will emit a
   warning message MSG.  */
/* We want the .gnu.warning.SYMBOL section to be unallocated.  */
#define __make_section_unallocated(section_string)	\
  asm (".section " section_string "\n\t.previous");
  
#define link_warning(symbol, msg) \
  __make_section_unallocated (".gnu.warning." #symbol) \
  static const char __evoke_link_warning_##symbol[]	\
    __attribute__ ((used, section (".gnu.warning." #symbol __sec_comment))) \
    = msg;
    
link_warning (pthread_attr_setstackaddr,
              "the use of `pthread_attr_setstackaddr' is deprecated, use `pthread_attr_setstack'")

效果

cpp 复制代码
/tmp/ccVxpFwZ.o: In function `main':
warning1.c:(.text+0xe): warning: the use of `pthread_attr_setstackaddr' is deprecated, use `pthread_attr_setstack'

需要注意,如果函数和main函数是再一个编译单元,不会trigger这个warning。需要变成成单独的o/so文件,在链接时才会报错。

相关推荐
vortex57 天前
Linux 命令工具箱:util-linux 与 GNU Coreutils
linux·运维·gnu
2601_961845428 天前
法考真题及答案解析|历年真题|资料已整理
linux·windows·ubuntu·macos·centos·gnu
木白CPP11 天前
aarch64-linux-gnu* (gcc,ld,objcopy,objdump)工具总结
linux·运维·gnu
Snasph15 天前
GNU Make 用户手册(中文版)
服务器·算法·gnu
2601_9611940217 天前
化学教资科三真题答案
linux·windows·ubuntu·pdf·centos·gnu
zhangfeng113320 天前
glibc = GNU C Library (GNU C 标准库)CentOS 7 (glibc 2.17) pip支持
c语言·人工智能·神经网络·机器学习·centos·gnu
agathakuan21 天前
從零開始在家開發 IoT: OpenOCD 與 GDB 協作指南
stm32·gnu·rtc
lljss20201 个月前
Arm GNU 工具链 命名规则
服务器·arm开发·gnu
wzhao1011 个月前
Relink 0.15.1:一个 no_std 的 ELF 加载器/链接器
linux·rust·gnu
wzhao1011 个月前
动态链接器(十一):线程局部存储
linux·rust·gnu