On Fri, Apr 13, 2012 at 9:44 AM, H.J. Lu <hjl.to...@gmail.com> wrote: > On Fri, Apr 13, 2012 at 9:40 AM, H. Peter Anvin <h...@zytor.com> wrote: >> On 04/13/2012 09:18 AM, H.J. Lu wrote: >>> Hi, >>> >>> We need a reliable way to tell if we are compiling for x32 through >>> pre-defined preprocessor symbol. __LP64/__LP64__ aren't >>> specified by x86-64 psABI, although they have been added to >>> GCC 3.3. They can't be counted on to detect x32 since not x86-64 >>> compilers define them. I updated x32 psABI: >>> >>> https://sites.google.com/site/x32abi/documents >>> >>> to define __ILP32 and __ILP32__ for X32 programming model. I >>> will submit a patch for GCC trunk and 4.7 branch. >>> >> >> Can we add __LP64__ to the psABI too? >> > > X32 psABI has > > __amd64 Defined for both LP64 and X32 programming models. > __amd64__ Defined for both LP64 and X32 programming models. > __x86_64 Defined for both LP64 and X32 programming models. > __x86_64__ Defined for both LP64 and X32 programming models. > __LP64 Defined for LP64 programming model. > __LP64__ Defined for LP64 programming model. > __ILP32 Defined for X32 programming model. > __ILP32__ Defined for X32 programming model. > >
It should be _LP64/_ILP32, not __LP64 and __ILP32. I updated x32 psABI. -- H.J.