]> code.ossystems Code Review - openembedded-core.git/commitdiff
expat: Don't use getrandom() in the -native case
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 14 Aug 2017 10:06:33 +0000 (11:06 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 15 Aug 2017 23:01:44 +0000 (00:01 +0100)
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.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-core/expat/expat.inc
meta/recipes-core/expat/expat/no_getrandom.patch [new file with mode: 0644]

index 067687e44a952715e73e6925b13dac80dba9f98c..0ee6c276d9910c1a474ccaccd70ec42bdc730742 100644 (file)
@@ -8,6 +8,9 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/expat/expat-${PV}.tar.bz2 \
            file://autotools.patch \
            file://libtool-tag.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 (file)
index 0000000..d64f1bf
--- /dev/null
@@ -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],