diff options
author | Jan Beulich <jbeulich@suse.com> | 2025-05-02 10:07:53 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2025-05-02 10:07:53 +0200 |
commit | ea9c4d157496d68a489f1d9e3a623d1dd9788192 (patch) | |
tree | 9abae1171e6c6b70bd4bb181ee0bf3003d9eaee1 /libctf/ctf-open.c | |
parent | e3e55b9c5d80f34037e5e8317a4884bf87f23418 (diff) | |
download | binutils-ea9c4d157496d68a489f1d9e3a623d1dd9788192.zip binutils-ea9c4d157496d68a489f1d9e3a623d1dd9788192.tar.gz binutils-ea9c4d157496d68a489f1d9e3a623d1dd9788192.tar.bz2 |
COFF: function auxiliary symbols
For one at least x86 gcc emits .def/.endef for functions, but no 2nd
pair to designate their ends (sizes). While we can't recover the sizes,
we can at least properly establish the chain of function symbols, which
of course requires to emit auxiliary symbols for every function symbol
even when there's no C_EFCN: We simply shouldn't be making their
insertion conditional upon there not being a function processing of
which is "in progress".
In fact it was wrong to assign dual purpose to {,next_}set_end:
Functions don't have "ends" set, but links to the next one. The same
symbol table entry can serve both as an end marker and be a part of the
chain of (defined) functions; this can't be expressed by a single static
variable. Use what (again) becomes last_functionP for this purpose,
along with tracking what symbol C_EFCN should apply to.
This then allows to undo exposing of the respective (supposedly static)
tracking variable, which PPC's XCOFF handling had introduced. Also
rename it back to what it was before its exposure.
For now the new testcases are XFAIL for Arm64 since there, unlike for
Arm32, mapping symbols are emitted for COFF, too.
Diffstat (limited to 'libctf/ctf-open.c')
0 files changed, 0 insertions, 0 deletions