Add elf.h NT_* macros from Linux 4.15 (bug 14890).
commitd28bf648976eb2e6d0bcc64a53f4ed1ebb59a40e
authorJoseph Myers <joseph@codesourcery.com>
Tue, 6 Feb 2018 00:37:17 +0000 (6 00:37 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Tue, 6 Feb 2018 00:37:17 +0000 (6 00:37 +0000)
tree2a44d7026552081b1328ad2bea6636419cec1e2c
parente76def72eb74ddc4fcf2b1630f5da742ddbd811d
Add elf.h NT_* macros from Linux 4.15 (bug 14890).

Linux 4.15 adds NT_S390_RI_CB to linux/elf.h (and NT_ARM_SVE, which we
already have in glibc).  This shows up that various other ELF note
values from linux/elf.h are missing from glibc's elf.h.

This patch adds the missing values that are relevant to glibc
architectures.  As elf.h is a general description of the ELF format,
not necessarily limited to glibc configurations, there's an argument
for having the remaining NT_* values that Linux uses for non-glibc
architectures in glibc's elf.h as well, but this patch does not add
them.

Adding the NT_PRFPREG name is bug 14890.  That bug also requests
making the NT_FPREGSET name obsolete.  Given that elf.h is not just
for Linux but can describe ELF for other operating systems, I don't
think that a change of name in the Linux kernel is sufficient
justification for declaring the other name obsolete; there can be
multiple names for the same note value, even with incompatible
semantics, if those reflect variants of the ELF format in actual use.
For example, FreeBSD appears still to have the name NT_FPREGSET
<https://github.com/freebsd/freebsd/blob/master/sys/sys/elf_common.h>
(note: I haven't checked whether the FreeBSD kernel actually generates
such notes or whether this is actually an other-OS definition present
in FreeBSD's header).

[BZ #14890]
* elf/elf.h (NT_PRFPREG): New macro.
(NT_S390_VXRS_LOW): Likewise.
(NT_S390_VXRS_HIGH): Likewise.
(NT_S390_GS_CB): Likewise.
(NT_S390_GS_BC): Likewise.
(NT_S390_RI_CB): Likewise.
ChangeLog
elf/elf.h