ELF: what should be part of the userspace headers?
I'm currently a bit lost trying to understand what from the following headers is part of the kernel <-> userspace ABI:include/asm/elf.hinclude/linux/elfcore.hinclude/linux/elf-em.hinclude/linux/elf-fdpic.hinclude/linux/elf.h
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?
And which part of the ELF headers is part of the kernel <-> userspace interface?
TIA
Adrian
Signature · 6 lines
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 DisraeliQuoted 2 lines · Adrian Bunk
include/linux/elf-em.his used byinclude/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.
Quoted 2 lines
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
Signature · 1 line
dwmw2
Quoted 11 lines · David Woodhouse
Quoted 2 lines · Adrian Bunk
include/linux/elf-em.his used byinclude/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.hshould be fairly harmless.Quoted 2 lines
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
Quoted 29 lines · Jakub Jelinek
Quoted 11 lines · David Woodhouse
Quoted 2 lines · Adrian Bunk
include/linux/elf-em.his used byinclude/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.hshould be fairly harmless.Quoted 2 lines
And which part of the ELF headers is part of the kernel <-> userspace interface?
Almost none of them, I'd suggest. Nothing but
auxvec.hWell,
sys/procfs.hon 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 infind . -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
Quoted 2 lines
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.hheader).
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.
Quoted 1 line
Jakub
cu
Adrian
Signature · 6 lines
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