Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [day] [month] [year] [list]
Date: Sat, 20 Apr 2013 14:19:05 -0400
From: Rich Felker <>
Subject: x32 port info, issues?

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:

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.


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.