arch,base,cpu,kerm,sim: Build a symbol table for object files.
authorGabe Black <gabeblack@google.com>
Wed, 22 Jan 2020 03:30:43 +0000 (19:30 -0800)
committerGabe Black <gabeblack@google.com>
Tue, 9 Jun 2020 23:37:29 +0000 (23:37 +0000)
commit5da62e633129bdbe913bd385c13fa2658706a29a
tree9d6fb4d5349a6228477636249bf00e586f8126da
parent7f4d6c83889e03d3b2da470625667346e0addee1
arch,base,cpu,kerm,sim: Build a symbol table for object files.

Instead of calling into object files after the fact and asking them to
put symbols into a target symbol table, this change makes object files
fill in a symbol table themselves at construction. Then, that table can
be retrieved and used to fill in aggregate tables, masked, moved,
and/or filtered to have only one type of symbol binding.

This simplifies the symbol management API of the object file types
significantly, and makes it easier to deal with symbol tables alongside
binaries in the FS workload classes.

Change-Id: Ic9006ca432033d72589867c93d9c5f8a1d87f73c
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24787
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
22 files changed:
src/arch/arm/freebsd/fs_workload.cc
src/arch/arm/fs_workload.cc
src/arch/arm/linux/fs_workload.cc
src/arch/arm/stacktrace.cc
src/arch/generic/linux/threadinfo.hh
src/arch/riscv/bare_metal/fs_workload.cc
src/arch/riscv/bare_metal/fs_workload.hh
src/arch/sparc/fs_workload.hh
src/arch/x86/stacktrace.cc
src/base/loader/elf_object.cc
src/base/loader/elf_object.hh
src/base/loader/object_file.hh
src/cpu/profile.cc
src/cpu/profile.hh
src/kern/linux/helpers.cc
src/mem/abstract_mem.cc
src/sim/kernel_workload.cc
src/sim/kernel_workload.hh
src/sim/process.cc
src/sim/syscall_emul.hh
src/sim/workload.hh
src/unittest/nmtest.cc