I just moved to a 64bit installation and I'm experiencing big difference in memory usage ( especially for app like chrome, firefox, mysql and java apps ):

  • While before 4gb were enough now they are soon exhausted !

This is a is well known side effect of 64bit OSs anyway 64bit brings also some other advantage.

Beside ram is very cheap, there are some netbook that still ship with 1/2gb ram ... ... and here it comes x32 ABI: a kernel feature that is meant exactly to limit this issue.

What is x32 ABI:
according to this pdf it provide great memory advantage compared to a 64bit normal OS (even 40% enhancement).

Now if I have understood x32-ABI requires:

  • Linux Kernel 3.4 compiled with CONFIG_X86_X32=y
  • Gcc 4.7
  • Binutils 2.22
  • Glibc 2.16
  • Recompiling all system libraries, required by an application, with gcc -mx32

I know Debian and other distros they are actually shipping libs with 32x-ABI support but I cannot find any documentation to set up this functionality ( I'm on Ubuntu 14.04 64bit )

I would like to use this question to help me and others to collect information because I think this is a very interesting feature.

In particular my goal would be run one app ( such as chrome or firefox or mysql ) using x32-ABI.

  • How do you take those libs with x32 ABI support to use in Ubuntu?
    – jarno
    Jan 24, 2016 at 13:19

2 Answers 2


I haven't tried yet but here some instruction to run X32-ABI on debian: https://wiki.debian.org/X32Port

Here a repository with many X32 packages (such as chromium, mysql): https://github.com/fantix/ArchLinux-x32

  • 2
    So you need to boot kernel with "syscall.x32=y" option.
    – jarno
    Jan 24, 2016 at 13:03
  • Please take notice that parameter would only work on Debian (and derivatives maybe?) that include this patch since 4 years or so. For whatever reason it was never accepted into vanilla mainline, which still has everything gated exclusively via CONFIG_X86_X32
    – mirh
    Dec 26, 2018 at 2:11

For the adventurous, you can recompile your own kernel, and glibc etc: https://sourceware.org/glibc/wiki/x32

Note also that it's "a lot" easier to find distro support for running 32-bit binaries on 64-bit kernels, so you could just compile for that (-m32) instead of for x32-bit (-mx32), losing some benefit, but easier to setup, still get some RAM savings.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .