summaryrefslogtreecommitdiffstats
path: root/meta/classes-recipe
Commit message (Collapse)AuthorAgeFilesLines
...
* uboot-config: Fix devtool modifyTom Hochstein2025-02-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a problem with `devtool modify` as suggested by Marcus Flyckt on the mailing list: ``` I encountered an issue with `do_config` when using `devtool modify` on `u-boot-imx`. ``` [...] | cp: cannot stat '[...]/u-boot-imx/2024.04/build/imx8mp_wl400s_defconfig/.config': No such file or directory | WARNING: exit code 1 from a shell command. ERROR: Task ([...]/sources/poky/../meta-freescale/recipes-bsp/u-boot/u-boot-imx_2024.04.bb:do_configure) failed with exit code '1' NOTE: Tasks Summary: Attempted 963 tasks of which 962 didn't need to be rerun and 1 failed. Summary: 1 task failed: [...]/sources/poky/../meta-freescale/recipes-bsp/u-boot/u-boot-imx_2024.04.bb:do_configure Summary: There was 1 ERROR message, returning a non-zero exit code ``` The issue seems to originate from the following lines in `workspace/appends/u-boot-imx_2024.04.bbappend`: ``` do_configure:append() { if [ ${@oe.types.boolean(d.getVar("KCONFIG_CONFIG_ENABLE_MENUCONFIG"))} = True ]; then cp ${KCONFIG_CONFIG_ROOTDIR}/.config ${S}/.config.baseline ln -sfT ${KCONFIG_CONFIG_ROOTDIR}/.config ${S}/.config.new fi } ``` For some reason `KCONFIG_CONFIG_ROOTDIR` does not point to the correct directory. It gets its value in `uboot-config.bbclass`: ``` if len(ubootconfig) == 1: d.setVar('KCONFIG_CONFIG_ROOTDIR', os.path.join(d.getVar("B"), d.getVar("UBOOT_MACHINE").strip())) ``` So the main issue is that B gets expanded in this expression, and then later B gets changed by `externalsrc.bbclass`. `d.getVar("B", False)` does not solve the issue, however the proposed change does. ``` - https://lists.yoctoproject.org/g/yocto/topic/109254298#msg64152] Fixes [YOCTO #15603] Suggested-by: Marcus Flyckt <marcus.flyckt@gmail.com> (From OE-Core rev: 57b21065a25100c31515b32fd7c77bde3355d684) Signed-off-by: Tom Hochstein <tom.hochstein@oss.nxp.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes: switch p7zip to 7zipPeter Marko2025-02-102-2/+2
| | | | | | | | | | | | meta-oe has switched from p7zip to 7zip. p7zip recipe does not exist anymore and p7zip is provided and rprovided by 7zip recipe. Use real provider instead of replaced one. (From OE-Core rev: 5aa516bfa295d5be919459dfe45f452cdec45e81) Signed-off-by: Peter Marko <peter.marko@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* testimage.bbclass: fix logDetails() call on error pathMikko Rapeli2025-02-051-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This happens when testimage task runs and bitbake is interupted twice with ctrl-c/SIGINT: QMP Available for connection at /home/builder/src/base/repo/meta-arm/build/tmp/.xjik9srq QMP connected to QEMU at 01/31/25 10:36:19 and took 0.55 seconds QMP released QEMU at 01/31/25 10:36:19 and took 0.07 seconds from connect Keyboard Interrupt, closing down... Second Keyboard Interrupt, stopping... WARNING: Exiting due to interrupt. NOTE: Sending SIGTERM to remaining 1 tasks ERROR: core-image-base-1.0-r0 do_testimage: testimage interrupted, shutting down... Output from runqemu: runqemu - INFO - Received signal: 15 runqemu - INFO - Cleaning up runqemu - INFO - Host uptime: 6230788.40 tput: No value for $TERM and no -T specified ERROR: core-image-base-1.0-r0 do_testimage: Error executing a python function in exec_func_python() autogenerated: The stack trace of python calls that resulted in this exception/failure was: File: 'exec_func_python() autogenerated', lineno: 2, function: <module> 0001: *** 0002:do_testimage(d) 0003: File: '/home/builder/src/base/repo/meta-arm/build/../poky/meta/classes-recipe/testimage.bbclass', lineno: 122, function: do_testimage 0118: dump-guest-memory {"paging":false,"protocol":"file:%s.img"} 0119:} 0120: 0121:python do_testimage() { *** 0122: testimage_main(d) 0123:} 0124: 0125:addtask testimage 0126:do_testimage[nostamp] = "1" File: '/home/builder/src/base/repo/meta-arm/build/../poky/meta/classes-recipe/testimage.bbclass', lineno: 389, function: testimage_main 0385: 0386: # Show results (if we have them) 0387: if results: 0388: configuration = get_testimage_configuration(d, 'runtime', machine) *** 0389: results.logDetails(get_json_result_dir(d), 0390: configuration, 0391: get_testimage_result_id(configuration), 0392: dump_streams=d.getVar('TESTREPORT_FULLLOGS')) 0393: results.logSummary(pn) Exception: AttributeError: 'TestResult' object has no attribute 'logDetails' ERROR: Logfile of failure stored in: /home/builder/src/base/repo/meta-arm/build/tmp/work/qemuarm64_secureboot-poky-linux/core-image-base/1.0/temp/log.do_testimage.2771735 Summary: 1 task failed: /home/builder/src/base/repo/meta-arm/build/../poky/meta/recipes-core/images/core-image-base.bb:do_testimage (From OE-Core rev: c0d864a7007adbdf332da62e89c73630b3e01639) Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta/meta-selftest: Fix variable assignment whitespaceRichard Purdie2025-02-0110-21/+21
| | | | | | | | | | Recipes are much more readable with whitespace around the assignment operators. Fix various assignments in OE-Core to show this is definitely the preferred formatting. (From OE-Core rev: 30ea609d3357fb3de911f2f6a5e6856c151b976a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust-common.bbclass: soft assignment for RUSTLIB pathPedro Ferreira2025-02-011-1/+1
| | | | | | | | | | | | | | | | | | | | | As a user i want to override `RUSTLIB` path on a bbclass, lets call it `XYZ.bbclass`. If a certain recipe inherits `cargo.bbclass` and `XYZ.bbclass` the value of `RUSTLIB` is dependent on the order of the inherit. If `cargo.bbclass` is inherit before `XYZ.bbclass` this will reflect the desired value of `RUSTLIB`, on the oposite, if the `XYZ.bbclass` is inherit before `cargo.bbclass` then the `RUSTLIB` defined on `rust-common.bbclass` will prevail. Changed definition of `RUSTLIB` to soft assignment to make it overridable. (From OE-Core rev: 6eeb832f73ffb48f5f05dc47191f60e4599e640f) Signed-off-by: Pedro Silva Ferreira <Pedro.Silva.Ferreira@criticaltechworks.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: move the cp of ${KBUILD_DEFCONFIG} file outside if bodySlawomir Stepien2025-01-271-7/+1
| | | | | | | | | | | | In both true/false cases, we will cp the file, so move the invocation after the if body. In addition, misleading comment has been removed. (From OE-Core rev: fdd7fec29314b3cd07a98943bbbf6996877e90f4) Signed-off-by: Slawomir Stepien <sst@poczta.fm> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake.conf: Handle empty BB_CURRENT_MCRichard Purdie2025-01-251-1/+1
| | | | | | | | | | | | | | | | | | | Bitbake is about to change the default value of this from "default" to "". The original reason for this was to make this kind of include file usage easier. Instead we were going to complicate bitbake code having to map one value into the other. Instead, stop using "default" and put a slightly horrible bit of code in bitbake.conf as an alternative. This means a "default.conf" in the multiconfig directory will stop working but this was never something anyone was expected to use. The eSDK code also needs updating for this change. (From OE-Core rev: ff469ab2e865063bbc529031bbfd76cba5040073) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust-common: add LDFLAGS to 'build-rust-cc' wrapperEnrico Scholz2025-01-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Although rust differs between compiling (--> 'rust-cc' wrapper) and linking (--> 'rust-ccld' wrapper), some core crates are using only the 'rust-cc' wrapper to check for available compiler options [1] and libraries [2]. Not having LDFLAGS can break the build in subtle ways. E.g. 'cargo-native' can fail to build with | = note: .../hosttools/ld: .../liblibz_sys-....rlib(deflate.o): | relocation R_X86_64_32S against hidden symbol `_length_code' can not be used when making a PIE object because it does not find '-lz' (added by "DEPENDS = zlib") and builds a static libz.a with missing PIC flags. Add LDFLAGS to the 'build-rust-cc' wrapper as it is done already for the target one. [1] https://github.com/rust-lang/cc-rs/pull/1322 [2] https://github.com/rust-lang/libz-sys/blob/12a32798c6bd18986cb5cd603359b03c96f0eb4c/build.rs#L228-L234 (From OE-Core rev: 49b37575b548f0ab082c700f91fdd856740dc829) Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Ross Burton <ross.burton@arm.com>
* u-boot: kernel-fitimage: Fix dependency loop if UBOOT_SIGN_ENABLE and ↵Marek Vasut2025-01-222-64/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | UBOOT_ENV enabled In case both UBOOT_SIGN_ENABLE and UBOOT_ENV are enabled and kernel-fitimage.bbclass is in use to generate signed kernel fitImage, there is a circular dependency between uboot-sign and kernel-fitimage bbclasses . The loop looks like this: kernel-fitimage.bbclass: - do_populate_sysroot depends on do_assemble_fitimage - do_assemble_fitimage depends on virtual/bootloader:do_populate_sysroot - virtual/bootloader:do_populate_sysroot depends on virtual/bootloader:do_install => The virtual/bootloader:do_install installs and the virtual/bootloader:do_populate_sysroot places into sysroot an U-Boot environment script embedded into kernel fitImage during do_assemble_fitimage run . uboot-sign.bbclass: - DEPENDS on KERNEL_PN, which is really virtual/kernel. More accurately - do_deploy depends on do_uboot_assemble_fitimage - do_install depends on do_uboot_assemble_fitimage - do_uboot_assemble_fitimage depends on virtual/kernel:do_populate_sysroot => do_install depends on virtual/kernel:do_populate_sysroot => virtual/bootloader:do_install depends on virtual/kernel:do_populate_sysroot virtual/kernel:do_populate_sysroot depends on virtual/bootloader:do_install Attempt to resolve the loop. Pull fitimage configuration options into separate new configuration file image-fitimage.conf so these configuration options can be shared by both uboot-sign.bbclass and kernel-fitimage.bbclass, and make use of mkimage -f auto-conf / mkimage -f auto option to insert /signature node key-* subnode into U-Boot control DT without depending on the layout of kernel fitImage itself. This is perfectly valid to do, because the U-Boot /signature node key-* subnodes 'required' property can contain either of two values, 'conf' or 'image' to authenticate either selected configuration or all of images when booting the fitImage. For details of the U-Boot fitImage signing process, see: https://docs.u-boot.org/en/latest/usage/fit/signature.html For details of mkimage -f auto-conf and -f auto, see: https://manpages.debian.org/experimental/u-boot-tools/mkimage.1.en.html#EXAMPLES Fixes: 5e12dc911d0c ("u-boot: Rework signing to remove interdependencies") Reviewed-by: Adrian Freihofer <adrian.freihofer@siemens.com> (From OE-Core rev: 259bfa86f384206f0d0a96a5b84887186c5f689e) Signed-off-by: Marek Vasut <marex@denx.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/recipes: Switch virtual/XXX-gcc to virtual/cross-cc (and c++/binutils)Richard Purdie2025-01-214-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The idea of the base class dependency is to say "yes, I need a C cross compiler" and this was never meant to be gcc specific. Looking at the codebase, whilst we code triplets into this, it does overcomplicate things as there are only ever limited, "target", "sdk" and the class extended versions like mutlilib. After much thought, we can simplify this to virtual/cross-cc and virtual/nativesdk-cross-cc. This lets us remove the "gcc" specific element as well as removing the over complicated triplet usage. At the same time, change the much less widely used "g++" variant to "c++" for similar reasons and remove the triplet from virtual/XXX-binutils too. Backwards compatibility mappings could be left but are just going to confuse things in future so we'll just require users to update. This simplification, whilst disruptive for any toolchain focused layers, will make improved toolchain selection in the future much easier. Since we no longer have overlapping variables, some code for that can just be removed. The class extension code does need to start remapping some variables but not the crosssdk target recipe names. This patch is in two pieces, this one handles the renaming with the functional changes separate in a second for easier review even if this breaks bisection. (From OE-Core rev: 4ccc3bc8266c327bcc18c9a3faf7536210dfb9f0) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: make kernel commits reproducibleEnrico Jörns2025-01-211-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The git commit hashes for the kernel checkout are not reproducible under certain conditions: - If the git repository is initialized on an archive (rather than a git), the initial git commit not only has the current user name set, it also uses the current system time as committer and author date. This will affect the initial git hash and thus all subsequent ones. - The patches applied by the kern-tools have a valid author and date. However, their committer again depends on the user building the BSP. This is an issue, for example, if one compiles a kernel with CONFIG_LOCALVERSION_AUTO enabled where the commit hash lands into the kernel and thus the package version. This not only makes the package version non-reproducible, but also leads to version mismatches between kernel modules built against a fresh kernel checkout and the kernel retrieved from the sstate cache. The class uses 'check_git_config' from utils.bbclass, but this only sets the git user and only if none existed before. Thus it doesn't really help here. Since in Git the committer information can be set only from the environment variables GIT_COMMITTER_NAME, GIT_COMMITTER_EMAIL, and GIT_COMMITTER_DATE, we introduce a helper function to set those and apply the author settings in the same way. As values simply use PATCH_GIT_USER_NAME, PATCH_GIT_USER_EMAIL (from patch.bbclass) and SOURCE_DATE_EPOCH. For convenience, put the new helper 'reproducible_git_committer_author' into utils.bbclass next to 'check_git_config' so others can use it, too. Using this helper in kernel-yocto.bbclass makes the committer and author date/name/email for the initial commit reproducible, as well as the committer name/email for the patches applied with kern-tools. For debugging purpose, allow disabling the reproducibility features by setting KERNEL_DEBUG_TIMESTAMPS to "1". Suggested-by: Felix Klöckner <F.Kloeckner@weinmann-emt.de> (From OE-Core rev: aab4517b4649917abd519ea85a20fd9d51bf3d99) Signed-off-by: Enrico Jörns <ejo@pengutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: enable systemd user servicesArtur Kowalski2025-01-211-0/+1
| | | | | | | | | | Run systemctl preset-all with --global flag so user unit's are enabled the same way system units are. (From OE-Core rev: cdc3b3028f6d71788b5fdd99436f69fbf18f613e) Signed-off-by: Artur Kowalski <arturkow2000@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* systemd.bbclass: support user units in postinst and prerm hooksArtur Kowalski2025-01-211-0/+14
| | | | | | | | | | | | | Handle user units in a manner similar to system units where possible. Not everything is supported by systemd, but systemd limitations only affect runtime package management - during update user services are not reloaded/restart and each user must re-login or manually restart services. (From OE-Core rev: ce62b88d8f71368e356b6409ada46a34a6017ddf) Signed-off-by: Artur Kowalski <arturkow2000@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* systemd.bbclass: update postinst and prerm hooksArtur Kowalski2025-01-211-6/+12
| | | | | | | | | | | | Since SYSTEMD_SERVICE_ESCAPED may contain both system and user services we need to filter out user services in call to systemctl. Introduce helper systemd_filter_services() which takes space-separated list of services and returns services of requested type. (From OE-Core rev: ec548b274d56b2c7a2663b70200df95a49e7452c) Signed-off-by: Artur Kowalski <arturkow2000@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* systemd.bbclass: properly handle user units in systemd_create_presetsArtur Kowalski2025-01-211-4/+25
| | | | | | | | | | | Previously user units were handled the same way as system units, that is all preset files were created in system-preset directory, but user presets should be in user-preset directory. (From OE-Core rev: 0218542d80723ec314a648af8e9649806c3a51aa) Signed-off-by: Artur Kowalski <arturkow2000@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* systemd.bbclass: introduce systemd_service_searchpaths()Artur Kowalski2025-01-211-6/+15
| | | | | | | | | | | | | | | | systemd_service_searchpaths accepts boolean value indicating whether we are dealing with system or user units and returns search paths accordingly. Previously search path list was created in systemd_check_services() but following commits will introduce additional places. The systemd_service_searchpaths helper function is meant to reduce code duplication. (From OE-Core rev: 9a89d36932dda306b3c2cf10771647eabc267769) Signed-off-by: Artur Kowalski <arturkow2000@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* systemd.bbclass: factor out service lookup logic into separate functionArtur Kowalski2025-01-211-18/+23
| | | | | | | | | | Factor out the logic into systemd_service_path(). This will be needed by following commits to avoid code duplication. (From OE-Core rev: d383e18138050490f3dcb95377f63a2a31c3149f) Signed-off-by: Artur Kowalski <arturkow2000@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* systemd.bbclass: add ${sysconfdir}/systemd/user to search pathArtur Kowalski2025-01-211-1/+4
| | | | | | | | | | | | We already search for system units ${sysconfdir}/systemd/system but we don't search for user units in corresponding directory under ${sysconfdir}. Keep the behaviour consistent so that both unit types are searched in ${systemd_{system,user}_unitdir} and ${sysconfdir}/systemd/{system,user}. (From OE-Core rev: df1cdf1bf4cd7d9f17c6a02538057ccfc2efba64) Signed-off-by: Artur Kowalski <arturkow2000@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* uboot-extlinux-config.bbclass: invalidate do_create_extlinux_config on ↵Quentin Schulz2025-01-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | changes to UBOOT_EXTLINUX_FDTOVERLAYS:x do_create_extlinux_config is using a bit of an odd mechanism which doesn't work well with sstate cache invalidation. BitBake will detect changes to UBOOT_EXTLINUX_FDTOVERLAYS because it's explicitly mentioned in the task, but it'll miss changes to UBOOT_EXTLINUX_FDTOVERLAYS:label because this OVERRIDES is set within the task, so the value of UBOOT_EXTLINUX_FDTOVERLAYS for the label OVERRIDES will only ever change from within the task, while it is running, much later than during parsing. For that to work properly, we need to add the entire variable (including the OVERRIDES part) to the vardeps varflag of the task so that its value is monitored. This is already done for all possible label variables but FDTOVERLAYS was forgotten. Fixes: 3ac21b32b5f5 ("uboot-extlinux-config.bbclass: add support for DTBOs") (From OE-Core rev: a41fd633786a2404b5eee399ed0602e229c4be77) Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* grub-efi-cfg: Add GRUB_TITLE for custom GRUB titlesSimon A. Eugster2025-01-201-1/+7
| | | | | | | | | | | | | | Until now, the default title of a boot entry is its label. The label is a variable which determines the script to run during an early boot stage and is not necessarily human readable. This patch allows to provide a human-readable title for each boot entry. (From OE-Core rev: a5a7f6ada786b7f2c1a317f20b7e642f1e978de9) Signed-off-by: Simon A. Eugster <simon.eu@gmail.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autoconf: rename autotools_aclocals and only run in do_configureRoss Burton2025-01-201-4/+3
| | | | | | | | | | | | | | | | | Despite the name, autotools_aclocals() doesn't actually do anything with aclocal. Instead it reads all of the available autoconf site default files[1] and sets CONFIG_SITE appropriately. Rename the function to autotools_sitefiles to make this clear. Also there's no need to do this before do_configure or do_install, as the variable is only checked when configure runs. [1] https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Site-Defaults.html (From OE-Core rev: 05080b48a9607e19a251c7396c1b06f08d98ed3b) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools: clean up aclocal/ search path assignmentsRoss Burton2025-01-201-8/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | We need aclocal to look in two different $datadir/aclocal/ directories: the native (eg, for pkg.m4 from pkgconfig) and the target (eg, for alsa.m4 from alsa-lib). aclocal doesn't directly support this pattern, currently we use --system-acdir to specify the target directory and then add the native directory to the user include list. However, since automake 1.17 there is also an --aclocal-path option to augument the search list. As the relocated aclocal from automake-native already knows the correct path for the native aclocal directory we can use --aclocal-path to add the correct target aclocal directory. For simplicity I don't bother only doing this in non-native builds as this just adds the same path to the search twice. This removes ACLOCALDIR and ACLOCALEXTRAPATH. Recipes using these to add search paths should instead use EXTRA_AUTORECONF += "-I path". (From OE-Core rev: 878e1517d4890b31332a506ce903d57e1d7dff87) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/ptest-python-pytest: simplify python ptest file overridingDerek Straka2025-01-141-8/+14
| | | | | | | | | | | | The complexity of overriding files from the bbclass made the behavior at times hard to follow and predict. This change replaces the default file with a heredoc equivalent that creates a default file if the user does not provide their own version of run-ptest in the SRC_URI. (From OE-Core rev: be3db5f4f1b857b93d08211019d9ff796ec389b6) Signed-off-by: Derek Straka <derek@asterius.io> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust-target-config: Update the data layout for x86 , ppc , riscv64 , aarch64 ↵Deepesh Varatharajan2025-01-141-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and loongaarch64 targets. ----------------------------------------------------------------------------------------- error: data-layout for target `x86-linux`, `e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S128`, differs from LLVM target's `i686-unknown-linux-gnu` default layout, `e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i128:128-f64:32:64-f80:32-n8:16:32-S128` error: data-layout for target `powerpc-linux`, `E-m:e-p:32:32-i64:64-n32`, differs from LLVM target's `powerpc-unknown-linux-gnu` default layout, `E-m:e-p:32:32-Fn32-i64:64-n32` error: data-layout for target `x86_64-poky-linux-gnux32`, `e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128`, differs from LLVM target's `x86_64-poky-linux-gnux32` default layout, `e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128` ------------------------------------------------------------------------------------------- Rust commits for updating the data layouts: x86: https://github.com/rust-lang/rust/commit/dbff90c2a7c751cf9d6843cd585429beb100c17d x86_64-x32: https://github.com/rust-lang/rust/commit/ec55a05374d89d206be5140a4759af92f1b42f15 aarch64: https://github.com/rust-lang/rust/commit/4d397d33da8aff64419a03694d152c8250916f19 ppc: https://github.com/rust-lang/rust/commit/ad7ea8b7e690e6000006b6fde630a2c8c4385019 riscv64gc: https://github.com/rust-lang/rust/commit/f414715ebfda201f91f80ef9f28d9923d614d1c4 loongaarch64: https://github.com/rust-lang/rust/commit/4a06a5bc7ad259023e4373e794687adfce252dac (From OE-Core rev: 5136176198d4d150afa39b50dc4e879f5b206909) Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* qemu/machine: rename QEMU_EXTRAOPTIONS for consistencyRoss Burton2025-01-111-2/+2
| | | | | | | | | | | | | | | | | The per-tune qemu options variable is QEMU_EXTRAOPTIONS_${TUNE_PKGARCH}, but this doesn't follow the pattern of all of the other tune-specific variables in the machine configuration which is VARIABLE:tune-[name]. Rename QEMU_EXTRAOPTIONS_${TUNE_PKGARCH} to QEMU_EXTRAOPTIONS:tune-${TUNE_PKGARCH} for consistency. Note that this will mean that BSPs need to update any assignments of this variable. (From OE-Core rev: 7f981d074442b901f7e64dbdb9db851ff31c3733) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/qemu: move QEMU_EXTRAOPTIONS for PPC to the relevant tunesRoss Burton2025-01-111-9/+0
| | | | | | | | | | Every other architecture has the QEMU_EXTRAOPTIONS assignments in the tune files, so move the PPC ones too. (From OE-Core rev: ba05251c89d8cc243e861886124573c83197e949) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/qemu: use tune to select QEMU_EXTRAOPTIONS, not package architectureRoss Burton2025-01-111-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | Using the package architecture to select the right qemu options to pass to qemu-user is incorrect, and fails for recipes that set PACKAGE_ARCH to MACHINE_ARCH (as the qemuppc workarounds suggest) because there are not typically any options set for the machine name. Solve this by using TUNE_PKGARCH instead: for the majority of recipes this is the same value, but for machine-specific recipes it remains the same instead of changing to the machine name. This means we can remove the qemuppc workarounds, as they're obsolete. Also update the gcc-testsuite recipe which uses the same pattern to use TUNE_PKGARCH, and generalise the else codepath to avoid needing to update the list of architectures. [ YOCTO #15647 ] (From OE-Core rev: 414b754a6cbb9cc354b1180efd5c3329568a2537) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/nativesdk: also override TUNE_PKGARCHRoss Burton2025-01-111-0/+1
| | | | | | | | | | | | | | The nativesdk class overrides PACKAGE_ARCH and unsets TUNE_FEATURES, but as recipes might want to look at TUNE_PKGARCH too (for example, when setting QEMU_EXTRAOPTIONS) we should also override that variable. Otherwise, a nativesdk recipe will have the TUNE_PKGARCH of the target, which leads to errors (eg passing mips arguments to an arm qemu). (From OE-Core rev: 05322beb290e1db30bef49b4364f8a8e6e9f7408) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* native: Improve ${PN}-XXX package name handlingRichard Purdie2025-01-101-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a recipe has something like: RPROVIDES:${PN}-xxx = "yyy" then the current code will turn this into: RPROVIDES:${BPN}-native-xxx = "yyy-native" which can lead to errors. Add in some handling for this special case in the class extension code. The corresponding entry in PACKAGES is correctly remapped, the variables aren't remapped to match though. Note that merging this does trigger new dependencies to be exposed, some of which can't be met or are incorrect. These need to be fixed on a case by case basis. There was also a problem in the existing code when handling anonymous python in PACKAGES since it would pass bizarre package names like "d)}" to the remapping code. This patch changes it to ignore anonymous python since in the native case, this likely isn't wanted anyway. This also then avoids ${PN}-ptest in the native case which was a common dependency problem. (From OE-Core rev: e2fd81e221c25fc21d532e020ddd8aaac0c22ede) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools: remove aclocal --automake-acdir, relocated so knows the right pathRoss Burton2025-01-101-6/+0
| | | | | | | | | | | | | | A relocated aclocal in the native sysroot has the right paths already: $ cat /work/ross/build/tmp/work/cortexa57-poky-linux/expect/5.45.4/recipe-sysroot-native/usr/bin/aclocal my @automake_includes = ('/work/ross/build/tmp/work/cortexa57-poky-linux/expect/5.45.4/recipe-sysroot-native/usr/share/aclocal-' . $APIVERSION); Thus there is no need to tell aclocal the path explicitly. (From OE-Core rev: 002e03132b8ba1f1b254c8a63ff70db2a5d16518) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools: log when we're removing aclocal.m4Ross Burton2025-01-101-0/+1
| | | | | | | | | | | | | Some mysterious autotools errors are because upstream has a custom aclocal.m4 that we're deleting it unless we know we're not even running aclocal. There's a case to be made for removing this deletion logic on the grounds that aclocal should know what it is doing, but for now make it clear that we're deleting a file by saying so in the task log. (From OE-Core rev: d6efd938af8a8260ae464edf4388afea73293ec7) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* uboot-extlinux-config.bbclass: add support for DTBOsQuentin Schulz2025-01-081-0/+6
| | | | | | | | | | | | | | | | | | | | Also known as FDTO, DTO or Device Tree Overlay. This adds a new property per label in extlinux.conf for which device tree overlays to apply on top of the base device tree (the one specified in FDT or guessed by the bootloader if only FDTDIR is set). It is a space-separated list of paths to the .dtbo file(s). Note that the base FDT needs to have symbols enabled (DTC_FLAGS needs to have -@ in it) for an overlay to be applicable. This is only applicable for non-FIT setups. (From OE-Core rev: 3ac21b32b5f5616cc7c0641fb3132eec9b27e5b7) Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* uboot-extlinux-config.bbclass: simplify FDT/FDTDIR logicQuentin Schulz2025-01-081-6/+4
| | | | | | | | | | | The three blocks share the same LABEL and KERNEL content, so let's factor that part out. (From OE-Core rev: 544c0f72774e17d1dca4664c0bc21f8281dade5b) Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/ptest-python-pytest: add a new class to consolidate pytest ptest ↵Derek Straka2025-01-081-0/+31
| | | | | | | | | | | | | | | | | | | | | functionality A large number of python packages leverage the pytest unit test framework for their ptest functionality. Currently, many of the tests have duplicate code for: 1. Installing pytest files 2. Declaring ptest dependencies 3. Script for executing tests (run-ptes) To simplify adding common pytest based ptests, added a new class enabling base functionality. Users can also override the location of the pytest files in addition to using their own version of run-ptest [RP: Minor whitespace tweaks to shell function and missing prepend space] (From OE-Core rev: d66009e608256d42b2d6573d4614a99eb13fd3f1) Signed-off-by: Derek Straka <derek@asterius.io> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gettext: update 0.22.5 -> 0.23.1Alexander Kanavin2025-01-041-2/+2
| | | | | | | | | | | | | | | | | Drop patches: parallel.patch (obsolete as no .a files are installed) 0001-intl-Fix-build-failure-with-make-j.patch (backport) Gettext no longer installs anything into $libdir/gettext by default but still creates the directory and so it should be packaged. (From OE-Core rev: a414f47009811fa6886e43fd2b4c928a906a65f3) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image/populate_sdk: Support usrmerge in toolchain SDK buildsPhilip Lorenz2025-01-032-26/+27
| | | | | | | | | | | | | SDKs which aren't built from an image recipe should also come with drop-in symlinks for `/bin`, `/lib` and `/sbin`. Support this by moving the common functionality into `populate_sdk_base` and enabling the symlink creation when the `usrmerge` DISTRO_FEATURE is on. (From OE-Core rev: 8e1e86cc9d5d4e866ff0ab62c8954db0e65c19e6) Signed-off-by: Philip Lorenz <philip.lorenz@bmw.de> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* base/features_check: Make PARSE_ALL_RECIPES and SOURCE_MIRROR_FETCH booleanRobert Yang2024-12-231-1/+1
| | | | | | | | | | So that value "0" can turn them off. (From OE-Core rev: 1a2afcd0773c5ec5946d1dfc27bde585c52a5724) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: enable fetching kernel metadata using file fetcherChristian Taedcke2024-12-231-5/+8
| | | | | | | | | | | | If no destsuffix parameter is supplied and the file fetcher is used, the folder name (i.e. basepath) is added to the kernel-meta search directories. (From OE-Core rev: e46cc8159136ce96489e10f126405781abfbd52e) Signed-off-by: Christian Taedcke <christian.taedcke@weidmueller.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* populate_sdk_ext: write_local_conf add shutil importMark Hatle2024-12-181-0/+2
| | | | | | | | | | | Add shutil import to resolve error: Exception: NameError: name 'shutil' is not defined, Did you forget to import 'shutil' (From OE-Core rev: b64263a43b4d82f1ebba13815bccb8a8cd3127f9) Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/pypi: update the default UPSTREAM_CHECK_URI to use the simple repo APIDerek Straka2024-12-171-3/+17
| | | | | | | | | | | | | | Update the UPSTREAM_CHECK_URI to leverage the simple repo API. The project URLs require javascript which breaks the version checking fetch and subsequent logic. The simple repo API provides similar functionality with a well defined spec which is used by tools such as pip. Also update the UPSTREAM_CHECK_REGEX to be compatible with the information retrieved via the API (From OE-Core rev: 10febb0e8193d15aec8bbf80b849ae6732da3c22) Signed-off-by: Derek Straka <derek@asterius.io> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* systemd.bbclass: do not automatically add Also servicesAdrian Freihofer2024-12-171-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Starting a systemd service “Also” does not mean that both services must be in the same package. However, the systemd.bbclass enforces this. Example: a.service: [Install] Also=b.service If a.service is packed in package A, b.service is automatically packed into package A as well. This happens even if b.service is explicitly added to package B using FILES and SYSTEMD_SERVICE variables. The automatic packing of socket files with the corresponding service files is probably a widely used feature of systemd.bbclass. This bahavior does not change. Adding regular service files to a package just because it is another service in the same package that "Also" uses the service is a bug that this commit fixes. (From OE-Core rev: f836d80eb48a2a2f9b1e66980021755cf0ca2a26) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* systemd.bbclass: refactor adding filesAdrian Freihofer2024-12-171-16/+12
| | | | | | | | | | | | | | | The keys variable was intended as an array of keys. But it looks like this has not been used for more than 10 years now. Adding files automatically to packages needs probably anyway very specific code rather than a generic loop. Lets simplify this a bit. Using python code should also not be slower for these usually small files. (From OE-Core rev: 0eda7131bf743719d6586ccd36d99cbe11c88262) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rpm: replace use of rpm2cpio with rpm2archiveAlexander Kanavin2024-12-122-2/+0
| | | | | | | | | | | | | | rpm2cpio has been deprecated upstream, so this prepares for its eventual removal. rpm2archive produces a tar archive which can be uncompressed with tar executable from the host. (From OE-Core rev: ed824d3fb23f0c89d8dfdacb2c4ef0b7c21a5144) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Revert "uboot-sign: fix U-Boot binary with public key"Ryan Eatmon2024-12-091-1/+7
| | | | | | | | | | | | | This reverts commit 0d14e99aa18ee38293df63d585fafc270a4538be. The patch removed logic required for correct handling of UBOOT_SUFFIX=img or UBOOT_SUFFIX=rom. We need to find a better way to handle the fix for [YOCTO #15649]. (From OE-Core rev: 5e82d33451b5662df1e7fe2518a50644d18aa70d) Signed-off-by: Ryan Eatmon <reatmon@ti.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cargo.bbclass: do not install libraries by defaultAlexander Kanavin2024-12-051-3/+5
| | | | | | | | | | | | | | | 'cargo install' only installs executables and examples into the system, and we should follow that. Libraries are vendored into build trees from the crate registry and then baked directly into executables. Neverthless, there's now a condition variable, so individual recipes can opt into installing libraries if there's a use case for it. (From OE-Core rev: 68990af9630da16fc75362ca09046ceab71a1106) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meson.bbclass: enable qemu exe wrapper in nativesdkAlexander Kanavin2024-12-051-2/+9
| | | | | | | | | | | | | | nativesdk builds are cross-builds like target ones, and so meson expectations regarding ability to run binaries are the same: either provide the wrapper, or disable the build time options that need executing target binaries during build time (if such options are made available by upstream). (From OE-Core rev: f210fc1d3db2e71f484bddc0b23ab252c36f4062) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes: create-spdx: Fix variable dependenciesJoshua Watt2024-12-051-0/+3
| | | | | | | | | | | | A few variable dependencies were incorrect from the SPDX tasks, which prevented rebuilds from occurring, or caused them to occur when they should not. (From OE-Core rev: 38a5dd136b3a3713e63d23598011efe1c4b0f459) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta/lib: move buildstats.py and rootfspostcommands.py into oeChen Qi2024-12-051-4/+4
| | | | | | | | | | | These two files are the only ones that are left in meta/lib. They logically belong to meta/lib/oe, so move them there. (From OE-Core rev: c65dd0e3e463d6072b9364ac74e1fef0d998068f) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-uboot: Support lzma compressed algorithmJamin Lin2024-11-281-0/+2
| | | | | | | | | | | | | | | | | | | Linux kernel supports to compress its output binary with lzma algorithm and U-Boot support to decompress lzma compressed image. Both xz and lzma algorithms are identical and users can use xz utility with format parameter to compress Image which supports lzma algorithm. Add the following command to support lzma. This command is refer to Linux kernel, https://github.com/torvalds/linux/blob/master/arch/powerpc/boot/wrapper "xz --format=lzma -f -6 linux.bin" (From OE-Core rev: 211178065bdca293c84c41a9a1e79c10df95b6ad) Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust-target-config: Fix TARGET_C_INT_WIDTH with correct sizeHarish Sadineni2024-11-231-5/+5
| | | | | | | | | | | | | | | | [YOCTO #15600] The TARGET_C_INT_WIDTH value was incorrectly set to 64 instead of 32. It is updated for PPC, Mips, and riscv64 architectures. Discussion links for solution: https://lists.openembedded.org/g/openembedded-core/message/207486 https://lists.openembedded.org/g/openembedded-core/message/207496 (From OE-Core rev: b9df8cd8b29064d115dab3bfd1ea14f94a5c0238) Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>