mailing list of musl libc
 help / color / mirror / code / Atom feed
* [PATCH v2 00/12] Update for linux v5.1
@ 2019-06-29 21:28 Szabolcs Nagy
  2019-07-01 20:08 ` Rich Felker
  0 siblings, 1 reply; 2+ messages in thread
From: Szabolcs Nagy @ 2019-06-29 21:28 UTC (permalink / raw)
  To: musl

[-- Attachment #1: Type: text/plain, Size: 2587 bytes --]

v2:
- split the sys/socket.h patch so the time_t change is separate.
- note the microblaze ipc syscall behaviour change

Szabolcs Nagy (12):
  sys/fanotify.h: update for linux v5.1
  fcntl.h: add F_SEAL_FUTURE_WRITE from linux v5.1
  sys/prctl.h: add PR_SPEC_DISABLE_NOEXEC from linux v5.1
  netinet/in.h: add IPV6_ROUTER_ALERT_ISOLATE from linux v5.1
  s390x: drop SO_ definitions from bits/socket.h
  sys/socket.h: add SO_BINDTOIFINDEX from linux v5.1
  sys/socket.h: add time_t related SO_ definitions from linux v5.1
  netinet/in.h: add INADDR_ALLSNOOPERS_GROUP from linux v5.1
  elf.h: add NT_ARM_PAC{A,G}_KEYS from linux v5.1
  mips64: fix syscall numbers of io_pgetevents and rseq
  ipc: prefer SYS_ipc when it is defined
  add new syscall numbers from linux v5.1

 arch/aarch64/bits/syscall.h.in    |  4 ++++
 arch/arm/bits/syscall.h.in        | 26 +++++++++++++++++++++
 arch/i386/bits/syscall.h.in       | 34 +++++++++++++++++++++++++++
 arch/m68k/bits/syscall.h.in       | 39 +++++++++++++++++++++++++++++++
 arch/microblaze/bits/syscall.h.in | 24 +++++++++++++++++++
 arch/mips/bits/syscall.h.in       | 34 +++++++++++++++++++++++++++
 arch/mips64/bits/syscall.h.in     |  8 +++++--
 arch/mipsn32/bits/syscall.h.in    | 24 +++++++++++++++++++
 arch/or1k/bits/syscall.h.in       | 24 +++++++++++++++++++
 arch/powerpc/bits/syscall.h.in    | 34 +++++++++++++++++++++++++++
 arch/powerpc64/bits/syscall.h.in  | 15 ++++++++++++
 arch/s390x/bits/socket.h          | 28 ----------------------
 arch/s390x/bits/syscall.h.in      | 18 ++++++++++++++
 arch/sh/bits/syscall.h.in         | 39 +++++++++++++++++++++++++++++++
 arch/x32/bits/syscall.h.in        |  4 ++++
 arch/x86_64/bits/syscall.h.in     |  4 ++++
 include/elf.h                     |  2 ++
 include/fcntl.h                   |  1 +
 include/netinet/in.h              |  2 ++
 include/sys/fanotify.h            | 34 ++++++++++++++++++++++++++-
 include/sys/prctl.h               |  1 +
 include/sys/socket.h              | 11 +++++++++
 src/ipc/msgctl.c                  |  2 +-
 src/ipc/msgget.c                  |  2 +-
 src/ipc/msgrcv.c                  |  2 +-
 src/ipc/msgsnd.c                  |  2 +-
 src/ipc/semctl.c                  |  2 +-
 src/ipc/semget.c                  |  2 +-
 src/ipc/semop.c                   |  2 +-
 src/ipc/semtimedop.c              |  2 +-
 src/ipc/shmat.c                   |  2 +-
 src/ipc/shmctl.c                  |  2 +-
 src/ipc/shmdt.c                   |  2 +-
 src/ipc/shmget.c                  |  2 +-
 34 files changed, 391 insertions(+), 43 deletions(-)

-- 
2.21.0


[-- Attachment #2: 0001-sys-fanotify.h-update-for-linux-v5.1.patch --]
[-- Type: text/x-diff, Size: 3879 bytes --]

From 7c7c745b6d0f45b8ba85275914bf2848ea628287 Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Thu, 9 May 2019 18:36:33 +0000
Subject: [PATCH 01/12] sys/fanotify.h: update for linux v5.1

includes changes from linux v5.1

  linux commit 235328d1fa4251c6dcb32351219bb553a58838d2
  fanotify: add support for create/attrib/move/delete events

  linux commit 5e469c830fdb5a1ebaa69b375b87f583326fd296
  fanotify: copy event fid info to user

  linux commit e9e0c8903009477b630e37a8b6364b26a00720da
  fanotify: encode file identifier for FAN_REPORT_FID

as well as earlier changes that were missed.

sys/statfs.h is included for fsid_t.
---
 include/sys/fanotify.h | 34 +++++++++++++++++++++++++++++++++-
 1 file changed, 33 insertions(+), 1 deletion(-)

diff --git a/include/sys/fanotify.h b/include/sys/fanotify.h
index daab76b1..b637c8f5 100644
--- a/include/sys/fanotify.h
+++ b/include/sys/fanotify.h
@@ -5,6 +5,8 @@
 extern "C" {
 #endif
 
+#include <sys/statfs.h>
+
 struct fanotify_event_metadata {
 	unsigned event_len;
 	unsigned char vers;
@@ -19,6 +21,18 @@ struct fanotify_event_metadata {
 	int pid;
 };
 
+struct fanotify_event_info_header {
+	unsigned char info_type;
+	unsigned char pad;
+	unsigned short len;
+};
+
+struct fanotify_event_info_fid {
+	struct fanotify_event_info_header hdr;
+	fsid_t fsid;
+	unsigned char handle[];
+};
+
 struct fanotify_response {
 	int fd;
 	unsigned response;
@@ -26,15 +40,25 @@ struct fanotify_response {
 
 #define FAN_ACCESS 0x01
 #define FAN_MODIFY 0x02
+#define FAN_ATTRIB 0x04
 #define FAN_CLOSE_WRITE 0x08
 #define FAN_CLOSE_NOWRITE 0x10
 #define FAN_OPEN 0x20
+#define FAN_MOVED_FROM 0x40
+#define FAN_MOVED_TO 0x80
+#define FAN_CREATE 0x100
+#define FAN_DELETE 0x200
+#define FAN_DELETE_SELF 0x400
+#define FAN_MOVE_SELF 0x800
+#define FAN_OPEN_EXEC 0x1000
 #define FAN_Q_OVERFLOW 0x4000
 #define FAN_OPEN_PERM 0x10000
 #define FAN_ACCESS_PERM 0x20000
+#define FAN_OPEN_EXEC_PERM 0x40000
 #define FAN_ONDIR 0x40000000
 #define FAN_EVENT_ON_CHILD 0x08000000
 #define FAN_CLOSE (FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE)
+#define FAN_MOVE (FAN_MOVED_FROM | FAN_MOVED_TO)
 #define FAN_CLOEXEC 0x01
 #define FAN_NONBLOCK 0x02
 #define FAN_CLASS_NOTIF 0
@@ -43,22 +67,30 @@ struct fanotify_response {
 #define FAN_ALL_CLASS_BITS (FAN_CLASS_NOTIF | FAN_CLASS_CONTENT | FAN_CLASS_PRE_CONTENT)
 #define FAN_UNLIMITED_QUEUE 0x10
 #define FAN_UNLIMITED_MARKS 0x20
+#define FAN_ENABLE_AUDIT 0x40
+#define FAN_REPORT_TID 0x100
+#define FAN_REPORT_FID 0x200
 #define FAN_ALL_INIT_FLAGS (FAN_CLOEXEC | FAN_NONBLOCK | FAN_ALL_CLASS_BITS | FAN_UNLIMITED_QUEUE | FAN_UNLIMITED_MARKS)
 #define FAN_MARK_ADD 0x01
 #define FAN_MARK_REMOVE 0x02
 #define FAN_MARK_DONT_FOLLOW 0x04
 #define FAN_MARK_ONLYDIR 0x08
-#define FAN_MARK_MOUNT 0x10
 #define FAN_MARK_IGNORED_MASK 0x20
 #define FAN_MARK_IGNORED_SURV_MODIFY 0x40
 #define FAN_MARK_FLUSH 0x80
+#define FAN_MARK_INODE 0x00
+#define FAN_MARK_MOUNT 0x10
+#define FAN_MARK_FILESYSTEM 0x100
+#define FAN_MARK_TYPE_MASK (FAN_MARK_INODE | FAN_MARK_MOUNT | FAN_MARK_FILESYSTEM)
 #define FAN_ALL_MARK_FLAGS (FAN_MARK_ADD | FAN_MARK_REMOVE | FAN_MARK_DONT_FOLLOW | FAN_MARK_ONLYDIR | FAN_MARK_MOUNT | FAN_MARK_IGNORED_MASK | FAN_MARK_IGNORED_SURV_MODIFY | FAN_MARK_FLUSH)
 #define FAN_ALL_EVENTS (FAN_ACCESS | FAN_MODIFY | FAN_CLOSE | FAN_OPEN)
 #define FAN_ALL_PERM_EVENTS (FAN_OPEN_PERM | FAN_ACCESS_PERM)
 #define FAN_ALL_OUTGOING_EVENTS (FAN_ALL_EVENTS | FAN_ALL_PERM_EVENTS | FAN_Q_OVERFLOW)
 #define FANOTIFY_METADATA_VERSION 3
+#define FAN_EVENT_INFO_TYPE_FID 1
 #define FAN_ALLOW 0x01
 #define FAN_DENY 0x02
+#define FAN_AUDIT 0x10
 #define FAN_NOFD -1
 #define FAN_EVENT_METADATA_LEN (sizeof(struct fanotify_event_metadata))
 #define FAN_EVENT_NEXT(meta, len) ((len) -= (meta)->event_len, (struct fanotify_event_metadata*)(((char *)(meta)) + (meta)->event_len))
-- 
2.21.0


[-- Attachment #3: 0002-fcntl.h-add-F_SEAL_FUTURE_WRITE-from-linux-v5.1.patch --]
[-- Type: text/x-diff, Size: 920 bytes --]

From 401261c95028d769f3a79f92be402e437612affd Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Thu, 9 May 2019 18:51:53 +0000
Subject: [PATCH 02/12] fcntl.h: add F_SEAL_FUTURE_WRITE from linux v5.1

needed for android so it can migrate from its ashmem to memfd.
allows making the memfd readonly for future users while keeping
a writable mmap of it. see

  linux commit ab3948f58ff841e51feb845720624665ef5b7ef3
  mm/memfd: add an F_SEAL_FUTURE_WRITE seal to memfd
---
 include/fcntl.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/fcntl.h b/include/fcntl.h
index 1fba777d..af293405 100644
--- a/include/fcntl.h
+++ b/include/fcntl.h
@@ -129,6 +129,7 @@ int posix_fallocate(int, off_t, off_t);
 #define F_SEAL_SHRINK	0x0002
 #define F_SEAL_GROW	0x0004
 #define F_SEAL_WRITE	0x0008
+#define F_SEAL_FUTURE_WRITE	0x0010
 
 #define F_GET_RW_HINT		1035
 #define F_SET_RW_HINT		1036
-- 
2.21.0


[-- Attachment #4: 0003-sys-prctl.h-add-PR_SPEC_DISABLE_NOEXEC-from-linux-v5.patch --]
[-- Type: text/x-diff, Size: 909 bytes --]

From 313925c8834625a4273d1bd997c654d7cdea230b Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Thu, 9 May 2019 18:59:51 +0000
Subject: [PATCH 03/12] sys/prctl.h: add PR_SPEC_DISABLE_NOEXEC from linux v5.1

allows specifying that the speculative store bypass disable bit should
be cleared on exec. see

  linux commit 71368af9027f18fe5d1c6f372cfdff7e4bde8b48
  x86/speculation: Add PR_SPEC_DISABLE_NOEXEC
---
 include/sys/prctl.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/sys/prctl.h b/include/sys/prctl.h
index 9cc3a80e..07f0d73d 100644
--- a/include/sys/prctl.h
+++ b/include/sys/prctl.h
@@ -145,6 +145,7 @@ struct prctl_mm_map {
 #define PR_SPEC_ENABLE (1UL << 1)
 #define PR_SPEC_DISABLE (1UL << 2)
 #define PR_SPEC_FORCE_DISABLE (1UL << 3)
+#define PR_SPEC_DISABLE_NOEXEC (1UL << 4)
 
 #define PR_PAC_RESET_KEYS       54
 #define PR_PAC_APIAKEY (1UL << 0)
-- 
2.21.0


[-- Attachment #5: 0004-netinet-in.h-add-IPV6_ROUTER_ALERT_ISOLATE-from-linu.patch --]
[-- Type: text/x-diff, Size: 949 bytes --]

From dfbcecf6881b8e995d3d60d9cb2499d3113fbcb5 Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Thu, 9 May 2019 19:09:06 +0000
Subject: [PATCH 04/12] netinet/in.h: add IPV6_ROUTER_ALERT_ISOLATE from linux
 v5.1

restricts router alert packets received by the socket to the
socket's namespace only. see

  linux commit 9036b2fe092a107856edd1a3bad48b83f2b45000
  net: ipv6: add socket option IPV6_ROUTER_ALERT_ISOLATE
---
 include/netinet/in.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/netinet/in.h b/include/netinet/in.h
index 3ba7546c..17705754 100644
--- a/include/netinet/in.h
+++ b/include/netinet/in.h
@@ -336,6 +336,7 @@ struct ip6_mtuinfo {
 #define IPV6_JOIN_ANYCAST       27
 #define IPV6_LEAVE_ANYCAST      28
 #define IPV6_MULTICAST_ALL      29
+#define IPV6_ROUTER_ALERT_ISOLATE 30
 #define IPV6_IPSEC_POLICY       34
 #define IPV6_XFRM_POLICY        35
 #define IPV6_HDRINCL            36
-- 
2.21.0


[-- Attachment #6: 0005-s390x-drop-SO_-definitions-from-bits-socket.h.patch --]
[-- Type: text/x-diff, Size: 1373 bytes --]

From 662e121a64b4b64265a137feaea2cecb7d2fcdb2 Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Thu, 9 May 2019 21:27:40 +0000
Subject: [PATCH 05/12] s390x: drop SO_ definitions from bits/socket.h

the s390x definitions matched the generic ones in sys/socket.h.
---
 arch/s390x/bits/socket.h | 28 ----------------------------
 1 file changed, 28 deletions(-)

diff --git a/arch/s390x/bits/socket.h b/arch/s390x/bits/socket.h
index f2983ee1..bd4b20c4 100644
--- a/arch/s390x/bits/socket.h
+++ b/arch/s390x/bits/socket.h
@@ -15,31 +15,3 @@ struct cmsghdr {
 	int cmsg_level;
 	int cmsg_type;
 };
-
-#define SO_DEBUG        1
-#define SO_REUSEADDR    2
-#define SO_TYPE         3
-#define SO_ERROR        4
-#define SO_DONTROUTE    5
-#define SO_BROADCAST    6
-#define SO_SNDBUF       7
-#define SO_RCVBUF       8
-#define SO_KEEPALIVE    9
-#define SO_OOBINLINE    10
-#define SO_NO_CHECK     11
-#define SO_PRIORITY     12
-#define SO_LINGER       13
-#define SO_BSDCOMPAT    14
-#define SO_REUSEPORT    15
-#define SO_PASSCRED     16
-#define SO_PEERCRED     17
-#define SO_RCVLOWAT     18
-#define SO_SNDLOWAT     19
-#define SO_RCVTIMEO     20
-#define SO_SNDTIMEO     21
-#define SO_ACCEPTCONN   30
-#define SO_PEERSEC      31
-#define SO_SNDBUFFORCE  32
-#define SO_RCVBUFFORCE  33
-#define SO_PROTOCOL     38
-#define SO_DOMAIN       39
-- 
2.21.0


[-- Attachment #7: 0006-sys-socket.h-add-SO_BINDTOIFINDEX-from-linux-v5.1.patch --]
[-- Type: text/x-diff, Size: 922 bytes --]

From ea4834ccf44ab8ea5c7a2200a5af6b3790e8f396 Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Sat, 29 Jun 2019 21:13:18 +0000
Subject: [PATCH 06/12] sys/socket.h: add SO_BINDTOIFINDEX from linux v5.1

SO_BINDTOIFINDEX behaves similar to SO_BINDTODEVICE, but takes a
network interface index as argument, rather than the network
interface name. see

  linux commit f5dd3d0c9638a9d9a02b5964c4ad636f06cf7e2c
  net: introduce SO_BINDTOIFINDEX sockopt
---
 include/sys/socket.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/sys/socket.h b/include/sys/socket.h
index cd38a4c8..8692efa7 100644
--- a/include/sys/socket.h
+++ b/include/sys/socket.h
@@ -237,6 +237,7 @@ struct linger {
 #define SO_ZEROCOPY             60
 #define SO_TXTIME               61
 #define SCM_TXTIME              SO_TXTIME
+#define SO_BINDTOIFINDEX        62
 
 #ifndef SOL_SOCKET
 #define SOL_SOCKET      1
-- 
2.21.0


[-- Attachment #8: 0007-sys-socket.h-add-time_t-related-SO_-definitions-from.patch --]
[-- Type: text/x-diff, Size: 1904 bytes --]

From 59bb3d263decbe56b59a426f3292bdf7e115402a Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Thu, 9 May 2019 19:20:17 +0000
Subject: [PATCH 07/12] sys/socket.h: add time_t related SO_ definitions from
 linux v5.1

the new definitions are from commits

  linux commit a9beb86ae6e55bd92f38453c8623de60b8e5a308
  sock: Add SO_RCVTIMEO_NEW and SO_SNDTIMEO_NEW

  linux commit 45bdc66159d49bfc7f75fe02d25bc74f5d2660cf
  socket: Rename SO_RCVTIMEO/ SO_SNDTIMEO with _OLD suffixes

  linux commit 9718475e69084de15c3930ce35672a7dc6da866b
  socket: Add SO_TIMESTAMPING_NEW

  linux commit 887feae36aee6c08e0dafcdaa5ba921abbb2c56b
  socket: Add SO_TIMESTAMP[NS]_NEW

  linux commit 7f1bc6e95d7840d4305595b3e4025cddda88cee5
  sockopt: Rename SO_TIMESTAMP* to SO_TIMESTAMP*_OLD

_NEW socket options got introduced for 64bit time_t support on 32bit
targets, in musl the affected socket options are always the same as
the _OLD values since different time_t requires a new abi, so the
_OLD vs _NEW dispatch logic was not copied from the uapi headers.
---
 include/sys/socket.h | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/include/sys/socket.h b/include/sys/socket.h
index 8692efa7..e6d43d08 100644
--- a/include/sys/socket.h
+++ b/include/sys/socket.h
@@ -238,6 +238,16 @@ struct linger {
 #define SO_TXTIME               61
 #define SCM_TXTIME              SO_TXTIME
 #define SO_BINDTOIFINDEX        62
+#define SO_TIMESTAMP_NEW        63
+#define SO_TIMESTAMPNS_NEW      64
+#define SO_TIMESTAMPING_NEW     65
+#define SO_RCVTIMEO_NEW         66
+#define SO_SNDTIMEO_NEW         67
+#define SO_TIMESTAMP_OLD        SO_TIMESTAMP
+#define SO_TIMESTAMPNS_OLD      SO_TIMESTAMPNS
+#define SO_TIMESTAMPING_OLD     SO_TIMESTAMPING
+#define SO_RCVTIMEO_OLD         SO_RCVTIMEO
+#define SO_SNDTIMEO_OLD         SO_SNDTIMEO
 
 #ifndef SOL_SOCKET
 #define SOL_SOCKET      1
-- 
2.21.0


[-- Attachment #9: 0008-netinet-in.h-add-INADDR_ALLSNOOPERS_GROUP-from-linux.patch --]
[-- Type: text/x-diff, Size: 1034 bytes --]

From 851987fc0e7110ec6b08153043710be30acf6a70 Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Thu, 9 May 2019 19:37:09 +0000
Subject: [PATCH 08/12] netinet/in.h: add INADDR_ALLSNOOPERS_GROUP from linux
 v5.1

RFC 4286: "The IPv4 multicast address for All-Snoopers is 224.0.0.106."
from

  linux commit 4effd28c1245303dce7fd290c501ac2c11052114
  bridge: join all-snoopers multicast address
---
 include/netinet/in.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/netinet/in.h b/include/netinet/in.h
index 17705754..5b8b21e6 100644
--- a/include/netinet/in.h
+++ b/include/netinet/in.h
@@ -52,6 +52,7 @@ struct ipv6_mreq {
 #define INADDR_UNSPEC_GROUP     ((in_addr_t) 0xe0000000)
 #define INADDR_ALLHOSTS_GROUP   ((in_addr_t) 0xe0000001)
 #define INADDR_ALLRTRS_GROUP    ((in_addr_t) 0xe0000002)
+#define INADDR_ALLSNOOPERS_GROUP ((in_addr_t) 0xe000006a)
 #define INADDR_MAX_LOCAL_GROUP  ((in_addr_t) 0xe00000ff)
 
 #define IN6ADDR_ANY_INIT      { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } }
-- 
2.21.0


[-- Attachment #10: 0009-elf.h-add-NT_ARM_PAC-A-G-_KEYS-from-linux-v5.1.patch --]
[-- Type: text/x-diff, Size: 862 bytes --]

From 72882cf8d6b09162a9b4b9bee158a692c8cca3c8 Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Thu, 9 May 2019 19:45:11 +0000
Subject: [PATCH 09/12] elf.h: add NT_ARM_PAC{A,G}_KEYS from linux v5.1

to request or change pointer auth keys for criu via ptrace, new in

  linux commit d0a060be573bfbf8753a15dca35497db5e968bb0
  arm64: add ptrace regsets for ptrauth key management
---
 include/elf.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/include/elf.h b/include/elf.h
index aad522e4..5914cf81 100644
--- a/include/elf.h
+++ b/include/elf.h
@@ -683,6 +683,8 @@ typedef struct {
 #define NT_ARM_SYSTEM_CALL	0x404
 #define NT_ARM_SVE	0x405
 #define NT_ARM_PAC_MASK	0x406
+#define NT_ARM_PACA_KEYS	0x407
+#define NT_ARM_PACG_KEYS	0x408
 #define NT_METAG_CBUF	0x500
 #define NT_METAG_RPIPE	0x501
 #define NT_METAG_TLS	0x502
-- 
2.21.0


[-- Attachment #11: 0010-mips64-fix-syscall-numbers-of-io_pgetevents-and-rseq.patch --]
[-- Type: text/x-diff, Size: 891 bytes --]

From 875172fdfaed17a5c11074900b7f0cc3c62d4c0c Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Thu, 9 May 2019 20:20:24 +0000
Subject: [PATCH 10/12] mips64: fix syscall numbers of io_pgetevents and rseq

the numbers added in

  commit d149e69c02eb558114f20ea718810e95538a3b2f
  add io_pgetevents and rseq syscall numbers from linux v4.18

were incorrect.
---
 arch/mips64/bits/syscall.h.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/mips64/bits/syscall.h.in b/arch/mips64/bits/syscall.h.in
index f814aa48..9eebbb6a 100644
--- a/arch/mips64/bits/syscall.h.in
+++ b/arch/mips64/bits/syscall.h.in
@@ -324,6 +324,6 @@
 #define __NR_pkey_alloc			5324
 #define __NR_pkey_free			5325
 #define __NR_statx			5326
-#define __NR_rseq			4327
-#define __NR_io_pgetevents		4328
+#define __NR_rseq			5327
+#define __NR_io_pgetevents		5328
 
-- 
2.21.0


[-- Attachment #12: 0011-ipc-prefer-SYS_ipc-when-it-is-defined.patch --]
[-- Type: text/x-diff, Size: 5410 bytes --]

From 10ad63dc33ffff31f68b9627212aca291fe39b5e Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Thu, 9 May 2019 22:49:28 +0000
Subject: [PATCH 11/12] ipc: prefer SYS_ipc when it is defined

Linux v5.1 introduced ipc syscalls on targets where previously only
SYS_ipc was available, change the logic such that the ipc code keeps
using SYS_ipc which works backward compatibly on older kernels.

This changes behaviour on microblaze which had both mechanisms, now
SYS_ipc will be used instead of separate syscalls.
---
 src/ipc/msgctl.c     | 2 +-
 src/ipc/msgget.c     | 2 +-
 src/ipc/msgrcv.c     | 2 +-
 src/ipc/msgsnd.c     | 2 +-
 src/ipc/semctl.c     | 2 +-
 src/ipc/semget.c     | 2 +-
 src/ipc/semop.c      | 2 +-
 src/ipc/semtimedop.c | 2 +-
 src/ipc/shmat.c      | 2 +-
 src/ipc/shmctl.c     | 2 +-
 src/ipc/shmdt.c      | 2 +-
 src/ipc/shmget.c     | 2 +-
 12 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/src/ipc/msgctl.c b/src/ipc/msgctl.c
index ea9b2337..868197f6 100644
--- a/src/ipc/msgctl.c
+++ b/src/ipc/msgctl.c
@@ -17,7 +17,7 @@ int msgctl(int q, int cmd, struct msqid_ds *buf)
 		buf = &tmp;
 	}
 #endif
-#ifdef SYS_msgctl
+#ifndef SYS_ipc
 	int r = __syscall(SYS_msgctl, q, cmd | IPC_64, buf);
 #else
 	int r = __syscall(SYS_ipc, IPCOP_msgctl, q, cmd | IPC_64, 0, buf, 0);
diff --git a/src/ipc/msgget.c b/src/ipc/msgget.c
index 9dfbc4ea..30a4b42b 100644
--- a/src/ipc/msgget.c
+++ b/src/ipc/msgget.c
@@ -4,7 +4,7 @@
 
 int msgget(key_t k, int flag)
 {
-#ifdef SYS_msgget
+#ifndef SYS_ipc
 	return syscall(SYS_msgget, k, flag);
 #else
 	return syscall(SYS_ipc, IPCOP_msgget, k, flag);
diff --git a/src/ipc/msgrcv.c b/src/ipc/msgrcv.c
index 0a344e56..9d1034b1 100644
--- a/src/ipc/msgrcv.c
+++ b/src/ipc/msgrcv.c
@@ -4,7 +4,7 @@
 
 ssize_t msgrcv(int q, void *m, size_t len, long type, int flag)
 {
-#ifdef SYS_msgrcv
+#ifndef SYS_ipc
 	return syscall_cp(SYS_msgrcv, q, m, len, type, flag);
 #else
 	return syscall_cp(SYS_ipc, IPCOP_msgrcv, q, len, flag, ((long[]){ (long)m, type }));
diff --git a/src/ipc/msgsnd.c b/src/ipc/msgsnd.c
index e1abde3a..99bb17e9 100644
--- a/src/ipc/msgsnd.c
+++ b/src/ipc/msgsnd.c
@@ -4,7 +4,7 @@
 
 int msgsnd(int q, const void *m, size_t len, int flag)
 {
-#ifdef SYS_msgsnd
+#ifndef SYS_ipc
 	return syscall_cp(SYS_msgsnd, q, m, len, flag);
 #else
 	return syscall_cp(SYS_ipc, IPCOP_msgsnd, q, len, flag, m);
diff --git a/src/ipc/semctl.c b/src/ipc/semctl.c
index 941e2813..ce1fb164 100644
--- a/src/ipc/semctl.c
+++ b/src/ipc/semctl.c
@@ -33,7 +33,7 @@ int semctl(int id, int num, int cmd, ...)
 		arg.buf = &tmp;
 	}
 #endif
-#ifdef SYS_semctl
+#ifndef SYS_ipc
 	int r = __syscall(SYS_semctl, id, num, cmd | IPC_64, arg.buf);
 #else
 	int r = __syscall(SYS_ipc, IPCOP_semctl, id, num, cmd | IPC_64, &arg.buf);
diff --git a/src/ipc/semget.c b/src/ipc/semget.c
index c4a559db..2cdf626b 100644
--- a/src/ipc/semget.c
+++ b/src/ipc/semget.c
@@ -11,7 +11,7 @@ int semget(key_t key, int n, int fl)
 	 * n fits in the correct (per POSIX) userspace type, so
 	 * we have to check here. */
 	if (n > USHRT_MAX) return __syscall_ret(-EINVAL);
-#ifdef SYS_semget
+#ifndef SYS_ipc
 	return syscall(SYS_semget, key, n, fl);
 #else
 	return syscall(SYS_ipc, IPCOP_semget, key, n, fl);
diff --git a/src/ipc/semop.c b/src/ipc/semop.c
index 8046e437..5f0c7dea 100644
--- a/src/ipc/semop.c
+++ b/src/ipc/semop.c
@@ -4,7 +4,7 @@
 
 int semop(int id, struct sembuf *buf, size_t n)
 {
-#ifdef SYS_semop
+#ifndef SYS_ipc
 	return syscall(SYS_semop, id, buf, n);
 #else
 	return syscall(SYS_ipc, IPCOP_semop, id, n, 0, buf);
diff --git a/src/ipc/semtimedop.c b/src/ipc/semtimedop.c
index b0c4cf9f..51e70805 100644
--- a/src/ipc/semtimedop.c
+++ b/src/ipc/semtimedop.c
@@ -5,7 +5,7 @@
 
 int semtimedop(int id, struct sembuf *buf, size_t n, const struct timespec *ts)
 {
-#ifdef SYS_semtimedop
+#ifndef SYS_ipc
 	return syscall(SYS_semtimedop, id, buf, n, ts);
 #else
 	return syscall(SYS_ipc, IPCOP_semtimedop, id, n, 0, buf, ts);
diff --git a/src/ipc/shmat.c b/src/ipc/shmat.c
index 38db92f9..8c7407d1 100644
--- a/src/ipc/shmat.c
+++ b/src/ipc/shmat.c
@@ -2,7 +2,7 @@
 #include "syscall.h"
 #include "ipc.h"
 
-#ifdef SYS_shmat
+#ifndef SYS_ipc
 void *shmat(int id, const void *addr, int flag)
 {
 	return (void *)syscall(SYS_shmat, id, addr, flag);
diff --git a/src/ipc/shmctl.c b/src/ipc/shmctl.c
index c951a581..c2b2bb0d 100644
--- a/src/ipc/shmctl.c
+++ b/src/ipc/shmctl.c
@@ -17,7 +17,7 @@ int shmctl(int id, int cmd, struct shmid_ds *buf)
 		buf = &tmp;
 	}
 #endif
-#ifdef SYS_shmctl
+#ifndef SYS_ipc
 	int r = __syscall(SYS_shmctl, id, cmd | IPC_64, buf);
 #else
 	int r = __syscall(SYS_ipc, IPCOP_shmctl, id, cmd | IPC_64, 0, buf, 0);
diff --git a/src/ipc/shmdt.c b/src/ipc/shmdt.c
index d4fac8f1..57238137 100644
--- a/src/ipc/shmdt.c
+++ b/src/ipc/shmdt.c
@@ -4,7 +4,7 @@
 
 int shmdt(const void *addr)
 {
-#ifdef SYS_shmdt
+#ifndef SYS_ipc
 	return syscall(SYS_shmdt, addr);
 #else
 	return syscall(SYS_ipc, IPCOP_shmdt, 0, 0, 0, addr);
diff --git a/src/ipc/shmget.c b/src/ipc/shmget.c
index b44f9d68..7521b5fa 100644
--- a/src/ipc/shmget.c
+++ b/src/ipc/shmget.c
@@ -6,7 +6,7 @@
 int shmget(key_t key, size_t size, int flag)
 {
 	if (size > PTRDIFF_MAX) size = SIZE_MAX;
-#ifdef SYS_shmget
+#ifndef SYS_ipc
 	return syscall(SYS_shmget, key, size, flag);
 #else
 	return syscall(SYS_ipc, IPCOP_shmget, key, size, flag);
-- 
2.21.0


[-- Attachment #13: 0012-add-new-syscall-numbers-from-linux-v5.1.patch --]
[-- Type: text/x-diff, Size: 19530 bytes --]

From 87a9d17527458ce105d473fb7a78192a68e2b6e7 Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Thu, 9 May 2019 20:44:27 +0000
Subject: [PATCH 12/12] add new syscall numbers from linux v5.1

syscall numbers are now synced up across targets (starting from 403 the
numbers are the same on all targets other than an arch specific offset)

IPC syscalls sem*, shm*, msg* got added where they were missing (except
for semop: only semtimedop got added), the new semctl, shmctl, msgctl
imply IPC_64, see

  linux commit 0d6040d4681735dfc47565de288525de405a5c99
  arch: add split IPC system calls where needed

new 64bit time_t syscall variants got added on 32bit targets, see

  linux commit 48166e6ea47d23984f0b481ca199250e1ce0730a
  y2038: add 64-bit time_t syscalls to all 32-bit architectures

new async io syscalls got added, see

  linux commit 2b188cc1bb857a9d4701ae59aa7768b5124e262e
  Add io_uring IO interface

  linux commit edafccee56ff31678a091ddb7219aba9b28bc3cb
  io_uring: add support for pre-mapped user IO buffers

a new syscall got added that uses the fd of /proc/<pid> as a stable
handle for processes: allows sending signals without pid reuse issues,
intended to eventually replace rt_sigqueueinfo, kill, tgkill and
rt_tgsigqueueinfo, see

  linux commit 3eb39f47934f9d5a3027fe00d906a45fe3a15fad
  signal: add pidfd_send_signal() syscall

on some targets (arm, m68k, s390x, sh) some previously missing syscall
numbers got added as well.
---
 arch/aarch64/bits/syscall.h.in    |  4 ++++
 arch/arm/bits/syscall.h.in        | 26 +++++++++++++++++++++
 arch/i386/bits/syscall.h.in       | 34 +++++++++++++++++++++++++++
 arch/m68k/bits/syscall.h.in       | 39 +++++++++++++++++++++++++++++++
 arch/microblaze/bits/syscall.h.in | 24 +++++++++++++++++++
 arch/mips/bits/syscall.h.in       | 34 +++++++++++++++++++++++++++
 arch/mips64/bits/syscall.h.in     |  4 ++++
 arch/mipsn32/bits/syscall.h.in    | 24 +++++++++++++++++++
 arch/or1k/bits/syscall.h.in       | 24 +++++++++++++++++++
 arch/powerpc/bits/syscall.h.in    | 34 +++++++++++++++++++++++++++
 arch/powerpc64/bits/syscall.h.in  | 15 ++++++++++++
 arch/s390x/bits/syscall.h.in      | 18 ++++++++++++++
 arch/sh/bits/syscall.h.in         | 39 +++++++++++++++++++++++++++++++
 arch/x32/bits/syscall.h.in        |  4 ++++
 arch/x86_64/bits/syscall.h.in     |  4 ++++
 15 files changed, 327 insertions(+)

diff --git a/arch/aarch64/bits/syscall.h.in b/arch/aarch64/bits/syscall.h.in
index 4db85162..eed5a612 100644
--- a/arch/aarch64/bits/syscall.h.in
+++ b/arch/aarch64/bits/syscall.h.in
@@ -277,4 +277,8 @@
 #define __NR_io_pgetevents 292
 #define __NR_rseq 293
 #define __NR_kexec_file_load 294
+#define __NR_pidfd_send_signal 424
+#define __NR_io_uring_setup 425
+#define __NR_io_uring_enter 426
+#define __NR_io_uring_register 427
 
diff --git a/arch/arm/bits/syscall.h.in b/arch/arm/bits/syscall.h.in
index 1787099d..8ce1d70a 100644
--- a/arch/arm/bits/syscall.h.in
+++ b/arch/arm/bits/syscall.h.in
@@ -355,6 +355,32 @@
 #define __NR_statx	397
 #define __NR_rseq	398
 #define __NR_io_pgetevents	399
+#define __NR_migrate_pages	400
+#define __NR_kexec_file_load	401
+#define __NR_clock_gettime64	403
+#define __NR_clock_settime64	404
+#define __NR_clock_adjtime64	405
+#define __NR_clock_getres_time64	406
+#define __NR_clock_nanosleep_time64	407
+#define __NR_timer_gettime64	408
+#define __NR_timer_settime64	409
+#define __NR_timerfd_gettime64	410
+#define __NR_timerfd_settime64	411
+#define __NR_utimensat_time64	412
+#define __NR_pselect6_time64	413
+#define __NR_ppoll_time64	414
+#define __NR_io_pgetevents_time64	416
+#define __NR_recvmmsg_time64	417
+#define __NR_mq_timedsend_time64	418
+#define __NR_mq_timedreceive_time64	419
+#define __NR_semtimedop_time64	420
+#define __NR_rt_sigtimedwait_time64	421
+#define __NR_futex_time64	422
+#define __NR_sched_rr_get_interval_time64	423
+#define __NR_pidfd_send_signal	424
+#define __NR_io_uring_setup	425
+#define __NR_io_uring_enter	426
+#define __NR_io_uring_register	427
 
 #define __ARM_NR_breakpoint	0x0f0001
 #define __ARM_NR_cacheflush	0x0f0002
diff --git a/arch/i386/bits/syscall.h.in b/arch/i386/bits/syscall.h.in
index 47f4ae03..fdfdc710 100644
--- a/arch/i386/bits/syscall.h.in
+++ b/arch/i386/bits/syscall.h.in
@@ -384,4 +384,38 @@
 #define __NR_arch_prctl		384
 #define __NR_io_pgetevents	385
 #define __NR_rseq		386
+#define __NR_semget		393
+#define __NR_semctl		394
+#define __NR_shmget		395
+#define __NR_shmctl		396
+#define __NR_shmat		397
+#define __NR_shmdt		398
+#define __NR_msgget		399
+#define __NR_msgsnd		400
+#define __NR_msgrcv		401
+#define __NR_msgctl		402
+#define __NR_clock_gettime64	403
+#define __NR_clock_settime64	404
+#define __NR_clock_adjtime64	405
+#define __NR_clock_getres_time64 406
+#define __NR_clock_nanosleep_time64 407
+#define __NR_timer_gettime64	408
+#define __NR_timer_settime64	409
+#define __NR_timerfd_gettime64	410
+#define __NR_timerfd_settime64	411
+#define __NR_utimensat_time64	412
+#define __NR_pselect6_time64	413
+#define __NR_ppoll_time64	414
+#define __NR_io_pgetevents_time64 416
+#define __NR_recvmmsg_time64	417
+#define __NR_mq_timedsend_time64 418
+#define __NR_mq_timedreceive_time64 419
+#define __NR_semtimedop_time64	420
+#define __NR_rt_sigtimedwait_time64 421
+#define __NR_futex_time64	422
+#define __NR_sched_rr_get_interval_time64 423
+#define __NR_pidfd_send_signal	424
+#define __NR_io_uring_setup	425
+#define __NR_io_uring_enter	426
+#define __NR_io_uring_register	427
 
diff --git a/arch/m68k/bits/syscall.h.in b/arch/m68k/bits/syscall.h.in
index 89cf114c..c7859b99 100644
--- a/arch/m68k/bits/syscall.h.in
+++ b/arch/m68k/bits/syscall.h.in
@@ -359,3 +359,42 @@
 #define __NR_preadv2		377
 #define __NR_pwritev2		378
 #define __NR_statx		379
+#define __NR_seccomp		380
+#define __NR_pkey_mprotect	381
+#define __NR_pkey_alloc		382
+#define __NR_pkey_free		383
+#define __NR_rseq		384
+#define __NR_semget		393
+#define __NR_semctl		394
+#define __NR_shmget		395
+#define __NR_shmctl		396
+#define __NR_shmat		397
+#define __NR_shmdt		398
+#define __NR_msgget		399
+#define __NR_msgsnd		400
+#define __NR_msgrcv		401
+#define __NR_msgctl		402
+#define __NR_clock_gettime64	403
+#define __NR_clock_settime64	404
+#define __NR_clock_adjtime64	405
+#define __NR_clock_getres_time64 406
+#define __NR_clock_nanosleep_time64 407
+#define __NR_timer_gettime64	408
+#define __NR_timer_settime64	409
+#define __NR_timerfd_gettime64	410
+#define __NR_timerfd_settime64	411
+#define __NR_utimensat_time64	412
+#define __NR_pselect6_time64	413
+#define __NR_ppoll_time64	414
+#define __NR_io_pgetevents_time64 416
+#define __NR_recvmmsg_time64	417
+#define __NR_mq_timedsend_time64 418
+#define __NR_mq_timedreceive_time64 419
+#define __NR_semtimedop_time64	420
+#define __NR_rt_sigtimedwait_time64 421
+#define __NR_futex_time64	422
+#define __NR_sched_rr_get_interval_time64 423
+#define __NR_pidfd_send_signal	424
+#define __NR_io_uring_setup	425
+#define __NR_io_uring_enter	426
+#define __NR_io_uring_register	427
diff --git a/arch/microblaze/bits/syscall.h.in b/arch/microblaze/bits/syscall.h.in
index f0583961..91bc244e 100644
--- a/arch/microblaze/bits/syscall.h.in
+++ b/arch/microblaze/bits/syscall.h.in
@@ -395,4 +395,28 @@
 #define __NR_statx 398
 #define __NR_io_pgetevents 399
 #define __NR_rseq 400
+#define __NR_clock_gettime64 403
+#define __NR_clock_settime64 404
+#define __NR_clock_adjtime64 405
+#define __NR_clock_getres_time64 406
+#define __NR_clock_nanosleep_time64 407
+#define __NR_timer_gettime64 408
+#define __NR_timer_settime64 409
+#define __NR_timerfd_gettime64 410
+#define __NR_timerfd_settime64 411
+#define __NR_utimensat_time64 412
+#define __NR_pselect6_time64 413
+#define __NR_ppoll_time64 414
+#define __NR_io_pgetevents_time64 416
+#define __NR_recvmmsg_time64 417
+#define __NR_mq_timedsend_time64 418
+#define __NR_mq_timedreceive_time64 419
+#define __NR_semtimedop_time64 420
+#define __NR_rt_sigtimedwait_time64 421
+#define __NR_futex_time64 422
+#define __NR_sched_rr_get_interval_time64 423
+#define __NR_pidfd_send_signal 424
+#define __NR_io_uring_setup 425
+#define __NR_io_uring_enter 426
+#define __NR_io_uring_register 427
 
diff --git a/arch/mips/bits/syscall.h.in b/arch/mips/bits/syscall.h.in
index be8c3207..6175a7c2 100644
--- a/arch/mips/bits/syscall.h.in
+++ b/arch/mips/bits/syscall.h.in
@@ -366,4 +366,38 @@
 #define __NR_statx                   4366
 #define __NR_rseq                    4367
 #define __NR_io_pgetevents           4368
+#define __NR_semget                  4393
+#define __NR_semctl                  4394
+#define __NR_shmget                  4395
+#define __NR_shmctl                  4396
+#define __NR_shmat                   4397
+#define __NR_shmdt                   4398
+#define __NR_msgget                  4399
+#define __NR_msgsnd                  4400
+#define __NR_msgrcv                  4401
+#define __NR_msgctl                  4402
+#define __NR_clock_gettime64         4403
+#define __NR_clock_settime64         4404
+#define __NR_clock_adjtime64         4405
+#define __NR_clock_getres_time64     4406
+#define __NR_clock_nanosleep_time64  4407
+#define __NR_timer_gettime64         4408
+#define __NR_timer_settime64         4409
+#define __NR_timerfd_gettime64       4410
+#define __NR_timerfd_settime64       4411
+#define __NR_utimensat_time64        4412
+#define __NR_pselect6_time64         4413
+#define __NR_ppoll_time64            4414
+#define __NR_io_pgetevents_time64    4416
+#define __NR_recvmmsg_time64         4417
+#define __NR_mq_timedsend_time64     4418
+#define __NR_mq_timedreceive_time64  4419
+#define __NR_semtimedop_time64       4420
+#define __NR_rt_sigtimedwait_time64  4421
+#define __NR_futex_time64            4422
+#define __NR_sched_rr_get_interval_time64 4423
+#define __NR_pidfd_send_signal       4424
+#define __NR_io_uring_setup          4425
+#define __NR_io_uring_enter          4426
+#define __NR_io_uring_register       4427
 
diff --git a/arch/mips64/bits/syscall.h.in b/arch/mips64/bits/syscall.h.in
index 9eebbb6a..ca99e453 100644
--- a/arch/mips64/bits/syscall.h.in
+++ b/arch/mips64/bits/syscall.h.in
@@ -326,4 +326,8 @@
 #define __NR_statx			5326
 #define __NR_rseq			5327
 #define __NR_io_pgetevents		5328
+#define __NR_pidfd_send_signal		5424
+#define __NR_io_uring_setup		5425
+#define __NR_io_uring_enter		5426
+#define __NR_io_uring_register		5427
 
diff --git a/arch/mipsn32/bits/syscall.h.in b/arch/mipsn32/bits/syscall.h.in
index c1726180..f31ee446 100644
--- a/arch/mipsn32/bits/syscall.h.in
+++ b/arch/mipsn32/bits/syscall.h.in
@@ -330,4 +330,28 @@
 #define __NR_statx			6330
 #define __NR_rseq			6331
 #define __NR_io_pgetevents		6332
+#define __NR_clock_gettime64		6403
+#define __NR_clock_settime64		6404
+#define __NR_clock_adjtime64		6405
+#define __NR_clock_getres_time64	6406
+#define __NR_clock_nanosleep_time64	6407
+#define __NR_timer_gettime64		6408
+#define __NR_timer_settime64		6409
+#define __NR_timerfd_gettime64		6410
+#define __NR_timerfd_settime64		6411
+#define __NR_utimensat_time64		6412
+#define __NR_pselect6_time64		6413
+#define __NR_ppoll_time64		6414
+#define __NR_io_pgetevents_time64	6416
+#define __NR_recvmmsg_time64		6417
+#define __NR_mq_timedsend_time64	6418
+#define __NR_mq_timedreceive_time64	6419
+#define __NR_semtimedop_time64		6420
+#define __NR_rt_sigtimedwait_time64	6421
+#define __NR_futex_time64		6422
+#define __NR_sched_rr_get_interval_time64 6423
+#define __NR_pidfd_send_signal		6424
+#define __NR_io_uring_setup		6425
+#define __NR_io_uring_enter		6426
+#define __NR_io_uring_register		6427
 
diff --git a/arch/or1k/bits/syscall.h.in b/arch/or1k/bits/syscall.h.in
index 4c3df0a3..33a86861 100644
--- a/arch/or1k/bits/syscall.h.in
+++ b/arch/or1k/bits/syscall.h.in
@@ -279,4 +279,28 @@
 #define __NR_io_pgetevents 292
 #define __NR_rseq 293
 #define __NR_kexec_file_load 294
+#define __NR_clock_gettime64 403
+#define __NR_clock_settime64 404
+#define __NR_clock_adjtime64 405
+#define __NR_clock_getres_time64 406
+#define __NR_clock_nanosleep_time64 407
+#define __NR_timer_gettime64 408
+#define __NR_timer_settime64 409
+#define __NR_timerfd_gettime64 410
+#define __NR_timerfd_settime64 411
+#define __NR_utimensat_time64 412
+#define __NR_pselect6_time64 413
+#define __NR_ppoll_time64 414
+#define __NR_io_pgetevents_time64 416
+#define __NR_recvmmsg_time64 417
+#define __NR_mq_timedsend_time64 418
+#define __NR_mq_timedreceive_time64 419
+#define __NR_semtimedop_time64 420
+#define __NR_rt_sigtimedwait_time64 421
+#define __NR_futex_time64 422
+#define __NR_sched_rr_get_interval_time64 423
+#define __NR_pidfd_send_signal 424
+#define __NR_io_uring_setup 425
+#define __NR_io_uring_enter 426
+#define __NR_io_uring_register 427
 
diff --git a/arch/powerpc/bits/syscall.h.in b/arch/powerpc/bits/syscall.h.in
index 54e155f2..0a6c9add 100644
--- a/arch/powerpc/bits/syscall.h.in
+++ b/arch/powerpc/bits/syscall.h.in
@@ -373,4 +373,38 @@
 #define __NR_pkey_mprotect         386
 #define __NR_rseq                  387
 #define __NR_io_pgetevents         388
+#define __NR_semget                393
+#define __NR_semctl                394
+#define __NR_shmget                395
+#define __NR_shmctl                396
+#define __NR_shmat                 397
+#define __NR_shmdt                 398
+#define __NR_msgget                399
+#define __NR_msgsnd                400
+#define __NR_msgrcv                401
+#define __NR_msgctl                402
+#define __NR_clock_gettime64       403
+#define __NR_clock_settime64       404
+#define __NR_clock_adjtime64       405
+#define __NR_clock_getres_time64   406
+#define __NR_clock_nanosleep_time64 407
+#define __NR_timer_gettime64       408
+#define __NR_timer_settime64       409
+#define __NR_timerfd_gettime64     410
+#define __NR_timerfd_settime64     411
+#define __NR_utimensat_time64      412
+#define __NR_pselect6_time64       413
+#define __NR_ppoll_time64          414
+#define __NR_io_pgetevents_time64  416
+#define __NR_recvmmsg_time64       417
+#define __NR_mq_timedsend_time64   418
+#define __NR_mq_timedreceive_time64 419
+#define __NR_semtimedop_time64     420
+#define __NR_rt_sigtimedwait_time64 421
+#define __NR_futex_time64          422
+#define __NR_sched_rr_get_interval_time64 423
+#define __NR_pidfd_send_signal     424
+#define __NR_io_uring_setup        425
+#define __NR_io_uring_enter        426
+#define __NR_io_uring_register     427
 
diff --git a/arch/powerpc64/bits/syscall.h.in b/arch/powerpc64/bits/syscall.h.in
index 4e29cedf..0c894a23 100644
--- a/arch/powerpc64/bits/syscall.h.in
+++ b/arch/powerpc64/bits/syscall.h.in
@@ -364,4 +364,19 @@
 #define __NR_pkey_mprotect          386
 #define __NR_rseq                   387
 #define __NR_io_pgetevents          388
+#define __NR_semtimedop             392
+#define __NR_semget                 393
+#define __NR_semctl                 394
+#define __NR_shmget                 395
+#define __NR_shmctl                 396
+#define __NR_shmat                  397
+#define __NR_shmdt                  398
+#define __NR_msgget                 399
+#define __NR_msgsnd                 400
+#define __NR_msgrcv                 401
+#define __NR_msgctl                 402
+#define __NR_pidfd_send_signal      424
+#define __NR_io_uring_setup         425
+#define __NR_io_uring_enter         426
+#define __NR_io_uring_register      427
 
diff --git a/arch/s390x/bits/syscall.h.in b/arch/s390x/bits/syscall.h.in
index 85a18e79..72fd2cce 100644
--- a/arch/s390x/bits/syscall.h.in
+++ b/arch/s390x/bits/syscall.h.in
@@ -326,4 +326,22 @@
 #define __NR_kexec_file_load            381
 #define __NR_io_pgetevents              382
 #define __NR_rseq                       383
+#define __NR_pkey_mprotect              384
+#define __NR_pkey_alloc                 385
+#define __NR_pkey_free                  386
+#define __NR_semtimedop                 392
+#define __NR_semget                     393
+#define __NR_semctl                     394
+#define __NR_shmget                     395
+#define __NR_shmctl                     396
+#define __NR_shmat                      397
+#define __NR_shmdt                      398
+#define __NR_msgget                     399
+#define __NR_msgsnd                     400
+#define __NR_msgrcv                     401
+#define __NR_msgctl                     402
+#define __NR_pidfd_send_signal          424
+#define __NR_io_uring_setup             425
+#define __NR_io_uring_enter             426
+#define __NR_io_uring_register          427
 
diff --git a/arch/sh/bits/syscall.h.in b/arch/sh/bits/syscall.h.in
index 420f4a0f..ad35fc64 100644
--- a/arch/sh/bits/syscall.h.in
+++ b/arch/sh/bits/syscall.h.in
@@ -352,4 +352,43 @@
 #define __NR_copy_file_range        380
 #define __NR_preadv2                381
 #define __NR_pwritev2               382
+#define __NR_statx                  383
+#define __NR_pkey_mprotect          384
+#define __NR_pkey_alloc             385
+#define __NR_pkey_free              386
+#define __NR_rseq                   387
+#define __NR_semget                 393
+#define __NR_semctl                 394
+#define __NR_shmget                 395
+#define __NR_shmctl                 396
+#define __NR_shmat                  397
+#define __NR_shmdt                  398
+#define __NR_msgget                 399
+#define __NR_msgsnd                 400
+#define __NR_msgrcv                 401
+#define __NR_msgctl                 402
+#define __NR_clock_gettime64        403
+#define __NR_clock_settime64        404
+#define __NR_clock_adjtime64        405
+#define __NR_clock_getres_time64    406
+#define __NR_clock_nanosleep_time64 407
+#define __NR_timer_gettime64        408
+#define __NR_timer_settime64        409
+#define __NR_timerfd_gettime64      410
+#define __NR_timerfd_settime64      411
+#define __NR_utimensat_time64       412
+#define __NR_pselect6_time64        413
+#define __NR_ppoll_time64           414
+#define __NR_io_pgetevents_time64   416
+#define __NR_recvmmsg_time64        417
+#define __NR_mq_timedsend_time64    418
+#define __NR_mq_timedreceive_time64 419
+#define __NR_semtimedop_time64      420
+#define __NR_rt_sigtimedwait_time64 421
+#define __NR_futex_time64           422
+#define __NR_sched_rr_get_interval_time64 423
+#define __NR_pidfd_send_signal      424
+#define __NR_io_uring_setup         425
+#define __NR_io_uring_enter         426
+#define __NR_io_uring_register      427
 
diff --git a/arch/x32/bits/syscall.h.in b/arch/x32/bits/syscall.h.in
index 67d89f91..77ec432f 100644
--- a/arch/x32/bits/syscall.h.in
+++ b/arch/x32/bits/syscall.h.in
@@ -286,6 +286,10 @@
 #define __NR_statx (0x40000000 + 332)
 #define __NR_io_pgetevents (0x40000000 + 333)
 #define __NR_rseq (0x40000000 + 334)
+#define __NR_pidfd_send_signal (0x40000000 + 424)
+#define __NR_io_uring_setup (0x40000000 + 425)
+#define __NR_io_uring_enter (0x40000000 + 426)
+#define __NR_io_uring_register (0x40000000 + 427)
 
 #define __NR_rt_sigaction (0x40000000 + 512)
 #define __NR_rt_sigreturn (0x40000000 + 513)
diff --git a/arch/x86_64/bits/syscall.h.in b/arch/x86_64/bits/syscall.h.in
index 9cdb7789..49572ef2 100644
--- a/arch/x86_64/bits/syscall.h.in
+++ b/arch/x86_64/bits/syscall.h.in
@@ -333,4 +333,8 @@
 #define __NR_statx				332
 #define __NR_io_pgetevents			333
 #define __NR_rseq				334
+#define __NR_pidfd_send_signal			424
+#define __NR_io_uring_setup			425
+#define __NR_io_uring_enter			426
+#define __NR_io_uring_register			427
 
-- 
2.21.0


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH v2 00/12] Update for linux v5.1
  2019-06-29 21:28 [PATCH v2 00/12] Update for linux v5.1 Szabolcs Nagy
@ 2019-07-01 20:08 ` Rich Felker
  0 siblings, 0 replies; 2+ messages in thread
