2009/9/18 Nathan Coulson <conat...@gmail.com>:
.
>
> I have been experimenting with a multilib LFS System (where /lib,
> /usr/lib are used for 64bit, and /lib/32, and /usr/lib/32 are used for
> 32bit).  I wanted something as close to LFS as possible, primarily
> 64bit, but just enough 32bit so if I wanted to compile something
> 32bit, I could.
>
> In fact, the only 32bit libraries I install, are e2fs, glibc, ncurses,
> udev, utillinux, and zlib.  [The only 32bit program I use is wine,  I
> didn't want a full fledged 32bit system just for wine].  If all I
> wanted was a compiler that could build 32bit code, I could probably
> drop e2fs, ncurses, udev, and utillinux from that list.
>
> The toolchain I use for compiling the system is based on our previous
> work,  I could not make the current directions build a multilib
> capable gcc toolchain.  (I am not an expert when it comes to tool
> chains though)
>
> If you wish, I could review my buildscripts, and note where I deviated
> for a 32bit build.  (From the email, I get the sense this is probably
> not a immediate goal)
>
>
> My Thoughs when I designed my MultiLib LFS System:
> - A Typical user would probably not need every 32bit library that is
> build in a base LFS Build if they have a 64bit version, but you would
> still want the ability to install it at a later date [GCC Multilib
> Compiler, which requires zlib32bit, and glibc32bit.  binutils/gcc
> should be build with multilib support]
> - Most programs like to install in /lib or /usr/lib by default, which
> in a standard multilib system.  Some programs take a lot of effort to
> install in /lib64 and /usr/lib64.  I decided to use /lib and /usr/lib
> as 64bit directories and /lib/32, /usr/lib/32 as 32bit.  [For me, this
> was the best decision at the time.  Kept things clean, and close to
> LFS defaults.  I am not sure what would be the best in the official
> book.  Either /lib,/lib64, of /lib32,lib I suppose].
> - Some programs have their own program to find paths, ex:/
> ncurses-config.  I did not like the idea of using something like
> ARCH=32 or ARCH=64 for installation, so instead I threw such programs
> in /usr/lib/32/bin.  [I noticed that CLFS/CBLFS use this to specify
> which program to run]
> - in LFS, we prefer to stay as close to the defaults as specified by
> the package maintainer.
>
> On my system, if I want to build a program 32bit, I could use
> PATH=/usr/lib/32/bin:${PATH} CC="gcc -m32" CXX="g++ -m32"
> PKG_CONFIG_PATH=/usr/lib/32/pkgconfig
>
> if I want to build 64bit, I would not have to deviate from LFS/BLFS,
> except in a few odd cases.
>

 To me, this sounds a very sensible way to use multilib on x86_64:
only build 32-bit when absolutely necessary.  Of course, as people
have already noted, it violates the fhs.  For me, that isn't a
showstopper.

 ISTR debian has used /usr/lib32, but I could be wrong.

 On ppc64 (my last build was a variation of clfs, using
--with-cpu=default32 so that userspace is 32-bit for better
cache footprints and the kernel is 64-bit), I had to build both
sizes of gmp, mpfr, zlib (similarly PPL and CLooG which LFS
ignores).

 I've built full-multilib in the past, and learned a lot from
building a working gtk desktop on it, but I don't have the
time or inclination to keep building multilib desktops.

 Certainly, fixing up runtime stuff for gtk and pango on
a desktop where some of their users were 32-bit and others
were 64-bit was *interesting* until I cracked it.

ĸen
-- 
After tragedy, and farce, "OMG poneys!"
-- 
http://linuxfromscratch.org/mailman/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to