mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 09:04:39 +02: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:
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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user