From owner-freebsd-hackers@FreeBSD.ORG Sat Aug 26 19:43:38 2006 Return-Path: X-Original-To: hackers@freebsd.org Delivered-To: freebsd-hackers@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F09A116A4DA for ; Sat, 26 Aug 2006 19:43:38 +0000 (UTC) (envelope-from mwm-keyword-freebsdhackers2.e313df@mired.org) Received: from mired.org (vpn.mired.org [66.92.153.74]) by mx1.FreeBSD.org (Postfix) with SMTP id 653F743D46 for ; Sat, 26 Aug 2006 19:43:38 +0000 (GMT) (envelope-from mwm-keyword-freebsdhackers2.e313df@mired.org) Received: (qmail 65732 invoked by uid 1001); 26 Aug 2006 19:43:26 -0000 Received: by bhuda.mired.org (tmda-sendmail, from uid 1001); Sat, 26 Aug 2006 15:43:26 -0400 (EDT) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <17648.42078.268722.152591@bhuda.mired.org> Date: Sat, 26 Aug 2006 15:43:26 -0400 To: Steve Kargl In-Reply-To: <20060826192418.GA82155@troutmask.apl.washington.edu> References: <17648.35923.366716.65517@bhuda.mired.org> <20060826180900.GA81762@troutmask.apl.washington.edu> <17648.38296.39807.492937@bhuda.mired.org> <20060826192418.GA82155@troutmask.apl.washington.edu> X-Mailer: VM 7.17 under 21.4 (patch 19) "Constant Variable" XEmacs Lucid X-Primary-Address: mwm@mired.org X-face: "5Mnwy%?j>IIV\)A=):rjWL~NB2aH[}Yq8Z=u~vJ`"(,&SiLvbbz2W`; h9L,Yg`+vb1>RG% *h+%X^n0EZd>TM8_IB;a8F?(Fb"lw'IgCoyM.[Lg#r\ X-Delivery-Agent: TMDA/1.0.3 (Seattle Slew) From: Mike Meyer Cc: hackers@freebsd.org Subject: Re: amd64 questions X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Aug 2006 19:43:39 -0000 In <20060826192418.GA82155@troutmask.apl.washington.edu>, Steve Kargl typed: > On Sat, Aug 26, 2006 at 02:40:24PM -0400, Mike Meyer wrote: > > In <20060826180900.GA81762@troutmask.apl.washington.edu>, Steve Kargl typed: > > > On Sat, Aug 26, 2006 at 02:00:51PM -0400, Mike Meyer wrote: > > > > 1) The compiler can build i386 binaries, but the toolchain in general > > > > doesn't do the right thing with the -m32 flag. > > > I believe that this may be false because the compiler is > > > not built with multilib enabled. > > I'm not sure what you're saying is false - that the compiler can > > generate i386 binaries, or that the rest of the toolchain doesn't do > > the right thing. > > I can build i386 binaries with the system cc. However, if I just > > specify '-m32', it dies during the link because it tries to link with > > amd64 object files. I've managed to get some simple things to build by > > passing the appropriate command line to cc. > > Would rebuilding the compiler with multilibs fix that problem? Or does > > it assume a library structure that isn't in place on FreeBSD? > I believe it is a library structure problem. You need at least > a 32-bit and 64-bit libgcc.so. When you use -m32 the compiler > goes looking for an appropriate libgcc.so and only finds a 64-bit > version. Yup. If you tell it -L/usr/lib32 (which gets installed if you build the world with WITH_LIB32 defined), it'll find that. Then complain because /lib/crt1.o is the 64 bit one. If I use the command line arguments: -m32 -nostartfiles /usr/lib32/crt1.o /usr/lib32/crti.o /usr/lib32/crtbegin.o /usr/lib32/crtend.o /usr/lib32/crtn.o -L/usr/lib32 simple programs build and run properly. > AFAIK, you can't rebuild the base system compiler with multilib > because it is integrated into the FreeBSD tree without the full > gcc configury. How about the various gcc's in the ports tree? How much pain would be involved in getting one of those to build/install so that a simple "-m32" would do "the right thing?" > > > > 2) The system can run i386 binaries, but the pkg system doesn't > > > > support installing packages from other architectures. > > > I don't understand your 'but' clause. You can run i386 binaries > > > on amd64. You can install i386 packages on an amd64 system, if > > > the port maintainer hasn't used the arch_only=i386 make variable. > > Yes, I can install the package - but the package system isn't aware > > that there are multiple architectures involved. It always looks in the > > same place for libraries, so if you want to install a 64 bit package > > and a 32 bit package that both require the same library package, one > > of them is going to wind up broken. > OK. That makes more sense. You are correct that the pkg system > does keep track of dependencies in a way that allows an automatic > install of a 32-bit pkg with its dependencies. You could unpack > the various packages and manually place the files where you need > them (ie libraries in /usr/lib32). I assume you mean "does not", instead of "does". For simple packages, this works. For complex ones - like openoffice - it gets pretty painfull. The question is, is this something that we want to fix? [And since I was leading up to this kind of question, I figured -hackers was the right place to start this.]. > > > > 3) openoffice doesn't build on amd64, and the i386 build doesn't run > > > > on amd64, so the recommended way to run openoffice on amd64 is to > > > > run the Linux build. > > > Openoffice builds just fine on 6.1. You need to specify WITHOUT_MOZILLA. > > Hmm. My copy of the port sets that for amd64 already. Checking the CVS > > repository, it looks like a number of things have broken/unbroken in > > the last few days. In particular, one of the repositories appears to > > have a broken copy of the tarball the port is using. I'll update the > > port, make distclean, and try again. > > > > In the meantime, could you tell me which openoffice port you build? > > I'm using openoffice.org-2.0, and not the -devel branch. > > pkg_info shows > openoffice.org-2.0.3 Integrated wordprocessor/dbase/spreadsheet/drawing/chart/br > > ls -l /usr/local/bin shows that I built the port on 7 Aug 06. > Of course, the port could have been broken in the last 20 days. :( Actually, I'm hoping the real problem was that one of the ftp sites had a broken tarball, and I grabbed that. I'm still working on it. Just out of curiosity, what are the chances of getting you to build a package/tarball out of what you've built, since there isn't a package availabe from the freebsd ftp sites? I'd be willing to make it available for others to download. Thanks, http://www.mired.org/consulting.html Independent Network/Unix/Perforce consultant, email for more information.