diff options
Diffstat (limited to 'scripts/mod')
| -rw-r--r-- | scripts/mod/modpost.c | 6 | 
1 files changed, 6 insertions, 0 deletions
| diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index bd8349759095..08f62a1af67d 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -609,6 +609,7 @@ static void handle_modversions(struct module *mod, struct elf_info *info,  {  	unsigned int crc;  	enum export export; +	bool is_crc = false;  	if ((!is_vmlinux(mod->name) || mod->is_dot_o) &&  	    strncmp(symname, "__ksymtab", 9) == 0) @@ -618,6 +619,7 @@ static void handle_modversions(struct module *mod, struct elf_info *info,  	/* CRC'd symbol */  	if (strncmp(symname, CRC_PFX, strlen(CRC_PFX)) == 0) { +		is_crc = true;  		crc = (unsigned int) sym->st_value;  		sym_update_crc(symname + strlen(CRC_PFX), mod, crc,  				export); @@ -663,6 +665,10 @@ static void handle_modversions(struct module *mod, struct elf_info *info,  		else  			symname++;  #endif +		if (is_crc) { +			const char *e = is_vmlinux(mod->name) ?"":".ko"; +			warn("EXPORT symbol \"%s\" [%s%s] version generation failed, symbol will not be versioned.\n", symname + strlen(CRC_PFX), mod->name, e); +		}  		mod->unres = alloc_symbol(symname,  					  ELF_ST_BIND(sym->st_info) == STB_WEAK,  					  mod->unres); | 
