Re: ELF: what should be part of the userspace headers?

Adrian Bunk
2006-08-13T20:00:34Z

On Sat, Aug 05, 2006 at 07:21:48AM -0400, Jakub Jelinek wrote:
> On Sat, Aug 05, 2006 at 07:08:43PM +0800, David Woodhouse wrote:
> > On Sat, 2006-08-05 at 13:05 +0200, Adrian Bunk wrote:
> > > include/linux/elf-em.h is used by include/linux/audit.h, but this usage
> > > doesn't seem to be part of the kernel <-> userspace interface?
> >
> > The machine types _are_ part of the audit kernel<->userspace interface,
> > I think. Exporting elf-em.h should be fairly harmless.
> >
> > > And which part of the ELF headers is part of the kernel <-> userspace
> > > interface?
> >
> > Almost none of them, I'd suggest. Nothing but auxvec.h
>
> Well, sys/procfs.h on several arches includes <asm/elf.h>:
>
> find -type f -a -name \*.h | xargs grep '<\(asm\|linux\).*elf'
> ./sysdeps/unix/sysv/linux/alpha/sys/procfs.h:#include <asm/elf.h>
> ./sysdeps/unix/sysv/linux/sh/sys/procfs.h:#include <asm/elf.h>
> ./sysdeps/unix/sysv/linux/sys/procfs.h:#include <asm/elf.h>
>
> while most other arches don't need it:
> for i in `find . -name procfs.h`; do grep -q '<\(asm\|linux\).*elf' $i || echo $i; done
> ./sysdeps/unix/sysv/linux/s390/sys/procfs.h
> ./sysdeps/unix/sysv/linux/powerpc/sys/procfs.h
> ./sysdeps/unix/sysv/linux/sparc/sys/procfs.h
> ./sysdeps/unix/sysv/linux/i386/sys/procfs.h
> ./sysdeps/unix/sysv/linux/ia64/sys/procfs.h
> ./sysdeps/unix/sysv/linux/x86_64/sys/procfs.h
>
> Guess it shouldn't be hard to convert even alpha and sh (not sure then
> if there are any arches that actually use the linux/sys/procfs.h header).

Thanks for this, I grepped only on i386.

Let me try to put it into two questions:
- What should be exported to userspace as part of the
kernel<->userspace interface?
- What has to be exported (at least for some time) for not breaking
existing userspace code?

Your answer was for the second question.

But even more important is the first question.

> Jakub

cu
Adrian

--

Gentoo kernels are 42 times more popular than SUSE kernels among
KLive users (a service by SUSE contractor Andrea Arcangeli that
gathers data about kernels from many users worldwide).

There are three kinds of lies: Lies, Damn Lies, and Statistics.
Benjamin Disraeli