aboutsummaryrefslogtreecommitdiff
path: root/libctf/ctf-open.c
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2025-05-02 10:07:53 +0200
committerJan Beulich <jbeulich@suse.com>2025-05-02 10:07:53 +0200
commitea9c4d157496d68a489f1d9e3a623d1dd9788192 (patch)
tree9abae1171e6c6b70bd4bb181ee0bf3003d9eaee1 /libctf/ctf-open.c
parente3e55b9c5d80f34037e5e8317a4884bf87f23418 (diff)
downloadbinutils-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