Merge pull request #529 from jpoimboe/CSWTCH

create-diff-object: Ignore unused CSWTCH static local symbols
This commit is contained in:
Seth Jennings 2015-10-28 14:47:41 -05:00
commit 46732a74d3

View File

@ -1141,8 +1141,20 @@ void kpatch_correlate_static_local_variables(struct kpatch_elf *base,
}
}
if (!sec)
if (!sec) {
/*
* CSWTCH is a read-only static local array used by gcc
* for some switch statements. If two functions use
* the same CSWTCH data, there can be two separate
* CSWTCH symbols referring to the same bundled
* .rodata.CSWTCH.xxxx section and one of them will be
* unused.
*/
if (!strncmp(sym->name, "CSWTCH.", 7))
continue;
ERROR("static local variable %s not used", sym->name);
}
if (!basesym) {
log_normal("WARNING: unable to correlate static local variable %s used by %s, assuming variable is new\n",