[haiku-development] Re: In-tree tests built on Haiku host linking to host libbe

  • From: "Ingo Weinhold" <ingo_weinhold@xxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Sat, 15 Oct 2011 10:49:01 +0200

pulkomandy@xxxxxxxxxxxxxxxxx wrote:
> On 2011-10-15 at 00:27:31 [+0200], Alex Wilson <yourpalal2@xxxxxxxxx> wrote:
> > Hi all, I've been working on and off as time permits on some
> > improvements to the layout code in my github branch
> > (github.com/yourpalal/haiku), and I ran into an annoying problem. I
> > have been using LayoutTest1 (in the tree) to test my changes as I go.
> > Unfortunately, it appears the executable has been getting linked to
> > the host libbe.so, which not only means I haven't actually tested any
> > of these changes (beyond making sure that they compile), but has lead
> > to some very frustrating errors. What tipped me off was that any
> > changes to the vtables of my classes leads to a segfault. Eventually I
> > found a way to print out the vtable entries for an object in gdb,
> > which were not reflecting any changes I made... investigating further,
> > I found/ran 'info sharedlibrary' which confirmed my fears.
> > 
> > So, what I need help with is a way to force LayoutTest1 to link to the
> > right libbe. I have looked around a bit but nothing has jumped out at
> > me as a solution. Hopefully someone on here can help!
> 
> Creating a "lib" folder next to LayoutTest1 binary, and copying/linking 
> your new libbe inside should be enough.

I'd recommend creating an install pseudo target for that purpose in your 
UserBuildConfig to copy everything into one place. E.g. for playing with 
Debugger I use the following:

HaikuInstall debugger : /boot/home/Desktop/debugger
    : Debugger Terminal debug_hello_world
    : install-debugger
;

HaikuInstall debugger : /boot/home/Desktop/debugger/lib
    : libbe.so libdebug.so
    : install-debugger
;

A simple "jam -q debugger" creates and updates a directory "debugger" on the 
desktop including the Debugger executable and some others for testing, as well 
as a "lib" subdirectory with the needed libraries. The HaikuInstall rule 
parameters are 1. name of the pseudo target, 2. target directory, 3. targets to 
copy there, 4. a unique grist used for the installed targets (e.g. in this case 
"<install-debugger>libbe.so" denotes the libbe.so file in the installation 
directory; something like "install-..." should be fine).

CU, Ingo

Other related posts: