Date: Sat, 26 Aug 2006 12:24:18 -0700 From: Steve Kargl <sgk@troutmask.apl.washington.edu> To: Mike Meyer <mwm@mired.org> Cc: hackers@freebsd.org Subject: Re: amd64 questions Message-ID: <20060826192418.GA82155@troutmask.apl.washington.edu> In-Reply-To: <17648.38296.39807.492937@bhuda.mired.org> References: <17648.35923.366716.65517@bhuda.mired.org> <20060826180900.GA81762@troutmask.apl.washington.edu> <17648.38296.39807.492937@bhuda.mired.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Aug 26, 2006 at 02:40:24PM -0400, Mike Meyer wrote: > In <20060826180900.GA81762@troutmask.apl.washington.edu>, Steve Kargl <sgk@troutmask.apl.washington.edu> 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. AFAIK, you can't rebuild the base system compiler with multilib because it is integrated into the FreeBSD tree without the full gcc configury. > > > 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. > > Just to be clear, I'm talking about installing pre-built packages, > because building i386 packages on amd64 runs into problems during the > compile, as outlined in #1. 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). > > > 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. :( -- Steve
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060826192418.GA82155>