summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-embedded/u-boot-tools/files/u-boot-tools-2019.10-musl-ulong.patch19
-rw-r--r--dev-embedded/u-boot-tools/u-boot-tools-2019.10.ebuild2
2 files changed, 21 insertions, 0 deletions
diff --git a/dev-embedded/u-boot-tools/files/u-boot-tools-2019.10-musl-ulong.patch b/dev-embedded/u-boot-tools/files/u-boot-tools-2019.10-musl-ulong.patch
new file mode 100644
index 000000000000..910e95a8cbf6
--- /dev/null
+++ b/dev-embedded/u-boot-tools/files/u-boot-tools-2019.10-musl-ulong.patch
@@ -0,0 +1,19 @@
+https://bugs.gentoo.org/703132
+
+include/compiler.h implies to define 'ulong' type.
+glibc and musl define it on different conditions.
+As a result tools fail to build on musl as:
+ include/env.h:159:1: error: unknown type name 'ulong'; did you mean 'long'?
+
+We fix it by defining 'ulong' unconditionally (as on BSD).
+
+--- a/include/compiler.h
++++ b/include/compiler.h
+@@ -44,6 +44,7 @@
+ #ifdef __linux__
+ # include <endian.h>
+ # include <byteswap.h>
++typedef unsigned long ulong;
+ #elif defined(__MACH__) || defined(__FreeBSD__)
+ # include <machine/endian.h>
+ typedef unsigned long ulong;
diff --git a/dev-embedded/u-boot-tools/u-boot-tools-2019.10.ebuild b/dev-embedded/u-boot-tools/u-boot-tools-2019.10.ebuild
index bcda5a2499b5..5e06655915d3 100644
--- a/dev-embedded/u-boot-tools/u-boot-tools-2019.10.ebuild
+++ b/dev-embedded/u-boot-tools/u-boot-tools-2019.10.ebuild
@@ -22,6 +22,8 @@ DEPEND="
S=${WORKDIR}/${MY_P}
+PATCHES=("${FILESDIR}"/${P}-musl-ulong.patch)
+
src_compile() {
# Unset a few KBUILD variables. Bug #540476
unset KBUILD_OUTPUT KBUILD_SRC