bcusdk: make it build with the musl C library

This commit makes bcusdk build with the musl C library by:

 * Adding a dependency on argp-standalone

 * Adding a patch to fix the incorrect usage of <sys/cdefs.h>

 * Adding a patch to fix a missing header include for fd_set

Both patches have been submitted upstream,
https://sourceforge.net/p/bcusdk/patches/3/.

Fixes:

  http://autobuild.buildroot.net/results/46054f28d3fde173dd8f880fa8ac2784c8e1750f/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Thomas Petazzoni 2015-08-08 17:50:55 +02:00
parent af84025bc8
commit feaa241ce3
3 changed files with 80 additions and 1 deletions

View file

@ -0,0 +1,48 @@
From c36db3f798bf576f42d81a0c51198b17d7112e8c Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Sat, 8 Aug 2015 17:43:28 +0200
Subject: [PATCH] Do not use the non-standard <sys/cdefs.h> header
<sys/cdefs.h> is glibc-specific, and should be used only internally by
glibc, not by external libraries/programs. It is not available in all
standard C libraries.
Submitted upstream: https://sourceforge.net/p/bcusdk/patches/3/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
eibd/include/eibclient.h | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/eibd/include/eibclient.h b/eibd/include/eibclient.h
index 2781878..b095a1c 100644
--- a/eibd/include/eibclient.h
+++ b/eibd/include/eibclient.h
@@ -27,10 +27,11 @@
#ifndef EIBCLIENT_H
#define EIBCLIENT_H
-#include <sys/cdefs.h>
#include <stdint.h>
-__BEGIN_DECLS;
+#ifdef __cplusplus
+extern "C" {
+#endif
#include "eibloadresult.h"
@@ -889,5 +890,9 @@ int EIB_Cache_LastUpdates_async (EIBConnection * con, uint16_t start,
uint16_t * end);
-__END_DECLS
+
+#ifdef __cplusplus
+}
+#endif
+
#endif
--
2.5.0

View file

@ -0,0 +1,31 @@
From 2541ee3d709803096b17e45610ccc1404e2e5eee Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Sat, 8 Aug 2015 17:46:34 +0200
Subject: [PATCH] fd_set requires inclusion of <sys/select.h>
According to POSIX.1-2001, the definition fd_set and related macros is
in <sys/select.h>, so it should be included in files using fd_set to
make the code compatible with all standard C libraries.
Submitted upstream: https://sourceforge.net/p/bcusdk/patches/3/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
eibd/examples/common.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/eibd/examples/common.h b/eibd/examples/common.h
index 51fc514..f038da1 100644
--- a/eibd/examples/common.h
+++ b/eibd/examples/common.h
@@ -20,6 +20,7 @@
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
+#include <sys/select.h>
#include "eibclient.h"
/** unsigned char*/
--
2.5.0

View file

@ -3,7 +3,7 @@ config BR2_PACKAGE_BCUSDK
depends on BR2_USE_MMU # libpthsem
depends on BR2_INSTALL_LIBSTDCPP
select BR2_PACKAGE_LIBPTHSEM
select BR2_PACKAGE_ARGP_STANDALONE if BR2_TOOLCHAIN_USES_UCLIBC
select BR2_PACKAGE_ARGP_STANDALONE if BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_MUSL
help
A free development environment for the Bus Coupling Units of
the European Installation Bus.