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

Jakub Jelinek
2006-08-05T11:22:56Z

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).

Jakub