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)

(From OE-Core rev: 450942db7f4638eba7ec262901fe1d7e1b1f6070)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2017-08-14 11:06:33 +01:00
parent 3f97cd3514
commit 960a653e0c
2 changed files with 26 additions and 0 deletions

View File

@ -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

View File

@ -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],