efivar: allow build with uClibc

Details at https://github.com/rhinstaller/efivar/issues/76.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
[Thomas: tweak the dependency, efivar still doesn't build with musl.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Andy Shevchenko 2016-11-27 16:32:03 +02:00 committed by Thomas Petazzoni
parent 7497818be7
commit 64551a8f5f
2 changed files with 41 additions and 4 deletions

View File

@ -0,0 +1,38 @@
From 2255601757a8a58baddad2d37d0bcc6b003a3732 Mon Sep 17 00:00:00 2001
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date: Fri, 25 Nov 2016 19:42:27 +0200
Subject: [PATCH] Allow build with uClibc
Basically this replaces type definitions in <uchar.h>.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
src/export.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/export.c b/src/export.c
index 7f2d4dd..72c02d1 100644
--- a/src/export.c
+++ b/src/export.c
@@ -21,11 +21,17 @@
#include <inttypes.h>
#include <stdint.h>
#include <stdlib.h>
-#include <uchar.h>
#include <efivar.h>
#include "lib.h"
+#ifdef __UCLIBC__
+typedef int_least16_t char16_t;
+typedef int_least32_t char32_t;
+#else
+#include <uchar.h>
+#endif
+
#define EFIVAR_MAGIC 0xf3df1597
#define ATTRS_UNSET 0xa5a5a5a5a5a5a5a5
--
2.10.2

View File

@ -9,9 +9,8 @@ config BR2_PACKAGE_EFIVAR
# toolchains.
depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS && \
!BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII
# doesn't build with uclibc due to lack of uchar.h
# doesn't build with musl due to lack of __bswap_constant_16
depends on BR2_TOOLCHAIN_USES_GLIBC
depends on !BR2_TOOLCHAIN_USES_MUSL
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
select BR2_PACKAGE_POPT
help
@ -19,9 +18,9 @@ config BR2_PACKAGE_EFIVAR
https://github.com/rhinstaller/efivar
comment "efivar requires a glibc toolchain w/ headers >= 3.12, gcc >= 4.9"
comment "efivar requires a glibc or uClibc toolchain w/ headers >= 3.12, gcc >= 4.9"
depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 || \
!BR2_TOOLCHAIN_USES_GLIBC || \
BR2_TOOLCHAIN_USES_MUSL || \
!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS && \
!BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII