connman: clean up musl fixes

The upstreamable include fixes have been sent upstream.  The patch set adds
AC_USE_SYSTEM_EXTENSIONS so we don't need to explictly define _GNU_SOURCE
anymore.

(From OE-Core rev: 6582e066fd9f9d4880e84cccbcdbb68606389309)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton 2016-08-09 16:11:44 +01:00 committed by Richard Purdie
parent fc08ecf8b2
commit ad79a894a7
4 changed files with 425 additions and 122 deletions

View File

@ -29,7 +29,6 @@ EXTRA_OECONF += "\
--disable-polkit \
--enable-client \
"
CFLAGS += "-D_GNU_SOURCE"
PACKAGECONFIG ??= "wispr \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd','systemd', '', d)} \

View File

@ -1,118 +0,0 @@
From 67645a01a2f3f52625d8dd77f2811a9e213e1b7d Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 13 Sep 2015 13:28:20 -0700
Subject: [PATCH] Fix header inclusions for musl
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Upstream-Status: Pending
gweb/gresolv.c | 1 +
plugins/wifi.c | 3 +--
src/tethering.c | 2 --
tools/dhcp-test.c | 1 -
tools/dnsproxy-test.c | 1 +
5 files changed, 3 insertions(+), 5 deletions(-)
Index: connman-1.30/gweb/gresolv.c
===================================================================
--- connman-1.30.orig/gweb/gresolv.c
+++ connman-1.30/gweb/gresolv.c
@@ -28,6 +28,7 @@
#include <stdarg.h>
#include <string.h>
#include <stdlib.h>
+#include <stdio.h>
#include <resolv.h>
#include <sys/types.h>
#include <sys/socket.h>
Index: connman-1.30/plugins/wifi.c
===================================================================
--- connman-1.30.orig/plugins/wifi.c
+++ connman-1.30/plugins/wifi.c
@@ -30,9 +30,8 @@
#include <string.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
-#include <linux/if_arp.h>
-#include <linux/wireless.h>
#include <net/ethernet.h>
+#include <linux/wireless.h>
#ifndef IFF_LOWER_UP
#define IFF_LOWER_UP 0x10000
Index: connman-1.30/src/tethering.c
===================================================================
--- connman-1.30.orig/src/tethering.c
+++ connman-1.30/src/tethering.c
@@ -31,10 +31,8 @@
#include <stdio.h>
#include <sys/ioctl.h>
#include <net/if.h>
-#include <linux/sockios.h>
#include <string.h>
#include <fcntl.h>
-#include <linux/if_tun.h>
#include <netinet/in.h>
#include <linux/if_bridge.h>
Index: connman-1.30/tools/dhcp-test.c
===================================================================
--- connman-1.30.orig/tools/dhcp-test.c
+++ connman-1.30/tools/dhcp-test.c
@@ -33,7 +33,6 @@
#include <arpa/inet.h>
#include <net/route.h>
#include <net/ethernet.h>
-#include <linux/if_arp.h>
#include <gdhcp/gdhcp.h>
Index: connman-1.30/tools/dnsproxy-test.c
===================================================================
--- connman-1.30.orig/tools/dnsproxy-test.c
+++ connman-1.30/tools/dnsproxy-test.c
@@ -27,6 +27,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <stdio.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <sys/types.h>
Index: connman-1.30/configure.ac
===================================================================
--- connman-1.30.orig/configure.ac
+++ connman-1.30/configure.ac
@@ -173,6 +173,8 @@ AM_CONDITIONAL(PPTP_BUILTIN, test "${ena
AC_CHECK_HEADERS([execinfo.h])
+AC_CHECK_MEMBERS([struct in6_pktinfo.ipi6_addr], [], [], [[#include <netinet/in.h>]])
+
AC_CHECK_HEADERS(resolv.h, dummy=yes,
AC_MSG_ERROR(resolver header files are required))
AC_CHECK_LIB(resolv, ns_initparse, dummy=yes, [
Index: connman-1.30/gdhcp/common.h
===================================================================
--- connman-1.30.orig/gdhcp/common.h
+++ connman-1.30/gdhcp/common.h
@@ -19,6 +19,7 @@
*
*/
+#include <config.h>
#include <netinet/udp.h>
#include <netinet/ip.h>
@@ -170,8 +171,8 @@ static const uint8_t dhcp_option_lengths
[OPTION_U32] = 4,
};
-/* already defined within netinet/in.h if using GNU compiler */
-#ifndef __USE_GNU
+/* already defined within netinet/in.h if using GNU or musl libc */
+#ifndef HAVE_STRUCT_IN6_PKTINFO_IPI6_ADDR
struct in6_pktinfo {
struct in6_addr ipi6_addr; /* src/dst IPv6 address */
unsigned int ipi6_ifindex; /* send/recv interface index */

View File

@ -0,0 +1,423 @@
Fix various issues which cause problems under musl.
Upstream-Status: Submitted
Signed-off-by: Ross Burton <ross.burton@intel.com>
From 630516bcc0233b047f65665c003201ba6e77453d Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
Date: Tue, 9 Aug 2016 16:22:36 +0100
Subject: [PATCH 1/3] Use AC_USE_SYSTEM_EXTENSIONS
Instead of using #define _GNU_SOURCE in some source files which causes problems
when building with musl as more files need the define, simply use
AC_USE_SYSTEM_EXTENSIONS in configure.ac to get it defined globally.
---
configure.ac | 1 +
gdhcp/client.c | 1 -
plugins/tist.c | 1 -
src/backtrace.c | 1 -
src/inet.c | 1 -
src/log.c | 1 -
src/ntp.c | 1 -
src/resolver.c | 1 -
src/rfkill.c | 1 -
src/stats.c | 1 -
src/timezone.c | 1 -
tools/stats-tool.c | 1 -
tools/tap-test.c | 1 -
tools/wispr.c | 1 -
vpn/plugins/vpn.c | 1 -
15 files changed, 1 insertion(+), 14 deletions(-)
diff --git a/configure.ac b/configure.ac
index 6e66ab3..bacf5ec 100644
--- a/configure.ac
+++ b/configure.ac
@@ -20,6 +20,7 @@ AC_SUBST(abs_top_srcdir)
AC_SUBST(abs_top_builddir)
AC_LANG_C
+AC_USE_SYSTEM_EXTENSIONS
AC_PROG_CC
AM_PROG_CC_C_O
diff --git a/gdhcp/client.c b/gdhcp/client.c
index fbb40ab..3aeb089 100644
--- a/gdhcp/client.c
+++ b/gdhcp/client.c
@@ -23,7 +23,6 @@
#include <config.h>
#endif
-#define _GNU_SOURCE
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
diff --git a/plugins/tist.c b/plugins/tist.c
index ad5ef79..cc2800a 100644
--- a/plugins/tist.c
+++ b/plugins/tist.c
@@ -23,7 +23,6 @@
#include <config.h>
#endif
-#define _GNU_SOURCE
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
diff --git a/src/backtrace.c b/src/backtrace.c
index 6a66c0a..4dbdda8 100644
--- a/src/backtrace.c
+++ b/src/backtrace.c
@@ -24,7 +24,6 @@
#include <config.h>
#endif
-#define _GNU_SOURCE
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
diff --git a/src/inet.c b/src/inet.c
index 69ded19..81d92c2 100644
--- a/src/inet.c
+++ b/src/inet.c
@@ -25,7 +25,6 @@
#include <config.h>
#endif
-#define _GNU_SOURCE
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
diff --git a/src/log.c b/src/log.c
index 9bae4a3..f7e82e5 100644
--- a/src/log.c
+++ b/src/log.c
@@ -23,7 +23,6 @@
#include <config.h>
#endif
-#define _GNU_SOURCE
#include <stdio.h>
#include <unistd.h>
#include <stdarg.h>
diff --git a/src/ntp.c b/src/ntp.c
index dd246eb..db8ae96 100644
--- a/src/ntp.c
+++ b/src/ntp.c
@@ -23,7 +23,6 @@
#include <config.h>
#endif
-#define _GNU_SOURCE
#include <errno.h>
#include <fcntl.h>
#include <unistd.h>
diff --git a/src/resolver.c b/src/resolver.c
index fbe4be7..ef61f92 100644
--- a/src/resolver.c
+++ b/src/resolver.c
@@ -23,7 +23,6 @@
#include <config.h>
#endif
-#define _GNU_SOURCE
#include <stdio.h>
#include <errno.h>
#include <fcntl.h>
diff --git a/src/rfkill.c b/src/rfkill.c
index 2bfb092..af49d12 100644
--- a/src/rfkill.c
+++ b/src/rfkill.c
@@ -23,7 +23,6 @@
#include <config.h>
#endif
-#define _GNU_SOURCE
#include <stdio.h>
#include <errno.h>
#include <fcntl.h>
diff --git a/src/stats.c b/src/stats.c
index 26343b1..cfcdc94 100644
--- a/src/stats.c
+++ b/src/stats.c
@@ -23,7 +23,6 @@
#include <config.h>
#endif
-#define _GNU_SOURCE
#include <errno.h>
#include <sys/mman.h>
#include <sys/types.h>
diff --git a/src/timezone.c b/src/timezone.c
index e346b11..8e91267 100644
--- a/src/timezone.c
+++ b/src/timezone.c
@@ -23,7 +23,6 @@
#include <config.h>
#endif
-#define _GNU_SOURCE
#include <errno.h>
#include <stdio.h>
#include <fcntl.h>
diff --git a/tools/stats-tool.c b/tools/stats-tool.c
index b076478..428d94b 100644
--- a/tools/stats-tool.c
+++ b/tools/stats-tool.c
@@ -22,7 +22,6 @@
#include <config.h>
#endif
-#define _GNU_SOURCE
#include <sys/mman.h>
#include <sys/types.h>
#include <sys/stat.h>
diff --git a/tools/tap-test.c b/tools/tap-test.c
index fdc098a..57917f5 100644
--- a/tools/tap-test.c
+++ b/tools/tap-test.c
@@ -23,7 +23,6 @@
#include <config.h>
#endif
-#define _GNU_SOURCE
#include <stdio.h>
#include <errno.h>
#include <fcntl.h>
diff --git a/tools/wispr.c b/tools/wispr.c
index d5f9341..e56dfc1 100644
--- a/tools/wispr.c
+++ b/tools/wispr.c
@@ -23,7 +23,6 @@
#include <config.h>
#endif
-#define _GNU_SOURCE
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
diff --git a/vpn/plugins/vpn.c b/vpn/plugins/vpn.c
index 9a42385..479c3a7 100644
--- a/vpn/plugins/vpn.c
+++ b/vpn/plugins/vpn.c
@@ -23,7 +23,6 @@
#include <config.h>
#endif
-#define _GNU_SOURCE
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
--
2.8.1
From b8b7878e6cb2a1ed4fcfa256f7e232511a40e3d9 Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
Date: Tue, 9 Aug 2016 15:37:50 +0100
Subject: [PATCH 2/3] Check for in6_pktinfo.ipi6_addr explicitly
Instead of assuming that just glibc has this structure, check for it at
configure as musl also has it.
Based on work by Khem Raj <raj.khem@gmail.com>.
---
configure.ac | 2 ++
gdhcp/common.h | 5 +++--
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index bacf5ec..ad00456 100644
--- a/configure.ac
+++ b/configure.ac
@@ -186,6 +186,8 @@ AC_CHECK_LIB(resolv, ns_initparse, dummy=yes, [
AC_CHECK_HEADERS([execinfo.h])
AM_CONDITIONAL([BACKTRACE], [test "${ac_cv_header_execinfo_h}" = "yes"])
+AC_CHECK_MEMBERS([struct in6_pktinfo.ipi6_addr], [], [], [[#include <netinet/in.h>]])
+
AC_CHECK_FUNC(signalfd, dummy=yes,
AC_MSG_ERROR(signalfd support is required))
diff --git a/gdhcp/common.h b/gdhcp/common.h
index 75abc18..6899499 100644
--- a/gdhcp/common.h
+++ b/gdhcp/common.h
@@ -19,6 +19,7 @@
*
*/
+#include <config.h>
#include <netinet/udp.h>
#include <netinet/ip.h>
@@ -170,8 +171,8 @@ static const uint8_t dhcp_option_lengths[] = {
[OPTION_U32] = 4,
};
-/* already defined within netinet/in.h if using GNU compiler */
-#ifndef __USE_GNU
+/* already defined within netinet/in.h if using glibc or musl */
+#ifndef HAVE_STRUCT_IN6_PKTINFO_IPI6_ADDR
struct in6_pktinfo {
struct in6_addr ipi6_addr; /* src/dst IPv6 address */
unsigned int ipi6_ifindex; /* send/recv interface index */
--
2.8.1
From c0726e432fa0274a2b9c70179b03df6720972816 Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
Date: Tue, 9 Aug 2016 15:19:23 +0100
Subject: [PATCH 3/3] Rationalise includes
gweb/gresolv.c uses snprintf() and isspace() so it should include stdio.h and
ctype.h.
tools/dnsproxy-test uses functions from stdio.h.
musl warns when sys/ headers are included when the non-sys form should be used,
so switch sys/errno.h and so on to errno.h.
musl also causes redefinition errors when pieces of the networking headers are
included, so remove the redundant includes.
Based on work by Khem Raj <raj.khem@gmail.com>.
---
gweb/gresolv.c | 2 ++
plugins/wifi.c | 3 +--
src/ippool.c | 1 -
src/iptables.c | 2 +-
src/tethering.c | 2 --
tools/dhcp-test.c | 1 -
tools/dnsproxy-test.c | 1 +
tools/private-network-test.c | 2 +-
tools/tap-test.c | 2 +-
9 files changed, 7 insertions(+), 9 deletions(-)
diff --git a/gweb/gresolv.c b/gweb/gresolv.c
index 8a51a9f..d55027c 100644
--- a/gweb/gresolv.c
+++ b/gweb/gresolv.c
@@ -23,11 +23,13 @@
#include <config.h>
#endif
+#include <ctype.h>
#include <errno.h>
#include <unistd.h>
#include <stdarg.h>
#include <string.h>
#include <stdlib.h>
+#include <stdio.h>
#include <resolv.h>
#include <sys/types.h>
#include <sys/socket.h>
diff --git a/plugins/wifi.c b/plugins/wifi.c
index 9d56671..148131d 100644
--- a/plugins/wifi.c
+++ b/plugins/wifi.c
@@ -30,9 +30,8 @@
#include <string.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
-#include <linux/if_arp.h>
-#include <linux/wireless.h>
#include <net/ethernet.h>
+#include <linux/wireless.h>
#ifndef IFF_LOWER_UP
#define IFF_LOWER_UP 0x10000
diff --git a/src/ippool.c b/src/ippool.c
index cea1dcc..8a645da 100644
--- a/src/ippool.c
+++ b/src/ippool.c
@@ -28,7 +28,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
-#include <sys/errno.h>
#include <sys/socket.h>
#include "connman.h"
diff --git a/src/iptables.c b/src/iptables.c
index 5ef757a..82e3ac4 100644
--- a/src/iptables.c
+++ b/src/iptables.c
@@ -28,7 +28,7 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
-#include <sys/errno.h>
+#include <errno.h>
#include <sys/socket.h>
#include <xtables.h>
#include <inttypes.h>
diff --git a/src/tethering.c b/src/tethering.c
index 3153349..ad062d5 100644
--- a/src/tethering.c
+++ b/src/tethering.c
@@ -31,10 +31,8 @@
#include <stdio.h>
#include <sys/ioctl.h>
#include <net/if.h>
-#include <linux/sockios.h>
#include <string.h>
#include <fcntl.h>
-#include <linux/if_tun.h>
#include <netinet/in.h>
#include <linux/if_bridge.h>
diff --git a/tools/dhcp-test.c b/tools/dhcp-test.c
index c34e10a..eae66fc 100644
--- a/tools/dhcp-test.c
+++ b/tools/dhcp-test.c
@@ -33,7 +33,6 @@
#include <arpa/inet.h>
#include <net/route.h>
#include <net/ethernet.h>
-#include <linux/if_arp.h>
#include <gdhcp/gdhcp.h>
diff --git a/tools/dnsproxy-test.c b/tools/dnsproxy-test.c
index 551cae9..371e2e2 100644
--- a/tools/dnsproxy-test.c
+++ b/tools/dnsproxy-test.c
@@ -24,6 +24,7 @@
#endif
#include <errno.h>
+#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
diff --git a/tools/private-network-test.c b/tools/private-network-test.c
index 3dd115b..2828bb3 100644
--- a/tools/private-network-test.c
+++ b/tools/private-network-test.c
@@ -32,7 +32,7 @@
#include <stdlib.h>
#include <string.h>
#include <signal.h>
-#include <sys/poll.h>
+#include <poll.h>
#include <sys/signalfd.h>
#include <unistd.h>
diff --git a/tools/tap-test.c b/tools/tap-test.c
index 57917f5..cb3ee62 100644
--- a/tools/tap-test.c
+++ b/tools/tap-test.c
@@ -28,7 +28,7 @@
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
-#include <sys/poll.h>
+#include <poll.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
--
2.8.1

View File

@ -4,10 +4,9 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \
file://0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch \
file://connman \
file://no-version-scripts.patch \
file://includes.patch \
"
SRC_URI_append_libc-musl = "file://0002-resolve-musl-does-not-implement-res_ninit.patch \
file://0003-Fix-header-inclusions-for-musl.patch \
"
SRC_URI_append_libc-musl = "file://0002-resolve-musl-does-not-implement-res_ninit.patch"
SRC_URI[md5sum] = "c51903fd3e7a6a371d12ac5d72a1fa01"
SRC_URI[sha256sum] = "bc8946036fa70124d663136f9f6b6238d897ca482782df907b07a428b09df5a0"