summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO8
-rw-r--r--PKGBUILD14
-rw-r--r--issue174.patch81
3 files changed, 94 insertions, 9 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 73cba833dec..ec425d35ee3 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = android-aarch64-strace
pkgdesc = A diagnostic, debugging and instructional userspace tracer (Android, aarch64)
pkgver = 5.11
- pkgrel = 1
+ pkgrel = 4
url = https://strace.io/
arch = any
license = BSD
@@ -10,9 +10,11 @@ pkgbase = android-aarch64-strace
options = !strip
source = https://github.com/strace/strace/releases/download/v5.11/strace-5.11.tar.xz
source = https://github.com/strace/strace/releases/download/v5.11/strace-5.11.tar.xz.asc
+ source = issue174.patch
validpgpkeys = 296D6F29A020808E8717A8842DB5BD89A340AEB7
- sha1sums = 1b7a533a45b9ca351d7a14702c044b917d11e979
- sha1sums = SKIP
+ sha256sums = ffe340b10c145a0f85734271e9cce56457d23f21a7ea5931ab32f8cf4e793879
+ sha256sums = SKIP
+ sha256sums = 169dc3b66e2a2ec364dc30e792b1d8e9fb9357ad3797ba84d88f478b63f393d0
pkgname = android-aarch64-strace
diff --git a/PKGBUILD b/PKGBUILD
index f1a4e5d349e..30d6aefb7f6 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,23 +7,25 @@ _pkgname=strace
_pkg_arch=aarch64
pkgname=android-${_pkg_arch/_/-}-$_pkgname
pkgver=5.11
-pkgrel=1
+pkgrel=4
pkgdesc="A diagnostic, debugging and instructional userspace tracer (Android, $_pkg_arch)"
arch=(any)
url='https://strace.io/'
license=(BSD)
makedepends=(android-ndk)
options=(!buildflags !strip)
-source=(https://github.com/strace/strace/releases/download/v$pkgver/strace-$pkgver.tar.xz{,.asc})
-sha1sums=('1b7a533a45b9ca351d7a14702c044b917d11e979'
- 'SKIP')
+source=(https://github.com/strace/strace/releases/download/v$pkgver/strace-$pkgver.tar.xz{,.asc}
+ issue174.patch)
+sha256sums=('ffe340b10c145a0f85734271e9cce56457d23f21a7ea5931ab32f8cf4e793879'
+ 'SKIP'
+ '169dc3b66e2a2ec364dc30e792b1d8e9fb9357ad3797ba84d88f478b63f393d0')
validpgpkeys=('296D6F29A020808E8717A8842DB5BD89A340AEB7') # Dmitry V. Levin <ldv@altlinux.org>
prepare() {
cd $_pkgname-$pkgver
- # Upstream bundled Linux uapi header breaks building
# https://github.com/strace/strace/issues/174
- rm -vf bundled/linux/include/uapi/linux/socket.h
+ patch -Np1 -i ../issue174.patch
+ autoreconf -ifv
}
build() {
diff --git a/issue174.patch b/issue174.patch
new file mode 100644
index 00000000000..63040891f60
--- /dev/null
+++ b/issue174.patch
@@ -0,0 +1,81 @@
+From cdfc8ebaeff56a0083042afab374fa1b45ba61db Mon Sep 17 00:00:00 2001
+From: "Dmitry V. Levin" <ldv@strace.io>
+Date: Fri, 19 Feb 2021 08:00:00 +0000
+Subject: [PATCH] build: fix build using bionic libc
+
+Apparently, bionic libc uses unconventional approach of patching Linux
+uapi header files to provide and use struct sockaddr_storage instead of
+struct __kernel_sockaddr_storage.
+
+* src/linux/generic/socket.h.in: New file.
+* src/Makefile.am (EXTRA_DIST): Add linux/generic/socket.h.in.
+(DISTCLEANFILES): Add linux/generic/linux/socket.h.
+* configure.ac (AC_CHECK_TYPES): Check for struct sockaddr_storage in
+<sys/socket.h>; if not found, install a proxy <linux/socket.h> file.
+* NEWS: Mention this.
+
+Resolves: https://github.com/strace/strace/issues/174
+---
+ NEWS | 1 +
+ configure.ac | 7 +++++++
+ src/Makefile.am | 7 ++++++-
+ src/linux/generic/socket.h.in | 7 +++++++
+ 4 files changed, 21 insertions(+), 1 deletion(-)
+ create mode 100644 src/linux/generic/socket.h.in
+
+diff --git a/configure.ac b/configure.ac
+index e1e5f0ba3..590a591b7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -329,6 +329,13 @@ AC_CHECK_FUNCS(m4_normalize([
+
+ AC_CHECK_TYPES([sig_atomic_t, struct sigcontext],,, [#include <signal.h>])
+
++AC_CHECK_TYPES([struct sockaddr_storage],
++ [],
++ [mkdir -p src/linux/generic/linux
++ cp $srcdir/src/linux/generic/socket.h.in src/linux/generic/linux/socket.h
++ CPPFLAGS="-Isrc/linux/generic $CPPFLAGS"],
++ [#include <sys/socket.h>])
++
+ AC_CHECK_TYPES([struct mmsghdr],,, [#include <sys/socket.h>])
+
+ AC_CHECK_TYPES([__kernel_long_t, __kernel_ulong_t],,,
+diff --git a/src/Makefile.am b/src/Makefile.am
+index eec669778..efe6881c0 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -545,6 +545,7 @@ EXTRA_DIST = \
+ linux/generic/shuffle_scno.c \
+ linux/generic/signal.h.in \
+ linux/generic/signalent.h \
++ linux/generic/socket.h.in \
+ linux/generic/subcallent.h \
+ linux/generic/syscallent-common.h \
+ linux/generic/syscallent_base_nr.h \
+@@ -1018,7 +1019,11 @@ CLEANFILES = $(ioctl_redefs_h) $(ioctlent_h) $(mpers_preproc_files) \
+ ioctl_iocdef.h ioctl_iocdef.i \
+ bpf_attr_check.c native_printer_decls.h native_printer_defs.h \
+ printers.h sen.h sys_func.h
+-DISTCLEANFILES = gnu/stubs-32.h gnu/stubs-x32.h linux/generic/linux/signal.h
++DISTCLEANFILES = gnu/stubs-32.h \
++ gnu/stubs-x32.h \
++ linux/generic/linux/signal.h \
++ linux/generic/linux/socket.h \
++ #
+
+ include scno.am
+
+diff --git a/src/linux/generic/socket.h.in b/src/linux/generic/socket.h.in
+new file mode 100644
+index 000000000..585771ee9
+--- /dev/null
++++ b/src/linux/generic/socket.h.in
+@@ -0,0 +1,7 @@
++#include_next <linux/socket.h>
++/*
++ * <sys/socket.h> expects <linux/socket.h> to define struct sockaddr_storage.
++ */
++#ifndef sockaddr_storage
++# define sockaddr_storage __kernel_sockaddr_storage
++#endif