From: Rich Felker @ 2019-07-01 20:08 UTC (permalink / raw)
  To: musl

On Sat, Jun 29, 2019 at 11:28:21PM +0200, Szabolcs Nagy wrote:
> v2:
> - split the sys/socket.h patch so the time_t change is separate.
> - note the microblaze ipc syscall behaviour change
> 
> Szabolcs Nagy (12):
>   sys/fanotify.h: update for linux v5.1
>   fcntl.h: add F_SEAL_FUTURE_WRITE from linux v5.1
>   sys/prctl.h: add PR_SPEC_DISABLE_NOEXEC from linux v5.1
>   netinet/in.h: add IPV6_ROUTER_ALERT_ISOLATE from linux v5.1
>   s390x: drop SO_ definitions from bits/socket.h
>   sys/socket.h: add SO_BINDTOIFINDEX from linux v5.1
>   sys/socket.h: add time_t related SO_ definitions from linux v5.1
>   netinet/in.h: add INADDR_ALLSNOOPERS_GROUP from linux v5.1
>   elf.h: add NT_ARM_PAC{A,G}_KEYS from linux v5.1
>   mips64: fix syscall numbers of io_pgetevents and rseq
>   ipc: prefer SYS_ipc when it is defined
>   add new syscall numbers from linux v5.1

