On Feb 27, 2013, at 2:32 PM, mkfs <[email protected]> wrote:

> Is there any reason not to use the --whole-archive flags in one of the
> Dyninst shared libraries, such symtabAPI or dynDwarf?

It doesn't work if libdwarf.a isn't compiled with -fPIC. However, I've updated 
the test suite and the parseThat utility to support static libdwarf. They're 
compiled as follows:

test suite driver: -rdynamic -Wl,--whole-archive -ldwarf -Wl,--no-whole-archive
parseThat: -Wl,--whole-archive -ldwarf -Wl,--no-whole-archive

The test suite driver uses dlopen to load the Dyninst libraries, and thus 
requires -rdynamic to ensure that all dwarf symbols are available to dlopen 
(via the dynamic symbol table). Unfortunately, all users who build binaries 
will have to do something similar. 

> Alternatively, this could be handled via 'better documentation', as
> mentioned. When I began to write code against Dyninst, it would have
> been very helpful to have a sample application (e.g. create a BPatch
> against argv[1] and exit) along with toolchain-specific build
> commands. This could even use the configured build system, as long as
> the build commands are echoed to STDOUT for reference. I tried to coax
> the build commands out of the testsuite, but was not very successful.

This is a good idea, and it's been added to the DyninstAPI documentation. We'll 
look into adding an example build line, since there are a lot of details that 
have to be right now - library ordering, flags, the lot. 

Drew

--
Andrew Bernat
Paradyn Project
[email protected]
http://www.cs.wisc.edu/~bernat




_______________________________________________
Dyninst-api mailing list
[email protected]
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api

Reply via email to