From owner-freebsd-questions@FreeBSD.ORG Mon Aug 31 18:02:42 2009 Return-Path: Delivered-To: freebsd-questions@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E0182106566B for ; Mon, 31 Aug 2009 18:02:42 +0000 (UTC) (envelope-from bf1783@googlemail.com) Received: from mail-bw0-f206.google.com (mail-bw0-f206.google.com [209.85.218.206]) by mx1.freebsd.org (Postfix) with ESMTP id 7032A8FC18 for ; Mon, 31 Aug 2009 18:02:42 +0000 (UTC) Received: by bwz2 with SMTP id 2so2776575bwz.43 for ; Mon, 31 Aug 2009 11:02:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type; bh=C+10sA1we2kC2uQ2ylEYFGmS3motkmRNm7TRffGVpzo=; b=LT0uqFv5MLZrlkkYeqSz7gV41AAH+MNufxwtwHWTOJeYr3cLQ94lQVeXi8R10ZiB1k MAGgr27BklCZ3FBTJCAvfJ27me0yg8R2RKtRyq50NBNRqE6E5Q+CRvwaHXfpkAG5O6/i fCQqQGB7UWlgfw2JuVAm4yNnTNNycsIHXDQs8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=mOXEZ9l/y2id0L0ua0BtVCx4Va5IUMpO2NHvkp57GBs0mWYzaVHvlsGumnZUVMXQdJ 8mQBgHO/byS1nZe2Bp6T2J9l5r5IssKSm0aouS1qOE7If8A5Im43BWFKOkiydkEmeokb obppRMCDaXA3C9PvgnBs0edKzRy8LwcZD0JOE= MIME-Version: 1.0 Received: by 10.239.139.17 with SMTP id r17mr457691hbr.140.1251741760962; Mon, 31 Aug 2009 11:02:40 -0700 (PDT) Date: Mon, 31 Aug 2009 18:02:40 +0000 Message-ID: From: "b. f." To: freebsd-questions@FreeBSD.org Content-Type: text/plain; charset=ISO-8859-1 Cc: Subject: Re: 32 bit ports on an AMD64 system X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 Aug 2009 18:02:43 -0000 >> /usr/local/[same-as-before]-32 (i.e. [...]/bin32, [...]/lib32, >> [...]/libexec32, etc) >The one above sounds most logical. The base system puts 32 bit libraries in >/usr/lib32. It's too much trouble to append a 32 to every subdirectory of /usr/local/ -- I'd still recommend something like PREFIX=/usr/local/32, with all relative paths the same. >Currently the ports system is not set up to handle multiple versions of the >same port, AFAIK. You could ask on the ports list. Multiple versions of the same port with different PKGNAME s can be handled. Otherwise, no. >You'd need a separate >/var/db/pkg32 to store information about installed 32-bit ports. And >/var/db/ports32 for options for 32-bit ports. You would also need changed port >makefiles (different /ve/db paths, -m32 flag etc.) for this to work. It should >be possible, but I don't think anybody has volunteered to do the work yet. :-) In many cases, the same port Makefile would suffice, using the make.conf additions I mentioned in my earlier message. In some cases, you may have to add patches to the port or change the port Makefile. The point about the package registration is a good one. It would certainly be easier to maintain two separate package databases. To do so, and to also have different OPTIONS-handling for the 32-bit ports via separate ports databases, then you could simply add: PKG_DBDIR=/var/db/pkg32 PORT_DBDIR=/var/db/ports32 to the make.conf block in my last message. However, I think it would be better to instead maintain unified package and port databases and somehow differentiate between the entries for 32-bit and 64-bit packages, by either tinkering with the fake-pkg target in bsd.port.mk, or, preferably, by changing the PKGNAME and UNIQUENAME. The simplest way to do this would be to add a block like .ifdef(32BIT) PKGNAMEPREFIX+=32 .endif just before the definitions of PKGNAME and UNIQUENAME in bsd.port.mk. ... >(* 'need' in this case means that you are regularly running out of address >space on i386.) Or if you need improved performance from a 64-bit app, etc. As the I and the others have mentioned, a jail or a separate 32-bit installation would probably be better. b.