mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 10:11:38 -04:00
module: populate kflagstab in modpost
This patch adds the ability to create entries for kernel symbol flag bitsets in kflagstab. Modpost populates only the GPL-only flag for now. Signed-off-by: Siddharth Nayyar <sidnayyar@google.com> Reviewed-by: Petr Pavlu <petr.pavlu@suse.com> Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
This commit is contained in:
committed by
Sami Tolvanen
parent
9743311b45
commit
16d0e04f54
@@ -69,4 +69,11 @@
|
||||
".long " #crc "\n" \
|
||||
".previous" "\n")
|
||||
|
||||
#define SYMBOL_FLAGS(sym, flags) \
|
||||
asm(" .section \"___kflagstab+" #sym "\",\"a\"" "\n" \
|
||||
"__flags_" #sym ":" "\n" \
|
||||
" .byte " #flags "\n" \
|
||||
" .previous" "\n" \
|
||||
)
|
||||
|
||||
#endif /* __LINUX_EXPORT_INTERNAL_H__ */
|
||||
|
||||
@@ -244,6 +244,11 @@ static struct symbol *alloc_symbol(const char *name)
|
||||
return s;
|
||||
}
|
||||
|
||||
static uint8_t get_symbol_flags(const struct symbol *sym)
|
||||
{
|
||||
return sym->is_gpl_only ? KSYM_FLAG_GPL_ONLY : 0;
|
||||
}
|
||||
|
||||
/* For the hash of exported symbols */
|
||||
static void hash_add_symbol(struct symbol *sym)
|
||||
{
|
||||
@@ -1874,6 +1879,9 @@ static void add_exported_symbols(struct buffer *buf, struct module *mod)
|
||||
buf_printf(buf, "KSYMTAB_%s(%s, \"%s\", \"%s\");\n",
|
||||
sym->is_func ? "FUNC" : "DATA", sym->name,
|
||||
sym->is_gpl_only ? "_gpl" : "", sym->namespace);
|
||||
|
||||
buf_printf(buf, "SYMBOL_FLAGS(%s, 0x%02x);\n",
|
||||
sym->name, get_symbol_flags(sym));
|
||||
}
|
||||
|
||||
if (!modversions)
|
||||
|
||||
Reference in New Issue
Block a user