aboutsummaryrefslogtreecommitdiffstats
path: root/main/irqbalance
diff options
context:
space:
mode:
authorLeonardo Arena <rnalrd@alpinelinux.org>2017-01-10 07:55:53 +0000
committerLeonardo Arena <rnalrd@alpinelinux.org>2017-01-10 07:55:53 +0000
commitabdac0974cc607caae75add255850b1e0fc3b250 (patch)
tree2b0ea2953352587eb13891c8d53238f4e71bcf36 /main/irqbalance
parenta86921b6522c4459134657c382dc5e22828644d9 (diff)
downloadaports-abdac0974cc607caae75add255850b1e0fc3b250.tar.bz2
aports-abdac0974cc607caae75add255850b1e0fc3b250.tar.xz
main/irqbalance: fix build for aarch64 and warnings for musl
Diffstat (limited to 'main/irqbalance')
-rw-r--r--main/irqbalance/APKBUILD16
-rw-r--r--main/irqbalance/aarch64-fix.patch27
-rw-r--r--main/irqbalance/musl-fixes.patch84
3 files changed, 123 insertions, 4 deletions
diff --git a/main/irqbalance/APKBUILD b/main/irqbalance/APKBUILD
index ace160fa0d..36f9ef00ce 100644
--- a/main/irqbalance/APKBUILD
+++ b/main/irqbalance/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=irqbalance
pkgver=1.2.0
-pkgrel=0
+pkgrel=1
pkgdesc="Daemon that distributes interrupts over the processors"
url="https://github.com/Irqbalance/irqbalance"
arch="all"
@@ -15,6 +15,8 @@ subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/Irqbalance/irqbalance/archive/v$pkgver.tar.gz
irqbalance.confd
irqbalance.initd
+ aarch64-fix.patch
+ musl-fixes.patch
"
builddir="$srcdir"/$pkgname-$pkgver
@@ -47,10 +49,16 @@ package() {
md5sums="d1b3f2c31389f2ab955dfa3d02f9f296 irqbalance-1.2.0.tar.gz
731fa9a46bc4fa380604bfb76d96d1ed irqbalance.confd
-ab27fa1e4ab71fc6bfe92cbf3a07c2cb irqbalance.initd"
+ab27fa1e4ab71fc6bfe92cbf3a07c2cb irqbalance.initd
+dd86ee710540d43e45da9346285745be aarch64-fix.patch
+460a3a752470abc76892d4b60907b8be musl-fixes.patch"
sha256sums="0efe5d2a0947b54d89c7196a48eca9b3b33c80bc15964e4226a0f7d3fd9535b2 irqbalance-1.2.0.tar.gz
98bb18cd977a0706c3e63a36a7dfb2aa01cd84cabb719da0ea5bf795e5d02413 irqbalance.confd
-d248c538d5d74329979e4204eafa920af2b8addeccd25b53ff51f6d689fe57f0 irqbalance.initd"
+d248c538d5d74329979e4204eafa920af2b8addeccd25b53ff51f6d689fe57f0 irqbalance.initd
+985bd705b8a4af9e181d5bb7ddab93db1b15a1d330a237cc83259604ac672922 aarch64-fix.patch
+6ac62031457e519a7e1d57f1c9609a710d985d8f12d96f00e1920f565f6cdd44 musl-fixes.patch"
sha512sums="02510d0d4dc069570b5f98f3b8191384593a6ed9a88c65c87f5a4261f375c291d95c401b01c03ef9d80834925dd124a088f56ac90c5f290815e26337d4f61c1b irqbalance-1.2.0.tar.gz
90e7ed187b4dccd6f6c4383ba54d6e1aed1645240e44aaf02db1b70b56594b1a828644d671e6db91212417981b1d5e53d1ecfd4b366496dbcb484d1064d7d24c irqbalance.confd
-92de6d1f0dcfbc0744dd2de1c1848f6322271af245249a01c4464ea1d36289f2cb35714e6bf7e9874d633b3d02359515b6354cc7ae6ad3008884d53151d8638c irqbalance.initd"
+92de6d1f0dcfbc0744dd2de1c1848f6322271af245249a01c4464ea1d36289f2cb35714e6bf7e9874d633b3d02359515b6354cc7ae6ad3008884d53151d8638c irqbalance.initd
+bf584c1f6e90ecb1582d0d7dcaf397fddce702a0798948a1845a188f998fe4edc7fac2123e16d8ea1487e30461d249f70e5b689c8d948a7557806e46f4ef369d aarch64-fix.patch
+6abfe4dee0b76edb30e24378995cf425b6d8309a7a4f2c1ebd6458bde68103b00273ce36e99d04b1990ca54b1d1a0c503fc37bdffbbf2e704f33b32e09f6db69 musl-fixes.patch"
diff --git a/main/irqbalance/aarch64-fix.patch b/main/irqbalance/aarch64-fix.patch
new file mode 100644
index 0000000000..3c317b5faf
--- /dev/null
+++ b/main/irqbalance/aarch64-fix.patch
@@ -0,0 +1,27 @@
+From 65d71ea5f80b6d56907bd67825981042eaf98d6e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
+Date: Tue, 10 Jan 2017 09:51:32 +0200
+Subject: [PATCH 3/3] fix aarch64 compile error due to undefined variable
+
+fixes #36
+---
+ procinterrupts.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/procinterrupts.c b/procinterrupts.c
+index 6b37a88..c5c034c 100644
+--- a/procinterrupts.c
++++ b/procinterrupts.c
+@@ -148,6 +148,9 @@ GList* collect_full_irq_list()
+ char *line = NULL;
+ size_t size = 0;
+ char *irq_name, *irq_mod, *savedptr, *last_token, *p;
++#ifdef AARCH64
++ char *tmp;
++#endif
+
+ file = fopen("/proc/interrupts", "r");
+ if (!file)
+--
+2.11.0
+
diff --git a/main/irqbalance/musl-fixes.patch b/main/irqbalance/musl-fixes.patch
new file mode 100644
index 0000000000..1d7508311a
--- /dev/null
+++ b/main/irqbalance/musl-fixes.patch
@@ -0,0 +1,84 @@
+From af7523e4891d13c3c06fef056b243faa0547e406 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
+Date: Tue, 10 Jan 2017 09:44:04 +0200
+Subject: [PATCH 1/3] Add missing #include <string.h> in user interface files
+
+Fixes several warnings when compiling under musl, e.g.
+
+ui/irqbalance-ui.c: In function 'create_credentials_msg':
+ui/irqbalance-ui.c:32:2: warning: implicit declaration of function 'memset' [-Wimplicit-function-declaration]
+ memset(msg, 0, sizeof(struct msghdr));
+ ^~~~~~
+ui/irqbalance-ui.c:32:2: warning: incompatible implicit declaration of built-in function 'memset'
+ui/irqbalance-ui.c:32:2: note: include '<string.h>' or provide a declaration of 'memset'
+ui/irqbalance-ui.c: In function 'init_connection':
+ui/irqbalance-ui.c:49:2: warning: incompatible implicit declaration of built-in function 'memset'
+ memset(&addr, 0, sizeof(struct sockaddr_un));
+ ^~~~~~
+---
+ ui/irqbalance-ui.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/ui/irqbalance-ui.c b/ui/irqbalance-ui.c
+index 74ba93c..75fc60f 100644
+--- a/ui/irqbalance-ui.c
++++ b/ui/irqbalance-ui.c
+@@ -3,6 +3,7 @@
+ #include <errno.h>
+ #include <netdb.h>
+ #include <stdio.h>
++#include <string.h>
+ #include <stdlib.h>
+ #include <sys/socket.h>
+ #include <sys/types.h>
+--
+2.11.0
+
+
+From 59f2a0e9bfd5b98bd5671174eb7e32b4e0b3ba2c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
+Date: Tue, 10 Jan 2017 09:46:17 +0200
+Subject: [PATCH 2/3] Fix struct msghdr initialization
+
+musl defines struct msghdr with padding fields to be strictly
+POSIX compliant. The current code gives following warnings:
+
+irqbalance.c: In function 'sock_handle':
+irqbalance.c:333:42: warning: initialization makes integer from pointer without a cast [-Wint-conversion]
+ struct msghdr msg = { NULL, 0, &iov, 1, NULL, 0, 0 };
+ ^~~~
+irqbalance.c:333:42: note: (near initialization for 'msg.__pad1')
+irqbalance.c:333:9: warning: missing initializer for field '__pad2' of 'struct msghdr' [-Wmissing-field-initializers]
+ struct msghdr msg = { NULL, 0, &iov, 1, NULL, 0, 0 };
+ ^~~~~~
+In file included from /usr/include/sys/socket.h:20:0,
+ from /usr/include/fortify/sys/socket.h:20,
+ from irqbalance.c:34:
+/usr/include/bits/socket.h:7:28: note: '__pad2' declared here
+ socklen_t msg_controllen, __pad2;
+ ^~~~~~
+
+Fix this by not relying on field ordering. Alternatively
+designated initializers could be used, but as they are not
+used elsewhere in the code, I used explicit assignments.
+---
+ irqbalance.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/irqbalance.c b/irqbalance.c
+index 35ad4da..95bb80a 100644
+--- a/irqbalance.c
++++ b/irqbalance.c
+@@ -330,7 +330,9 @@ gboolean sock_handle(gint fd, GIOCondition condition, gpointer user_data __attri
+ int valid_user = 0;
+
+ struct iovec iov = { buff, 500 };
+- struct msghdr msg = { NULL, 0, &iov, 1, NULL, 0, 0 };
++ struct msghdr msg = { 0 };
++ msg.msg_iov = &iov;
++ msg.msg_iovlen = 1;
+ msg.msg_control = malloc(CMSG_SPACE(sizeof(struct ucred)));
+ msg.msg_controllen = CMSG_SPACE(sizeof(struct ucred));
+
+--
+2.11.0