[PATCH v2 2/2] symbols: also special-case symbols aliasing _sinittext
Jan Beulich <[email protected]>
| Newsgroups | gmane.comp.emulators.xen.devel |
|---|---|
| Message-ID | <[email protected]> |
A recent 4.22 randconfig build job hit a situation where (LIVEPATCH=n, i.e. --all-symbols not specified) both __note_gnu_build_id_end and _erodata aliased _sinittext on the 1st linking pass, but they didn't on the 2nd one. As a result two fewer symbols were emitted on the 2nd pass, causing $(call compare-symbol-tables, ...) to fail. Extend the existing "corner case" by also considering aliases with _sinittext (_stext really shouldn't have anything ahead of it), but discard only non-text symbols. Signed-off-by: Jan Beulich <[email protected]> --- v2: Re-base over _{s,e}extratext removal. Add const to cast. --- a/xen/tools/symbols.c +++ b/xen/tools/symbols.c @@ -217,6 +217,11 @@ static int symbol_valid(struct sym_entry if ((s->addr == _etext && strcmp((char*)s->sym + offset, "_etext")) || (s->addr == _einittext && strcmp((char*)s->sym + offset, "_einittext"))) return 0; + /* Same for non-text aliases of _sinittext or _sextratext. */ + if (toupper(*s->sym) != 'T' + && s->addr == _sinittext + && strcmp((const char *)s->sym + offset, "_sinittext")) + return 0; } /* Exclude symbols which vary between passes. */