On Sun, Feb 13, 2011 at 1:16 PM, H. Peter Anvin <h...@zytor.com> wrote: > On 02/13/2011 01:10 PM, H.J. Lu wrote: >>> The basic concept looks entirely reasonable to me, but I'm >>> curious what drove the decision to start out with the x86_64 >>> system calls instead of the generic ones. >>> >>> Since tile was merged, we now have support for compat syscalls >>> in the generic syscall ABI. I would have assumed that it >>> was possible to just use those if you decide to do a new >>> ABI in the first place. >>> >>> The other option that would have appeared natural to me is >>> to just use the existing 32 bit compat ABI with the few >>> necessary changes done based on the personality. > > The actual idea is to use the i386 compat ABI for memory layout, but > with a 64-bit register convention. That means that system calls that > don't make references to memory structures can simply use the 64-bit > system calls, otherwise we're planning to reuse the i386 compat system > calls, but invoke them via the syscall instruction (which requires a new > system call table) and to pass 64-bit arguments in single registers. >
That is is currently implemented on hjl/x32 branch. I also added __NR_sigaction __NR_sigpending __NR_sigprocmask __NR_sigsuspend to help the Bionic C library. -- H.J.