[parisc-linux] compiling kernels with gcc-3.1
John David Anglin
dave@hiauly1.hia.nrc.ca
Mon, 15 Jul 2002 14:18:01 -0400 (EDT)
> the problem is that the PA ABI specifies that quantities shall be
> `naturally' aligned, even 64-bit quantities on 32-bit machines. so the
> kernel is expecting to see:
>
> fd (32 bits)
> buf (32 bits)
> count (32 bits)
> (empty)
> pos (64 bits)
>
> what it _actually_ gets (because glibc is hideously broken, IMO):
>
> fd
> buf
> count
> (pos >> 32)
> pos & 0xffffffff
It's probably a whole lot easier to fix glibc than change gcc.
> is there any chance of having a flag (or maybe an __attribute__ that
> we could #define asmlinkage to?) which would change the ABI to be more
> compressed like all the other architectures?
I think this is basically a bad idea as it will have a whole lot
of nasty side effects. How will gdb know which ABI, varargs, etc?
You would need to use a compiler switch and modify
FUNCTION_ARG_PARTIAL_NREGS and FUNCTION_ARG appropriately.
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)