diff mbox series

apr: Cache configure tests which use AC_TRY_RUN

Message ID 20220825072103.641291-1-raj.khem@gmail.com
State Accepted, archived
Commit 504eb0ff1cae200ee85ec18ebae564cae9bf9c8c
Headers show
Series apr: Cache configure tests which use AC_TRY_RUN | expand

Commit Message

Khem Raj Aug. 25, 2022, 7:21 a.m. UTC
AC_TRY_RUN macro means the test needs to run to find the result and we
are cross compiling so this will always get wrong results, this results
in miscompiling apache2 on musl because it disables rlimit
(ac_cv_struct_rlimit) wrongly.

All these variables are determined with AC_TRY_RUN checks

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/recipes-support/apr/apr_1.7.0.bb | 9 +++++++++
 1 file changed, 9 insertions(+)

Comments

Luca Ceresoli Aug. 25, 2022, 8:35 p.m. UTC | #1
Hi Khem,

On Thu, 25 Aug 2022 00:21:03 -0700
"Khem Raj" <raj.khem@gmail.com> wrote:

> AC_TRY_RUN macro means the test needs to run to find the result and we
> are cross compiling so this will always get wrong results, this results
> in miscompiling apache2 on musl because it disables rlimit
> (ac_cv_struct_rlimit) wrongly.
> 
> All these variables are determined with AC_TRY_RUN checks
> 
> Signed-off-by: Khem Raj <raj.khem@gmail.com>

There are several failures with this patch applied:

| locks/unix/proc_mutex.c: In function 'proc_mutex_choose_method':
| locks/unix/proc_mutex.c:1494:28: error: 'mutex_proc_pthread_methods' undeclared (first use in this function); did you mean 'mutex_posixsem_methods'?
|  1494 |         new_mutex->meth = &mutex_proc_pthread_methods;
|       |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~
|       |                            mutex_posixsem_methods

and other undeclared mutex-related symbols.

https://autobuilder.yoctoproject.org/typhoon/#/builders/117/builds/1446/steps/12/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/82/builds/3720/steps/11/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/37/builds/5767/steps/11/logs/stdio
Khem Raj Aug. 25, 2022, 9:06 p.m. UTC | #2
On Thu, Aug 25, 2022 at 1:35 PM Luca Ceresoli <luca.ceresoli@bootlin.com> wrote:
>
> Hi Khem,
>
> On Thu, 25 Aug 2022 00:21:03 -0700
> "Khem Raj" <raj.khem@gmail.com> wrote:
>
> > AC_TRY_RUN macro means the test needs to run to find the result and we
> > are cross compiling so this will always get wrong results, this results
> > in miscompiling apache2 on musl because it disables rlimit
> > (ac_cv_struct_rlimit) wrongly.
> >
> > All these variables are determined with AC_TRY_RUN checks
> >
> > Signed-off-by: Khem Raj <raj.khem@gmail.com>
>
> There are several failures with this patch applied:
>
> | locks/unix/proc_mutex.c: In function 'proc_mutex_choose_method':
> | locks/unix/proc_mutex.c:1494:28: error: 'mutex_proc_pthread_methods' undeclared (first use in this function); did you mean 'mutex_posixsem_methods'?
> |  1494 |         new_mutex->meth = &mutex_proc_pthread_methods;
> |       |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~
> |       |                            mutex_posixsem_methods
>
> and other undeclared mutex-related symbols.
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/117/builds/1446/steps/12/logs/stdio
> https://autobuilder.yoctoproject.org/typhoon/#/builders/82/builds/3720/steps/11/logs/stdio
> https://autobuilder.yoctoproject.org/typhoon/#/builders/37/builds/5767/steps/11/logs/stdio
>

Yeah, I will take a look and perhaps trim the list to minimum what we
need for apache2

> --
> Luca Ceresoli, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
diff mbox series

Patch

diff --git a/meta/recipes-support/apr/apr_1.7.0.bb b/meta/recipes-support/apr/apr_1.7.0.bb
index 07bf61545e..1fbdeddeb2 100644
--- a/meta/recipes-support/apr/apr_1.7.0.bb
+++ b/meta/recipes-support/apr/apr_1.7.0.bb
@@ -37,6 +37,15 @@  OE_BINCONFIG_EXTRA_MANGLE = " -e 's:location=source:location=installed:'"
 
 # Added to fix some issues with cmake. Refer to https://github.com/bmwcarit/meta-ros/issues/68#issuecomment-19896928
 CACHED_CONFIGUREVARS += "apr_cv_mutex_recursive=yes"
+# Enable largefile
+CACHED_CONFIGUREVARS += "apr_cv_use_lfs64=yes"
+# Additional AC_TRY_RUN tests which will need to be cached for cross compile
+CACHED_CONFIGUREVARS += "apr_cv_epoll=yes epoll_create1=yes apr_cv_sock_cloexec=yes ac_cv_struct_rlimit=yes \
+                         ac_cv_func_sem_open=yes apr_cv_process_shared_works=yes \
+                         ac_cv_func_pthread_mutexattr_setpshared=yes"
+# robust mutexes exist on glibc but not musl
+CACHED_CONFIGUREVARS:append:libc-musl = " apr_cv_mutex_robust_shared=no"
+CACHED_CONFIGUREVARS:append:libc-glibc = " apr_cv_mutex_robust_shared=yes"
 
 # Also suppress trying to use sctp.
 #