summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2022-08-23 23:34:41 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-03-14 14:59:10 +0000
commit1904daa987545990813ec0d40936803452ea990a (patch)
tree63872709455df22a077fca5c2f2432fb9253ac0b
parentc86b92df02e97a6bc4c478bd82738f7fdc40363d (diff)
downloadpoky-1904daa987545990813ec0d40936803452ea990a.tar.gz
apr: Use correct strerror_r implementation based on libc type
musl does not implement GNU extention of strerror_r but XSI compliant version, therefore add it via a packageconfig to set right variables during configure to cache the value. configure detection logic depends on runtime test which will always be wrong on cross compiles therefore backport a patch to make it possible to cache the needed configure variable. (From OE-Core rev: 993cfeaefa73e3b82cf15db78584e5f9b9f86ddf) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit ded3d76a844dd1aef9ac610fbe506bf76285369b) Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-support/apr/apr/0001-add-AC_CACHE_CHECK-for-strerror_r-return-type.patch52
-rw-r--r--meta/recipes-support/apr/apr_1.7.0.bb4
2 files changed, 56 insertions, 0 deletions
diff --git a/meta/recipes-support/apr/apr/0001-add-AC_CACHE_CHECK-for-strerror_r-return-type.patch b/meta/recipes-support/apr/apr/0001-add-AC_CACHE_CHECK-for-strerror_r-return-type.patch
new file mode 100644
index 0000000000..d0a9bd9129
--- /dev/null
+++ b/meta/recipes-support/apr/apr/0001-add-AC_CACHE_CHECK-for-strerror_r-return-type.patch
@@ -0,0 +1,52 @@
1From 8ca3c3306f1a149e51a3be6a4b1e47e9aee88262 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 23 Aug 2022 22:42:03 -0700
4Subject: [PATCH] add AC_CACHE_CHECK for strerror_r return type
5
6APR's configure script uses AC_TRY_RUN to detect whether the return type
7of strerror_r is int. When cross-compiling this defaults to no.
8
9This commit adds an AC_CACHE_CHECK so users who cross-compile APR may
10influence the outcome with a configure variable.
11
12Upstream-Status: Backport [https://svn.apache.org/viewvc?view=revision&revision=1875065]
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14---
15 build/apr_common.m4 | 11 ++++-------
16 1 file changed, 4 insertions(+), 7 deletions(-)
17
18diff --git a/build/apr_common.m4 b/build/apr_common.m4
19index cbf2a4c..42e75cf 100644
20--- a/build/apr_common.m4
21+++ b/build/apr_common.m4
22@@ -525,8 +525,9 @@ dnl string.
23 dnl
24 dnl
25 AC_DEFUN([APR_CHECK_STRERROR_R_RC], [
26-AC_MSG_CHECKING(for type of return code from strerror_r)
27-AC_TRY_RUN([
28+AC_CACHE_CHECK([whether return code from strerror_r has type int],
29+[ac_cv_strerror_r_rc_int],
30+[AC_TRY_RUN([
31 #include <errno.h>
32 #include <string.h>
33 #include <stdio.h>
34@@ -542,14 +543,10 @@ main()
35 }], [
36 ac_cv_strerror_r_rc_int=yes ], [
37 ac_cv_strerror_r_rc_int=no ], [
38- ac_cv_strerror_r_rc_int=no ] )
39+ ac_cv_strerror_r_rc_int=no ] ) ] )
40 if test "x$ac_cv_strerror_r_rc_int" = xyes; then
41 AC_DEFINE(STRERROR_R_RC_INT, 1, [Define if strerror returns int])
42- msg="int"
43-else
44- msg="pointer"
45 fi
46-AC_MSG_RESULT([$msg])
47 ] )
48
49 dnl
50--
512.37.2
52
diff --git a/meta/recipes-support/apr/apr_1.7.0.bb b/meta/recipes-support/apr/apr_1.7.0.bb
index b70edfaf42..b9d3e356da 100644
--- a/meta/recipes-support/apr/apr_1.7.0.bb
+++ b/meta/recipes-support/apr/apr_1.7.0.bb
@@ -24,6 +24,7 @@ SRC_URI = "${APACHE_MIRROR}/apr/${BPN}-${PV}.tar.bz2 \
24 file://libtoolize_check.patch \ 24 file://libtoolize_check.patch \
25 file://0001-Add-option-to-disable-timed-dependant-tests.patch \ 25 file://0001-Add-option-to-disable-timed-dependant-tests.patch \
26 file://autoconf270.patch \ 26 file://autoconf270.patch \
27 file://0001-add-AC_CACHE_CHECK-for-strerror_r-return-type.patch \
27 file://CVE-2021-35940.patch \ 28 file://CVE-2021-35940.patch \
28 " 29 "
29 30
@@ -44,9 +45,12 @@ CACHED_CONFIGUREVARS += "ac_cv_header_netinet_sctp_h=no ac_cv_header_netinet_sct
44CACHED_CONFIGUREVARS += "ac_cv_sizeof_struct_iovec=yes" 45CACHED_CONFIGUREVARS += "ac_cv_sizeof_struct_iovec=yes"
45CACHED_CONFIGUREVARS += "ac_cv_file__dev_zero=yes" 46CACHED_CONFIGUREVARS += "ac_cv_file__dev_zero=yes"
46 47
48CACHED_CONFIGUREVARS:append:libc-musl = " ac_cv_strerror_r_rc_int=yes"
47PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" 49PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
50PACKAGECONFIG:append:libc-musl = " xsi-strerror"
48PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," 51PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
49PACKAGECONFIG[timed-tests] = "--enable-timed-tests,--disable-timed-tests," 52PACKAGECONFIG[timed-tests] = "--enable-timed-tests,--disable-timed-tests,"
53PACKAGECONFIG[xsi-strerror] = "ac_cv_strerror_r_rc_int=yes,ac_cv_strerror_r_rc_int=no,"
50 54
51do_configure_prepend() { 55do_configure_prepend() {
52 # Avoid absolute paths for grep since it causes failures 56 # Avoid absolute paths for grep since it causes failures