Re: [PATCH] Common compat_sys_sysinfo

Matthew Wilcox <[email protected]>
Newsgroups gmane.linux.ports.hppa,gmane.linux.kernel
Message-ID <[email protected]>
On Sun, Jan 07, 2007 at 03:13:19PM +0000, Christoph Hellwig wrote:
> and last but not least we probably want a unified mechanisms to deal
> with the 64bit arguments that are broken up into two 32bit ones (not just
> for emulation but also for 32it BE architectures)

It's not BE that is the problem -- drepper thought of that.

What he fundamentally missed was the calling convention where 64-bit
arguments have to be 64-bit aligned, even when they're passed through
registers.  So:

int foo(int, long long);

takes its arguments in arg0, arg2 and arg3, but glibc passes the syscall
arguments in arg0, arg1 and arg2.

I think the Right Way to fix this is for some gcc hacker to implement an
__attribute__((packed_args)) that changes the calling convention for
that function, then we can define asmlinkage to use that on mips and
parisc.

Any budding gcc hackers out there?  ;-)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.