* Arnd Bergmann <arnd@xxxxxxxx> wrote: > After finding a bug in glibc the question came up how linux/elfcore.h > is supposed to be used from user space. As far as I can tell, it's > not possible, as it references data types that are simply unavailable > there. > > The #ifndef __KERNEL__ section in that header dates back to when the > file was introduced in linux-1.3.5, and presumably was meant to > provide the structures for the libc sys/procfs.h implementation. > However, this was never portable to architectures other than x86-32, > and has been broken on that architecture at a later point. > > These are the steps that I needed to make it possible to include the > header file, e.g. for libc self-testing in order to make sure the > structures are compatible with its own: > > - drop the #ifndef __KERNEL__ section that are obviously useless > and get in the way > > - change the pid_t references to __kernel_pid_t > > - Move required data from the private x86 asm/elf.h file into > a new uapi/asm/elf.h. Some other architectures already do that, > but most of them do not. Before applying the patch, we have > to do this for all architectures > > - Change ELF_NGREG to an integer literal constant instead of > a sizeof operation based on a private type. > > Cc: Joseph Myers <joseph@xxxxxxxxxxxxxxxx> > Cc: David Howells <dhowells@xxxxxxxxxx> > Cc: libc-alpha@xxxxxxxxxxxxxx > Link: https://patchwork.ozlabs.org/patch/969540/ > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> > --- > arch/x86/include/asm/elf.h | 24 +----------------------- > arch/x86/include/uapi/asm/elf.h | 30 ++++++++++++++++++++++++++++++ > arch/x86/include/uapi/asm/signal.h | 2 +- > include/uapi/linux/elf.h | 1 + > include/uapi/linux/elfcore.h | 26 +++++--------------------- > 5 files changed, 38 insertions(+), 45 deletions(-) > create mode 100644 arch/x86/include/uapi/asm/elf.h Acked-by: Ingo Molnar <mingo@xxxxxxxxxx> I suspect this wants to go through -mm, or do you want to carry it? Thanks, Ingo