From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7216 invoked by alias); 13 Dec 2007 14:50:31 -0000 Received: (qmail 7208 invoked by uid 22791); 13 Dec 2007 14:50:30 -0000 X-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,DK_POLICY_SIGNSOME,FORGED_RCVD_HELO,SPF_HELO_PASS,SPF_PASS,TW_FH X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 13 Dec 2007 14:50:21 +0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.13.8/8.13.1) with ESMTP id lBDEoJVi001258 for ; Thu, 13 Dec 2007 09:50:19 -0500 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [10.11.255.20]) by int-mx1.corp.redhat.com (8.13.1/8.13.1) with ESMTP id lBDEoIhp029841 for ; Thu, 13 Dec 2007 09:50:18 -0500 Received: from localhost.localdomain (sebastian-int.corp.redhat.com [172.16.52.221]) by pobox.corp.redhat.com (8.13.1/8.13.1) with ESMTP id lBDEoHIJ004327 for ; Thu, 13 Dec 2007 09:50:17 -0500 Message-ID: <476146B5.7020606@redhat.com> Date: Thu, 13 Dec 2007 14:50:00 -0000 From: Andrew Cagney User-Agent: Thunderbird 2.0.0.9 (X11/20071115) MIME-Version: 1.0 To: frysk Subject: enabling shared builds Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact frysk-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: frysk-owner@sourceware.org X-SW-Source: 2007-q4/txt/msg00219.txt.bz2 Hi, At the moment frysk's build system links against its own libraries statically; doing this avoids any issues picking up the wrong library (for instance patchd vs installed libunwind et.al.), it also leads to large binaries (system libraries are linked dynamically). I'm looking at switching to changing much of frysk to be dynamic but this leads to some in-tree vs ex-tree fun. For instance, while in-tree test programs such as: ./TestRunner and ./frysk-gui/frysk/gui/FryskGui are built to find their libraries in the build tree (using RPATH stuff), programs intended to be run from the install tree such as: frysk-core/bindir/fhpd will not. Consequently, with shared enabled, programs such as fhpd will either fail to run or will run incorrectly (using previously installed libraries). There are several ways to address this; and before making this change I think we should consider our options: - wire build RPATH into binaries Doesn't work: the installed binary could load incorrect build-tree solibs and vice versa - rely on the developers to provide the path explicitly: LD_LIBRARY_PATH= ./frysk-core/frysk/bindir/fhpd (chance of us getting that right? 0 :-) - provide a wrapper script that sets the environment vis: ./BuildTree ./frysk-core/frysk/bindir/fhpd - have 'TestRunner' export LD_LIBRARY_PATH before invoking any utilities - create two versions of the binary; one for build-tree and one for install tree - switch to install-tree testing Would mean breaking configure convention and set --prefix=. On the other hand it would mean only testing one way. Thoughts, other ideas. Andrew