aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2017-08-14 11:06:33 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-09-04 20:53:52 +0100
commit95ef2df1ab682d73ed3418c32c31c0a8836a60f9 (patch)
treeb5248309531ab230516cd9d1dee18eee5240e0ff
parent5fb13f27b4781354034444fab2e4cc44a41a033a (diff)
downloadopenembedded-core-95ef2df1ab682d73ed3418c32c31c0a8836a60f9.zip
openembedded-core-95ef2df1ab682d73ed3418c32c31c0a8836a60f9.tar.gz
openembedded-core-95ef2df1ab682d73ed3418c32c31c0a8836a60f9.tar.bz2
expat: Don't use getrandom() in the -native case
getrandom() is only available in glibc 2.25+ and uninative may relocate binaries onto systems that don't have this function. For now, force the code to the older codepath until we can come up with a better solution for this kind of issue. (From OE-Core rev: da9ac8092497c3f2c246d3534f47e42cb2d9e4e8) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-core/expat/expat.inc3
-rw-r--r--meta/recipes-core/expat/expat/no_getrandom.patch23
2 files changed, 26 insertions, 0 deletions
diff --git a/meta/recipes-core/expat/expat.inc b/meta/recipes-core/expat/expat.inc
index 9fa0ca2..8bfd0bf 100644
--- a/meta/recipes-core/expat/expat.inc
+++ b/meta/recipes-core/expat/expat.inc
@@ -7,6 +7,9 @@ LICENSE = "MIT"
SRC_URI = "${SOURCEFORGE_MIRROR}/expat/expat-${PV}.tar.bz2 \
file://autotools.patch \
"
+
+SRC_URI_append_class-native = " file://no_getrandom.patch"
+
inherit autotools lib_package
# This package uses an archive format known to have issue with some
diff --git a/meta/recipes-core/expat/expat/no_getrandom.patch b/meta/recipes-core/expat/expat/no_getrandom.patch
new file mode 100644
index 0000000..d64f1bf
--- /dev/null
+++ b/meta/recipes-core/expat/expat/no_getrandom.patch
@@ -0,0 +1,23 @@
+The native version of expat may be used on older systems which dont have glibc 2.25
+and hence don't have getrandom() thanks to uninative. Disable the libc call and
+use the syscall instead to avoid a compatibility issue until we have 2.25 everywhere
+we support with uninative.
+
+RP
+2017/8/14
+
+Upstream-Status: Inappropriate
+
+Index: expat-2.2.3/configure.ac
+===================================================================
+--- expat-2.2.3.orig/configure.ac
++++ expat-2.2.3/configure.ac
+@@ -151,7 +151,7 @@ AC_LINK_IFELSE([AC_LANG_SOURCE([
+ #include <stdlib.h> /* for NULL */
+ #include <sys/random.h>
+ int main() {
+- return getrandom(NULL, 0U, 0U);
++ return getrandomBREAKME(NULL, 0U, 0U);
+ }
+ ])], [
+ AC_DEFINE([HAVE_GETRANDOM], [1],