* [PATCH 1/4] oeqa/selftest/glibc: remove obsolete parallel make assignment
@ 2026-08-05 16:03 Ross Burton
2026-08-05 16:03 ` [PATCH 2/4] glibc: remove obsolete parallelism flag handling Ross Burton
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Ross Burton @ 2026-08-05 16:03 UTC (permalink / raw)
To: openembedded-core
glibc doesn't use EGLIBCPARALLELISM so this didn't do anything.
The glibc check target serialises timing-sensitive tests (nptl and rt)
so this wouldn't have done anything meaningful anyway.
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
meta/lib/oeqa/selftest/cases/glibc.py | 2 --
1 file changed, 2 deletions(-)
diff --git a/meta/lib/oeqa/selftest/cases/glibc.py b/meta/lib/oeqa/selftest/cases/glibc.py
index a65afb1367e..b8efa22fdac 100644
--- a/meta/lib/oeqa/selftest/cases/glibc.py
+++ b/meta/lib/oeqa/selftest/cases/glibc.py
@@ -58,8 +58,6 @@ class GlibcSelfTestBase(OESelftestTestCase, OEPTestResultTestCase):
features.append('TOOLCHAIN_TEST_HOST = "{0}"'.format(ssh))
features.append('TOOLCHAIN_TEST_HOST_USER = "root"')
features.append('TOOLCHAIN_TEST_HOST_PORT = "22"')
- # force single threaded test execution
- features.append('EGLIBCPARALLELISM:task-check:pn-glibc-testsuite = "PARALLELMFLAGS="-j1""')
self.write_config("\n".join(features))
start_time = time.time()
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/4] glibc: remove obsolete parallelism flag handling
2026-08-05 16:03 [PATCH 1/4] oeqa/selftest/glibc: remove obsolete parallel make assignment Ross Burton
@ 2026-08-05 16:03 ` Ross Burton
2026-08-06 8:47 ` [OE-core] " Richard Purdie
2026-08-05 16:03 ` [PATCH 3/4] glibc: remove obsolete shell override for make-syscalls.sh Ross Burton
2026-08-05 16:03 ` [PATCH 4/4] glibc: remove obsolete KSHELL assignment Ross Burton
2 siblings, 1 reply; 5+ messages in thread
From: Ross Burton @ 2026-08-05 16:03 UTC (permalink / raw)
To: openembedded-core
Several problems here: the comment refers to PARALLELMFLAGS (which is a
variable in glibc's Makefile) but the actual assignment is to
EGLIBCPARALLELISM, which is an eglibc-ism and thus not respected by
glibc. Thus we were emptying PARALLEL_MAKE and so not actually doing the
build in parallel.
The Makefiles as of glibc 2.44[1] actually build in parallel well using
the standard way to pass flags, so drop all of this logic.
On my machine this has noticable improvements to walltime:
do_compile: 86s -> 44s
do_install: 55s -> 40s
Note that there is a PARALLELMFLAGS variable in the Makefiles, but using
it has marginal gains over not and upstream are looking at removing it
entirely.
[1] glibc 7cac99621e ("Makefile: Run the subdirectory recursion in parallel")
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
meta/recipes-core/glibc/glibc.inc | 7 -------
1 file changed, 7 deletions(-)
diff --git a/meta/recipes-core/glibc/glibc.inc b/meta/recipes-core/glibc/glibc.inc
index 560ebef677c..27a911dd8ff 100644
--- a/meta/recipes-core/glibc/glibc.inc
+++ b/meta/recipes-core/glibc/glibc.inc
@@ -29,13 +29,6 @@ CACHED_CONFIGUREVARS:append:mipsarch = " libc_cv_ld_gnu_indirect_function=no"
GLIBC_EXTRA_OECONF ?= ""
GLIBC_EXTRA_OECONF:class-nativesdk = ""
-# glibc uses PARALLELMFLAGS variable to pass parallel build info so transfer
-# PARALLEL_MAKE into PARALLELMFLAGS and empty out PARALLEL_MAKE
-EGLIBCPARALLELISM := "PARALLELMFLAGS="${PARALLEL_MAKE}""
-EXTRA_OEMAKE[vardepsexclude] += "EGLIBCPARALLELISM"
-EXTRA_OEMAKE += "${EGLIBCPARALLELISM}"
-PARALLEL_MAKE = ""
-
# glibc make-syscalls.sh has a number of issues with /bin/dash and
# it's output which make calls via the SHELL also has issues, so
# ensure make uses /bin/bash
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/4] glibc: remove obsolete shell override for make-syscalls.sh
2026-08-05 16:03 [PATCH 1/4] oeqa/selftest/glibc: remove obsolete parallel make assignment Ross Burton
2026-08-05 16:03 ` [PATCH 2/4] glibc: remove obsolete parallelism flag handling Ross Burton
@ 2026-08-05 16:03 ` Ross Burton
2026-08-05 16:03 ` [PATCH 4/4] glibc: remove obsolete KSHELL assignment Ross Burton
2 siblings, 0 replies; 5+ messages in thread
From: Ross Burton @ 2026-08-05 16:03 UTC (permalink / raw)
To: openembedded-core
SHELL was set to /bin/bash back in 2012[1] because of non-portable use
of echo in eglibc.
As this non-portable use was fixed upstream in glibc in 2015[1] we can
remove this override.
[1] oe-core 9d002f7cdc5 ("eglibc: force make to use /bin/bash")
[2] glibc 95b07fbcc7 ("Fix non-portable echo usage in sysdeps/unix/make-syscalls.sh")
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
meta/recipes-core/glibc/glibc.inc | 5 -----
1 file changed, 5 deletions(-)
diff --git a/meta/recipes-core/glibc/glibc.inc b/meta/recipes-core/glibc/glibc.inc
index 27a911dd8ff..47c15c116d8 100644
--- a/meta/recipes-core/glibc/glibc.inc
+++ b/meta/recipes-core/glibc/glibc.inc
@@ -29,11 +29,6 @@ CACHED_CONFIGUREVARS:append:mipsarch = " libc_cv_ld_gnu_indirect_function=no"
GLIBC_EXTRA_OECONF ?= ""
GLIBC_EXTRA_OECONF:class-nativesdk = ""
-# glibc make-syscalls.sh has a number of issues with /bin/dash and
-# it's output which make calls via the SHELL also has issues, so
-# ensure make uses /bin/bash
-EXTRA_OEMAKE += "SHELL=/bin/bash"
-
# We do not need bash to run tzselect script, the default is to use
# bash but it can be configured by setting KSHELL Makefile variable
EXTRA_OEMAKE += "KSHELL=/bin/sh"
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 4/4] glibc: remove obsolete KSHELL assignment
2026-08-05 16:03 [PATCH 1/4] oeqa/selftest/glibc: remove obsolete parallel make assignment Ross Burton
2026-08-05 16:03 ` [PATCH 2/4] glibc: remove obsolete parallelism flag handling Ross Burton
2026-08-05 16:03 ` [PATCH 3/4] glibc: remove obsolete shell override for make-syscalls.sh Ross Burton
@ 2026-08-05 16:03 ` Ross Burton
2 siblings, 0 replies; 5+ messages in thread
From: Ross Burton @ 2026-08-05 16:03 UTC (permalink / raw)
To: openembedded-core
KSHELL was set so that tzselect uses /bin/sh instead of /bin/bash.
This variable doesn't exist in glibc and instead we patch the script in
0019-tzselect.ksh-Use-bin-sh-default-shell-interpreter.patch, so we can
remove this assignment.
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
meta/recipes-core/glibc/glibc.inc | 4 ----
1 file changed, 4 deletions(-)
diff --git a/meta/recipes-core/glibc/glibc.inc b/meta/recipes-core/glibc/glibc.inc
index 47c15c116d8..16c18bd4b6c 100644
--- a/meta/recipes-core/glibc/glibc.inc
+++ b/meta/recipes-core/glibc/glibc.inc
@@ -29,10 +29,6 @@ CACHED_CONFIGUREVARS:append:mipsarch = " libc_cv_ld_gnu_indirect_function=no"
GLIBC_EXTRA_OECONF ?= ""
GLIBC_EXTRA_OECONF:class-nativesdk = ""
-# We do not need bash to run tzselect script, the default is to use
-# bash but it can be configured by setting KSHELL Makefile variable
-EXTRA_OEMAKE += "KSHELL=/bin/sh"
-
TARGET_CC_ARCH:append:toolchain-gcc = " -fno-link-libatomic"
SDK_CC_ARCH:append:toolchain-gcc = " -fno-link-libatomic"
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [OE-core] [PATCH 2/4] glibc: remove obsolete parallelism flag handling
2026-08-05 16:03 ` [PATCH 2/4] glibc: remove obsolete parallelism flag handling Ross Burton
@ 2026-08-06 8:47 ` Richard Purdie
0 siblings, 0 replies; 5+ messages in thread
From: Richard Purdie @ 2026-08-06 8:47 UTC (permalink / raw)
To: ross.burton, openembedded-core
On Wed, 2026-08-05 at 17:03 +0100, Ross Burton via lists.openembedded.org wrote:
> Several problems here: the comment refers to PARALLELMFLAGS (which is a
> variable in glibc's Makefile) but the actual assignment is to
> EGLIBCPARALLELISM, which is an eglibc-ism and thus not respected by
> glibc. Thus we were emptying PARALLEL_MAKE and so not actually doing the
> build in parallel.
>
> The Makefiles as of glibc 2.44[1] actually build in parallel well using
> the standard way to pass flags, so drop all of this logic.
>
> On my machine this has noticable improvements to walltime:
>
> do_compile: 86s -> 44s
> do_install: 55s -> 40s
>
> Note that there is a PARALLELMFLAGS variable in the Makefiles, but using
> it has marginal gains over not and upstream are looking at removing it
> entirely.
>
> [1] glibc 7cac99621e ("Makefile: Run the subdirectory recursion in parallel")
>
> Signed-off-by: Ross Burton <ross.burton@arm.com>
> ---
> meta/recipes-core/glibc/glibc.inc | 7 -------
> 1 file changed, 7 deletions(-)
>
> diff --git a/meta/recipes-core/glibc/glibc.inc b/meta/recipes-core/glibc/glibc.inc
> index 560ebef677c..27a911dd8ff 100644
> --- a/meta/recipes-core/glibc/glibc.inc
> +++ b/meta/recipes-core/glibc/glibc.inc
> @@ -29,13 +29,6 @@ CACHED_CONFIGUREVARS:append:mipsarch = " libc_cv_ld_gnu_indirect_function=no"
> GLIBC_EXTRA_OECONF ?= ""
> GLIBC_EXTRA_OECONF:class-nativesdk = ""
>
> -# glibc uses PARALLELMFLAGS variable to pass parallel build info so transfer
> -# PARALLEL_MAKE into PARALLELMFLAGS and empty out PARALLEL_MAKE
> -EGLIBCPARALLELISM := "PARALLELMFLAGS="${PARALLEL_MAKE}""
> -EXTRA_OEMAKE[vardepsexclude] += "EGLIBCPARALLELISM"
> -EXTRA_OEMAKE += "${EGLIBCPARALLELISM}"
> -PARALLEL_MAKE = ""
> -
> # glibc make-syscalls.sh has a number of issues with /bin/dash and
> # it's output which make calls via the SHELL also has issues, so
> # ensure make uses /bin/bash
>
Unfortunately
https://autobuilder.yoctoproject.org/valkyrie/#/builders/29/builds/4399
is full of what look like parallel make failures :(
Cheers,
Richard
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-08-06 8:47 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-05 16:03 [PATCH 1/4] oeqa/selftest/glibc: remove obsolete parallel make assignment Ross Burton
2026-08-05 16:03 ` [PATCH 2/4] glibc: remove obsolete parallelism flag handling Ross Burton
2026-08-06 8:47 ` [OE-core] " Richard Purdie
2026-08-05 16:03 ` [PATCH 3/4] glibc: remove obsolete shell override for make-syscalls.sh Ross Burton
2026-08-05 16:03 ` [PATCH 4/4] glibc: remove obsolete KSHELL assignment Ross Burton
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox