Re: [DynInst_API:] ProcControlAPI and threaddb


Date: Mon, 06 Jan 2014 10:42:47 -0600
From: bill <bill@xxxxxxxxxxx>
Subject: Re: [DynInst_API:] ProcControlAPI and threaddb
Ed--

Time for stupid questions: do you actually want Dyninst as a binary rewriter, or do you just want (e.g.) parseAPI?

If you only want a subset of components, just build them ("make parseAPI", etc). If you want Dyninst as a binary rewriter, I believe what you're going to want to do is the same sort of thing we've done on BlueGene/Q (another rewriter-only platform). I would also highly recommend starting from git-head rather than from 8.1.2--we've upgraded our build system to CMake, and I expect it will be both easier to incorporate a new platform to start with, and less work in the long run to maintain, if you just hop on board now. Big picture, what you want is a libdyninstAPI that doesn't link against proccontrol/stackwalker, doesn't build any of the stack walking classes, and doesn't build the internal process classes (dynProcess/dynThread IIRC?). Anything that would create a BPatch level process or thread class would hand back an error (NULL and set error), etc. (Alternately, it might be worth the quick look to see whether haiku process control can be slotted into either the Linux or the BSD threading model and Just Plain Work--we should be able to build proccontrol without threaddb, and iirc that's fixed on git-head even if it's broken in 8.1.2.)

Other potential gotchas: I don't know whether the haiku loader places the same requirements on executables/shared libraries that the Linux loader does. In general, getting a rewritten binary to actually load correctly is the hard part of supporting rewriting on a new OS. I also don't know whether the libelf support on haiku is good, nor do I know whether libdwarf will work out of the box (it should, assuming a functional libelf). I am assuming ELF files are the default because there's a libelf port (and that seems silly if they're not).

--bw

On 2014-01-06 08:31, E.Robbins wrote:
Hi,
I am trying to build dyninst on haiku, which does not have threaddb.
It is only needed by the process control api, which I don't need, so I
am wondering if there's a way to build it without that. I've tried
configure --without-threaddb but it still errors out complaining about
missing thread_db.h. There doesn't seem to be a configure option to
disable the process control api (and, I'd hoped, threaddb as well). Is
there a way around this?

Are there likely to be other problems I'll run into along the way?

Thanks,
Ed


_______________________________________________
Dyninst-api mailing list
Dyninst-api@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api
[← Prev in Thread] Current Thread [Next in Thread→]