On Mon, Jul 30, 2012 at 10:53 PM, Nikos Chantziaras <rea...@gmail.com> wrote: > On 30/07/12 19:40, Alecks Gates wrote: >> >> What are the benefits and drawbacks of using the x32 ABI > > > Benefits: An x32 application is limited to a 32-bit address range but runs > in 64-bit CPU mode. The intent is to not waste any memory, but be as fast > as any other 64-bit application. > > Drawbacks: Don't expect to get a fully working system. Many applications > will either not build, or break at runtime when compiled in this mode. > Also, some application will run slower because they come with hand coded > assembly routines for x86 and x86-64, but not for x32. That means that > generic C code paths will be used for x32, and they're slower compared to > the hand optimized assembly routines. > > Also note that x32 is not compatible with 32-bit applications. If you build > an x86-64/x32 system, you lose the x86/x86-64 multilib capability unless > there's a way to have a three-way multilib Gentoo with x86/x32/x86-64.
More specifically, x32 is not compatible with x86 (what we used to call "32-bit applications on x86"...but since that's ambiguous, it's better just to say "x86"). In practice, this means you won't be able to link x32 ELF binaries against x86 ELF binaries. You'll almost certainly be able to run x86/x32 multilib, since that's at least part of the argument on behalf of it. But I have no idea when that'll get set up. When it does, you'll probably be able to run x86-64/x32/x86 multilib...but then you're compiling apps three ways, and _that_ seems like it'll be excessive. On a separate note, I generally recommend amd64 to people who have processors which can handle it, even if they have as little as 1GB of RAM. My reasoning is that having the large address space should reduce memory fragmentation, which should in turn reduce apparent memory bloat in long-lived applications. -- :wq