On 30.07.2019 01:26, Stephen Rothwell wrote:
Hi Denis,
On Mon, 29 Jul 2019 17:18:01 +0300 Denis Efremov <efremov@xxxxxxxxx> wrote:
This patch adds a check to warn about static EXPORT_SYMBOL* functions
during the modpost. In most of the cases, a static symbol marked for
exporting is an odd combination that should be fixed either by deleting
the exporting mark or by removing the static attribute and adding the
appropriate declaration to headers.
OK, this is now in linux-next and I am getting what look like false
positives :-(
My powerpc builds produce these:
WARNING: "ahci_em_messages" [vmlinux] is the static EXPORT_SYMBOL_GPL
WARNING: "ftrace_set_clr_event" [vmlinux] is the static EXPORT_SYMBOL_GPL
WARNING: "empty_zero_page" [vmlinux] is the static EXPORT_SYMBOL
WARNING: "jiffies" [vmlinux] is the static EXPORT_SYMBOL
empty_zero_page (at least) is not static. It is defined in assembler ...
This could be fixed either by adding the type, for example:
--- a/arch/x86/kernel/head_64.S
+++ b/arch/x86/kernel/head_64.S
@@ -478,6 +478,7 @@ EXPORT_SYMBOL(phys_base)
__PAGE_ALIGNED_BSS
NEXT_PAGE(empty_zero_page)
+.type empty_zero_page, STT_OBJECT
.skip PAGE_SIZE
EXPORT_SYMBOL(empty_zero_page)
Or by updating the check in the patch:
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -1988,7 +1988,9 @@ static void read_symbols(const char *modname)
unsigned char bind = ELF_ST_BIND(sym->st_info);
unsigned char type = ELF_ST_TYPE(sym->st_info);
- if (type == STT_OBJECT || type == STT_FUNC) {
+ if (type == STT_OBJECT ||
+ type == STT_FUNC ||
+ type == STT_NOTYPE) {
Do I need to resend the whole patch or create new "patch-on-patch"?
Denis