I'm merging these, with patch 7 omitted for now:

> From 59bb3d263decbe56b59a426f3292bdf7e115402a Mon Sep 17 00:00:00 2001
> From: Szabolcs Nagy <nsz@port70.net>
> Date: Thu, 9 May 2019 19:20:17 +0000
> Subject: [PATCH 07/12] sys/socket.h: add time_t related SO_ definitions from
>  linux v5.1
> 
> the new definitions are from commits
> 
>   linux commit a9beb86ae6e55bd92f38453c8623de60b8e5a308
>   sock: Add SO_RCVTIMEO_NEW and SO_SNDTIMEO_NEW
> 
>   linux commit 45bdc66159d49bfc7f75fe02d25bc74f5d2660cf
>   socket: Rename SO_RCVTIMEO/ SO_SNDTIMEO with _OLD suffixes
> 
>   linux commit 9718475e69084de15c3930ce35672a7dc6da866b
>   socket: Add SO_TIMESTAMPING_NEW
> 
>   linux commit 887feae36aee6c08e0dafcdaa5ba921abbb2c56b
>   socket: Add SO_TIMESTAMP[NS]_NEW
> 
>   linux commit 7f1bc6e95d7840d4305595b3e4025cddda88cee5
>   sockopt: Rename SO_TIMESTAMP* to SO_TIMESTAMP*_OLD
> 
> _NEW socket options got introduced for 64bit time_t support on 32bit
> targets, in musl the affected socket options are always the same as
> the _OLD values since different time_t requires a new abi, so the
> _OLD vs _NEW dispatch logic was not copied from the uapi headers.
> ---
>  include/sys/socket.h | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/include/sys/socket.h b/include/sys/socket.h
> index 8692efa7..e6d43d08 100644
> --- a/include/sys/socket.h
> +++ b/include/sys/socket.h
> @@ -238,6 +238,16 @@ struct linger {
>  #define SO_TXTIME               61
>  #define SCM_TXTIME              SO_TXTIME
>  #define SO_BINDTOIFINDEX        62
> +#define SO_TIMESTAMP_NEW        63
> +#define SO_TIMESTAMPNS_NEW      64
> +#define SO_TIMESTAMPING_NEW     65
> +#define SO_RCVTIMEO_NEW         66
> +#define SO_SNDTIMEO_NEW         67
> +#define SO_TIMESTAMP_OLD        SO_TIMESTAMP
> +#define SO_TIMESTAMPNS_OLD      SO_TIMESTAMPNS
> +#define SO_TIMESTAMPING_OLD     SO_TIMESTAMPING
> +#define SO_RCVTIMEO_OLD         SO_RCVTIMEO
> +#define SO_SNDTIMEO_OLD         SO_SNDTIMEO
>  
>  #ifndef SOL_SOCKET
>  #define SOL_SOCKET      1

It's still not clear to me whether we should be making the separate
OLD/NEW macro values application-facing, rather than them just being
choices for how libc defines the standard names depending on how it
defines time_t. We can always go back and add this if it turns out
there is a good reason to expose both, whereas going back and removing
it would potentially cause regressions.

Rich


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-07-01 20:08 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-29 21:28 [PATCH v2 00/12] Update for linux v5.1 Szabolcs Nagy
2019-07-01 20:08 ` Rich Felker

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).