2

注意在我们的 makefileEXPORT_SYMTAB中的使用如here中所述。

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

4

2 回答 2

3

自 2.6 内核以来,这个EXPORT_SYMTAB名称本身似乎一劳永逸。但是,相关宏EXPORT_SYMTAB_STROPS似乎与此处解释的 SPARC 体系结构的相关性仍然很小。直接从邮件列表中引用:

> 鉴于 EXPORT_SYMTAB 已经从内核树中删除了很久
> 时间过去了,这个相关的宏还有什么用处吗?只是
>问。

它仅由 sparc 使用,以便它可以导出符号,例如memcpy()memset()等。适当地

在构建 ksyms.c 时如果没有这种ifdef保护,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 */
于 2012-10-06T21:22:22.720 回答
2

找不到任何直接参考。虽然在 2.6 内核中发现了以下提交..

commit fe4f699c6fb886a8deaf1120fd52402c3bd7c459
Author: Robert P. J. Day <rpjday@crashcourse.ca>
Date:   Sun Jul 5 05:19:29 2009 -0400

    Staging: vt6655: Remove Makefile refs to EXPORT_SYMTAB

    Given that EXPORT_SYMTAB was removed long ago, remove the Makefile
    references to it.

    Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>


commit 1fad810473423bbf0626fab2fbeb27a4663fa2d5
Author: Adrian Bunk <bunk@stusta.de>
Date:   Sat Jul 30 12:49:56 2005 -0700

    [PATCH] hostap update

    EXPORT_SYMTAB does nothing. There's no need to define something if it
    doesn't have any effect.

    Signed-off-by: Adrian Bunk <bunk@stusta.de>
    Signed-off-by: Jouni Malinen <jkmaline@cc.hut.fi>
    Signed-off-by: Jeff Garzik <jgarzik@pobox.com>

这表明 EXPORT_SYMTAB 不再使用。

于 2012-10-06T03:27:18.213 回答