[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Where could I upload x32 port bootstrap?



> On Sat, Nov 10, 2012 at 10:47:43AM +0100, Adam Borowski wrote:
> > On the other hand, widespread dumb-ass assumptions about i386/amd64 may
> > cause quite a bit of issues: basically any Makefile that talks about "x86"
> > is somewhat suspicious.  This is the main reason one may want to oppose
> > the inclusion of x32 in Debian, IMHO.

[Andrey Rahmatullin]
> Can you elaborate?

[Henrique de Moraes Holschuh]
> This is no worse than any other new arch.

The new wrinkle is that, because x32 uses the x86-64 instruction set,
it defines preprocessor symbols associated with x86-64, and which a lot
of source code uses to differentiate between i386 and amd64.  Thus,
code which cares about long and pointer size may well misdetect them on
x32.  From the revised AMD64 ABI Draft, chapter 7, page 105 (linked
from https://sites.google.com/site/x32abi/documents):

    Table 7.1: Predefined Pre-Processor Symbols

    __amd64       Defined for both LP64 and ILP32 programming models.
    __amd64__     Defined for both LP64 and ILP32 programming models.
    __x86_64      Defined for both LP64 and ILP32 programming models.
    __x86_64__    Defined for both LP64 and ILP32 programming models.
    _LP64         Defined for LP64 programming model.
    __LP64__      Defined for LP64 programming model.
    _ILP32        Defined for ILP32 programming model.
    __ILP32__     Defined for ILP32 programming model.

Note that "LP64" means "longs and pointers are 64-bit", our existing
amd64 port.  "ILP32" means "int, long, pointer all 32-bit", or x32.

Peter


Reply to: