Re: uml and -regparm=3

Andi Kleen
2008-01-09T21:30:34Z

On Wed, Jan 09, 2008 at 10:20:49PM +0100, Miklos Szeredi wrote:
> > Miklos Szeredi <miklos@szeredi.hu> writes:
> >
> > > FASTCALL is defined empty in -mm, but UML is not compiled with
> > > -mregparm=3 and so this breaks things (I noticed problems with
> > > rwsem_down_write_failed).
> > >
> > > Tried recompiling UML with -mregparm=3, but that resulted in a strange
> > > failure immediately after startup:
> > >
> > > |%Gï¿½%@: Invalid argument
> > >
> > > What's up?
> >
> > UML links with glibc and that does not use -mregparm.
> >
> > You can only use -mregparm in user space if you recompile
> > all libraries too.
>
> Ah, right. I didn't think of that.
>
> Does that mean that FASTCALL removals will have to be undone? Or is
> there an alternative?

FASTCALL is useless and should not make a difference. It enables
regparm on specific functions, but that should not make a difference
if it works or not.

For working -mregparm you will need asmlinkage on all
functions that interface with assembler code to disable regparms for them.
The only exception is system calls which have the arguments on the stack
too.

-Andi