【发布时间】:2016-04-25 20:37:53
【问题描述】:
所以我正在查看 gcc 编译器的源代码,我在 fork.c 中找到了这个:
int
__fork ()
{
__set_errno (ENOSYS);
return -1;
}
libc_hidden_def (__fork)
stub_warning (fork)
weak_alias (__fork, fork)
#include <stub-tag.h>
我试图弄清楚weak_alias 的作用。我在 glibc 源文件中使用了 grep 命令来查找所有出现的 #define weak_alias:
grep -r "#define weak_alias"
我发现这个宏出现了很多次:
#define weak_alias(n, a)
但宏实际上并没有解释任何东西。他们只是定义了那个声明,没有显示它是如何被替换的。例如,profil.c 中出现了一次:
/* Turn off the attempt to generate ld aliasing records. */
#undef weak_alias
#define weak_alias(a,b)
那么对于weak_alias 的作用以及它的定义位置有什么想法吗?
提前致谢
【问题讨论】:
-
谢谢。检查了谷歌的前 10 页,没有看到这个。
标签: c linux gcc compiler-construction gnu