|
Message-ID: <20130420181905.GA15580@brightrain.aerifal.cx> Date: Sat, 20 Apr 2013 14:19:05 -0400 From: Rich Felker <dalias@...ifal.cx> To: musl@...ts.openwall.com Subject: x32 port info, issues? Hi, I'm potentially interested in doing the x32 (ILP32 model on x86_64 hardware) port of musl sometime soon, now that I have access to high-end machines for testing, but I'm not finding much information on the contents the headers should have. Anyone more familiar with x32 able to fill this in for me? My understanding is that the struct layouts mostly/all match x86_64. Is this correct? How are 64-bit values passed to syscalls? In a single register, or in pairs like 32-bit archs? If it's a single register, this would require a lot of ugliness to support... One other issue I found in this mail: http://lists.gnu.org/archive/html/bug-gnulib/2012-03/msg00105.html It looks like x32 does not have syscalls that treat timespec as having a 32-bit tv_nsec member. This may mean all syscalls passing timespecs to the kernel need to go through a temp on the stack with the padding bits filled with zeros. At least the test for whether this is needed should be easy: if (sizeof(struct timespec) > sizeof(time_t) + sizeof(long)) so we can avoid the overhead/bloat on archs that don't need it. Hopefully this port will be quick and easy once I have my gaps in knowledge on the above issues filled in. Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.