netplug: add two patches to fix musl build issues

This commit adds two patches to netplug that are needed for this package
to build with musl:

 - One patch to add a missing header inclusion
 - One patch to fix a conflicting prototype on __assert_fail().

Fixes:

  http://autobuild.buildroot.net/results/c2a5dfedba46cc8eb3d0c5c43f1f76fe0bb1805f/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by:  "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Thomas Petazzoni 2016-08-05 22:52:36 +02:00
parent 0bb83105d2
commit 225e1681cc
2 changed files with 71 additions and 0 deletions

View file

@ -0,0 +1,20 @@
Add missing <time.h> include
netplug.h uses time_t, so it must include <time.h>. This fixes a build
issue with the musl C library.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Index: b/netplug.h
===================================================================
--- a/netplug.h
+++ b/netplug.h
@@ -20,7 +20,7 @@
#ifndef __netplug_h
#define __netplug_h
-
+#include <time.h>
#include <asm/types.h>
#include <sys/socket.h>
#include <linux/netlink.h>

View file

@ -0,0 +1,51 @@
Remove __assert_fail()
The netplug code uses the assert() macro in various places. In glibc
internally, assert() uses a function called __assert_fail() to print a
message and abort. Relying on internal glibc details, netplug
re-defines __assert_fail() in the hope that it will get called instead
of glibc internal version.
This attempt:
* Doesn't work with uClibc, which doesn't use any __assert_fail()
function at all. It doesn't fail to build, but it is entirely
useless.
* Fails to build with musl, which also defines __assert_fail(), but
with a different prototype.
We simply remove the __assert_fail() implementation, so that the C
library implementation of assert() just does its normal work. The only
functionality lost is that the message is displayed on the standard
output rather than in netplug's logs (and this was only working with
glibc anyway).
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Index: b/lib.c
===================================================================
--- a/lib.c
+++ b/lib.c
@@ -199,21 +199,6 @@
return x;
}
-
-void
-__assert_fail(const char *assertion, const char *file,
- unsigned int line, const char *function)
-{
- do_log(LOG_CRIT, "%s:%u: %s%sAssertion `%s' failed",
- file, line,
- function ? function : "",
- function ? ": " : "",
- assertion);
-
- abort();
-}
-
-
/*
* Local variables:
* c-file-style: "stroustrup"