strace: update 5.14 -> 5.15

(From OE-Core rev: 5882ea00a3c9cf0b15958ea3677231a2a31d9a68)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Alexander Kanavin
2021-12-07 14:06:56 +01:00
committed by Richard Purdie
parent d14eb9aadb
commit c1c93b4ea4
2 changed files with 1 additions and 153 deletions

View File

@@ -1,151 +0,0 @@
From 197f712ea96c12dcabc9fe98889a425d61ad6a60 Mon Sep 17 00:00:00 2001
From: Eugene Syromyatnikov <evgsyr@gmail.com>
Date: Wed, 3 Nov 2021 00:48:59 +0100
Subject: [PATCH] Avoid relying on presence of ipx.h
After Linux has broken UAPI in commit v5.15-rc1~157^2~207, it is well
possible that neither kernel nor libc (such as musl, for example)
provide IPX-related header. Avoid relying on its presence
in the strace's code and conditionalise the relevant checks in the tests.
* configure.ac (AC_CHECK_HEADERS): Add linux/ipx.h.
* src/net.c: Remove <netipx/ipx.h>/<linux/ipx.h> includes.
* src/sockaddr.c: Likewise.
(IPX_NODE_LEN): New macro constant.
(struct sockaddr_ipx): New type definition.
* src/xlat/sock_ipx_options.in (IPX_TYPE): Provide a fallback value.
* tests/net-sockaddr.c [!HAVE_LINUX_IPX_H]: Do not include
<linux/ipx.h>.
[!HAVE_LINUX_IPX_H && HAVE_NETIPX_IPX_H]: Include <netipx/ipx.h>.
[!(HAVE_LINUX_IPX_H || defined HAVE_NETIPX_IPX_H)]: Do not define
check_ipx.
[!(HAVE_LINUX_IPX_H || defined HAVE_NETIPX_IPX_H)] (main): Do not call
check_ipx.
Closes: https://github.com/strace/strace/issues/201
Upstream-Status: Backport [commit cca828197c0e1 branch esyr/5.15]
[bva: changed context to apply to a released strace 5.14 tarball]
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
configure.ac | 1 +
src/net.c | 5 -----
src/sockaddr.c | 16 ++++++++++------
src/xlat/sock_ipx_options.in | 2 +-
tests/net-sockaddr.c | 10 +++++++++-
5 files changed, 21 insertions(+), 13 deletions(-)
Index: strace-5.14/configure.ac
===================================================================
--- strace-5.14.orig/configure.ac
+++ strace-5.14/configure.ac
@@ -423,6 +423,7 @@
elf.h
gcov.h
iconv.h
+ linux/ipx.h
mqueue.h
netinet/sctp.h
netipx/ipx.h
Index: strace-5.14/src/net.c
===================================================================
--- strace-5.14.orig/src/net.c
+++ strace-5.14/src/net.c
@@ -28,11 +28,6 @@
#include <arpa/inet.h>
#include <net/if.h>
#include <asm/types.h>
-#ifdef HAVE_NETIPX_IPX_H
-# include <netipx/ipx.h>
-#else
-# include <linux/ipx.h>
-#endif
#include <linux/ip_vs.h>
#include "netlink.h"
Index: strace-5.14/src/sockaddr.c
===================================================================
--- strace-5.14.orig/src/sockaddr.c
+++ strace-5.14/src/sockaddr.c
@@ -24,12 +24,6 @@
#include <linux/if_ether.h>
#include <linux/x25.h>
-#ifdef HAVE_NETIPX_IPX_H
-# include <netipx/ipx.h>
-#else
-# include <linux/ipx.h>
-#endif
-
#include "xlat/addrfams.h"
#include "xlat/arp_hardware_types.h"
#include "xlat/ethernet_protocols.h"
@@ -45,6 +39,16 @@
const size_t arp_hardware_types_size = ARRAY_SIZE(arp_hardware_types) - 1;
const size_t ethernet_protocols_size = ARRAY_SIZE(ethernet_protocols) - 1;
+#define IPX_NODE_LEN 6
+struct sockaddr_ipx {
+ uint16_t sipx_family;
+ uint16_t sipx_port;
+ uint32_t sipx_network;
+ unsigned char sipx_node[IPX_NODE_LEN];
+ uint8_t sipx_type;
+ unsigned char sipx_zero;
+};
+
static void
print_sockaddr_data_un(struct tcb *tcp, const void *const buf, const int addrlen)
{
Index: strace-5.14/src/xlat/sock_ipx_options.in
===================================================================
--- strace-5.14.orig/src/xlat/sock_ipx_options.in
+++ strace-5.14/src/xlat/sock_ipx_options.in
@@ -1 +1 @@
-IPX_TYPE
+IPX_TYPE 1
Index: strace-5.14/tests/net-sockaddr.c
===================================================================
--- strace-5.14.orig/tests/net-sockaddr.c
+++ strace-5.14/tests/net-sockaddr.c
@@ -24,7 +24,11 @@
#include <linux/if_ether.h>
#include <linux/if_packet.h>
#include <linux/x25.h>
-#include <linux/ipx.h>
+#if defined HAVE_LINUX_IPX_H
+# include <linux/ipx.h>
+#elif defined HAVE_NETIPX_IPX_H
+# include <netipx/ipx.h>
+#endif
#ifdef HAVE_BLUETOOTH_BLUETOOTH_H
# include <bluetooth/bluetooth.h>
# include <bluetooth/hci.h>
@@ -269,6 +273,7 @@
printf("connect(-1, %p, %u) = %d EBADF (%m)\n", in6, len, ret);
}
+#if defined HAVE_LINUX_IPX_H || defined HAVE_NETIPX_IPX_H
static void
check_ipx(void)
{
@@ -295,6 +300,7 @@
c_ipx.sipx_node[4], c_ipx.sipx_node[5],
c_ipx.sipx_type, len, ret);
}
+#endif /* HAVE_LINUX_IPX_H || defined HAVE_NETIPX_IPX_H */
/* for a bit more compact AX.25 address definitions */
#define AX25_ADDR(c_, s_) \
@@ -773,7 +779,9 @@
check_un();
check_in();
check_in6();
+#if defined HAVE_LINUX_IPX_H || defined HAVE_NETIPX_IPX_H
check_ipx();
+#endif
check_ax25();
check_x25();
check_nl();

View File

@@ -13,9 +13,8 @@ SRC_URI = "https://strace.io/files/${PV}/strace-${PV}.tar.xz \
file://0001-caps-abbrev.awk-fix-gawk-s-path.patch \
file://ptest-spacesave.patch \
file://0001-strace-fix-reproducibilty-issues.patch \
file://0001-Avoid-relying-on-presence-of-ipx.h.patch \
"
SRC_URI[sha256sum] = "901bee6db5e17debad4530dd9ffb4dc9a96c4a656edbe1c3141b7cb307b11e73"
SRC_URI[sha256sum] = "ebcac22f297335294dc654425cbc3ce013343bece6da2699e3aec86aee8d72dc"
inherit autotools ptest