如何在Linux内核中生成简单的链接器警告?

时间:2013-04-12 17:23:29

标签: gcc linker linux-kernel linker-warning

我在linux内核中打开了ld选项--fatal-warning。如何生成一个简单的链接器警告来测试此功能?

2 个答案:

答案 0 :(得分:1)

#include<stdio.h>

int main()
{

    printf("Run !!");
    static const char warning[] __attribute__((section(".gnu.warning.printf")))="My sweet linker warning";
    return 0;
}

将此保存为test.c

如果您使用以下方式构建:

gcc -Wl,--fatal-warnings test.c -o my_exe

您应该收到链接器警告,但不会准备“my_exe”

现在尝试:

gcc -Wl,--no-fatal-warnings test.c -o my_exe

在这种情况下,警告将按原样报告,但不会被视为错误,它将为您准备“my_exe”。

我不确定“打开”究竟是什么意思,但如果你看到上述行为,那么我猜你很好。

如果您正在使用内核源代码,那么您需要将printf替换为源代码中已有的任何函数名称(也请更改.gnu.warning部分名称)

答案 1 :(得分:0)

谢谢大家的建议。我浏览了makefile,发现了一些抑制警告的链接器标志。我刚删除它们以生成ld警告。