Re: Specific processing during user space header generation

H. Peter Anvin
2011-02-11T20:08:18Z

On 02/11/2011 11:14 AM, Sam Ravnborg wrote:
>
> The purpose of headers_install is to install the existing kernel headers
> and during the installation process do some minimal adjustments to make
> then suit userspace consumption.
>
> What you suggest smells like something else - care to explain what
> you have in mind?
>

I am working with H.J. Lu on an experimental native 32-bit ABI for
x86-64. As a result, we are adding an <asm/unistd_x32.h> for new system
call numbers.

Now, the kernel needs to use both <asm/unistd_64.h> and
<asm/unistd_x32.h>, since as far as the kernel are concerned they are
both 64-bit system calls. As such, the latter contains symbols like:

__NR_x32_ioctl

... however, when used in user space, we want it to look like

__NR_ioctl

... just like any other ABI.

Incidentally we have a similar situation with the i386 ABI, but that one
is sort of backwards -- since unistd_32.h is also used by native 32
bits, we can't just make the transformation for userspace there.

The alternative, of course (which would also work for the native 32 bit
case, now when I think about it) is for the human-written file to be the
user space version, and use a script to generate the kernel version.

-hpa