This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Update headers for Linux 3.15
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>
- Date: Tue, 17 Jun 2014 15:53:23 +0000
- Subject: Update headers for Linux 3.15
- Authentication-results: sourceware.org; auth=none
This patch updates glibc headers for changes / new definitions in
Linux 3.15. In the course of my review I noticed that
IPV6_PMTUDISC_INTERFACE was absent from glibc despite the inclusion of
IP_PMTUDISC_INTERFACE; I added it along with IP_PMTUDISC_OMIT and
IPV6_PMTUDISC_OMIT. I did not add FALLOC_FL_NO_HIDE_STALE given the
kernel header comment that it is reserved.
Review of this patch should probably include the question of whether
the definitions added are indeed all wanted in glibc's headers, and
whether anything else from 3.15 requires glibc changes (although the
latter should not need to block the patch).
Deliberately omitted from this patch:
* MicroBlaze kernel-features.h changes for new syscalls (untested
patch to be sent separately).
* ARM HWCAP2 - since proper support should include dl-procinfo changes
(like the powerpc dl-procinfo), not just bits/hwcap.h, this is
probably best done by someone with access to hardware on which the
new bits are set.
* MIPS sigcontext - as I noted in
<https://sourceware.org/ml/libc-alpha/2014-06/msg00411.html>, I
think the changes are fundamentally flawed and should best be
reverted until a more compatible solution can be produced (and then
any glibc changes would best be done with access to MSA hardware).
* F_OFD_* (patch has already been posted
<https://sourceware.org/ml/libc-alpha/2014-06/msg00126.html> but may
need review).
* IFF_ECHO for net/if.h (previous values IFF_LOWER_UP and IFF_DORMANT
also omitted and I'm presuming the omission of values that don't fit
in the "short" flags field is deliberate).
* renameat2 - this relates to the general question of when glibc
should provide bindings to Linux kernel syscalls, which requires
someone to take the lead on producing an analysis with reference to
the various previous threads on this subject, seeking consensus on
principles for when to provide such bindings, and then adding
bindings for whatever syscalls meet the principles but don't
currently have them.
Tested x86_64.
2014-06-17 Joseph Myers <joseph@codesourcery.com>
* sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_GNU]
(FALLOC_FL_COLLAPSE_RANGE): New macro.
[__USE_GNU] (FALLOC_FL_ZERO_RANGE): Likewise.
* sysdeps/unix/sysv/linux/bits/in.h (IP_PMTUDISC_OMIT): Likewise.
(IPV6_PMTUDISC_INTERFACE): Likewise.
(IPV6_PMTUDISC_OMIT): Likewise.
diff --git a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
index 915eb3e..527eb5c 100644
--- a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
+++ b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
@@ -305,6 +305,11 @@ struct f_owner_ex
even if offset + len is
greater than file size. */
# define FALLOC_FL_PUNCH_HOLE 2 /* Create a hole in the file. */
+# define FALLOC_FL_COLLAPSE_RANGE 8 /* Remove a range of a file
+ without leaving a
+ hole. */
+# define FALLOC_FL_ZERO_RANGE 16 /* Convert a range of a
+ file to zeros. */
/* File handle structure. */
diff --git a/sysdeps/unix/sysv/linux/bits/in.h b/sysdeps/unix/sysv/linux/bits/in.h
index f5b02dd..1331e1b 100644
--- a/sysdeps/unix/sysv/linux/bits/in.h
+++ b/sysdeps/unix/sysv/linux/bits/in.h
@@ -101,6 +101,8 @@
Also incoming ICMP frag_needed notifications will be ignored on
this socket to prevent accepting spoofed ones. */
#define IP_PMTUDISC_INTERFACE 4
+/* Like IP_PMTUDISC_INTERFACE but allow packets to be fragmented. */
+#define IP_PMTUDISC_OMIT 5
#define IP_MULTICAST_IF 32
#define IP_MULTICAST_TTL 33
@@ -214,6 +216,8 @@ struct in_pktinfo
#define IPV6_PMTUDISC_WANT 1 /* Use per route hints. */
#define IPV6_PMTUDISC_DO 2 /* Always DF. */
#define IPV6_PMTUDISC_PROBE 3 /* Ignore dst pmtu. */
+#define IPV6_PMTUDISC_INTERFACE 4 /* See IP_PMTUDISC_INTERFACE. */
+#define IPV6_PMTUDISC_OMIT 5 /* See IP_PMTUDISC_OMIT. */
/* Socket level values for IPv6. */
#define SOL_IPV6 41
--
Joseph S. Myers
joseph@codesourcery.com