[OE-core] [PATCH 2/2] gcc-7.3: Backport fixes for std::pair high memory usage
C++ applications that contain a specfic use of std::pair with tempates cause the build to require many gigabytes of RAM to build. This is a fix that was applied to the upstream GCC 7 branch. Change-Id: I213f96d1d6332e2dce5765482ff3413f1abd7ff8 Signed-off-by: Joel Stanley --- meta/recipes-devtools/gcc/gcc-7.3.inc | 1 + ...-PR-c-80290-memory-hog-with-std-pair.patch | 58 +++ 2 files changed, 59 insertions(+) create mode 100644 meta/recipes-devtools/gcc/gcc-7.3/0001-PR-c-80290-memory-hog-with-std-pair.patch diff --git a/meta/recipes-devtools/gcc/gcc-7.3.inc b/meta/recipes-devtools/gcc/gcc-7.3.inc index 81320dc52a59..c7c88f12e499 100644 --- a/meta/recipes-devtools/gcc/gcc-7.3.inc +++ b/meta/recipes-devtools/gcc/gcc-7.3.inc @@ -80,6 +80,7 @@ BACKPORTS = "\ file://0001-Fix-internal-compiler-error-in-testcase.patch \ file://0001-PR-rtl-optimization-83030.patch \ file://0001-Fix-ppc64le-build-Partial-backport-r256656.patch \ + file://0001-PR-c-80290-memory-hog-with-std-pair.patch \ " SRC_URI[md5sum] = "be2da21680f27624f3a87055c4ba5af2" diff --git a/meta/recipes-devtools/gcc/gcc-7.3/0001-PR-c-80290-memory-hog-with-std-pair.patch b/meta/recipes-devtools/gcc/gcc-7.3/0001-PR-c-80290-memory-hog-with-std-pair.patch new file mode 100644 index ..ba43af92fff1 --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-7.3/0001-PR-c-80290-memory-hog-with-std-pair.patch @@ -0,0 +1,58 @@ +From 8c014bceeca6a558519e86b16a8142accc41e94f Mon Sep 17 00:00:00 2001 +From: jason +Date: Thu, 28 Jun 2018 00:25:21 + +Subject: [PATCH] PR c++/80290 - memory-hog with std::pair. + + * pt.c (type_unification_real): Skip non-dependent conversion + check for a nested list argument. + (braced_init_depth): New. + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@262204 138bc75d-0d04-0410-961f-82ee72b054a4 +Signed-off-by: Joel Stanley +--- + gcc/cp/pt.c | 22 ++ + 1 file changed, 22 insertions(+) + +diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c +index 79cfd0129226..71077a3b0498 100644 +--- a/gcc/cp/pt.c b/gcc/cp/pt.c +@@ -19242,6 +19242,24 @@ try_array_deduction (tree tparms, tree targs, tree parm) + /*nondeduced*/false, array_deduction_r); + } + ++/* Returns how many levels of { } INIT contains. */ ++ ++static int ++braced_init_depth (tree init) ++{ ++ if (!init || !BRACE_ENCLOSED_INITIALIZER_P (init)) ++return 0; ++ unsigned i; tree val; ++ unsigned max = 0; ++ FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (init), i, val) ++{ ++ unsigned elt_d = braced_init_depth (val); ++ if (elt_d > max) ++ max = elt_d; ++} ++ return max + 1; ++} ++ + /* Most parms like fn_type_unification. + +If SUBR is 1, we're being called recursively (to unify the +@@ -19478,6 +19496,10 @@ type_unification_real (tree tparms, + + if (uses_template_parms (parm)) + continue; ++ /* Workaround for c++/80290: avoid combinatorial explosion on ++ deeply nested braced init-lists. */ ++ if (braced_init_depth (arg) > 2) ++continue; + if (check_non_deducible_conversion (parm, arg, strict, flags, + explain_p)) + return 1; +-- +2.17.1 + -- 2.17.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/2] gcc-7.3: Fix build on ppc64le hosts
When building on ppc64le hosts that have GCC 8 (such as Ubuntu 18.10) the GCC build bootstrap fails. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86162 This is a fix that was applied to the upstream GCC 7 branch. Change-Id: I7796d2a999ec420805dd1c6cf0a1ecba1de5a897 Signed-off-by: Joel Stanley --- meta/recipes-devtools/gcc/gcc-7.3.inc | 1 + ...c64le-build-Partial-backport-r256656.patch | 40 +++ 2 files changed, 41 insertions(+) create mode 100644 meta/recipes-devtools/gcc/gcc-7.3/0001-Fix-ppc64le-build-Partial-backport-r256656.patch diff --git a/meta/recipes-devtools/gcc/gcc-7.3.inc b/meta/recipes-devtools/gcc/gcc-7.3.inc index b816f7d12f81..81320dc52a59 100644 --- a/meta/recipes-devtools/gcc/gcc-7.3.inc +++ b/meta/recipes-devtools/gcc/gcc-7.3.inc @@ -79,6 +79,7 @@ SRC_URI = "\ BACKPORTS = "\ file://0001-Fix-internal-compiler-error-in-testcase.patch \ file://0001-PR-rtl-optimization-83030.patch \ + file://0001-Fix-ppc64le-build-Partial-backport-r256656.patch \ " SRC_URI[md5sum] = "be2da21680f27624f3a87055c4ba5af2" diff --git a/meta/recipes-devtools/gcc/gcc-7.3/0001-Fix-ppc64le-build-Partial-backport-r256656.patch b/meta/recipes-devtools/gcc/gcc-7.3/0001-Fix-ppc64le-build-Partial-backport-r256656.patch new file mode 100644 index ..5d8ffb7babca --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-7.3/0001-Fix-ppc64le-build-Partial-backport-r256656.patch @@ -0,0 +1,40 @@ +From aa65a43516da1d48011ef621ed5988289711d99b Mon Sep 17 00:00:00 2001 +From: marxin +Date: Fri, 29 Jun 2018 09:31:30 + +Subject: [PATCH] Partial backport r256656 + +2018-06-29 Martin Liska + + Backport from mainline + 2018-01-10 Kelvin Nilsen + + * lex.c (search_line_fast): Remove illegal coercion of an + unaligned pointer value to vector pointer type and replace with + use of __builtin_vec_vsx_ld () built-in function, which operates + on unaligned pointer values. + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-6-branch@261621 138bc75d-0d04-0410-961f-82ee72b054a4 + + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@262243 138bc75d-0d04-0410-961f-82ee72b054a4 +Signed-off-by: Joel Stanley +--- + libcpp/lex.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletion(-) + +diff --git a/libcpp/lex.c b/libcpp/lex.c +index 097c78002cbb..e0fb9e822c44 100644 +--- a/libcpp/lex.c b/libcpp/lex.c +@@ -568,7 +568,7 @@ search_line_fast (const uchar *s, const uchar *end ATTRIBUTE_UNUSED) + { + vc m_nl, m_cr, m_bs, m_qm; + +- data = *((const vc *)s); ++ data = __builtin_vec_vsx_ld (0, s); + s += 16; + + m_nl = (vc) __builtin_vec_cmpeq(data, repl_nl); +-- +2.17.1 + -- 2.17.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 0/2] GCC 7.3 fixes
This series has a pair of patches that we have been using in OpenBMC's Yocto tree for a few weeks. The build fix is required to compile from our ppc64le build machines. The std::pair fix reduces memory requirements from many gigabytes down to something reasonable. Joel Stanley (2): gcc-7.3: Fix build on ppc64le hosts gcc-7.3: Backport fixes for std::pair high memory usage meta/recipes-devtools/gcc/gcc-7.3.inc | 2 + ...c64le-build-Partial-backport-r256656.patch | 40 + ...-PR-c-80290-memory-hog-with-std-pair.patch | 58 +++ 3 files changed, 100 insertions(+) create mode 100644 meta/recipes-devtools/gcc/gcc-7.3/0001-Fix-ppc64le-build-Partial-backport-r256656.patch create mode 100644 meta/recipes-devtools/gcc/gcc-7.3/0001-PR-c-80290-memory-hog-with-std-pair.patch -- 2.17.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH v2 2/2] gcc-7.3: Backport fixes for std::pair high memory usage
C++ applications that contain a specfic use of std::pair with tempates cause the build to require many gigabytes of RAM to build. This is a fix that was applied to the upstream GCC 7 branch. Change-Id: I213f96d1d6332e2dce5765482ff3413f1abd7ff8 Signed-off-by: Joel Stanley --- meta/recipes-devtools/gcc/gcc-7.3.inc | 1 + ...-PR-c-80290-memory-hog-with-std-pair.patch | 57 +++ 2 files changed, 58 insertions(+) create mode 100644 meta/recipes-devtools/gcc/gcc-7.3/0001-PR-c-80290-memory-hog-with-std-pair.patch diff --git a/meta/recipes-devtools/gcc/gcc-7.3.inc b/meta/recipes-devtools/gcc/gcc-7.3.inc index 81320dc52a59..c7c88f12e499 100644 --- a/meta/recipes-devtools/gcc/gcc-7.3.inc +++ b/meta/recipes-devtools/gcc/gcc-7.3.inc @@ -80,6 +80,7 @@ BACKPORTS = "\ file://0001-Fix-internal-compiler-error-in-testcase.patch \ file://0001-PR-rtl-optimization-83030.patch \ file://0001-Fix-ppc64le-build-Partial-backport-r256656.patch \ + file://0001-PR-c-80290-memory-hog-with-std-pair.patch \ " SRC_URI[md5sum] = "be2da21680f27624f3a87055c4ba5af2" diff --git a/meta/recipes-devtools/gcc/gcc-7.3/0001-PR-c-80290-memory-hog-with-std-pair.patch b/meta/recipes-devtools/gcc/gcc-7.3/0001-PR-c-80290-memory-hog-with-std-pair.patch new file mode 100644 index ..1ad19dc0ea80 --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-7.3/0001-PR-c-80290-memory-hog-with-std-pair.patch @@ -0,0 +1,57 @@ +From 8c014bceeca6a558519e86b16a8142accc41e94f Mon Sep 17 00:00:00 2001 +From: jason +Date: Thu, 28 Jun 2018 00:25:21 + +Subject: [PATCH] PR c++/80290 - memory-hog with std::pair. + + * pt.c (type_unification_real): Skip non-dependent conversion + check for a nested list argument. + (braced_init_depth): New. + +Upstream-Status: Backport +--- + gcc/cp/pt.c | 22 ++ + 1 file changed, 22 insertions(+) + +diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c +index 79cfd0129226..71077a3b0498 100644 +--- a/gcc/cp/pt.c b/gcc/cp/pt.c +@@ -19242,6 +19242,24 @@ try_array_deduction (tree tparms, tree targs, tree parm) + /*nondeduced*/false, array_deduction_r); + } + ++/* Returns how many levels of { } INIT contains. */ ++ ++static int ++braced_init_depth (tree init) ++{ ++ if (!init || !BRACE_ENCLOSED_INITIALIZER_P (init)) ++return 0; ++ unsigned i; tree val; ++ unsigned max = 0; ++ FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (init), i, val) ++{ ++ unsigned elt_d = braced_init_depth (val); ++ if (elt_d > max) ++ max = elt_d; ++} ++ return max + 1; ++} ++ + /* Most parms like fn_type_unification. + +If SUBR is 1, we're being called recursively (to unify the +@@ -19478,6 +19496,10 @@ type_unification_real (tree tparms, + + if (uses_template_parms (parm)) + continue; ++ /* Workaround for c++/80290: avoid combinatorial explosion on ++ deeply nested braced init-lists. */ ++ if (braced_init_depth (arg) > 2) ++continue; + if (check_non_deducible_conversion (parm, arg, strict, flags, + explain_p)) + return 1; +-- +2.17.1 + -- 2.17.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH v2 0/2] GCC 7.3 fixes
v2: Add Upstream-Status tags This series has a pair of patches that we have been using in OpenBMC's Yocto tree for a few weeks. The build fix is required to compile from our ppc64le build machines. The std::pair fix reduces memory requirements from many gigabytes down to something reasonable. Joel Stanley (2): gcc-7.3: Fix build on ppc64le hosts gcc-7.3: Backport fixes for std::pair high memory usage meta/recipes-devtools/gcc/gcc-7.3.inc | 2 + ...c64le-build-Partial-backport-r256656.patch | 36 ...-PR-c-80290-memory-hog-with-std-pair.patch | 57 +++ 3 files changed, 95 insertions(+) create mode 100644 meta/recipes-devtools/gcc/gcc-7.3/0001-Fix-ppc64le-build-Partial-backport-r256656.patch create mode 100644 meta/recipes-devtools/gcc/gcc-7.3/0001-PR-c-80290-memory-hog-with-std-pair.patch -- 2.17.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH v2 1/2] gcc-7.3: Fix build on ppc64le hosts
When building on ppc64le hosts that have GCC 8 (such as Ubuntu 18.10) the GCC build bootstrap fails. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86162 This is a fix that was applied to the upstream GCC 7 branch. Change-Id: I7796d2a999ec420805dd1c6cf0a1ecba1de5a897 Signed-off-by: Joel Stanley --- meta/recipes-devtools/gcc/gcc-7.3.inc | 1 + ...c64le-build-Partial-backport-r256656.patch | 36 +++ 2 files changed, 37 insertions(+) create mode 100644 meta/recipes-devtools/gcc/gcc-7.3/0001-Fix-ppc64le-build-Partial-backport-r256656.patch diff --git a/meta/recipes-devtools/gcc/gcc-7.3.inc b/meta/recipes-devtools/gcc/gcc-7.3.inc index b816f7d12f81..81320dc52a59 100644 --- a/meta/recipes-devtools/gcc/gcc-7.3.inc +++ b/meta/recipes-devtools/gcc/gcc-7.3.inc @@ -79,6 +79,7 @@ SRC_URI = "\ BACKPORTS = "\ file://0001-Fix-internal-compiler-error-in-testcase.patch \ file://0001-PR-rtl-optimization-83030.patch \ + file://0001-Fix-ppc64le-build-Partial-backport-r256656.patch \ " SRC_URI[md5sum] = "be2da21680f27624f3a87055c4ba5af2" diff --git a/meta/recipes-devtools/gcc/gcc-7.3/0001-Fix-ppc64le-build-Partial-backport-r256656.patch b/meta/recipes-devtools/gcc/gcc-7.3/0001-Fix-ppc64le-build-Partial-backport-r256656.patch new file mode 100644 index ..122260f2bf1d --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-7.3/0001-Fix-ppc64le-build-Partial-backport-r256656.patch @@ -0,0 +1,36 @@ +From aa65a43516da1d48011ef621ed5988289711d99b Mon Sep 17 00:00:00 2001 +From: marxin +Date: Fri, 29 Jun 2018 09:31:30 + +Subject: [PATCH] Partial backport r256656 + +2018-06-29 Martin Liska + + Backport from mainline + 2018-01-10 Kelvin Nilsen + + * lex.c (search_line_fast): Remove illegal coercion of an + unaligned pointer value to vector pointer type and replace with + use of __builtin_vec_vsx_ld () built-in function, which operates + on unaligned pointer values. + +Upstream-Status: Backport +--- + libcpp/lex.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletion(-) + +diff --git a/libcpp/lex.c b/libcpp/lex.c +index 097c78002cbb..e0fb9e822c44 100644 +--- a/libcpp/lex.c b/libcpp/lex.c +@@ -568,7 +568,7 @@ search_line_fast (const uchar *s, const uchar *end ATTRIBUTE_UNUSED) + { + vc m_nl, m_cr, m_bs, m_qm; + +- data = *((const vc *)s); ++ data = __builtin_vec_vsx_ld (0, s); + s += 16; + + m_nl = (vc) __builtin_vec_cmpeq(data, repl_nl); +-- +2.17.1 + -- 2.17.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] kernel: Don't fail if Modules.symvers doesn't exist
The one liner tests using `[ ] && action` need to have || true after the action, otherwise the line returns false and the recipie fails. Signed-off-by: Joel Stanley --- meta/classes-recipe/kernel.bbclass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta/classes-recipe/kernel.bbclass b/meta/classes-recipe/kernel.bbclass index 247ef4a48aa7..f1bc41e82be8 100644 --- a/meta/classes-recipe/kernel.bbclass +++ b/meta/classes-recipe/kernel.bbclass @@ -486,7 +486,7 @@ kernel_do_install() { install -m 0644 System.map ${D}/${KERNEL_IMAGEDEST}/System.map-${KERNEL_VERSION} install -m 0644 .config ${D}/${KERNEL_IMAGEDEST}/config-${KERNEL_VERSION} install -m 0644 vmlinux ${D}/${KERNEL_IMAGEDEST}/vmlinux-${KERNEL_VERSION} - [ -e Module.symvers ] && install -m 0644 Module.symvers ${D}/${KERNEL_IMAGEDEST}/Module.symvers-${KERNEL_VERSION} + [ -e Module.symvers ] && install -m 0644 Module.symvers ${D}/${KERNEL_IMAGEDEST}/Module.symvers-${KERNEL_VERSION} || true } # Must be ran no earlier than after do_kernel_checkout or else Makefile won't be in ${S}/Makefile @@ -555,7 +555,7 @@ do_shared_workdir () { # Copy files required for module builds cp System.map $kerneldir/System.map-${KERNEL_VERSION} - [ -e Module.symvers ] && cp Module.symvers $kerneldir/ + [ -e Module.symvers ] && cp Module.symvers $kerneldir/ || true cp .config $kerneldir/ mkdir -p $kerneldir/include/config cp include/config/kernel.release $kerneldir/include/config/kernel.release -- 2.40.1 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#185386): https://lists.openembedded.org/g/openembedded-core/message/185386 Mute This Topic: https://lists.openembedded.org/mt/100503145/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH] kernel: Don't fail if Modules.symvers doesn't exist
On Wed, 2 Aug 2023 at 12:45, Frédéric Martinsons wrote: > > > > On Wed, 2 Aug 2023 at 13:47, Joel Stanley wrote: >> >> The one liner tests using `[ ] && action` need to have || true after the >> action, >> otherwise the line returns false and the recipie fails. >> >> Signed-off-by: Joel Stanley >> --- >> meta/classes-recipe/kernel.bbclass | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/meta/classes-recipe/kernel.bbclass >> b/meta/classes-recipe/kernel.bbclass >> index 247ef4a48aa7..f1bc41e82be8 100644 >> --- a/meta/classes-recipe/kernel.bbclass >> +++ b/meta/classes-recipe/kernel.bbclass >> @@ -486,7 +486,7 @@ kernel_do_install() { >> install -m 0644 System.map >> ${D}/${KERNEL_IMAGEDEST}/System.map-${KERNEL_VERSION} >> install -m 0644 .config >> ${D}/${KERNEL_IMAGEDEST}/config-${KERNEL_VERSION} >> install -m 0644 vmlinux >> ${D}/${KERNEL_IMAGEDEST}/vmlinux-${KERNEL_VERSION} >> - [ -e Module.symvers ] && install -m 0644 Module.symvers >> ${D}/${KERNEL_IMAGEDEST}/Module.symvers-${KERNEL_VERSION} >> + [ -e Module.symvers ] && install -m 0644 Module.symvers >> ${D}/${KERNEL_IMAGEDEST}/Module.symvers-${KERNEL_VERSION} || true >> } >> > > By doing that, you simply silent possible error of the action after the test, > below is a little snippet showing that Sure. But the test is looking for the file, so if it doesn't exist then the command install won't run. I can't think of any realistic situation where install would fail if the file is present. > I think the origin of your issue is that the action failed , having the log > of kernel_do_install task would help. That isn't the case. The issue is the Modules.symvers file is not found. This is expected, because the kernel does not use modules. Here is the log, with paths trimmed: DEBUG: Executing shell function do_install NOTE: no modules to install WARNING: temp/run.do_install.2584671:225 exit 1 from '[ -e Module.symvers ]' WARNING: Backtrace (BB generated script): #1: do_install, temp/run.do_install.2584671, line 225 #2: main, temp/run.do_install.2584671, line 283 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#185391): https://lists.openembedded.org/g/openembedded-core/message/185391 Mute This Topic: https://lists.openembedded.org/mt/100503145/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH] perf: Additional fixes for 5.5+
In e5c4f3127521 ("perf: fix build for v5.5+") this recipe was fixed for 5.5 kernels, however testing shows that there's a few other changes required. perf's build system uses a file from the scripts/ directory to generate a bpf header, so this must be added to the list of files to perform a replace on. Additionally the replacement would run on all occurrences of /usr/bin/python first, resulting in lines that contained "/usr/bin/env python32". This re-orders the sed lines to avoid that. This fixes warnings such the following: File "/usr/lib/python3.6/sysconfig.py", line 421, in _init_posix _temp = __import__(name, globals(), locals(), ['build_time_vars'], 0) ModuleNotFoundError: No module named '_sysconfigdata' Change-Id: I8d0011908c87d5fbcf1c3aefb362fe6beb64d22e Signed-off-by: Joel Stanley --- Found when attempting to use 5.5 with OpenBMC. The sed method of fixing this may be fragile, and moving to patching the source tree may be preferred in the future. meta/recipes-kernel/perf/perf.bb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb index 6d1b06693d26..1e0be467c024 100644 --- a/meta/recipes-kernel/perf/perf.bb +++ b/meta/recipes-kernel/perf/perf.bb @@ -239,11 +239,11 @@ do_configure_prepend () { fi # use /usr/bin/env instead of version specific python -for s in `find ${S}/tools/perf/ -name '*.py'`; do -sed -i 's,/usr/bin/python,/usr/bin/env python3,' "${s}" +for s in `find ${S}/tools/perf/ -name '*.py'` scripts/bpf_helpers_doc.py; do sed -i 's,/usr/bin/python2,/usr/bin/env python3,' "${s}" sed -i 's,/usr/bin/env python2,/usr/bin/env python3,' "${s}" sed -i 's,/usr/bin/python3,/usr/bin/env python3,' "${s}" +sed -i 's,/usr/bin/python,/usr/bin/env python3,' "${s}" done # unistd.h can be out of sync between libc-headers and the captured version in the perf source -- 2.24.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] perf: Additional fixes for 5.5+
On Mon, 3 Feb 2020 at 06:45, Mittal, Anuj wrote: > > On Mon, 2020-02-03 at 17:04 +1030, Joel Stanley wrote: > > # use /usr/bin/env instead of version specific python > > -for s in `find ${S}/tools/perf/ -name '*.py'`; do > > -sed -i 's,/usr/bin/python,/usr/bin/env python3,' "${s}" > > +for s in `find ${S}/tools/perf/ -name '*.py'` > > scripts/bpf_helpers_doc.py; do > > sed -i 's,/usr/bin/python2,/usr/bin/env python3,' "${s}" > > sed -i 's,/usr/bin/env python2,/usr/bin/env python3,' "${s}" > > sed -i 's,/usr/bin/python3,/usr/bin/env python3,' "${s}" > > +sed -i 's,/usr/bin/python,/usr/bin/env python3,' "${s}" > > Can all these lines be replaced by: > > sed -i -e "1s,#!.*python.*,#!${USRBINPATH}/env python3," ${s} This would have the same effect, yes. -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] perf: Depend on setuptools
Linux 6.0 requires setuptools for building the perf Python bindings. Signed-off-by: Joel Stanley --- meta/recipes-kernel/perf/perf.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb index edb133515423..c87880b2c14c 100644 --- a/meta/recipes-kernel/perf/perf.bb +++ b/meta/recipes-kernel/perf/perf.bb @@ -48,7 +48,7 @@ PROVIDES = "virtual/perf" inherit linux-kernel-base kernel-arch manpages # needed for building the tools/perf Python bindings -inherit ${@bb.utils.contains('PACKAGECONFIG', 'scripting', 'python3native', '', d)} +inherit ${@bb.utils.contains('PACKAGECONFIG', 'scripting', 'python3native setuptools3', '', d)} inherit python3-dir export PYTHON_SITEPACKAGES_DIR -- 2.35.1 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#171437): https://lists.openembedded.org/g/openembedded-core/message/171437 Mute This Topic: https://lists.openembedded.org/mt/94128875/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH] qemu: Fix building with latest glibc 2.36
When building native qemu with glibc 2.36 (including latest changes from the glibc stable branch), qemu fails to build: In file included from /usr/include/linux/btrfs.h:29, from ../qemu-7.2.0/linux-user/syscall.c:165: /usr/include/linux/fs.h:50:8: error: redefinition of ‘struct file_clone_range’ 50 | struct file_clone_range { |^~~~ ../qemu-7.2.0/linux-user/syscall.c:129:8: note: originally defined here 129 | struct file_clone_range { |^~~~ Backport changes to linux-user that remove the local copy of struct file_clone_range. Patches from https://lore.kernel.org/qemu-devel/20230110174901.2580297-1-berra...@redhat.com/ Signed-off-by: Joel Stanley --- meta/recipes-devtools/qemu/qemu.inc | 3 + ...er-add-more-compat-ioctl-definitions.patch | 69 ...r-fix-compat-with-glibc-2.36-sys-mou.patch | 78 +++ 3 files changed, 150 insertions(+) create mode 100644 meta/recipes-devtools/qemu/qemu/0001-Revert-linux-user-add-more-compat-ioctl-definitions.patch create mode 100644 meta/recipes-devtools/qemu/qemu/0002-Revert-linux-user-fix-compat-with-glibc-2.36-sys-mou.patch diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc index 92828e8f2dfc..01778eff74e7 100644 --- a/meta/recipes-devtools/qemu/qemu.inc +++ b/meta/recipes-devtools/qemu/qemu.inc @@ -30,6 +30,9 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \ file://0001-contrib-vhost-user-blk-Replace-lseek64-with-lseek.patch \ file://0002-linux-user-Replace-use-of-lfs64-related-functions-an.patch \ file://0001-configure-Fix-check-tcg-not-executing-any-tests.patch \ + file://cross.patch \ + file://0001-Revert-linux-user-add-more-compat-ioctl-definitions.patch \ + file://0002-Revert-linux-user-fix-compat-with-glibc-2.36-sys-mou.patch \ " UPSTREAM_CHECK_REGEX = "qemu-(?P\d+(\.\d+)+)\.tar" diff --git a/meta/recipes-devtools/qemu/qemu/0001-Revert-linux-user-add-more-compat-ioctl-definitions.patch b/meta/recipes-devtools/qemu/qemu/0001-Revert-linux-user-add-more-compat-ioctl-definitions.patch new file mode 100644 index ..cd8121fed14c --- /dev/null +++ b/meta/recipes-devtools/qemu/qemu/0001-Revert-linux-user-add-more-compat-ioctl-definitions.patch @@ -0,0 +1,69 @@ +From afa96c55f2c270405de8984e2466067bbb44c0e4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= +Date: Tue, 10 Jan 2023 12:49:00 -0500 +Subject: [PATCH] Revert "linux-user: add more compat ioctl definitions" +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This reverts commit c5495f4ecb0cdaaf2e9dddeb48f1689cdb520ca0. + +glibc has fixed (in 2.36.9000-40-g774058d729) the problem +that caused a clash when both sys/mount.h annd linux/mount.h +are included, and backported this to the 2.36 stable release +too: + + https://sourceware.org/glibc/wiki/Release/2.36#Usage_of_.3Clinux.2Fmount.h.3E_and_.3Csys.2Fmount.h.3E + +It is saner for QEMU to remove the workaround it applied for +glibc 2.36 and expect distros to ship the 2.36 maint release +with the fix. This avoids needing to add a further workaround +to QEMU to deal with the fact that linux/brtfs.h now also pulls +in linux/mount.h via linux/fs.h since Linux 6.1 + +Upstream-Status: Backport from v8.0 (master) + +Signed-off-by: Daniel P. Berrangé +Reviewed-by: Marc-André Lureau +Link: https://lore.kernel.org/r/20230110174901.2580297-2-berra...@redhat.com +Signed-off-by: Joel Stanley +--- + linux-user/syscall.c | 25 - + 1 file changed, 25 deletions(-) + +diff --git a/linux-user/syscall.c b/linux-user/syscall.c +index f95a6161e..510de8edc 100644 +--- a/linux-user/syscall.c b/linux-user/syscall.c +@@ -111,31 +111,6 @@ + #define FS_IOC32_SETFLAGS _IOW('f', 2, int) + #define FS_IOC32_GETVERSION_IOR('v', 1, int) + #define FS_IOC32_SETVERSION_IOW('v', 2, int) +- +-#define BLKGETSIZE64 _IOR(0x12,114,size_t) +-#define BLKDISCARD _IO(0x12,119) +-#define BLKIOMIN _IO(0x12,120) +-#define BLKIOOPT _IO(0x12,121) +-#define BLKALIGNOFF _IO(0x12,122) +-#define BLKPBSZGET _IO(0x12,123) +-#define BLKDISCARDZEROES _IO(0x12,124) +-#define BLKSECDISCARD _IO(0x12,125) +-#define BLKROTATIONAL _IO(0x12,126) +-#define BLKZEROOUT _IO(0x12,127) +- +-#define FIBMAP _IO(0x00,1) +-#define FIGETBSZ _IO(0x00,2) +- +-struct file_clone_range { +-__s64 src_fd; +-__u64 src_offset; +-__u64 src_length; +-__u64 dest_offset; +-}; +- +-#define FICLONE _IOW(0x94, 9, int) +-#define FICLONERANGE_IOW(0x94, 13, struct file_clone_range) +- + #else + #include + #endif diff --git a/meta/recipes-devtools/qemu/qemu/0002-Revert-linux-user-fix-compat-with-glibc-2.36-sys-mou.patch b/meta/recip
Re: [OE-core] [PATCH] qemu: Fix building with latest glibc 2.36
On Sun, 19 Feb 2023 at 09:48, Joel Stanley wrote: > > When building native qemu with glibc 2.36 (including latest changes from > the glibc stable branch), qemu fails to build: > > In file included from /usr/include/linux/btrfs.h:29, > from ../qemu-7.2.0/linux-user/syscall.c:165: > /usr/include/linux/fs.h:50:8: error: redefinition of ‘struct > file_clone_range’ > 50 | struct file_clone_range { >|^~~~ > ../qemu-7.2.0/linux-user/syscall.c:129:8: note: originally defined here >129 | struct file_clone_range { >|^~~~ > > Backport changes to linux-user that remove the local copy of struct > file_clone_range. > > Patches from > https://lore.kernel.org/qemu-devel/20230110174901.2580297-1-berra...@redhat.com/ > > Signed-off-by: Joel Stanley > --- > meta/recipes-devtools/qemu/qemu.inc | 3 + > ...er-add-more-compat-ioctl-definitions.patch | 69 > ...r-fix-compat-with-glibc-2.36-sys-mou.patch | 78 +++ > 3 files changed, 150 insertions(+) > create mode 100644 > meta/recipes-devtools/qemu/qemu/0001-Revert-linux-user-add-more-compat-ioctl-definitions.patch > create mode 100644 > meta/recipes-devtools/qemu/qemu/0002-Revert-linux-user-fix-compat-with-glibc-2.36-sys-mou.patch > > diff --git a/meta/recipes-devtools/qemu/qemu.inc > b/meta/recipes-devtools/qemu/qemu.inc > index 92828e8f2dfc..01778eff74e7 100644 > --- a/meta/recipes-devtools/qemu/qemu.inc > +++ b/meta/recipes-devtools/qemu/qemu.inc > @@ -30,6 +30,9 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \ > > file://0001-contrib-vhost-user-blk-Replace-lseek64-with-lseek.patch \ > > file://0002-linux-user-Replace-use-of-lfs64-related-functions-an.patch \ > file://0001-configure-Fix-check-tcg-not-executing-any-tests.patch > \ > + file://cross.patch \ This line is a mistake, I don't know where it came from. I can re-spin after the rest of the change gets a review. > + > file://0001-Revert-linux-user-add-more-compat-ioctl-definitions.patch \ > + > file://0002-Revert-linux-user-fix-compat-with-glibc-2.36-sys-mou.patch \ > " > UPSTREAM_CHECK_REGEX = "qemu-(?P\d+(\.\d+)+)\.tar" > > diff --git > a/meta/recipes-devtools/qemu/qemu/0001-Revert-linux-user-add-more-compat-ioctl-definitions.patch > > b/meta/recipes-devtools/qemu/qemu/0001-Revert-linux-user-add-more-compat-ioctl-definitions.patch > new file mode 100644 > index ..cd8121fed14c > --- /dev/null > +++ > b/meta/recipes-devtools/qemu/qemu/0001-Revert-linux-user-add-more-compat-ioctl-definitions.patch > @@ -0,0 +1,69 @@ > +From afa96c55f2c270405de8984e2466067bbb44c0e4 Mon Sep 17 00:00:00 2001 > +From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= > +Date: Tue, 10 Jan 2023 12:49:00 -0500 > +Subject: [PATCH] Revert "linux-user: add more compat ioctl definitions" > +MIME-Version: 1.0 > +Content-Type: text/plain; charset=UTF-8 > +Content-Transfer-Encoding: 8bit > + > +This reverts commit c5495f4ecb0cdaaf2e9dddeb48f1689cdb520ca0. > + > +glibc has fixed (in 2.36.9000-40-g774058d729) the problem > +that caused a clash when both sys/mount.h annd linux/mount.h > +are included, and backported this to the 2.36 stable release > +too: > + > + > https://sourceware.org/glibc/wiki/Release/2.36#Usage_of_.3Clinux.2Fmount.h.3E_and_.3Csys.2Fmount.h.3E > + > +It is saner for QEMU to remove the workaround it applied for > +glibc 2.36 and expect distros to ship the 2.36 maint release > +with the fix. This avoids needing to add a further workaround > +to QEMU to deal with the fact that linux/brtfs.h now also pulls > +in linux/mount.h via linux/fs.h since Linux 6.1 > + > +Upstream-Status: Backport from v8.0 (master) > + > +Signed-off-by: Daniel P. Berrangé > +Reviewed-by: Marc-André Lureau > +Link: https://lore.kernel.org/r/20230110174901.2580297-2-berra...@redhat.com > +Signed-off-by: Joel Stanley > +--- > + linux-user/syscall.c | 25 - > + 1 file changed, 25 deletions(-) > + > +diff --git a/linux-user/syscall.c b/linux-user/syscall.c > +index f95a6161e..510de8edc 100644 > +--- a/linux-user/syscall.c > b/linux-user/syscall.c > +@@ -111,31 +111,6 @@ > + #define FS_IOC32_SETFLAGS _IOW('f', 2, int) > + #define FS_IOC32_GETVERSION_IOR('v', 1, int) > + #define FS_IOC32_SETVERSION_IOW('v', 2, int) > +- > +-#define BLKGETSIZE64 _IOR(0x12,114,size_t) > +-#define BLKDISCARD _IO(0x12,119) > +-#define BLKIOMIN _IO(0x12,120) > +-#define BLKIOOPT _IO(0x12,121)
Re: [OE-core] [PATCHv2] qemu: Fix building with latest glibc 2.36
On Wed, 22 Feb 2023 at 15:28, Martin Jansa wrote: > > Hi, > > I've seen this build issue on my gentoo builder today with qemu-native, so > I've removed the stray cross.patch and sent v2. > > Then RP had good question how to reproduce this failure and I've checked when > I've updated glibc in gentoo for last time and it was a month ago (and I've > rebuilt qemu-native few time since then). > > So in the end it was linux-libc-headers upgrade to 6.2 from yesterday > (sys-kernel/linux-headers-6.2 in gentoo) which caused this for me (if I > downgrade to 6.1 I can build qemu-native again even without this patch). > > Joel: Should I send v3 with updated commit message or will you do it? Thanks for picking this one up. Please continue the good work. Cheers, Joel > > Regards, > > On Wed, Feb 22, 2023 at 4:00 PM Martin Jansa via lists.openembedded.org > wrote: >> >> From: Joel Stanley >> >> When building native qemu with glibc 2.36 (including latest changes from >> the glibc stable branch), qemu fails to build: >> >> In file included from /usr/include/linux/btrfs.h:29, >> from ../qemu-7.2.0/linux-user/syscall.c:165: >> /usr/include/linux/fs.h:50:8: error: redefinition of ‘struct >> file_clone_range’ >> 50 | struct file_clone_range { >>|^~~~ >> ../qemu-7.2.0/linux-user/syscall.c:129:8: note: originally defined here >>129 | struct file_clone_range { >>|^~~~ >> >> Backport changes to linux-user that remove the local copy of struct >> file_clone_range. >> >> Patches from >> https://lore.kernel.org/qemu-devel/20230110174901.2580297-1-berra...@redhat.com/ >> >> Signed-off-by: Joel Stanley >> Tested-by: Martin Jansa >> --- >> meta/recipes-devtools/qemu/qemu.inc | 2 + >> ...er-add-more-compat-ioctl-definitions.patch | 69 >> ...r-fix-compat-with-glibc-2.36-sys-mou.patch | 78 +++ >> 3 files changed, 149 insertions(+) >> create mode 100644 >> meta/recipes-devtools/qemu/qemu/0001-Revert-linux-user-add-more-compat-ioctl-definitions.patch >> create mode 100644 >> meta/recipes-devtools/qemu/qemu/0002-Revert-linux-user-fix-compat-with-glibc-2.36-sys-mou.patch >> >> diff --git a/meta/recipes-devtools/qemu/qemu.inc >> b/meta/recipes-devtools/qemu/qemu.inc >> index 92828e8f2d..1e768b560d 100644 >> --- a/meta/recipes-devtools/qemu/qemu.inc >> +++ b/meta/recipes-devtools/qemu/qemu.inc >> @@ -30,6 +30,8 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \ >> >> file://0001-contrib-vhost-user-blk-Replace-lseek64-with-lseek.patch \ >> >> file://0002-linux-user-Replace-use-of-lfs64-related-functions-an.patch \ >> >> file://0001-configure-Fix-check-tcg-not-executing-any-tests.patch \ >> + >> file://0001-Revert-linux-user-add-more-compat-ioctl-definitions.patch \ >> + >> file://0002-Revert-linux-user-fix-compat-with-glibc-2.36-sys-mou.patch \ >> " >> UPSTREAM_CHECK_REGEX = "qemu-(?P\d+(\.\d+)+)\.tar" >> >> diff --git >> a/meta/recipes-devtools/qemu/qemu/0001-Revert-linux-user-add-more-compat-ioctl-definitions.patch >> >> b/meta/recipes-devtools/qemu/qemu/0001-Revert-linux-user-add-more-compat-ioctl-definitions.patch >> new file mode 100644 >> index 00..cd8121fed1 >> --- /dev/null >> +++ >> b/meta/recipes-devtools/qemu/qemu/0001-Revert-linux-user-add-more-compat-ioctl-definitions.patch >> @@ -0,0 +1,69 @@ >> +From afa96c55f2c270405de8984e2466067bbb44c0e4 Mon Sep 17 00:00:00 2001 >> +From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= >> +Date: Tue, 10 Jan 2023 12:49:00 -0500 >> +Subject: [PATCH] Revert "linux-user: add more compat ioctl definitions" >> +MIME-Version: 1.0 >> +Content-Type: text/plain; charset=UTF-8 >> +Content-Transfer-Encoding: 8bit >> + >> +This reverts commit c5495f4ecb0cdaaf2e9dddeb48f1689cdb520ca0. >> + >> +glibc has fixed (in 2.36.9000-40-g774058d729) the problem >> +that caused a clash when both sys/mount.h annd linux/mount.h >> +are included, and backported this to the 2.36 stable release >> +too: >> + >> + >> https://sourceware.org/glibc/wiki/Release/2.36#Usage_of_.3Clinux.2Fmount.h.3E_and_.3Csys.2Fmount.h.3E >> + >> +It is saner for QEMU to remove the workaround it applied for >> +glibc 2.36 and expect distros to ship the 2.36 maint release >> +with the fix. Th
Re: [OE-core] [PATCHv2] qemu: Fix building with latest glibc 2.36
On Thu, 23 Feb 2023 at 00:11, Martin Jansa wrote: > > On Thu, Feb 23, 2023 at 1:08 AM Joel Stanley wrote: >> >> On Wed, 22 Feb 2023 at 15:28, Martin Jansa wrote: >> > >> > Hi, >> > >> > I've seen this build issue on my gentoo builder today with qemu-native, so >> > I've removed the stray cross.patch and sent v2. >> > >> > Then RP had good question how to reproduce this failure and I've checked >> > when I've updated glibc in gentoo for last time and it was a month ago >> > (and I've rebuilt qemu-native few time since then). >> > >> > So in the end it was linux-libc-headers upgrade to 6.2 from yesterday >> > (sys-kernel/linux-headers-6.2 in gentoo) which caused this for me (if I >> > downgrade to 6.1 I can build qemu-native again even without this patch). >> > >> > Joel: Should I send v3 with updated commit message or will you do it? >> >> Thanks for picking this one up. Please continue the good work. > > > Can you confirm if it was related to glibc upgrade for you or it might be > kernel headers like for me and it just looked like glibc related? I pointed the fingers at glibc because of the comments in the qemu revert, but you're probably on the money with kernel headers as /usr/include/linux/fs.h comes from the kernel. I run Debian testing so while I'm not sure what I changed when, I would have upgraded the kernel headers recently. -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#177594): https://lists.openembedded.org/g/openembedded-core/message/177594 Mute This Topic: https://lists.openembedded.org/mt/97161162/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH] conf/machine-sdk: Add ppc64le SDK machine
Previously SDKMACHINE would default to x86_64. Commit 539cd4a5fbb9 ("bitbake.conf: default SDKMACHINE to the build host architecture") changed it to default to the build machine, causing the build to fail on a ppc64le host. Reported-by: Andrew Geissler Link: https://www.mail-archive.com/yocto@lists.yoctoproject.org/msg04364.html Signed-off-by: Joel Stanley --- meta/conf/machine-sdk/ppc64le.conf | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 meta/conf/machine-sdk/ppc64le.conf diff --git a/meta/conf/machine-sdk/ppc64le.conf b/meta/conf/machine-sdk/ppc64le.conf new file mode 100644 index ..0eebc5853c13 --- /dev/null +++ b/meta/conf/machine-sdk/ppc64le.conf @@ -0,0 +1,2 @@ +SDK_ARCH = "ppc64le" +ABIEXTENSION_class-nativesdk = "" -- 2.30.1 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#148419): https://lists.openembedded.org/g/openembedded-core/message/148419 Mute This Topic: https://lists.openembedded.org/mt/80815411/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-