On Wed, Mar 16, 2011 at 7:57 PM, Mike Frysinger <vap...@gentoo.org> wrote: > On Wednesday, March 16, 2011 08:39:57 H.J. Lu wrote: >> On Tue, Mar 15, 2011 at 10:24 PM, Mike Frysinger wrote: >> > so we get back to my original e-mail: >> > are you getting a unique host tuple for this ? or are you >> > extending x86_64-linux-gnu ? so the only way of knowing which ABI is to >> > check for the output of the compiler+compiler flags ? >> >> As I said, the target is x86_64- linux-gnu and you just add -mx32 to >> CFLAGS. The x86_64- linux-gnu binutils and GCC support x32. > > ok, took long enough, but that answers most things. your usage of "x32-" > prefixed binaries in the documentation seems to imply a lot more than the fact > you just picked those locally to avoid system collisions. this isnt a wiki > page, otherwise i'd clean things up for you.
Any suggestion how to create a wiki page for x32? > in looking at the gcc files, it doesnt seem like there's any defines setup to > declare x32 directly. instead, you'd have to do something like: > #ifdef __x86_64__ > # if __SIZEOF_LONG__ == 8 > /* x86_64 */ > # else > /* x32 */ > # endif > #endif > > any plans on adding an __x32__ (or whatever) cpp symbol to keep people from > coming up with their own special/broken crap ? or are there some already that > i'm not seeing ? The idea is in most cases, you only need to check __x86_64__ since x32 and x86-64 are very close. In some cases, x32 is very different from x86_64, like assembly codes on long and pointer, you can check __x86_64__ and __LP64__. In glibc, I used a different approach by using macros REG_RAX, .., MOV_LP, ADD_LP, SUB_LP and CMP_LP in assembly codes. I added a simple howto for x32 compiling to https://sites.google.com/site/x32abi/ Thanks. -- H.J.