From patchwork Tue Jun 17 15:53:23 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joseph Myers X-Patchwork-Id: 1532 Received: (qmail 15056 invoked by alias); 17 Jun 2014 15:53:57 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 15041 invoked by uid 89); 17 Jun 2014 15:53:56 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL, BAYES_00 autolearn=ham version=3.3.2 X-HELO: relay1.mentorg.com Date: Tue, 17 Jun 2014 15:53:23 +0000 From: "Joseph S. Myers" To: Subject: Update headers for Linux 3.15 Message-ID: MIME-Version: 1.0 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 , 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 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 * 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