[haiku-appserver] Linkage Mess

  • From: Ingo Weinhold <bonefish@xxxxxxxxxxxxxxx>
  • To: Haiku App Server List <haiku-appserver@xxxxxxxxxxxxx>
  • Date: Sat, 09 Jul 2005 21:43:15 +0200

Howdy,

while trying to have a closer look at the bug that seems to almost reliably 
crash the app server in the R5 test environment after pressing one of the 
alert's buttons, I realized that R5's BRegion is used (the crash happens in 
BRegion::Contains(BPoint) invoked from Layer::LayerAt(const BPoint&)).

Having a look at the Jamfile the part responsible for linking the test 
environment is this:

        # link as test application under R5

        LINKFLAGS on app_server ?= $(LINKFLAGS) ;
        LINKFLAGS on app_server += -lbe ;

        LinkSharedOSLibs libappserver.so :
                root be <boot!home!config!lib>libopenbeos.so
                textencoding libfreetype.so ;

        LinkSharedOSLibs app_server :
                root be game translation libz.so libpng.so libappserver.so
                libpainter.a <boot!home!config!lib>libopenbeos.so 
                libagg.a libfreetype.so textencoding ;

For one I don't understand why -lbe is manually added to the LINKFLAGS and 
"be" listed below as library to be linked against again. But the fact that 
the whole thing is linked against R5's libbe at all I find quite 
disconcerting. I don't know, how many classes besides BRegion are used in 
the app server, but I wouldn't be surprised, if that's a reason why the 
test environment behaves different in some aspects than the true thing 
under Haiku.

May I kindly propose that the test platform dependent code be moved into an 
add-on, so that libappserver and the app_server itself don't need to link 
against any test platform libs besides libroot.

CU, Ingo

Other related posts: