linux - 2.6 内核中的 EXPORT_SYMTAB

标签 linux linux-kernel linux-device-driver

在我们的 makefile 中注意到 EXPORT_SYMTAB 的使用如 here 中所述。 .

它仍然与 2.6 及更高版本的内核相关吗? 我找不到它当前状态的引用,但在 LXR 中找不到它。

最佳答案

EXPORT_SYMTAB自 2.6 内核以来,名称本身似乎一劳永逸地消失了。然而相关宏EXPORT_SYMTAB_STROPS似乎与 SPARC 架构的相关性仍然很小,如​​所解释的 here 。直接引用邮件列表:

> given that EXPORT_SYMTAB was removed from the kernel tree quite some
> time back, is this related macro still doing anything useful? just
> asking.

它仅由 sparc 使用,以便它可以导出类似 memcpy() 的符号, memset()等人。正确地

没有这个ifdef构建 ksyms.c 时的保护,string*.h 将 将这些函数定义为宏,这使得:

EXPORT_SYMBOL(memcpy)

和类似的不起作用,因为 memcpy将宏观扩张并从而打破 带有语法错误的构建。

EXPORT_SYMTAB_STROPS宏仍然存在于 3.4.9 内核中。

#> find . \( -name '*.c' -o -name '*.h' \) -exec grep -inH EXPORT_SYMTAB {} \;
./arch/sparc/lib/ksyms.c:6:#define EXPORT_SYMTAB_STROPS
./arch/sparc/include/asm/string_64.h:18:#ifndef EXPORT_SYMTAB_STROPS
./arch/sparc/include/asm/string_64.h:58:#endif /* !EXPORT_SYMTAB_STROPS */
./arch/sparc/include/asm/string_32.h:20:#ifndef EXPORT_SYMTAB_STROPS
./arch/sparc/include/asm/string_32.h:127:#endif /* !EXPORT_SYMTAB_STROPS */

关于linux - 2.6 内核中的 EXPORT_SYMTAB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12622311/

相关文章:

c++ - 测量分布式应用程序的内存使用情况

linux - 各种CPU掩码之间的区别 - Linux内核

c - 用户空间代码以什么顺序执行?

linux-kernel - Linux内核如何在多核之间迁移进程?

linux - IOCTL:仅适用于 switch-case 中的参数 0

c - "static int function(...) __acquires(..) __releases(...){"是什么意思?

Linux I2C 内核驱动程序

c - 在 C 中从设备名称获取硬盘可用空间

python - 如何在终端命令中在 python 中分配变量值?

java - UBUNTU 13.04 GNOME_DESKTOP_SESSION_ID