Fully separate symtab and symlite
authorJosh Stone <jistone@redhat.com>
Sat, 15 Mar 2014 00:12:07 +0000 (17:12 -0700)
committerJosh Stone <jistone@redhat.com>
Tue, 22 Apr 2014 22:22:11 +0000 (15:22 -0700)
commit25261b76909b970daa3f745f774f03310846c4b7
treef0f48db98fbe0c36b1ed291d85a171aeee412c3a
parent0d08c702830794451aeaa15f7f9a8b4dc5321009
Fully separate symtab and symlite

The cmake LIGHTWEIGHT_SYMTAB option is documented to toggle between
symtab and symlite for ParseAPI, ProcControl, and Stackwalker.  However,
these libraries didn't fully commit one way or the other, so we were
left in limbo with both loaded most of the time.  This patch fixes them
to be fully separated into just symtab or just symlite.

- All CMakeLists now respect LIGHTWEIGHT_SYMTAB when setting target
  libraries, so they'll fail to link if something is wrong.

- ParseAPI now builds with symlite, but note that DyninstAPI won't work
  yet in this mode, because it assumes full SymtabCodeSource.

- ProcControl's getElfReader() now works with either symtab or symlite.

- Stackwalker's DebugStepperImpl::GetReg is refactored a bit to work
  without symtab, and the latent cap_stackwalker_use_symtab is now
  converted to WITH_SYMTAB_API and enabled.
14 files changed:
parseAPI/CMakeLists.txt
patchAPI/CMakeLists.txt
proccontrol/CMakeLists.txt
proccontrol/src/bluegenep.C
proccontrol/src/bluegeneq.C
proccontrol/src/freebsd.C
proccontrol/src/linux.C
stackwalk/CMakeLists.txt
stackwalk/src/bluegenep-swk.C
stackwalk/src/dbginfo-stepper.C
stackwalk/src/frame.C
stackwalk/src/linuxbsd-swk.C
stackwalk/src/symtab-swk.C
stackwalk/src/symtab-swk.h