Add __ILP32 and __ILP32__ for X32 programming model
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. Thanks. -- H.J.
Re: Add __ILP32 and __ILP32__ for X32 programming model
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? -hpa
Re: Add __ILP32 and __ILP32__ for X32 programming model
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 __amd64Defined for both LP64 and X32 programming models. __amd64__ Defined for both LP64 and X32 programming models. __x86_64Defined 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. -- H.J.