diff --git a/package/acpid/0003-support-for-non-glibc-libcs.patch b/package/acpid/0003-support-for-non-glibc-libcs.patch new file mode 100644 index 0000000000..f152d32c1d --- /dev/null +++ b/package/acpid/0003-support-for-non-glibc-libcs.patch @@ -0,0 +1,184 @@ +From a3dac1c3cee169e52c7d644dd565235a1cd833e3 Mon Sep 17 00:00:00 2001 +From: Brendan Heading +Date: Wed, 22 Jul 2015 23:10:11 +0100 +Subject: [PATCH] support for non-glibc libcs + +Added a TEMP_FAILURE_RETRY macro. This is a glibcism provided by +glibc and uclibc, but missing from musl (& possibly other libcs). + +Upstream-status: submitted (see https://sourceforge.net/p/acpid2/tickets/7/) +--- + acpi_listen.c | 2 ++ + acpid.c | 1 + + event.c | 2 ++ + input_layer.c | 1 + + kacpimon/libnetlink.h | 2 ++ + libc_compat.h | 40 ++++++++++++++++++++++++++++++++++++++++ + libnetlink.c | 2 ++ + netlink.c | 1 + + proc.c | 1 + + ud_socket.c | 1 + + 10 files changed, 53 insertions(+) + create mode 100644 libc_compat.h + +diff --git a/acpi_listen.c b/acpi_listen.c +index d0bc175..839e4f9 100644 +--- a/acpi_listen.c ++++ b/acpi_listen.c +@@ -39,6 +39,8 @@ + #include "acpid.h" + #include "ud_socket.h" + ++#include "libc_compat.h" ++ + static int handle_cmdline(int *argc, char ***argv); + static char *read_line(int fd); + +diff --git a/acpid.c b/acpid.c +index 23f1e58..8555c82 100644 +--- a/acpid.c ++++ b/acpid.c +@@ -41,6 +41,7 @@ + #include "input_layer.h" + #include "inotify_handler.h" + #include "netlink.h" ++#include "libc_compat.h" + + static int handle_cmdline(int *argc, char ***argv); + static void close_fds(void); +diff --git a/event.c b/event.c +index 324078f..3b069a2 100644 +--- a/event.c ++++ b/event.c +@@ -39,6 +39,8 @@ + #include "log.h" + #include "sock.h" + #include "ud_socket.h" ++#include "libc_compat.h" ++ + #include "event.h" + /* + * What is a rule? It's polymorphic, pretty much. +diff --git a/input_layer.c b/input_layer.c +index 9aa19c6..cbf8085 100644 +--- a/input_layer.c ++++ b/input_layer.c +@@ -42,6 +42,7 @@ + #include "log.h" + #include "connection_list.h" + #include "event.h" ++#include "libc_compat.h" + + #include "input_layer.h" + +diff --git a/kacpimon/libnetlink.h b/kacpimon/libnetlink.h +index 6185cbc..0c61896 100644 +--- a/kacpimon/libnetlink.h ++++ b/kacpimon/libnetlink.h +@@ -7,6 +7,8 @@ + #include + #include + ++#include "libc_compat.h" ++ + struct rtnl_handle + { + int fd; +diff --git a/libc_compat.h b/libc_compat.h +new file mode 100644 +index 0000000..39f2336 +--- /dev/null ++++ b/libc_compat.h +@@ -0,0 +1,40 @@ ++/* ++ * libc_compat.h - implement defs/macros missing from some libcs ++ * ++ * Copyright (C) 1999-2000 Andrew Henroid ++ * Copyright (C) 2001 Sun Microsystems ++ * Portions Copyright (C) 2004 Tim Hockin (thockin@hockin.org) ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ */ ++ ++#ifndef LIBC_COMPAT_H__ ++#define LIBC_COMPAT_H__ ++ ++/* Evaluate EXPRESSION, and repeat as long as it returns -1 with `errno' ++ set to EINTR. This macro is present on glibc/uclibc but may not be in other cases. */ ++ ++#ifndef ____GLIBC__ ++#ifndef TEMP_FAILURE_RETRY ++#define TEMP_FAILURE_RETRY(expression) \ ++ (__extension__ \ ++ ({ long int __result; \ ++ do __result = (long int) (expression); \ ++ while (__result == -1L && errno == EINTR); \ ++ __result; })) ++#endif ++#endif /* __GLIBC__ */ ++ ++#endif /* LIBC_COMPAT_H__ */ +diff --git a/libnetlink.c b/libnetlink.c +index e61d417..cc7aedc 100644 +--- a/libnetlink.c ++++ b/libnetlink.c +@@ -24,6 +24,8 @@ + #include + #include + ++#include "libc_compat.h" ++ + #include "libnetlink.h" + + void rtnl_close(struct rtnl_handle *rth) +diff --git a/netlink.c b/netlink.c +index c64e878..27e3536 100644 +--- a/netlink.c ++++ b/netlink.c +@@ -41,6 +41,7 @@ + #include "libnetlink.h" + #include "genetlink.h" + #include "acpi_genetlink.h" ++#include "libc_compat.h" + + #include "acpi_ids.h" + #include "connection_list.h" +diff --git a/proc.c b/proc.c +index 5bb8fa2..f96b913 100644 +--- a/proc.c ++++ b/proc.c +@@ -31,6 +31,7 @@ + #include "log.h" + #include "event.h" + #include "connection_list.h" ++#include "libc_compat.h" + + #include "proc.h" + +diff --git a/ud_socket.c b/ud_socket.c +index 2790686..1790917 100644 +--- a/ud_socket.c ++++ b/ud_socket.c +@@ -21,6 +21,7 @@ + #include "acpid.h" + #include "log.h" + #include "ud_socket.h" ++#include "libc_compat.h" + + int + ud_create_socket(const char *name, mode_t socketmode) +-- +2.4.3 +