From owner-freebsd-ports@FreeBSD.ORG Tue Mar 7 22:35:27 2006 Return-Path: X-Original-To: ports@freebsd.org Delivered-To: freebsd-ports@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AE41D16A420 for ; Tue, 7 Mar 2006 22:35:27 +0000 (GMT) (envelope-from neuhauser@sigpipe.cz) Received: from isis.sigpipe.cz (fw.sigpipe.cz [62.245.70.224]) by mx1.FreeBSD.org (Postfix) with ESMTP id 07BED43D48 for ; Tue, 7 Mar 2006 22:35:27 +0000 (GMT) (envelope-from neuhauser@sigpipe.cz) Received: by isis.sigpipe.cz (Postfix, from userid 1001) id 9F6E61F87C15; Tue, 7 Mar 2006 23:35:25 +0100 (CET) Date: Tue, 7 Mar 2006 23:35:25 +0100 From: Roman Neuhauser To: Marcel Moolenaar Message-ID: <20060307223525.GA4435@isis.sigpipe.cz> Mail-Followup-To: Marcel Moolenaar , pfgshield-freebsd@yahoo.com, ports@freebsd.org, Kris Kennaway References: <20060307192606.GA56153@xor.obsecurity.org> <20060307195849.70339.qmail@web32714.mail.mud.yahoo.com> <20060307205455.GA11840@ns1.xcllnt.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20060307205455.GA11840@ns1.xcllnt.net> User-Agent: Mutt/1.5.9i Cc: ports@freebsd.org, pfgshield-freebsd@yahoo.com, Kris Kennaway Subject: Re: amd64 and -fPIC X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Mar 2006 22:35:27 -0000 # marcel@xcllnt.net / 2006-03-07 12:54:55 -0800: > A shared object has to be position independent and any object files > that constitute the shared object have to be constructed in such a > way. For C/C++ and GCC this means that -fPIC is required. Some > platforms (i.e. i386) don't generate different code for -fPIC, so the > omission of -fPIC when it is necessary doesn't result in problems. > This is just a quirk of the platform, not the norm. Also, linking an > archive library into a shared object is perfectly valid, provided of > course that all object files in the archive library are compiled for > inclusion in a shared object. This of course means that they must be > position independent and thus compiled with -fPIC (or equivalent). As > such, you must determine up front for what purpose you create an > archive library (linking into an executable or linking into a shared > object) or create 2 variants: one non-PIC and one PIC. > > A generic port that only builds archive libraries better be PIC to > cover all bases. Performance cannot really be a concern when you're > working with generic parts. If performance is a concern, customization > is pretty much a given and the use of generic parts is almost always > abandoned. That's pretty much what I've been trying to say, except this version is much better. -- How many Vietnam vets does it take to screw in a light bulb? You don't know, man. You don't KNOW. Cause you weren't THERE. http://bash.org/?255991