summaryrefslogtreecommitdiff
path: root/poky
diff options
context:
space:
mode:
authorAndrew Geissler <geissonator@yahoo.com>2021-05-08 00:11:35 +0300
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2021-05-27 15:46:22 +0300
commitc926e17c956a1babdf42d31f644bf0eedfa7f5f6 (patch)
tree1f86e19ce74be674e46d31a88a438050f83d3762 /poky
parent5e7fd51182f375f58130989e8d0e206e3e14dee1 (diff)
downloadopenbmc-c926e17c956a1babdf42d31f644bf0eedfa7f5f6.tar.xz
poky: subtree update:1203d1f24d..2dcd1f2a21
Alejandro Enedino Hernandez Samaniego (2): python3: Improve logging, syntax and update deprecated modules to create_manifest python3: Upgrade 3.9.2 -> 3.9.4 Alexander Kanavin (22): scripts/oe-debuginfod: correct several issues libmicrohttpd: add a recipe from meta-oe maintainers.inc: add libmicrohttpd entry xwayland: add a standalone recipe weston: use standalone xwayland instead of outdated xserver-xorg version elfutils: correct debuginfod builds on x32 elfutils: adjust ptests for correct debuginfod testing default-distrovars.inc: add debuginfod to default DISTRO_FEATURES oeqa: tear down oeqa decorators if one of them raises an exception in setup meta/lib/oeqa/core/tests/cases/timeout.py: add a testcase for the previous fix core-image-weston: add sdk/ptest images oeqa/core/tests/test_data.py: use weston image instead of sato oeqa/selftest: transition to weston images core-image-multilib-example: base on weston, and not sato dev-manual/common-tasks.rst: correct the documentation for debuginfod diffoscope: add native libraries to LD_LIBRARY_PATH Revert "oeqa: Set LD_LIBRARY_PATH when executing native commands" boost: correct upstream version check vte: use tarballs again gdk-pixbuf: update 2.40.0 -> 2.42.6 glib-2.0: update 2.68.0 -> 2.68.1 gnu-config: update to latest revision Anatol Belski (1): cross-canadian: Whitelist "mingw32" as TARGET_OS Anders Wallin (3): lttng-tools: Fix missing legacy test files lttng-tools: Fix path for test_python_looging scripts/contrib/image-manifest: add new script Andreas Müller (1): xwayland: remove protocol.txt - it clashes with xserver-xorg Anthony Bagwell (1): systemd: upgrade 247.4 -> 247.6 Anuj Mittal (2): Revert "qemu: fix CVE-2021-3392" qemu: fix CVE-2021-3392 Armin Kuster (6): binutils: rename BRANCH var libseccomp: move recipe from meta-security to core gnutls: Enable seccomp if FEATURE is set systemd: Enable seccomp if FEATURE is set qemu: Enable seccomp if FEATURE is set default-distrovars.inc: Add seccomp to DISTRO_FEATURES_DEFAULT Bastian Krause (1): ccache: add packageconfig docs option Bruce Ashfield (20): kern-tools: add dropped options to audit output linux-yocto/5.4: update to v5.4.109 linux-yocto/5.10: update to v5.10.27 linux-yocto/5.10: BSP configuration fixes linux-yocto/5.10: update to v5.10.29 linux-yocto/5.4: update to v5.4.111 linux-yocto/5.10: update to v5.10.30 linux-yocto-rt/5.10: update to -rt34 linux-yocto/5.4: update to v5.4.112 linux-yocto/5.4: fix arm defconfig warnings linux-yocto/5.10: fix arm defconfig warnings linux-yocto/5.10: aufs fixes linux-yocto/5.10: qemuriscv32.cfg: RV32 only supports 1G physical memory linux-yocto/5.10: update to v5.10.32 perf: fix python-audit RDEPENDS linux-yocto/5.4: update to v5.4.114 linux-yocto/5.10: update to v5.10.34 linux-yocto/5.4: update to v5.4.116 linux-yocto/5.10: qemuppc32: reduce serial shutdown issues yocto-check-layer: Only note a layer without a conf/layer.conf (versus error) Changqing Li (2): libpam: make volatile files created successfully gcr: fix one parallel build failure Chen Qi (3): busybox: fix CVE-2021-28831 weston: fix build failure due to race condition rsync: fix CVE-2020-14387 Christophe Chapuis (1): rootfs.py: find .ko.gz and .ko.xz kernel modules as well Daniel Ammann (1): archiver: Fix typos Devendra Tewari (2): bitbake: lib/bb: Add bb.utils.rename() helper function and use for renaming classes/lib/scripts: Use bb.utils.rename() instead of os.rename() Diego Sueiro (3): oeqa/selftest/bblayers: Add test case for bitbake-layers layerindex-show-depends bitbake: layerindex: Fix bitbake-layers layerindex-show-depends command bitbake: layerindex: Add --fetchdir parameter to layerindex-fetch Douglas Royds (2): Revert "externalsrc: Detect code changes in submodules" externalsrc: Detect code changes in submodules Gavin Li (1): kmod: do not symlink config.guess/config.sub during autoreconf Harald Brinkmann (1): bitbake: fetch/svn: Fix parsing revision of SVN repos with redirects He Zhe (1): linux-yocto-dev: add features/scsi/scsi-debug.scc features/gpio/mockup.scc to KERNEL_FEATURES Henning Schild (3): bitbake: fetch/git: add support for disabling shared clones on unpack bitbake: tests/fetch: deduplicate local git testing code bitbake: tests/fetch: add tests for local and remote "noshared" git fetching Jon Mason (1): oeqa/runtime: space needed Jonas Höppner (1): ltp: fix empty ltp-dev package Jose Quaresma (4): gstreamer1.0: update patch upstream status ptest-runner: libgcc must be installed for pthread_cancel to work gstreamer1.0: rename patches gstreamer1.0: update ptest patch Joshua Watt (2): bitbake: knotty: Re-enable command line logging levels classes/image: Use xargs to set file timestamps Kai Kang (2): cmake.bbclass: remove ${B} before cmake_do_configure kernel-yocto.bbclass: chdir to ${WORKDIR} for do_kernel_checkout Kevin Hao (3): modutils-initscripts: Bail out when no module is installed sysvinit-inittab/start_getty: Check /sys for the tty device existence Revert "inittab: Add getty launch on hvc0 for qemuppc64" Khairul Rohaizzat Jamaluddin (1): qemu: Fix CVE-2020-35517 Khem Raj (54): gcc: Upgrade to 10.3.0 bug-fix release glibc: Rename glibc src package gcc-runtime: Make DEBUG_PREFIX_MAP relative to S valgrind: Delete trailing whitespaces valgrind: Add glibc-src to ptest rdeps valgrind: Add libstdc++ debug symbols for ptest vte: Upgrade to 0.64.0 release systemd: Fix build on mips/musl epiphany: Add missing dependency on gnutls cups: Turn gnutls into a packageconfig knob wpa-supplicant: Enable openssl curl: Use openssl backend libpsl: Add config knobs for runtime/builtin conversion choices glib-networking: Prefer openssl backend instead of gnutls gstreamer1.0-plugins-bad: Add packageconfigs for hls crypto backends ca-certificates: Fix openssl runtime cert dependencies weston: Drop loading xwayland.so module elfutils: Make 64bit time_t fix generic binutils: Fix linking failures when using dwarf-5 go: Use dl.google.com for SRC_URI musl: Update to latest master llvm: Upgrade to LLVM 12 release python3-docutils: Upgrade to 0.17.1 python3-markupsafe: Enable ptests python3-jinja2: Enable ptests python3-pyyaml: Add recipe apt: Fix build on musl when seccomp is enabled default-distrovars.inc: Remove seccomp for riscv32 gcc-target: Create a LTO plugin symlink in bfd-plugins directory bitbake.conf: Use gcc-nm as default NM gcc-cross: Install linker LTO plugin for binutils tools gcc-cross-canadian: Install LTO linker plugin to BFD searchable location gnutls: Point to staging area for finding seccomp libs and includes libjpeg-turbo: Use --reproducible option for nasm libid3tag: Filter -ffile-prefix-map too openssl: Filter out -ffile-prefix-map as well ltp: Filter out -ffile-prefix-map gcc-runtime: Fix __FILE__ related reproducablity issues reproducible_build.bbclass: Enable -Wdate-time pkgconfig: Fix nativesdk builds for mingw sdk hosts m4: Do not use SIGSTKSZ bluez: Fix shadowing of pause function from libc valgrind: Disable leak_cpp_interior test findutils: Do not use SIGSTKSZ bash: Include files needed for run-heredoc ptest libpam: Provide needed env for tst-pam_start_confdir ptest cml1.bbclass: Return sorted list of cfg files busybox: Enable long options for enabled applets webkitgtk: Fix reproducibility in minibrowser webkitgtk: Update patch status libgcc-initial: Do not build fp128 to decimal ppc functions gcc: Upgrade to GCC 11 busybox: Fix reproducibility strace: Upgrade to 5.12 Konrad Weihmann (2): cpan-base: set default UPSTREAM_CHECK_REGEX cve-update-db-native: skip on empty cpe23Uri Marek Vasut (1): linux-firmware: Package RSI 911x WiFi firmware Martin Jansa (2): xwayland: add opengl to REQUIRED_DISTRO_FEATURES ofono: prevent using bundled ell headers and fix build with ell-0.39 Michael Halstead (1): releases: update to include 3.3 Michael Opdenacker (7): dev-manual: fix code insertion manuals: simplify code insertion manuals: code insertion simplification over two lines bitbake: doc: bitbake-user-manual: simplify colon usage bitbake: doc: bitbake-user-manual: code insertion simplification over two lines dev-manual: update references to Docker installation instructions sanity.bbclass: mention CONNECTIVITY_CHECK_URIS in network failure message Mikko Rapeli (4): bitbake: bitbake: tests/fetch: fix test execution without .gitconfig bitbake: bitbake: tests/fetch: remove write protected files too lz4: use CFLAGS from bitbake unzip: use optimization from bitbake Mingli Yu (6): libxshmfence: Build fixes for riscv32 packagegroup-core-tools-profile: Remove valgrind for riscv32 packagegroup-core-tools-testapps.bb: Remove kexec for riscv32 libtool: make sure autoheader run before automake groff: not ship /usr/bin/grap2graph rpm: Upgrade to 4.16.1.3 Minjae Kim (1): qemu: fix CVE-2021-3392 Nicolas Dechesne (1): bitbake: doc: bitbake-user-manual: fix typo left over from Sphinx migration Niels Avonds (1): bitbake: fetch/gitsm: Fix crash when using git LFS and submodules Oleksandr Kravchuk (2): python3-setuptools: update to 56.0.0 autoconf-archive: update to 2021.02.19 Otavio Salvador (2): gstreamer1.0-plugins-base: Add 'viv-fb' OpenGL Window System option gstreamer1.0-plugins-base: Use bb.utils.filter to reduce code Paul Barker (10): bitbake: hashserv: Use generic ConnectionError bitbake: asyncrpc: Common implementation of RPC using json & asyncio bitbake: hashserv: Refactor to use asyncrpc bitbake: prserv: Drop obsolete python version check bitbake: prserv: Drop unused dump_db method bitbake: prserv: Add connect function prservice: Use new connect API bitbake: prserv: Use multiprocessing to auto start prserver bitbake: prserv: Extract daemonization from PRServer class bitbake: prserv: Handle requests in main thread Paulo Cesar Zaneti (1): perl: fix startperl configuration option for perl-native Peter Budny (1): lib/oe/terminal: Fix tmux new-session on older tmux versions (<1.9) Petr Vorel (1): ltp: Replace musl patches with do_patch[postfuncs] Przemyslaw Gorszkowski (2): bitbake: progress: LineFilterProgressHandler - Handle parsing line which ends with CR only bitbake: fetch/s3: Add progress handler for S3 cp command Randy MacLeod (2): sqlite3: upgrade 3.35.0 -> 3.35.3 oe-time-dd-test.sh: increase timeout to 15 sec Reto Schneider (2): license_image.bbclass: Detect broken symlinks license_image.bbclass: Fix symlink to generic license files Richard Purdie (32): oeqa/selftest: Hardcode test assumptions about heartbeat event timings pseudo: Upgrade to add trailing slashes ignore path fix oeqa/selftest: Ensure packages classes are set correctly for maintainers test layer.conf: Update to add post 3.3 release honister series sanity: Add error check for '%' in build path bitbake: runqueue: Fix deferred task issues bitbake: tinfoil/data_smart: Allow variable history emit() to function remotely sanity: Further improve directory sanity tests bitbake: bitbake-server: Remove now unneeded code bitbake: doc/user-manual-fetching: Remove basepath unpack parameter docs poky.conf: Post release version bump runqemu: Ensure we cleanup snapshot files after image run patchelf: Backport fix from upstream for note section overlap error pyyaml: Add missing HOMEPAGE yocto-check-layer: Avoid bug when iterating and autoadding dependencies libseccomp: Add MAINTAINERS entry and HOMEPAGE libseccomp: Fix reproducibility issue apt: Disable libseccomp libxcrypt: Update to 4.4.19 release and fix symbol version issues patchelf: Fix note section alignment issues bitbake: runqueue: Fix multiconfig deferred task sstate validity caching issue bitbake: runqueue: Handle deferred task rehashing in multiconfig builds patchelf: Fix alignment patch pybootchart/draw: Avoid divide by zero error yocto-uninative: Update to 3.1 which includes a patchelf fix Revert "perl: fix startperl configuration option for perl-native" bitbake: bin/bitbake-getvar: Add a new command to query a variable value (with history) bitbake: bitbake: Switch to post release version number 1.51.0 sanity.conf: Require bitbake 1.51.0 oeqa/qemurunner: Improve logging thread exit handling for qemu shutdown test oeqa/qemurunner: Handle path length issues for qmp socket lib/package_manager: Use shutil.copy instead of bb.utils.copyfile for intercepts Robert Joslyn (3): btrfs-tools: Update to 5.11.1 btrfs-tools: Add PACKAGECONFIG options btrfs-tools: Try to follow style guide Robert P. J. Day (3): sdk-manual: "beablebone" -> "beaglebone" sdk-manual: fix broken formatting of sample command bitbake.conf: sort MIRROR list, add missing SAMBA_MIRROR Ross Burton (4): glslang: strip whitespace in pkgconfig file insane: clean up some more warning messages bitbake: bitbake-server: ensure server timeout is a float oe-buildenv-internal: add BitBake's library to PYTHONPATH Sakib Sajal (12): oe-time-dd-test.sh: make executable oe-time-dd-test.sh: provide more information from "top" qemu: fix CVE-2021-20181 qemu: fix CVE-2020-29443 qemu: fix CVE-2021-20221 qemu: fix CVE-2021-3409 qemu: fix CVE-2021-3416 qemu: fix CVE-2021-20257 oe-time-dd-test.sh: collect cooker log when timeout is exceeded buildstats.bbclass: collect data in the same file. qemu: fix CVE-2020-27821 qemu: fix CVE-2021-20263 Samuli Piippo (1): assimp: BBCLASSEXTEND to native and nativesdk Saul Wold (4): pango: re-enable ptest qemu-system-native: install qmp python module qemurunner: Add support for qmp commands qemurunner: change warning to info Stefan Ghinea (3): wpa-supplicant: fix CVE-2021-30004 libssh2: fix build failure with option no-ecdsa xserver-xorg: fix CVE-2021-3472 Stefano Babic (1): libubootenv: upgrade 0.3.1 -> 0.3.2 Teoh Jay Shen (6): oeqa/manual/bsp-hw.json : remove boot_from_runlevel_3 and boot_from_runlevel_5 manual test oeqa/manual/bsp-hw.json : remove ethernet_static_ip_set_in_connman and ethernet_get_IP_in_connman_via_DHCP manual test oeqa/manual/bsp-hw.json : remove standby and Test_if_LAN_device_works_well_after_resume_from_suspend_state manual test oeqa/manual/bsp-hw.json : remove click_terminal_icon_on_X_desktop manual test oeqa/manual/bsp-hw.json :remove Check_if_RTC_(Real_Time_Clock)_can_work_correctly manual test oeqa/manual/bsp-hw.json : remove Test_if_usb_hid_device_works_well_after_resume_from_suspend_state manual test Trevor Gamblin (2): nettle: upgrade 3.7.1 -> 3.7.2 ref-manual/variables.rst: Add incompatibility warning for SERIAL_CONSOLES_CHECK Ulrich Ölmann (1): arch-armv6m.inc: fix access rights Vinay Kumar (1): binutils: Fix CVE-2021-20197 Vineela Tummalapalli (1): Adding dunfell 3.1.7 to the switcher and release list. Wang Mingyu (6): at-spi2-core: upgrade 2.38.0 -> 2.40.0 babeltrace2: upgrade 2.0.3 -> 2.0.4 boost-build-native: upgrade 4.3.0 -> 4.4.1 libassuan: upgrade 2.5.4 -> 2.5.5 webkitgtk: upgrade 2.30.5 -> 2.30.6 vte: upgrade 0.62.2 -> 0.62.3 Wes Lindauer (1): oeqa/runtime/cases: Only disable/enable for current boot Yanfei Xu (1): parselogs: ignore floppy error on qemu-system-x86 at boot stage Yi Fan Yu (7): valgrind: update 3.16.1 -> 3.17.0 valgrind: Disable ptest swapcontext.vgtest valgrind: Fix ptest swapcontext.vgtest Revert "glib-2.0: add workaround to fix codegen.py.test failing" re2c: Upgrade 2.0.3 -> 2.1.1 valgrind: Enable drd/tests/bar_bad* ptest libevent: Increase ptest timing tolerance 50 ms -> 100 ms Zqiang (1): rt-tests: Update rt-tests hongxu (1): deb: apply postinstall on sdk wangmy (34): ell: upgrade 0.38 -> 0.39 dbus-glib: upgrade 0.110 -> 0.112 ccache: upgrade 4.2 -> 4.2.1 gcr: upgrade 3.38.1 -> 3.40.0 ghostscript: upgrade 9.53.3 -> 9.54.0 libsolv: upgrade 0.7.17 -> 0.7.18 glib-2.0: upgrade 2.66.7 -> 2.68.0 file: upgrade 5.39 -> 5.40 curl: upgrade 7.75.0 -> 7.76.0 acpica: upgrade 20210105 -> 20210331 help2man: upgrade 1.48.2 -> 1.48.3 libportal: upgrade 0.3 -> 0.4 libksba: upgrade 1.5.0 -> 1.5.1 go: upgrade 1.16.2 -> 1.16.3 libcap: upgrade 2.48 -> 2.49 libcomps: upgrade 0.1.15 -> 0.1.16 icu: upgrade 68.2 -> 69.1 mpg123: upgrade 1.26.4 -> 1.26.5 man-pages: upgrade 5.10 -> 5.11 go: update SRC_URI to use https protocol mesa: upgrade 21.0.1 -> 21.0.2 openssh: upgrade 8.5p1 -> 8.6p1 mtools: upgrade 4.0.26 -> 4.0.27 python3-cython: upgrade 0.29.22 -> 0.29.23 tiff: upgrade 4.2.0 -> 4.3.0 boost: upgrade 1.75.0 -> 1.76.0 wpebackend-fdo: upgrade 1.8.2 -> 1.8.3 mesa: upgrade 21.0.2 -> 21.0.3 gdb: upgrade 10.1 -> 10.2 glib-networking: upgrade 2.66.0 -> 2.68.1 glslang: upgrade 11.2.0 -> 11.4.0 hdparm: upgrade 9.60 -> 9.61 libhandy: upgrade 1.2.1 -> 1.2.2 libjitterentropy: upgrade 3.0.1 -> 3.0.2 zangrc (1): maintainers.inc: Modify email address zhengruoqin (19): epiphany: upgrade 3.38.2 -> 3.38.3 wpebackend-fdo: upgrade 1.8.0 -> 1.8.2 netbase: upgrade 6.2 -> 6.3 python3-dbusmock: upgrade 0.22.0 -> 0.23.0 python3-gitdb: upgrade 4.0.5 -> 4.0.7 libva: upgrade 2.10.0 -> 2.11.0 ruby: upgrade 3.0.0 -> 3.0.1 libva-utils: upgrade 2.10.0 -> 2.11.1 libdazzle: upgrade 3.38.0 -> 3.40.0 librepo: upgrade 1.13.0 -> 1.14.0 libdrm: upgrade 2.4.104 -> 2.4.105 python3-pygobject: upgrade 3.38.0 -> 3.40.1 libedit: upgrade 20210216-3.1 -> 20210419-3.1 libhandy: upgrade 1.2.0 -> 1.2.1 libical: upgrade 3.0.9 -> 3.0.10 libsolv: upgrade 0.7.18 -> 0.7.19 libmicrohttpd: upgrade 0.9.72 -> 0.9.73 python3-numpy: upgrade 1.20.1 -> 1.20.2 wireless-regdb: upgrade 2020.11.20 -> 2021.04.21 Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Change-Id: Ibdaea694cae40b0749d472bf08b53002a45b31d7
Diffstat (limited to 'poky')
-rwxr-xr-xpoky/bitbake/bin/bitbake2
-rwxr-xr-xpoky/bitbake/bin/bitbake-getvar48
-rwxr-xr-xpoky/bitbake/bin/bitbake-server4
-rw-r--r--poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst28
-rw-r--r--poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst54
-rw-r--r--poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.rst42
-rw-r--r--poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.rst38
-rw-r--r--poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst172
-rw-r--r--poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst68
-rw-r--r--poky/bitbake/lib/bb/__init__.py2
-rw-r--r--poky/bitbake/lib/bb/asyncrpc/__init__.py31
-rw-r--r--poky/bitbake/lib/bb/asyncrpc/client.py145
-rw-r--r--poky/bitbake/lib/bb/asyncrpc/serv.py218
-rw-r--r--poky/bitbake/lib/bb/command.py12
-rw-r--r--poky/bitbake/lib/bb/fetch2/git.py8
-rw-r--r--poky/bitbake/lib/bb/fetch2/s3.py41
-rw-r--r--poky/bitbake/lib/bb/fetch2/svn.py2
-rw-r--r--poky/bitbake/lib/bb/progress.py7
-rw-r--r--poky/bitbake/lib/bb/runqueue.py24
-rw-r--r--poky/bitbake/lib/bb/server/process.py2
-rw-r--r--poky/bitbake/lib/bb/siggen.py8
-rw-r--r--poky/bitbake/lib/bb/tests/fetch.py90
-rw-r--r--poky/bitbake/lib/bb/tinfoil.py4
-rw-r--r--poky/bitbake/lib/bb/ui/knotty.py8
-rw-r--r--poky/bitbake/lib/bb/utils.py18
-rw-r--r--poky/bitbake/lib/bblayers/layerindex.py16
-rw-r--r--poky/bitbake/lib/hashserv/client.py147
-rw-r--r--poky/bitbake/lib/hashserv/server.py210
-rw-r--r--poky/bitbake/lib/hashserv/tests.py3
-rw-r--r--poky/bitbake/lib/prserv/serv.py367
-rw-r--r--poky/documentation/brief-yoctoprojectqs/index.rst2
-rw-r--r--poky/documentation/bsp-guide/bsp.rst56
-rw-r--r--poky/documentation/dev-manual/common-tasks.rst1054
-rw-r--r--poky/documentation/dev-manual/qemu.rst24
-rw-r--r--poky/documentation/dev-manual/start.rst58
-rw-r--r--poky/documentation/kernel-dev/advanced.rst87
-rw-r--r--poky/documentation/kernel-dev/common.rst225
-rw-r--r--poky/documentation/kernel-dev/concepts-appx.rst6
-rw-r--r--poky/documentation/kernel-dev/faq.rst6
-rw-r--r--poky/documentation/kernel-dev/maint-appx.rst15
-rw-r--r--poky/documentation/overview-manual/concepts.rst51
-rw-r--r--poky/documentation/overview-manual/development-environment.rst6
-rw-r--r--poky/documentation/poky.yaml16
-rw-r--r--poky/documentation/profile-manual/intro.rst10
-rw-r--r--poky/documentation/profile-manual/usage.rst184
-rw-r--r--poky/documentation/ref-manual/classes.rst87
-rw-r--r--poky/documentation/ref-manual/devtool-reference.rst51
-rw-r--r--poky/documentation/ref-manual/faq.rst20
-rw-r--r--poky/documentation/ref-manual/features.rst3
-rw-r--r--poky/documentation/ref-manual/images.rst5
-rw-r--r--poky/documentation/ref-manual/kickstart.rst6
-rw-r--r--poky/documentation/ref-manual/migration-1.3.rst7
-rw-r--r--poky/documentation/ref-manual/migration-1.4.rst6
-rw-r--r--poky/documentation/ref-manual/migration-1.6.rst8
-rw-r--r--poky/documentation/ref-manual/migration-1.7.rst6
-rw-r--r--poky/documentation/ref-manual/migration-1.8.rst6
-rw-r--r--poky/documentation/ref-manual/migration-2.0.rst9
-rw-r--r--poky/documentation/ref-manual/migration-2.1.rst9
-rw-r--r--poky/documentation/ref-manual/migration-2.2.rst14
-rw-r--r--poky/documentation/ref-manual/migration-2.3.rst16
-rw-r--r--poky/documentation/ref-manual/migration-2.5.rst8
-rw-r--r--poky/documentation/ref-manual/migration-2.6.rst15
-rw-r--r--poky/documentation/ref-manual/migration-3.1.rst7
-rw-r--r--poky/documentation/ref-manual/migration-3.2.rst6
-rw-r--r--poky/documentation/ref-manual/qa-checks.rst19
-rw-r--r--poky/documentation/ref-manual/structure.rst18
-rw-r--r--poky/documentation/ref-manual/system-requirements.rst69
-rw-r--r--poky/documentation/ref-manual/tasks.rst48
-rw-r--r--poky/documentation/ref-manual/terms.rst3
-rw-r--r--poky/documentation/ref-manual/variables.rst873
-rw-r--r--poky/documentation/releases.rst7
-rw-r--r--poky/documentation/sdk-manual/appendix-customizing.rst27
-rw-r--r--poky/documentation/sdk-manual/appendix-obtain.rst38
-rw-r--r--poky/documentation/sdk-manual/extensible.rst81
-rw-r--r--poky/documentation/sdk-manual/using.rst6
-rw-r--r--poky/documentation/sdk-manual/working-projects.rst60
-rw-r--r--poky/documentation/sphinx-static/switchers.js5
-rw-r--r--poky/meta-poky/conf/distro/poky.conf4
-rw-r--r--poky/meta-selftest/conf/layer.conf2
-rw-r--r--poky/meta-skeleton/conf/layer.conf2
-rw-r--r--poky/meta-skeleton/recipes-multilib/images/core-image-multilib-example.bb2
-rw-r--r--poky/meta/classes/archiver.bbclass8
-rw-r--r--poky/meta/classes/buildhistory.bbclass2
-rw-r--r--poky/meta/classes/buildstats.bbclass32
-rw-r--r--poky/meta/classes/cmake.bbclass8
-rw-r--r--poky/meta/classes/cml1.bbclass2
-rw-r--r--poky/meta/classes/cpan-base.bbclass9
-rw-r--r--poky/meta/classes/cross-canadian.bbclass2
-rw-r--r--poky/meta/classes/externalsrc.bbclass7
-rw-r--r--poky/meta/classes/image.bbclass2
-rw-r--r--poky/meta/classes/insane.bbclass12
-rw-r--r--poky/meta/classes/kernel-yocto.bbclass2
-rw-r--r--poky/meta/classes/license_image.bbclass20
-rw-r--r--poky/meta/classes/package.bbclass4
-rw-r--r--poky/meta/classes/populate_sdk_ext.bbclass4
-rw-r--r--poky/meta/classes/reproducible_build.bbclass5
-rw-r--r--poky/meta/classes/sanity.bbclass28
-rw-r--r--poky/meta/classes/sstate.bbclass8
-rw-r--r--poky/meta/classes/testimage.bbclass6
-rw-r--r--poky/meta/classes/update-alternatives.bbclass4
-rw-r--r--poky/meta/conf/bitbake.conf10
-rw-r--r--poky/meta/conf/distro/include/default-distrovars.inc5
-rw-r--r--poky/meta/conf/distro/include/maintainers.inc45
-rw-r--r--poky/meta/conf/distro/include/tcmode-default.inc4
-rw-r--r--poky/meta/conf/distro/include/yocto-uninative.inc8
-rw-r--r--poky/meta/conf/layer.conf4
-rw-r--r--[-rwxr-xr-x]poky/meta/conf/machine/include/arm/arch-armv6m.inc0
-rw-r--r--poky/meta/conf/sanity.conf2
-rw-r--r--poky/meta/lib/oe/package_manager/__init__.py2
-rw-r--r--poky/meta/lib/oe/package_manager/deb/__init__.py6
-rw-r--r--poky/meta/lib/oe/package_manager/deb/sdk.py4
-rw-r--r--poky/meta/lib/oe/package_manager/ipk/__init__.py2
-rw-r--r--poky/meta/lib/oe/prservice.py2
-rw-r--r--poky/meta/lib/oe/rootfs.py8
-rw-r--r--poky/meta/lib/oe/terminal.py16
-rw-r--r--poky/meta/lib/oeqa/core/case.py9
-rw-r--r--poky/meta/lib/oeqa/core/decorator/oetimeout.py5
-rw-r--r--poky/meta/lib/oeqa/core/target/qemu.py6
-rw-r--r--poky/meta/lib/oeqa/core/target/ssh.py17
-rw-r--r--poky/meta/lib/oeqa/core/tests/cases/timeout.py13
-rwxr-xr-xpoky/meta/lib/oeqa/core/tests/test_data.py2
-rwxr-xr-xpoky/meta/lib/oeqa/core/tests/test_decorators.py6
-rw-r--r--poky/meta/lib/oeqa/manual/bsp-hw.json278
-rw-r--r--poky/meta/lib/oeqa/runtime/cases/date.py4
-rw-r--r--poky/meta/lib/oeqa/runtime/cases/parselogs.py2
-rw-r--r--poky/meta/lib/oeqa/runtime/cases/rtc.py4
-rw-r--r--poky/meta/lib/oeqa/runtime/decorator/package.py4
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py4
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/bblayers.py5
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/buildoptions.py10
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/distrodata.py2
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/imagefeatures.py6
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/runqemu.py9
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/runtime_test.py2
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/sstatetests.py10
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/wic.py6
-rw-r--r--poky/meta/lib/oeqa/targetcontrol.py3
-rw-r--r--poky/meta/lib/oeqa/utils/commands.py3
-rw-r--r--poky/meta/lib/oeqa/utils/dump.py32
-rw-r--r--poky/meta/lib/oeqa/utils/qemurunner.py92
-rw-r--r--poky/meta/recipes-bsp/u-boot/libubootenv_0.3.2.bb (renamed from poky/meta/recipes-bsp/u-boot/libubootenv_0.3.1.bb)2
-rw-r--r--poky/meta/recipes-connectivity/bluez5/bluez5.inc1
-rw-r--r--poky/meta/recipes-connectivity/bluez5/bluez5/0001-audio-Rename-pause-funciton-to-avoid-shadowing-glibc.patch48
-rw-r--r--poky/meta/recipes-connectivity/ofono/ofono/0002-mbim-Fix-build-with-ell-0.39-by-restoring-unlikely-m.patch28
-rw-r--r--poky/meta/recipes-connectivity/ofono/ofono_1.31.bb10
-rw-r--r--poky/meta/recipes-connectivity/openssh/openssh_8.6p1.bb (renamed from poky/meta/recipes-connectivity/openssh/openssh_8.5p1.bb)2
-rw-r--r--poky/meta/recipes-connectivity/openssl/openssl/0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch17
-rw-r--r--poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/CVE-2021-30004.patch123
-rw-r--r--poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb3
-rw-r--r--poky/meta/recipes-core/busybox/busybox-inittab_1.33.0.bb3
-rw-r--r--poky/meta/recipes-core/busybox/busybox/0001-decompress_gunzip-Fix-DoS-if-gzip-is-corrupt.patch58
-rw-r--r--poky/meta/recipes-core/busybox/busybox/0001-gen_build_files-Use-C-locale-when-calling-sed-on-glo.patch28
-rw-r--r--poky/meta/recipes-core/busybox/busybox/longopts.cfg15
-rw-r--r--poky/meta/recipes-core/busybox/busybox_1.33.0.bb5
-rw-r--r--poky/meta/recipes-core/dbus/dbus-glib_0.112.bb (renamed from poky/meta/recipes-core/dbus/dbus-glib_0.110.bb)8
-rw-r--r--poky/meta/recipes-core/ell/ell_0.39.bb (renamed from poky/meta/recipes-core/ell/ell_0.38.bb)2
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch14
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-codegen.py-bump-timeout-to-100-seconds.patch4
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gobject-Drop-use-of-volatile-from-get_type-macros.patch403
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0001-tests-codegen.py-removing-unecessary-print-statement.patch38
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0002-tests-Fix-non-atomic-access-to-a-shared-variable.patch44
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0003-tests-Fix-non-atomic-access-to-a-shared-variable.patch90
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0004-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch93
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0005-tests-Fix-non-atomic-access-to-some-shared-variables.patch702
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0006-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch35
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0007-gdbusconnection-Drop-unnecessary-volatile-qualifiers.patch111
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0008-gdbuserror-Drop-unnecessary-volatile-qualifiers-from.patch95
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0009-gio-Drop-unnecessary-volatile-qualifiers-from-intern.patch207
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0010-kqueue-Fix-unlocked-access-to-shared-variable.patch51
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0011-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch126
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0012-tests-Fix-non-atomic-access-to-some-shared-variables.patch103
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0013-gatomic-Drop-unnecessary-volatile-qualifiers-from-in.patch180
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0014-gatomic-Drop-unnecessary-volatile-qualifiers-from-ma.patch56
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0015-glib-Drop-unnecessary-volatile-qualifiers-from-inter.patch169
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0016-gobject-Drop-unnecessary-volatile-qualifiers-from-in.patch126
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0017-gmessages-Drop-unnecessary-volatile-qualifiers-from-.patch44
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0018-gtypes-Drop-volatile-qualifier-from-gatomicrefcount.patch35
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0019-gatomicarray-Drop-volatile-qualifier-from-GAtomicArr.patch44
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0020-gobject-Drop-volatile-qualifier-from-GObject.ref_cou.patch33
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0021-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch51
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0022-build-Drop-unnecessary-volatile-qualifiers-from-conf.patch38
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0023-gdbusprivate-Avoid-a-warning-about-a-statement-with-.patch33
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0024-tests-Add-comment-to-volatile-atomic-tests.patch49
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0025-gthread-Use-g_atomic-primitives-correctly-in-destruc.patch77
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0026-gtype-Fix-some-typos-in-comments.patch47
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0027-gtype-Add-some-missing-atomic-accesses-to-init_state.patch76
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0028-gresource-Fix-a-pointer-mismatch-with-an-atomic-load.patch29
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0029-docs-Document-not-to-use-volatile-qualifiers.patch258
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch10
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0_2.66.7.bb86
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0_2.68.1.bb54
-rw-r--r--poky/meta/recipes-core/glib-networking/glib-networking_2.68.1.bb (renamed from poky/meta/recipes-core/glib-networking/glib-networking_2.66.0.bb)6
-rw-r--r--poky/meta/recipes-core/glibc/glibc-package.inc2
-rw-r--r--poky/meta/recipes-core/libxcrypt/files/0001-configure.ac-do-not-use-compute-symver-floor.patch32
-rw-r--r--poky/meta/recipes-core/libxcrypt/files/fix_cflags_handling.patch24
-rw-r--r--poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.19.bb (renamed from poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.18.bb)0
-rw-r--r--poky/meta/recipes-core/libxcrypt/libxcrypt.inc10
-rw-r--r--poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.19.bb (renamed from poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.18.bb)0
-rw-r--r--poky/meta/recipes-core/meta/cve-update-db-native.bb7
-rw-r--r--poky/meta/recipes-core/musl/musl_git.bb2
-rw-r--r--poky/meta/recipes-core/netbase/netbase_6.3.bb (renamed from poky/meta/recipes-core/netbase/netbase_6.2.bb)2
-rw-r--r--poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb1
-rw-r--r--poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb1
-rw-r--r--poky/meta/recipes-core/systemd/systemd-boot_247.6.bb (renamed from poky/meta/recipes-core/systemd/systemd-boot_247.4.bb)0
-rw-r--r--poky/meta/recipes-core/systemd/systemd-conf_247.6.bb (renamed from poky/meta/recipes-core/systemd/systemd-conf_247.3.bb)0
-rw-r--r--poky/meta/recipes-core/systemd/systemd.inc2
-rw-r--r--poky/meta/recipes-core/systemd/systemd/0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch36
-rw-r--r--poky/meta/recipes-core/systemd/systemd_247.6.bb (renamed from poky/meta/recipes-core/systemd/systemd_247.4.bb)4
-rw-r--r--poky/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty44
-rw-r--r--poky/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb4
-rw-r--r--poky/meta/recipes-devtools/apt/apt/0001-Hide-fstatat64-and-prlimit64-defines-on-musl.patch48
-rw-r--r--poky/meta/recipes-devtools/apt/apt_2.2.2.bb2
-rw-r--r--poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2021.02.19.bb (renamed from poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2019.01.06.bb)3
-rw-r--r--poky/meta/recipes-devtools/binutils/binutils-2.36.inc12
-rw-r--r--poky/meta/recipes-devtools/binutils/binutils/0017-Add-support-for-the-DW_FORM_strx-forms-to-the-BFD-li.patch183
-rw-r--r--poky/meta/recipes-devtools/binutils/binutils/CVE-2021-20197.patch388
-rw-r--r--poky/meta/recipes-devtools/binutils/binutils_2.36.bb2
-rw-r--r--poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.11.1.bb (renamed from poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.10.1.bb)32
-rw-r--r--poky/meta/recipes-devtools/ccache/ccache/0001-doc-allow-disabling-docs-man-page-generation.patch161
-rw-r--r--poky/meta/recipes-devtools/ccache/ccache_4.2.1.bb (renamed from poky/meta/recipes-devtools/ccache/ccache_4.2.bb)10
-rw-r--r--poky/meta/recipes-devtools/elfutils/elfutils_0.183.bb9
-rw-r--r--poky/meta/recipes-devtools/elfutils/files/0001-debuginfod-debuginfod-client.c-correct-string-format.patch74
-rw-r--r--poky/meta/recipes-devtools/file/file_5.40.bb (renamed from poky/meta/recipes-devtools/file/file_5.39.bb)5
-rw-r--r--poky/meta/recipes-devtools/file/files/0001-src-compress.c-correct-header-define-for-xz-lzma.patch27
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc-11.1.inc (renamed from poky/meta/recipes-devtools/gcc/gcc-10.2.inc)16
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc9
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc-cross-canadian_11.1.bb (renamed from poky/meta/recipes-devtools/gcc/gcc-cross-canadian_10.2.bb)0
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc-cross.inc8
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc-cross_11.1.bb (renamed from poky/meta/recipes-devtools/gcc/gcc-cross_10.2.bb)0
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc-crosssdk_11.1.bb (renamed from poky/meta/recipes-devtools/gcc/gcc-crosssdk_10.2.bb)0
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc-runtime.inc14
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc-runtime_11.1.bb (renamed from poky/meta/recipes-devtools/gcc/gcc-runtime_10.2.bb)0
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc-sanitizers_11.1.bb (renamed from poky/meta/recipes-devtools/gcc/gcc-sanitizers_10.2.bb)0
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc-source_11.1.bb (renamed from poky/meta/recipes-devtools/gcc/gcc-source_10.2.bb)0
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc-target.inc4
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0001-aarch64-Fix-up-__aarch64_cas16_acq_rel-fallback.patch66
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch202
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch10
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0001-libatomic-libgomp-libitc-Fix-bootstrap-PR70454.patch208
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch607
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch55
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch658
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch6
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch10
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0005-optional-libstdc.patch26
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0006-COLLECT_GCC_OPTIONS.patch6
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch16
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0008-fortran-cross-compile-hack.patch10
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0009-cpp-honor-sysroot.patch14
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0010-MIPS64-Default-to-N64-ABI.patch6
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch32
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0012-gcc-Fix-argument-list-too-long-error.patch11
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0013-Disable-sdt.patch18
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0014-libtool.patch2
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch4
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch14
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch2
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0018-export-CPP.patch4
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0019-Ensure-target-gcc-headers-can-be-included.patch12
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0020-Don-t-search-host-directory-during-relink-if-inst_pr.patch2
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0021-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch4
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0022-aarch64-Add-support-for-musl-ldso.patch4
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0023-libcc1-fix-libcc1-s-install-path-and-rpath.patch10
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0024-handle-sysroot-support-for-nativesdk-gcc.patch44
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0025-Search-target-sysroot-gcc-version-specific-dirs-with.patch8
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0026-Fix-various-_FOR_BUILD-and-related-variables.patch18
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0027-nios2-Define-MUSL_DYNAMIC_LINKER.patch4
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch10
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0029-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch4
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0030-sync-gcc-stddef.h-with-musl.patch4
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0031-fix-segmentation-fault-in-precompiled-header-generat.patch6
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0032-Fix-for-testsuite-failure.patch2
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0033-Re-introduce-spe-commandline-options.patch13
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch12
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch34
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0036-mingw32-Enable-operation_not_supported.patch8
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0037-libatomic-Do-not-enforce-march-on-aarch64.patch8
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc_11.1.bb (renamed from poky/meta/recipes-devtools/gcc/gcc_10.2.bb)0
-rw-r--r--poky/meta/recipes-devtools/gcc/libgcc-initial.inc2
-rw-r--r--poky/meta/recipes-devtools/gcc/libgcc-initial_11.1.bb (renamed from poky/meta/recipes-devtools/gcc/libgcc-initial_10.2.bb)0
-rw-r--r--poky/meta/recipes-devtools/gcc/libgcc_11.1.bb (renamed from poky/meta/recipes-devtools/gcc/libgcc_10.2.bb)0
-rw-r--r--poky/meta/recipes-devtools/gcc/libgfortran_11.1.bb (renamed from poky/meta/recipes-devtools/gcc/libgfortran_10.2.bb)0
-rw-r--r--poky/meta/recipes-devtools/gdb/gdb-10.2.inc (renamed from poky/meta/recipes-devtools/gdb/gdb-10.1.inc)2
-rw-r--r--poky/meta/recipes-devtools/gdb/gdb-common.inc2
-rw-r--r--poky/meta/recipes-devtools/gdb/gdb-cross-canadian_10.2.bb (renamed from poky/meta/recipes-devtools/gdb/gdb-cross-canadian_10.1.bb)0
-rw-r--r--poky/meta/recipes-devtools/gdb/gdb-cross_10.2.bb (renamed from poky/meta/recipes-devtools/gdb/gdb-cross_10.1.bb)0
-rw-r--r--poky/meta/recipes-devtools/gdb/gdb_10.2.bb (renamed from poky/meta/recipes-devtools/gdb/gdb_10.1.bb)0
-rw-r--r--poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb4
-rw-r--r--poky/meta/recipes-devtools/go/go-1.16.3.inc (renamed from poky/meta/recipes-devtools/go/go-1.16.2.inc)4
-rw-r--r--poky/meta/recipes-devtools/go/go-binary-native_1.16.3.bb (renamed from poky/meta/recipes-devtools/go/go-binary-native_1.16.2.bb)4
-rw-r--r--poky/meta/recipes-devtools/go/go-common.inc2
-rw-r--r--poky/meta/recipes-devtools/go/go-cross-canadian_1.16.3.bb (renamed from poky/meta/recipes-devtools/go/go-cross-canadian_1.16.2.bb)0
-rw-r--r--poky/meta/recipes-devtools/go/go-cross_1.16.3.bb (renamed from poky/meta/recipes-devtools/go/go-cross_1.16.2.bb)0
-rw-r--r--poky/meta/recipes-devtools/go/go-crosssdk_1.16.3.bb (renamed from poky/meta/recipes-devtools/go/go-crosssdk_1.16.2.bb)0
-rw-r--r--poky/meta/recipes-devtools/go/go-native_1.16.3.bb (renamed from poky/meta/recipes-devtools/go/go-native_1.16.2.bb)0
-rw-r--r--poky/meta/recipes-devtools/go/go-runtime_1.16.3.bb (renamed from poky/meta/recipes-devtools/go/go-runtime_1.16.2.bb)0
-rw-r--r--poky/meta/recipes-devtools/go/go_1.16.3.bb (renamed from poky/meta/recipes-devtools/go/go_1.16.2.bb)0
-rw-r--r--poky/meta/recipes-devtools/help2man/help2man_1.48.3.bb (renamed from poky/meta/recipes-devtools/help2man/help2man_1.48.2.bb)2
-rw-r--r--poky/meta/recipes-devtools/libcomps/libcomps/0001-Add-crc32.c-to-sources-list.patch6
-rw-r--r--poky/meta/recipes-devtools/libcomps/libcomps_0.1.16.bb (renamed from poky/meta/recipes-devtools/libcomps/libcomps_0.1.15.bb)2
-rw-r--r--poky/meta/recipes-devtools/libedit/libedit_20210419-3.1.bb (renamed from poky/meta/recipes-devtools/libedit/libedit_20210216-3.1.bb)2
-rw-r--r--poky/meta/recipes-devtools/librepo/librepo_1.14.0.bb (renamed from poky/meta/recipes-devtools/librepo/librepo_1.13.0.bb)2
-rw-r--r--poky/meta/recipes-devtools/libtool/libtool-2.4.6.inc1
-rw-r--r--poky/meta/recipes-devtools/libtool/libtool/0001-Makefile.am-make-sure-autoheader-run-before-automake.patch35
-rw-r--r--poky/meta/recipes-devtools/llvm/llvm/0001-nfc-Fix-missing-include.patch26
-rw-r--r--poky/meta/recipes-devtools/llvm/llvm_git.bb7
-rw-r--r--poky/meta/recipes-devtools/m4/m4-1.4.18.inc1
-rw-r--r--poky/meta/recipes-devtools/m4/m4/0001-c-stack-stop-using-SIGSTKSZ.patch84
-rw-r--r--poky/meta/recipes-devtools/mtools/mtools_4.0.27.bb (renamed from poky/meta/recipes-devtools/mtools/mtools_4.0.26.bb)2
-rw-r--r--poky/meta/recipes-devtools/patchelf/patchelf/6edec83653ce1b5fc201ff6db93b966394766814.patch44
-rw-r--r--poky/meta/recipes-devtools/patchelf/patchelf/alignmentfix.patch44
-rw-r--r--poky/meta/recipes-devtools/patchelf/patchelf_0.12.bb2
-rw-r--r--poky/meta/recipes-devtools/pkgconfig/pkgconfig/0001-autotools-remove-support-for-the-__int64-type.-See-1.patch144
-rw-r--r--poky/meta/recipes-devtools/pkgconfig/pkgconfig/0001-autotools-use-C99-printf-format-specifiers-on-Window.patch68
-rw-r--r--poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb2
-rw-r--r--poky/meta/recipes-devtools/pseudo/pseudo_git.bb2
-rw-r--r--poky/meta/recipes-devtools/python-numpy/python3-numpy_1.20.2.bb (renamed from poky/meta/recipes-devtools/python-numpy/python3-numpy_1.20.1.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python-cython.inc2
-rw-r--r--poky/meta/recipes-devtools/python/python-gitdb.inc2
-rw-r--r--poky/meta/recipes-devtools/python/python3-cython_0.29.23.bb (renamed from poky/meta/recipes-devtools/python/python3-cython_0.29.22.bb)0
-rw-r--r--poky/meta/recipes-devtools/python/python3-dbusmock_0.23.0.bb (renamed from poky/meta/recipes-devtools/python/python3-dbusmock_0.22.0.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python3-docutils_0.16.bb17
-rw-r--r--poky/meta/recipes-devtools/python/python3-docutils_0.17.1.bb11
-rw-r--r--poky/meta/recipes-devtools/python/python3-gitdb_4.0.5.bb4
-rw-r--r--poky/meta/recipes-devtools/python/python3-gitdb_4.0.7.bb4
-rw-r--r--poky/meta/recipes-devtools/python/python3-jinja2_2.11.3.bb4
-rw-r--r--poky/meta/recipes-devtools/python/python3-markupsafe_1.1.1.bb2
-rw-r--r--poky/meta/recipes-devtools/python/python3-pygobject_3.40.1.bb (renamed from poky/meta/recipes-devtools/python/python3-pygobject_3.38.0.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python3-pyyaml_5.4.1.bb19
-rw-r--r--poky/meta/recipes-devtools/python/python3-setuptools_56.0.0.bb (renamed from poky/meta/recipes-devtools/python/python3-setuptools_54.1.1.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch22
-rw-r--r--poky/meta/recipes-devtools/python/python3/create_manifest3.py47
-rw-r--r--poky/meta/recipes-devtools/python/python3/get_module_deps3.py72
-rw-r--r--poky/meta/recipes-devtools/python/python3_3.9.4.bb (renamed from poky/meta/recipes-devtools/python/python3_3.9.2.bb)4
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu-system-native_5.2.0.bb5
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu.inc28
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2020-27821.patch143
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2020-29443.patch107
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2020-35517_1.patch153
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2020-35517_2.patch117
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2020-35517_3.patch303
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20181.patch81
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20221.patch70
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20257.patch55
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20263.patch214
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3392.patch89
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_1.patch56
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_2.patch92
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_3.patch109
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_4.patch75
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_5.patch56
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_6.patch99
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_1.patch177
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_10.patch44
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_2.patch42
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_3.patch43
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_4.patch43
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_5.patch45
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_6.patch43
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_7.patch45
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_8.patch44
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_9.patch46
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu_5.2.0.bb1
-rw-r--r--poky/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch8
-rw-r--r--poky/meta/recipes-devtools/rpm/rpm_4.16.1.3.bb (renamed from poky/meta/recipes-devtools/rpm/rpm_4.16.1.2.bb)2
-rw-r--r--poky/meta/recipes-devtools/rsync/files/0001-rsync-ssl-Verify-the-hostname-in-the-certificate-whe.patch31
-rw-r--r--poky/meta/recipes-devtools/rsync/rsync_3.2.3.bb1
-rw-r--r--poky/meta/recipes-devtools/ruby/ruby_3.0.1.bb (renamed from poky/meta/recipes-devtools/ruby/ruby_3.0.0.bb)2
-rw-r--r--poky/meta/recipes-devtools/strace/strace_5.12.bb (renamed from poky/meta/recipes-devtools/strace/strace_5.11.bb)2
-rw-r--r--poky/meta/recipes-devtools/valgrind/valgrind/0001-Add-missing-musl.supp.patch72
-rw-r--r--poky/meta/recipes-devtools/valgrind/valgrind/0001-Fix-nlcontrolc.vgtest-hanging-on-newer-glibc-and-or-.patch200
-rw-r--r--poky/meta/recipes-devtools/valgrind/valgrind/0001-drd-Port-to-Fedora-33.patch48
-rw-r--r--poky/meta/recipes-devtools/valgrind/valgrind/0001-drd-musl-fix.patch31
-rw-r--r--poky/meta/recipes-devtools/valgrind/valgrind/0001-drd-tests-swapcontext-Add-SIGALRM-handler-to-avoid-s.patch65
-rw-r--r--poky/meta/recipes-devtools/valgrind/valgrind/0001-helgrind-Intercept-libc-functions.patch54
-rw-r--r--poky/meta/recipes-devtools/valgrind/valgrind/0001-lmw-lswi-and-related-PowerPC-insns-aren-t-allowed-on.patch62
-rw-r--r--poky/meta/recipes-devtools/valgrind/valgrind/0001-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch2
-rw-r--r--poky/meta/recipes-devtools/valgrind/valgrind/0002-context-APIs-are-not-available-on-musl.patch50
-rw-r--r--poky/meta/recipes-devtools/valgrind/valgrind/fixed-perl-path.patch20
-rw-r--r--poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch642
-rw-r--r--poky/meta/recipes-devtools/valgrind/valgrind/remove-for-all2
-rwxr-xr-xpoky/meta/recipes-devtools/valgrind/valgrind/run-ptest3
-rw-r--r--poky/meta/recipes-devtools/valgrind/valgrind/s390x_vec_op_t.patch24
-rw-r--r--poky/meta/recipes-devtools/valgrind/valgrind_3.17.0.bb (renamed from poky/meta/recipes-devtools/valgrind/valgrind_3.16.1.bb)32
-rw-r--r--poky/meta/recipes-extended/acpica/acpica_20210331.bb (renamed from poky/meta/recipes-extended/acpica/acpica_20210105.bb)2
-rw-r--r--poky/meta/recipes-extended/bash/bash.inc3
-rw-r--r--poky/meta/recipes-extended/cups/cups.inc4
-rw-r--r--poky/meta/recipes-extended/diffutils/diffutils/0001-c-stack-stop-using-SIGSTKSZ.patch84
-rw-r--r--poky/meta/recipes-extended/diffutils/diffutils_3.7.bb1
-rw-r--r--poky/meta/recipes-extended/ghostscript/ghostscript_9.54.0.bb (renamed from poky/meta/recipes-extended/ghostscript/ghostscript_9.53.3.bb)2
-rw-r--r--poky/meta/recipes-extended/groff/groff_1.22.4.bb4
-rw-r--r--poky/meta/recipes-extended/hdparm/hdparm_9.61.bb (renamed from poky/meta/recipes-extended/hdparm/hdparm_9.60.bb)4
-rw-r--r--poky/meta/recipes-extended/libsolv/libsolv_0.7.19.bb (renamed from poky/meta/recipes-extended/libsolv/libsolv_0.7.17.bb)2
-rw-r--r--poky/meta/recipes-extended/ltp/ltp/0001-Add-more-musl-exclusions.patch32
-rw-r--r--poky/meta/recipes-extended/ltp/ltp/0001-build-Add-option-to-select-libc-implementation.patch81
-rw-r--r--poky/meta/recipes-extended/ltp/ltp_20210121.bb27
-rw-r--r--poky/meta/recipes-extended/man-pages/man-pages_5.11.bb (renamed from poky/meta/recipes-extended/man-pages/man-pages_5.10.bb)2
-rw-r--r--poky/meta/recipes-extended/pam/libpam/pam-volatiles.conf1
-rw-r--r--poky/meta/recipes-extended/pam/libpam/run-ptest5
-rw-r--r--poky/meta/recipes-extended/pam/libpam_1.3.1.bb22
-rw-r--r--poky/meta/recipes-extended/unzip/unzip/unzip_optimization.patch127
-rw-r--r--poky/meta/recipes-extended/unzip/unzip_6.0.bb1
-rw-r--r--poky/meta/recipes-gnome/epiphany/epiphany_3.38.3.bb (renamed from poky/meta/recipes-gnome/epiphany/epiphany_3.38.2.bb)4
-rw-r--r--poky/meta/recipes-gnome/gcr/gcr/0001-gcr-meson.build-fix-one-parallel-build-failure.patch37
-rw-r--r--poky/meta/recipes-gnome/gcr/gcr_3.40.0.bb (renamed from poky/meta/recipes-gnome/gcr/gcr_3.38.1.bb)4
-rw-r--r--poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-and-pixdata-cross-compile-fa.patch95
-rw-r--r--poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0003-target-only-Work-around-thumbnailer-cross-compile-fa.patch94
-rw-r--r--poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0004-Do-not-run-tests-when-building.patch39
-rw-r--r--poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch9
-rw-r--r--poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/CVE-2020-29385.patch55
-rw-r--r--poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/missing-test-data.patch30
-rw-r--r--poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.6.bb (renamed from poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.40.0.bb)21
-rw-r--r--poky/meta/recipes-gnome/libdazzle/libdazzle_3.40.0.bb (renamed from poky/meta/recipes-gnome/libdazzle/libdazzle_3.38.0.bb)2
-rw-r--r--poky/meta/recipes-gnome/libhandy/libhandy_1.2.2.bb (renamed from poky/meta/recipes-gnome/libhandy/libhandy_1.2.0.bb)2
-rw-r--r--poky/meta/recipes-gnome/libportal/libportal_0.4.bb (renamed from poky/meta/recipes-gnome/libportal/libportal_0.3.bb)2
-rw-r--r--poky/meta/recipes-graphics/drm/libdrm/0001-meson-Also-search-for-rst2man.py.patch30
-rw-r--r--poky/meta/recipes-graphics/drm/libdrm_2.4.105.bb (renamed from poky/meta/recipes-graphics/drm/libdrm_2.4.104.bb)3
-rw-r--r--poky/meta/recipes-graphics/glslang/glslang/0001-generate-glslang-pkg-config.patch22
-rw-r--r--poky/meta/recipes-graphics/glslang/glslang_11.4.0.bb (renamed from poky/meta/recipes-graphics/glslang/glslang_11.2.0.bb)2
-rw-r--r--poky/meta/recipes-graphics/images/core-image-weston-ptest-all.bb21
-rw-r--r--poky/meta/recipes-graphics/images/core-image-weston-ptest-fast.bb20
-rw-r--r--poky/meta/recipes-graphics/images/core-image-weston-sdk.bb11
-rw-r--r--poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.6.bb2
-rw-r--r--poky/meta/recipes-graphics/libva/libva-initial_2.11.0.bb (renamed from poky/meta/recipes-graphics/libva/libva-initial_2.10.0.bb)0
-rw-r--r--poky/meta/recipes-graphics/libva/libva-utils_2.11.1.bb (renamed from poky/meta/recipes-graphics/libva/libva-utils_2.10.0.bb)4
-rw-r--r--poky/meta/recipes-graphics/libva/libva.inc2
-rw-r--r--poky/meta/recipes-graphics/libva/libva_2.11.0.bb (renamed from poky/meta/recipes-graphics/libva/libva_2.10.0.bb)0
-rw-r--r--poky/meta/recipes-graphics/mesa/mesa-gl_21.0.3.bb (renamed from poky/meta/recipes-graphics/mesa/mesa-gl_21.0.1.bb)0
-rw-r--r--poky/meta/recipes-graphics/mesa/mesa.inc2
-rw-r--r--poky/meta/recipes-graphics/mesa/mesa_21.0.3.bb (renamed from poky/meta/recipes-graphics/mesa/mesa_21.0.1.bb)0
-rw-r--r--poky/meta/recipes-graphics/pango/pango_1.48.2.bb2
-rw-r--r--poky/meta/recipes-graphics/vulkan/assimp_5.0.1.bb2
-rw-r--r--poky/meta/recipes-graphics/wayland/weston/0001-meson.build-fix-incorrect-header.patch32
-rw-r--r--poky/meta/recipes-graphics/wayland/weston/xwayland.weston-start2
-rw-r--r--poky/meta/recipes-graphics/wayland/weston_9.0.0.bb3
-rw-r--r--poky/meta/recipes-graphics/xorg-lib/libxshmfence/0001-xshmfence_futex.h-Define-SYS_futex-if-it-does-not-ex.patch39
-rw-r--r--poky/meta/recipes-graphics/xorg-lib/libxshmfence_1.3.bb4
-rw-r--r--poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc1
-rw-r--r--poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/CVE-2021-3472.patch43
-rw-r--r--poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.10.bb1
-rw-r--r--poky/meta/recipes-graphics/xwayland/xwayland_21.1.1.bb26
-rw-r--r--poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb2
-rw-r--r--poky/meta/recipes-kernel/kmod/kmod.inc1
-rw-r--r--poky/meta/recipes-kernel/linux-firmware/linux-firmware_20210208.bb11
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto-dev.bb2
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb6
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb6
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb8
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb8
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto_5.10.bb24
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb22
-rw-r--r--poky/meta/recipes-kernel/lttng/babeltrace2_2.0.4.bb (renamed from poky/meta/recipes-kernel/lttng/babeltrace2_2.0.3.bb)2
-rw-r--r--poky/meta/recipes-kernel/lttng/lttng-tools_2.12.3.bb4
-rwxr-xr-xpoky/meta/recipes-kernel/modutils-initscripts/files/modutils.sh1
-rw-r--r--poky/meta/recipes-kernel/perf/perf.bb2
-rw-r--r--poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2021.04.21.bb (renamed from poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2020.11.20.bb)2
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.4.bb11
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.4.bb7
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc23
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch5
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-option-for-installed-tests.patch257
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch (renamed from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch)0
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch36
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch110
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch48
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch58
-rwxr-xr-xpoky/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest2
-rw-r--r--poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb12
-rw-r--r--poky/meta/recipes-multimedia/libid3tag/libid3tag/cflags_filter.patch8
-rw-r--r--poky/meta/recipes-multimedia/libtiff/tiff_4.3.0.bb (renamed from poky/meta/recipes-multimedia/libtiff/tiff_4.2.0.bb)2
-rw-r--r--poky/meta/recipes-multimedia/mpg123/mpg123_1.26.5.bb (renamed from poky/meta/recipes-multimedia/mpg123/mpg123_1.26.4.bb)2
-rw-r--r--poky/meta/recipes-rt/rt-tests/rt-tests.inc2
-rw-r--r--poky/meta/recipes-sato/webkit/webkitgtk/0001-Extend-atomics-check-to-include-1-byte-CAS-test.patch2
-rw-r--r--poky/meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-with-musl.patch2
-rw-r--r--poky/meta/recipes-sato/webkit/webkitgtk/0001-MiniBrowser-Fix-reproduciblity.patch31
-rw-r--r--poky/meta/recipes-sato/webkit/webkitgtk/musl-lower-stack-usage.patch2
-rw-r--r--poky/meta/recipes-sato/webkit/webkitgtk_2.30.6.bb (renamed from poky/meta/recipes-sato/webkit/webkitgtk_2.30.5.bb)3
-rw-r--r--poky/meta/recipes-sato/webkit/wpebackend-fdo_1.8.3.bb (renamed from poky/meta/recipes-sato/webkit/wpebackend-fdo_1.8.0.bb)2
-rw-r--r--poky/meta/recipes-support/atk/at-spi2-core_2.40.0.bb (renamed from poky/meta/recipes-support/atk/at-spi2-core_2.38.0.bb)2
-rw-r--r--poky/meta/recipes-support/boost/boost-1.76.0.inc (renamed from poky/meta/recipes-support/boost/boost-1.75.0.inc)4
-rw-r--r--poky/meta/recipes-support/boost/boost-build-native_4.4.1.bb (renamed from poky/meta/recipes-support/boost/boost-build-native_4.3.0.bb)2
-rw-r--r--poky/meta/recipes-support/boost/boost_1.76.0.bb (renamed from poky/meta/recipes-support/boost/boost_1.75.0.bb)0
-rw-r--r--poky/meta/recipes-support/ca-certificates/ca-certificates_20210119.bb6
-rw-r--r--poky/meta/recipes-support/curl/curl_7.76.0.bb (renamed from poky/meta/recipes-support/curl/curl_7.75.0.bb)5
-rw-r--r--poky/meta/recipes-support/diffoscope/diffoscope_172.bb1
-rw-r--r--poky/meta/recipes-support/gnutls/gnutls_3.7.1.bb4
-rw-r--r--poky/meta/recipes-support/icu/icu/0001-icu-Added-armeb-support.patch6
-rw-r--r--poky/meta/recipes-support/icu/icu_69.1.bb (renamed from poky/meta/recipes-support/icu/icu_68.2.bb)4
-rw-r--r--poky/meta/recipes-support/libassuan/libassuan/libassuan-add-pkgconfig-support.patch27
-rw-r--r--poky/meta/recipes-support/libassuan/libassuan_2.5.5.bb (renamed from poky/meta/recipes-support/libassuan/libassuan_2.5.4.bb)2
-rw-r--r--poky/meta/recipes-support/libcap/libcap_2.49.bb (renamed from poky/meta/recipes-support/libcap/libcap_2.48.bb)4
-rw-r--r--poky/meta/recipes-support/libevent/libevent/0002-test-regress.h-Increase-default-timeval-tolerance-50.patch33
-rw-r--r--poky/meta/recipes-support/libevent/libevent_2.1.12.bb1
-rw-r--r--poky/meta/recipes-support/libical/libical_3.0.10.bb (renamed from poky/meta/recipes-support/libical/libical_3.0.9.bb)2
-rw-r--r--poky/meta/recipes-support/libjitterentropy/libjitterentropy_3.0.2.bb (renamed from poky/meta/recipes-support/libjitterentropy/libjitterentropy_3.0.1.bb)2
-rw-r--r--poky/meta/recipes-support/libksba/libksba_1.5.1.bb (renamed from poky/meta/recipes-support/libksba/libksba_1.5.0.bb)2
-rw-r--r--poky/meta/recipes-support/libmicrohttpd/libmicrohttpd_0.9.73.bb31
-rw-r--r--poky/meta/recipes-support/libpsl/libpsl_0.21.1.bb7
-rw-r--r--poky/meta/recipes-support/libseccomp/files/run-ptest4
-rw-r--r--poky/meta/recipes-support/libseccomp/libseccomp_2.5.1.bb54
-rw-r--r--poky/meta/recipes-support/libssh2/files/0001-kex.c-move-EC-macro-outside-of-if-check-549-550.patch112
-rw-r--r--poky/meta/recipes-support/libssh2/libssh2_1.9.0.bb1
-rw-r--r--poky/meta/recipes-support/lz4/lz4_1.9.3.bb2
-rw-r--r--poky/meta/recipes-support/nettle/nettle_3.7.2.bb (renamed from poky/meta/recipes-support/nettle/nettle_3.7.1.bb)2
-rw-r--r--poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.1.bb2
-rw-r--r--poky/meta/recipes-support/re2c/re2c_2.1.1.bb (renamed from poky/meta/recipes-support/re2c/re2c_2.0.3.bb)2
-rw-r--r--poky/meta/recipes-support/sqlite/sqlite3_3.35.3.bb (renamed from poky/meta/recipes-support/sqlite/sqlite3_3.35.0.bb)2
-rw-r--r--poky/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch15
-rw-r--r--poky/meta/recipes-support/vte/vte_0.64.0.bb (renamed from poky/meta/recipes-support/vte/vte_0.62.2.bb)10
-rwxr-xr-xpoky/scripts/combo-layer2
-rwxr-xr-xpoky/scripts/contrib/image-manifest523
-rw-r--r--poky/scripts/lib/devtool/standard.py8
-rw-r--r--poky/scripts/lib/devtool/upgrade.py3
-rw-r--r--poky/scripts/lib/wic/plugins/imager/direct.py2
-rwxr-xr-xpoky/scripts/oe-buildenv-internal4
-rwxr-xr-xpoky/scripts/oe-debuginfod13
-rwxr-xr-x[-rw-r--r--]poky/scripts/oe-time-dd-test.sh10
-rw-r--r--poky/scripts/pybootchartgui/pybootchartgui/draw.py2
-rwxr-xr-xpoky/scripts/runqemu18
-rwxr-xr-xpoky/scripts/yocto-check-layer5
520 files changed, 9367 insertions, 10555 deletions
diff --git a/poky/bitbake/bin/bitbake b/poky/bitbake/bin/bitbake
index 712755087..f0ff2400f 100755
--- a/poky/bitbake/bin/bitbake
+++ b/poky/bitbake/bin/bitbake
@@ -26,7 +26,7 @@ from bb.main import bitbake_main, BitBakeConfigParameters, BBMainException
if sys.getfilesystemencoding() != "utf-8":
sys.exit("Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).\nPython can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.")
-__version__ = "1.50.0"
+__version__ = "1.51.0"
if __name__ == "__main__":
if __version__ != bb.__version__:
diff --git a/poky/bitbake/bin/bitbake-getvar b/poky/bitbake/bin/bitbake-getvar
new file mode 100755
index 000000000..942321925
--- /dev/null
+++ b/poky/bitbake/bin/bitbake-getvar
@@ -0,0 +1,48 @@
+#! /usr/bin/env python3
+#
+# Copyright (C) 2021 Richard Purdie
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
+import argparse
+import io
+import os
+import sys
+
+bindir = os.path.dirname(__file__)
+topdir = os.path.dirname(bindir)
+sys.path[0:0] = [os.path.join(topdir, 'lib')]
+
+import bb.tinfoil
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser(description="Bitbake Query Variable")
+ parser.add_argument("variable", help="variable name to query")
+ parser.add_argument("-r", "--recipe", help="Recipe name to query", default=None, required=False)
+ parser.add_argument('-u', '--unexpand', help='Do not expand the value (with --value)', action="store_true")
+ parser.add_argument('-f', '--flag', help='Specify a variable flag to query (with --value)', default=None)
+ parser.add_argument('--value', help='Only report the value, no history and no variable name', action="store_true")
+ args = parser.parse_args()
+
+ if args.unexpand and not args.value:
+ print("--unexpand only makes sense with --value")
+ sys.exit(1)
+
+ if args.flag and not args.value:
+ print("--flag only makes sense with --value")
+ sys.exit(1)
+
+ with bb.tinfoil.Tinfoil(tracking=True) as tinfoil:
+ if args.recipe:
+ tinfoil.prepare(quiet=2)
+ d = tinfoil.parse_recipe(args.recipe)
+ else:
+ tinfoil.prepare(quiet=2, config_only=True)
+ d = tinfoil.config_data
+ if args.flag:
+ print(str(d.getVarFlag(args.variable, args.flag, expand=(not args.unexpand))))
+ elif args.value:
+ print(str(d.getVar(args.variable, expand=(not args.unexpand))))
+ else:
+ bb.data.emit_var(args.variable, d=d, all=True)
diff --git a/poky/bitbake/bin/bitbake-server b/poky/bitbake/bin/bitbake-server
index ffbc7894e..8e5394736 100755
--- a/poky/bitbake/bin/bitbake-server
+++ b/poky/bitbake/bin/bitbake-server
@@ -26,12 +26,10 @@ readypipeinfd = int(sys.argv[3])
logfile = sys.argv[4]
lockname = sys.argv[5]
sockname = sys.argv[6]
-timeout = sys.argv[7]
+timeout = float(sys.argv[7])
xmlrpcinterface = (sys.argv[8], int(sys.argv[9]))
if xmlrpcinterface[0] == "None":
xmlrpcinterface = (None, xmlrpcinterface[1])
-if timeout == "None":
- timeout = None
# Replace standard fds with our own
with open('/dev/null', 'r') as si:
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst
index 56abf7735..14c342a6a 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst
@@ -16,7 +16,7 @@ data, or simply return information about the execution environment.
This chapter describes BitBake's execution process from start to finish
when you use it to create an image. The execution process is launched
-using the following command form: ::
+using the following command form::
$ bitbake target
@@ -32,7 +32,7 @@ the BitBake command and its options, see ":ref:`The BitBake Command
your project's ``local.conf`` configuration file.
A common method to determine this value for your build host is to run
- the following: ::
+ the following::
$ grep processor /proc/cpuinfo
@@ -139,7 +139,7 @@ in ``BBPATH`` in the same way as configuration files.
A good way to get an idea of the configuration files and the class files
used in your execution environment is to run the following BitBake
-command: ::
+command::
$ bitbake -e > mybb.log
@@ -155,7 +155,7 @@ execution environment.
pair of curly braces in a shell function, the closing curly brace
must not be located at the start of the line without leading spaces.
- Here is an example that causes BitBake to produce a parsing error: ::
+ Here is an example that causes BitBake to produce a parsing error::
fakeroot create_shar() {
cat << "EOF" > ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
@@ -185,7 +185,7 @@ During the configuration phase, BitBake will have set
:term:`BBFILES`. BitBake now uses it to construct a
list of recipes to parse, along with any append files (``.bbappend``) to
apply. ``BBFILES`` is a space-separated list of available files and
-supports wildcards. An example would be: ::
+supports wildcards. An example would be::
BBFILES = "/path/to/bbfiles/*.bb /path/to/appends/*.bbappend"
@@ -206,7 +206,7 @@ parses in order any append files found in ``BBFILES``.
One common convention is to use the recipe filename to define pieces of
metadata. For example, in ``bitbake.conf`` the recipe name and version
are used to set the variables :term:`PN` and
-:term:`PV`: ::
+:term:`PV`::
PN = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
PV = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[1] or '1.0'}"
@@ -238,7 +238,7 @@ Recipe file collections exist to allow the user to have multiple
repositories of ``.bb`` files that contain the same exact package. For
example, one could easily use them to make one's own local copy of an
upstream repository, but with custom modifications that one does not
-want upstream. Here is an example: ::
+want upstream. Here is an example::
BBFILES = "/stuff/openembedded/*/*.bb /stuff/openembedded.modified/*/*.bb"
BBFILE_COLLECTIONS = "upstream local"
@@ -270,7 +270,7 @@ variable, which is optional.
When a recipe uses ``PROVIDES``, that recipe's functionality can be
found under an alternative name or names other than the implicit ``PN``
name. As an example, suppose a recipe named ``keyboard_1.0.bb``
-contained the following: ::
+contained the following::
PROVIDES += "fullkeyboard"
@@ -291,7 +291,7 @@ needs to prioritize providers by determining provider preferences.
A common example in which a target has multiple providers is
"virtual/kernel", which is on the ``PROVIDES`` list for each kernel
recipe. Each machine often selects the best kernel provider by using a
-line similar to the following in the machine configuration file: ::
+line similar to the following in the machine configuration file::
PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"
@@ -331,7 +331,7 @@ If the first recipe is named ``a_1.1.bb``, then the
Thus, if a recipe named ``a_1.2.bb`` exists, BitBake will choose 1.2 by
default. However, if you define the following variable in a ``.conf``
-file that BitBake parses, you can change that preference: ::
+file that BitBake parses, you can change that preference::
PREFERRED_VERSION_a = "1.1"
@@ -498,7 +498,7 @@ to the task.
Like the working directory case, situations exist where dependencies
should be ignored. For these cases, you can instruct the build process
-to ignore a dependency by using a line like the following: ::
+to ignore a dependency by using a line like the following::
PACKAGE_ARCHS[vardepsexclude] = "MACHINE"
@@ -508,7 +508,7 @@ even if it does reference it.
Equally, there are cases where we need to add dependencies BitBake is
not able to find. You can accomplish this by using a line like the
-following: ::
+following::
PACKAGE_ARCHS[vardeps] = "MACHINE"
@@ -536,7 +536,7 @@ configuration file, we can give BitBake some extra information to help
it construct the basehash. The following statement effectively results
in a list of global variable dependency excludes - variables never
included in any checksum. This example uses variables from OpenEmbedded
-to help illustrate the concept: ::
+to help illustrate the concept::
BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR \
SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL \
@@ -557,7 +557,7 @@ OpenEmbedded-Core uses: "OEBasic" and "OEBasicHash". By default, there
is a dummy "noop" signature handler enabled in BitBake. This means that
behavior is unchanged from previous versions. ``OE-Core`` uses the
"OEBasicHash" signature handler by default through this setting in the
-``bitbake.conf`` file: ::
+``bitbake.conf`` file::
BB_SIGNATURE_HANDLER ?= "OEBasicHash"
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst
index bd6cc0ef2..bd1fb4fc7 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst
@@ -27,7 +27,7 @@ and unpacking the files is often optionally followed by patching.
Patching, however, is not covered by this module.
The code to execute the first part of this process, a fetch, looks
-something like the following: ::
+something like the following::
src_uri = (d.getVar('SRC_URI') or "").split()
fetcher = bb.fetch2.Fetch(src_uri, d)
@@ -37,7 +37,7 @@ This code sets up an instance of the fetch class. The instance uses a
space-separated list of URLs from the :term:`SRC_URI`
variable and then calls the ``download`` method to download the files.
-The instantiation of the fetch class is usually followed by: ::
+The instantiation of the fetch class is usually followed by::
rootdir = l.getVar('WORKDIR')
fetcher.unpack(rootdir)
@@ -72,7 +72,7 @@ URLs by looking for source files in a specific search order:
For each URL passed to the fetcher, the fetcher calls the submodule that
handles that particular URL type. This behavior can be the source of
some confusion when you are providing URLs for the ``SRC_URI`` variable.
-Consider the following two URLs: ::
+Consider the following two URLs::
http://git.yoctoproject.org/git/poky;protocol=git
git://git.yoctoproject.org/git/poky;protocol=http
@@ -81,7 +81,7 @@ In the former case, the URL is passed to the ``wget`` fetcher, which does not
understand "git". Therefore, the latter case is the correct form since the Git
fetcher does know how to use HTTP as a transport.
-Here are some examples that show commonly used mirror definitions: ::
+Here are some examples that show commonly used mirror definitions::
PREMIRRORS ?= "\
bzr://.*/.\* http://somemirror.org/sources/ \\n \
@@ -111,19 +111,19 @@ File integrity is of key importance for reproducing builds. For
non-local archive downloads, the fetcher code can verify SHA-256 and MD5
checksums to ensure the archives have been downloaded correctly. You can
specify these checksums by using the ``SRC_URI`` variable with the
-appropriate varflags as follows: ::
+appropriate varflags as follows::
SRC_URI[md5sum] = "value"
SRC_URI[sha256sum] = "value"
You can also specify the checksums as
-parameters on the ``SRC_URI`` as shown below: ::
+parameters on the ``SRC_URI`` as shown below::
SRC_URI = "http://example.com/foobar.tar.bz2;md5sum=4a8e0f237e961fd7785d19d07fdb994d"
If multiple URIs exist, you can specify the checksums either directly as
in the previous example, or you can name the URLs. The following syntax
-shows how you name the URIs: ::
+shows how you name the URIs::
SRC_URI = "http://example.com/foobar.tar.bz2;name=foo"
SRC_URI[foo.md5sum] = 4a8e0f237e961fd7785d19d07fdb994d
@@ -163,9 +163,6 @@ govern the behavior of the unpack stage:
- *dos:* Applies to ``.zip`` and ``.jar`` files and specifies whether
to use DOS line ending conversion on text files.
-- *basepath:* Instructs the unpack stage to strip the specified
- directories from the source path when unpacking.
-
- *subdir:* Unpacks the specific URL to the specified subdirectory
within the root directory.
@@ -204,7 +201,7 @@ time the ``download()`` method is called.
If you specify a directory, the entire directory is unpacked.
Here are a couple of example URLs, the first relative and the second
-absolute: ::
+absolute::
SRC_URI = "file://relativefile.patch"
SRC_URI = "file:///Users/ich/very_important_software"
@@ -225,7 +222,7 @@ downloaded file is useful for avoiding collisions in
:term:`DL_DIR` when dealing with multiple files that
have the same name.
-Some example URLs are as follows: ::
+Some example URLs are as follows::
SRC_URI = "http://oe.handhelds.org/not_there.aac"
SRC_URI = "ftp://oe.handhelds.org/not_there_as_well.aac"
@@ -235,15 +232,13 @@ Some example URLs are as follows: ::
Because URL parameters are delimited by semi-colons, this can
introduce ambiguity when parsing URLs that also contain semi-colons,
- for example:
- ::
+ for example::
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git;a=snapshot;h=a5dd47"
Such URLs should should be modified by replacing semi-colons with '&'
- characters:
- ::
+ characters::
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git&a=snapshot&h=a5dd47"
@@ -251,8 +246,7 @@ Some example URLs are as follows: ::
In most cases this should work. Treating semi-colons and '&' in
queries identically is recommended by the World Wide Web Consortium
(W3C). Note that due to the nature of the URL, you may have to
- specify the name of the downloaded file as well:
- ::
+ specify the name of the downloaded file as well::
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git&a=snapshot&h=a5dd47;downloadfilename=myfile.bz2"
@@ -321,7 +315,7 @@ The supported parameters are as follows:
- *"port":* The port to which the CVS server connects.
-Some example URLs are as follows: ::
+Some example URLs are as follows::
SRC_URI = "cvs://CVSROOT;module=mymodule;tag=some-version;method=ext"
SRC_URI = "cvs://CVSROOT;module=mymodule;date=20060126;localdir=usethat"
@@ -363,7 +357,7 @@ The supported parameters are as follows:
username is different than the username used in the main URL, which
is passed to the subversion command.
-Following are three examples using svn: ::
+Following are three examples using svn::
SRC_URI = "svn://myrepos/proj1;module=vip;protocol=http;rev=667"
SRC_URI = "svn://myrepos/proj1;module=opie;protocol=svn+ssh"
@@ -436,7 +430,7 @@ This fetcher supports the following parameters:
parameter implies no branch and only works when the transfer protocol
is ``file://``.
-Here are some example URLs: ::
+Here are some example URLs::
SRC_URI = "git://git.oe.handhelds.org/git/vip.git;tag=version-1"
SRC_URI = "git://git.oe.handhelds.org/git/vip.git;protocol=http"
@@ -484,7 +478,7 @@ repository.
To use this fetcher, make sure your recipe has proper
:term:`SRC_URI`, :term:`SRCREV`, and
-:term:`PV` settings. Here is an example: ::
+:term:`PV` settings. Here is an example::
SRC_URI = "ccrc://cc.example.org/ccrc;vob=/example_vob;module=/example_module"
SRCREV = "EXAMPLE_CLEARCASE_TAG"
@@ -506,7 +500,7 @@ Following are options for the ``SRC_URI`` statement:
The module and vob options are combined to create the load rule in the
view config spec. As an example, consider the vob and module values from
the SRC_URI statement at the start of this section. Combining those values
- results in the following: ::
+ results in the following::
load /example_vob/example_module
@@ -558,7 +552,7 @@ the server's URL and port number, and you can specify a username and
password directly in your recipe within ``SRC_URI``.
Here is an example that relies on ``P4CONFIG`` to specify the server URL
-and port, username, and password, and fetches the Head Revision: ::
+and port, username, and password, and fetches the Head Revision::
SRC_URI = "p4://example-depot/main/source/..."
SRCREV = "${AUTOREV}"
@@ -566,7 +560,7 @@ and port, username, and password, and fetches the Head Revision: ::
S = "${WORKDIR}/p4"
Here is an example that specifies the server URL and port, username, and
-password, and fetches a Revision based on a Label: ::
+password, and fetches a Revision based on a Label::
P4PORT = "tcp:p4server.example.net:1666"
SRC_URI = "p4://user:passwd@example-depot/main/source/..."
@@ -592,7 +586,7 @@ paths locally is desirable, the fetcher supports two parameters:
paths locally for the specified location, even in combination with the
``module`` parameter.
-Here is an example use of the the ``module`` parameter: ::
+Here is an example use of the the ``module`` parameter::
SRC_URI = "p4://user:passwd@example-depot/main;module=source/..."
@@ -600,7 +594,7 @@ In this case, the content of the top-level directory ``source/`` will be fetched
to ``${P4DIR}``, including the directory itself. The top-level directory will
be accesible at ``${P4DIR}/source/``.
-Here is an example use of the the ``remotepath`` parameter: ::
+Here is an example use of the the ``remotepath`` parameter::
SRC_URI = "p4://user:passwd@example-depot/main;module=source/...;remotepath=keep"
@@ -628,7 +622,7 @@ This fetcher supports the following parameters:
- *"manifest":* Name of the manifest file (default: ``default.xml``).
-Here are some example URLs: ::
+Here are some example URLs::
SRC_URI = "repo://REPOROOT;protocol=git;branch=some_branch;manifest=my_manifest.xml"
SRC_URI = "repo://REPOROOT;protocol=file;branch=some_branch;manifest=my_manifest.xml"
@@ -651,11 +645,11 @@ Such functionality is set by the variable:
delegate access to resources, if this variable is set, the Az Fetcher will
use it when fetching artifacts from the cloud.
-You can specify the AZ_SAS variable as shown below: ::
+You can specify the AZ_SAS variable as shown below::
AZ_SAS = "se=2021-01-01&sp=r&sv=2018-11-09&sr=c&skoid=<skoid>&sig=<signature>"
-Here is an example URL: ::
+Here is an example URL::
SRC_URI = "az://<azure-storage-account>.blob.core.windows.net/<foo_container>/<bar_file>"
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.rst
index e3fd32158..a9c33709a 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.rst
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.rst
@@ -20,7 +20,7 @@ Obtaining BitBake
See the :ref:`bitbake-user-manual/bitbake-user-manual-hello:obtaining bitbake` section for
information on how to obtain BitBake. Once you have the source code on
-your machine, the BitBake directory appears as follows: ::
+your machine, the BitBake directory appears as follows::
$ ls -al
total 100
@@ -49,7 +49,7 @@ Setting Up the BitBake Environment
First, you need to be sure that you can run BitBake. Set your working
directory to where your local BitBake files are and run the following
-command: ::
+command::
$ ./bin/bitbake --version
BitBake Build Tool Core version 1.23.0, bitbake version 1.23.0
@@ -61,14 +61,14 @@ The recommended method to run BitBake is from a directory of your
choice. To be able to run BitBake from any directory, you need to add
the executable binary to your binary to your shell's environment
``PATH`` variable. First, look at your current ``PATH`` variable by
-entering the following: ::
+entering the following::
$ echo $PATH
Next, add the directory location
for the BitBake binary to the ``PATH``. Here is an example that adds the
``/home/scott-lenovo/bitbake/bin`` directory to the front of the
-``PATH`` variable: ::
+``PATH`` variable::
$ export PATH=/home/scott-lenovo/bitbake/bin:$PATH
@@ -116,7 +116,7 @@ Following is the complete "Hello World" example.
#. **Create a Project Directory:** First, set up a directory for the
"Hello World" project. Here is how you can do so in your home
- directory: ::
+ directory::
$ mkdir ~/hello
$ cd ~/hello
@@ -127,7 +127,7 @@ Following is the complete "Hello World" example.
directory is a good way to isolate your project.
#. **Run BitBake:** At this point, you have nothing but a project
- directory. Run the ``bitbake`` command and see what it does: ::
+ directory. Run the ``bitbake`` command and see what it does::
$ bitbake
The BBPATH variable is not set and bitbake did not
@@ -161,7 +161,7 @@ Following is the complete "Hello World" example.
``BBPATH`` variable up in a configuration file for each project.
From your shell, enter the following commands to set and export the
- ``BBPATH`` variable: ::
+ ``BBPATH`` variable::
$ BBPATH="projectdirectory"
$ export BBPATH
@@ -176,7 +176,7 @@ Following is the complete "Hello World" example.
shell would.
#. **Run BitBake:** Now that you have ``BBPATH`` defined, run the
- ``bitbake`` command again: ::
+ ``bitbake`` command again::
$ bitbake
ERROR: Traceback (most recent call last):
@@ -208,13 +208,13 @@ Following is the complete "Hello World" example.
http://git.openembedded.org/bitbake/tree/conf/bitbake.conf.
Use the following commands to create the ``conf`` directory in the
- project directory: ::
+ project directory::
$ mkdir conf
From within the ``conf`` directory,
use some editor to create the ``bitbake.conf`` so that it contains
- the following: ::
+ the following::
PN = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
@@ -251,7 +251,7 @@ Following is the complete "Hello World" example.
glossary.
#. **Run BitBake:** After making sure that the ``conf/bitbake.conf`` file
- exists, you can run the ``bitbake`` command again: ::
+ exists, you can run the ``bitbake`` command again::
$ bitbake
ERROR: Traceback (most recent call last):
@@ -278,7 +278,7 @@ Following is the complete "Hello World" example.
in the ``classes`` directory of the project (i.e ``hello/classes``
in this example).
- Create the ``classes`` directory as follows: ::
+ Create the ``classes`` directory as follows::
$ cd $HOME/hello
$ mkdir classes
@@ -291,7 +291,7 @@ Following is the complete "Hello World" example.
environments BitBake is supporting.
#. **Run BitBake:** After making sure that the ``classes/base.bbclass``
- file exists, you can run the ``bitbake`` command again: ::
+ file exists, you can run the ``bitbake`` command again::
$ bitbake
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.
@@ -314,7 +314,7 @@ Following is the complete "Hello World" example.
Minimally, you need a recipe file and a layer configuration file in
your layer. The configuration file needs to be in the ``conf``
directory inside the layer. Use these commands to set up the layer
- and the ``conf`` directory: ::
+ and the ``conf`` directory::
$ cd $HOME
$ mkdir mylayer
@@ -322,12 +322,12 @@ Following is the complete "Hello World" example.
$ mkdir conf
Move to the ``conf`` directory and create a ``layer.conf`` file that has the
- following: ::
+ following::
BBPATH .= ":${LAYERDIR}"
- BBFILES += "${LAYERDIR}/\*.bb"
+ BBFILES += "${LAYERDIR}/*.bb"
BBFILE_COLLECTIONS += "mylayer"
- `BBFILE_PATTERN_mylayer := "^${LAYERDIR_RE}/"
+ BBFILE_PATTERN_mylayer := "^${LAYERDIR_RE}/"
For information on these variables, click on :term:`BBFILES`,
:term:`LAYERDIR`, :term:`BBFILE_COLLECTIONS` or :term:`BBFILE_PATTERN_mylayer <BBFILE_PATTERN>`
@@ -335,7 +335,7 @@ Following is the complete "Hello World" example.
You need to create the recipe file next. Inside your layer at the
top-level, use an editor and create a recipe file named
- ``printhello.bb`` that has the following: ::
+ ``printhello.bb`` that has the following::
DESCRIPTION = "Prints Hello World"
PN = 'printhello'
@@ -356,7 +356,7 @@ Following is the complete "Hello World" example.
follow the links to the glossary.
#. **Run BitBake With a Target:** Now that a BitBake target exists, run
- the command and provide that target: ::
+ the command and provide that target::
$ cd $HOME/hello
$ bitbake printhello
@@ -376,7 +376,7 @@ Following is the complete "Hello World" example.
``hello/conf`` for this example).
Set your working directory to the ``hello/conf`` directory and then
- create the ``bblayers.conf`` file so that it contains the following: ::
+ create the ``bblayers.conf`` file so that it contains the following::
BBLAYERS ?= " \
/home/<you>/mylayer \
@@ -386,7 +386,7 @@ Following is the complete "Hello World" example.
#. **Run BitBake With a Target:** Now that you have supplied the
``bblayers.conf`` file, run the ``bitbake`` command and provide the
- target: ::
+ target::
$ bitbake printhello
Parsing recipes: 100% |##################################################################################|
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.rst
index 6f9d39293..b3cea61ff 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.rst
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.rst
@@ -248,13 +248,13 @@ underlying, similarly-named recipe files.
When you name an append file, you can use the "``%``" wildcard character
to allow for matching recipe names. For example, suppose you have an
-append file named as follows: ::
+append file named as follows::
busybox_1.21.%.bbappend
That append file
would match any ``busybox_1.21.``\ x\ ``.bb`` version of the recipe. So,
-the append file would match the following recipe names: ::
+the append file would match the following recipe names::
busybox_1.21.1.bb
busybox_1.21.2.bb
@@ -290,7 +290,7 @@ You can obtain BitBake several different ways:
are using. The metadata is generally backwards compatible but not
forward compatible.
- Here is an example that clones the BitBake repository: ::
+ Here is an example that clones the BitBake repository::
$ git clone git://git.openembedded.org/bitbake
@@ -298,7 +298,7 @@ You can obtain BitBake several different ways:
Git repository into a directory called ``bitbake``. Alternatively,
you can designate a directory after the ``git clone`` command if you
want to call the new directory something other than ``bitbake``. Here
- is an example that names the directory ``bbdev``: ::
+ is an example that names the directory ``bbdev``::
$ git clone git://git.openembedded.org/bitbake bbdev
@@ -317,7 +317,7 @@ You can obtain BitBake several different ways:
method for getting BitBake. Cloning the repository makes it easier
to update as patches are added to the stable branches.
- The following example downloads a snapshot of BitBake version 1.17.0: ::
+ The following example downloads a snapshot of BitBake version 1.17.0::
$ wget http://git.openembedded.org/bitbake/snapshot/bitbake-1.17.0.tar.gz
$ tar zxpvf bitbake-1.17.0.tar.gz
@@ -347,7 +347,7 @@ execution examples.
Usage and syntax
----------------
-Following is the usage and syntax for BitBake: ::
+Following is the usage and syntax for BitBake::
$ bitbake -h
Usage: bitbake [options] [recipename/target recipe:do_task ...]
@@ -469,11 +469,11 @@ default task, which is "build". BitBake obeys inter-task dependencies
when doing so.
The following command runs the build task, which is the default task, on
-the ``foo_1.0.bb`` recipe file: ::
+the ``foo_1.0.bb`` recipe file::
$ bitbake -b foo_1.0.bb
-The following command runs the clean task on the ``foo.bb`` recipe file: ::
+The following command runs the clean task on the ``foo.bb`` recipe file::
$ bitbake -b foo.bb -c clean
@@ -497,13 +497,13 @@ functionality, or when there are multiple versions of a recipe.
The ``bitbake`` command, when not using "--buildfile" or "-b" only
accepts a "PROVIDES". You cannot provide anything else. By default, a
recipe file generally "PROVIDES" its "packagename" as shown in the
-following example: ::
+following example::
$ bitbake foo
This next example "PROVIDES" the
package name and also uses the "-c" option to tell BitBake to just
-execute the ``do_clean`` task: ::
+execute the ``do_clean`` task::
$ bitbake -c clean foo
@@ -514,7 +514,7 @@ The BitBake command line supports specifying different tasks for
individual targets when you specify multiple targets. For example,
suppose you had two targets (or recipes) ``myfirstrecipe`` and
``mysecondrecipe`` and you needed BitBake to run ``taskA`` for the first
-recipe and ``taskB`` for the second recipe: ::
+recipe and ``taskB`` for the second recipe::
$ bitbake myfirstrecipe:do_taskA mysecondrecipe:do_taskB
@@ -540,7 +540,7 @@ produce more readable graphs. This way, you can remove from the graph
``DEPENDS`` from inherited classes such as ``base.bbclass``.
Here are two examples that create dependency graphs. The second example
-omits depends common in OpenEmbedded from the graph: ::
+omits depends common in OpenEmbedded from the graph::
$ bitbake -g foo
@@ -582,17 +582,17 @@ accomplished by setting the
configuration files for ``target1`` and ``target2`` defined in the build
directory. The following statement in the ``local.conf`` file both
enables BitBake to perform multiple configuration builds and specifies
-the two extra multiconfigs: ::
+the two extra multiconfigs::
BBMULTICONFIG = "target1 target2"
Once the target configuration files are in place and BitBake has been
enabled to perform multiple configuration builds, use the following
-command form to start the builds: ::
+command form to start the builds::
$ bitbake [mc:multiconfigname:]target [[[mc:multiconfigname:]target] ... ]
-Here is an example for two extra multiconfigs: ``target1`` and ``target2``: ::
+Here is an example for two extra multiconfigs: ``target1`` and ``target2``::
$ bitbake mc::target mc:target1:target mc:target2:target
@@ -613,12 +613,12 @@ multiconfig.
To enable dependencies in a multiple configuration build, you must
declare the dependencies in the recipe using the following statement
-form: ::
+form::
task_or_package[mcdepends] = "mc:from_multiconfig:to_multiconfig:recipe_name:task_on_which_to_depend"
To better show how to use this statement, consider an example with two
-multiconfigs: ``target1`` and ``target2``: ::
+multiconfigs: ``target1`` and ``target2``::
image_task[mcdepends] = "mc:target1:target2:image2:rootfs_task"
@@ -629,7 +629,7 @@ completion of the rootfs_task used to build out image2, which is
associated with the "target2" multiconfig.
Once you set up this dependency, you can build the "target1" multiconfig
-using a BitBake command as follows: ::
+using a BitBake command as follows::
$ bitbake mc:target1:image1
@@ -639,7 +639,7 @@ the ``rootfs_task`` for the "target2" multiconfig build.
Having a recipe depend on the root filesystem of another build might not
seem that useful. Consider this change to the statement in the image1
-recipe: ::
+recipe::
image_task[mcdepends] = "mc:target1:target2:image2:image_task"
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst
index d4190c26e..615c9f9ce 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst
@@ -26,7 +26,7 @@ assignment. ::
VARIABLE = "value"
As expected, if you include leading or
-trailing spaces as part of an assignment, the spaces are retained: ::
+trailing spaces as part of an assignment, the spaces are retained::
VARIABLE = " value"
VARIABLE = "value "
@@ -40,7 +40,7 @@ blank space (i.e. these are not the same values). ::
You can use single quotes instead of double quotes when setting a
variable's value. Doing so allows you to use values that contain the
-double quote character: ::
+double quote character::
VARIABLE = 'I have a " in my value'
@@ -77,7 +77,7 @@ occurs, you can use BitBake to check the actual value of the suspect
variable. You can make these checks for both configuration and recipe
level changes:
-- For configuration changes, use the following: ::
+- For configuration changes, use the following::
$ bitbake -e
@@ -91,7 +91,7 @@ level changes:
Variables that are exported to the environment are preceded by the
string "export" in the command's output.
-- For recipe changes, use the following: ::
+- For recipe changes, use the following::
$ bitbake recipe -e \| grep VARIABLE="
@@ -105,7 +105,7 @@ Outside of :ref:`functions <bitbake-user-manual/bitbake-user-manual-metadata:fun
BitBake joins any line ending in
a backslash character ("\") with the following line before parsing
statements. The most common use for the "\" character is to split
-variable assignments over multiple lines, as in the following example: ::
+variable assignments over multiple lines, as in the following example::
FOO = "bar \
baz \
@@ -116,7 +116,7 @@ character that follow it are removed when joining lines. Thus, no
newline characters end up in the value of ``FOO``.
Consider this additional example where the two assignments both assign
-"barbaz" to ``FOO``: ::
+"barbaz" to ``FOO``::
FOO = "barbaz"
FOO = "bar\
@@ -149,7 +149,7 @@ The "=" operator does not immediately expand variable references in the
right-hand side. Instead, expansion is deferred until the variable
assigned to is actually used. The result depends on the current values
of the referenced variables. The following example should clarify this
-behavior: ::
+behavior::
A = "${B} baz"
B = "${C} bar"
@@ -177,7 +177,7 @@ Setting a default value (?=)
You can use the "?=" operator to achieve a "softer" assignment for a
variable. This type of assignment allows you to define a variable if it
is undefined when the statement is parsed, but to leave the value alone
-if the variable has a value. Here is an example: ::
+if the variable has a value. Here is an example::
A ?= "aval"
@@ -199,7 +199,7 @@ by using the "??=" operator. This assignment behaves identical to "?="
except that the assignment is made at the end of the parsing process
rather than immediately. Consequently, when multiple "??=" assignments
exist, the last one is used. Also, any "=" or "?=" assignment will
-override the value set with "??=". Here is an example: ::
+override the value set with "??=". Here is an example::
A ??= "somevalue"
A ??= "someothervalue"
@@ -215,7 +215,7 @@ Immediate variable expansion (:=)
---------------------------------
The ":=" operator results in a variable's contents being expanded
-immediately, rather than when the variable is actually used: ::
+immediately, rather than when the variable is actually used::
T = "123"
A := "test ${T}"
@@ -241,7 +241,7 @@ the "+=" and "=+" operators. These operators insert a space between the
current value and prepended or appended value.
These operators take immediate effect during parsing. Here are some
-examples: ::
+examples::
B = "bval"
B += "additionaldata"
@@ -260,7 +260,7 @@ If you want to append or prepend values without an inserted space, use
the ".=" and "=." operators.
These operators take immediate effect during parsing. Here are some
-examples: ::
+examples::
B = "bval"
B .= "additionaldata"
@@ -278,7 +278,7 @@ style syntax. When you use this syntax, no spaces are inserted.
These operators differ from the ":=", ".=", "=.", "+=", and "=+"
operators in that their effects are applied at variable expansion time
-rather than being immediately applied. Here are some examples: ::
+rather than being immediately applied. Here are some examples::
B = "bval"
B_append = " additional data"
@@ -309,7 +309,7 @@ syntax. Specifying a value for removal causes all occurrences of that
value to be removed from the variable.
When you use this syntax, BitBake expects one or more strings.
-Surrounding spaces and spacing are preserved. Here is an example: ::
+Surrounding spaces and spacing are preserved. Here is an example::
FOO = "123 456 789 123456 123 456 123 456"
FOO_remove = "123"
@@ -334,27 +334,27 @@ An advantage of the override style operations "_append", "_prepend", and
"_remove" as compared to the "+=" and "=+" operators is that the
override style operators provide guaranteed operations. For example,
consider a class ``foo.bbclass`` that needs to add the value "val" to
-the variable ``FOO``, and a recipe that uses ``foo.bbclass`` as follows: ::
+the variable ``FOO``, and a recipe that uses ``foo.bbclass`` as follows::
inherit foo
FOO = "initial"
If ``foo.bbclass`` uses the "+=" operator,
as follows, then the final value of ``FOO`` will be "initial", which is
-not what is desired: ::
+not what is desired::
FOO += "val"
If, on the other hand, ``foo.bbclass``
uses the "_append" operator, then the final value of ``FOO`` will be
-"initial val", as intended: ::
+"initial val", as intended::
FOO_append = " val"
.. note::
It is never necessary to use "+=" together with "_append". The following
- sequence of assignments appends "barbaz" to FOO: ::
+ sequence of assignments appends "barbaz" to FOO::
FOO_append = "bar"
FOO_append = "baz"
@@ -381,7 +381,7 @@ standard syntax operations previously mentioned work for variable flags
except for override style syntax (i.e. "_prepend", "_append", and
"_remove").
-Here are some examples showing how to set variable flags: ::
+Here are some examples showing how to set variable flags::
FOO[a] = "abc"
FOO[b] = "123"
@@ -393,7 +393,7 @@ respectively. The ``[a]`` flag becomes "abc 456".
No need exists to pre-define variable flags. You can simply start using
them. One extremely common application is to attach some brief
-documentation to a BitBake variable as follows: ::
+documentation to a BitBake variable as follows::
CACHE[doc] = "The directory holding the cache of the metadata."
@@ -401,7 +401,7 @@ Inline Python Variable Expansion
--------------------------------
You can use inline Python variable expansion to set variables. Here is
-an example: ::
+an example::
DATE = "${@time.strftime('%Y%m%d',time.gmtime())}"
@@ -410,7 +410,7 @@ This example results in the ``DATE`` variable being set to the current date.
Probably the most common use of this feature is to extract the value of
variables from BitBake's internal data dictionary, ``d``. The following
lines select the values of a package name and its version number,
-respectively: ::
+respectively::
PN = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
PV = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[1] or '1.0'}"
@@ -419,12 +419,12 @@ respectively: ::
Inline Python expressions work just like variable expansions insofar as the
"=" and ":=" operators are concerned. Given the following assignment, foo()
- is called each time FOO is expanded: ::
+ is called each time FOO is expanded::
FOO = "${@foo()}"
Contrast this with the following immediate assignment, where foo() is only
- called once, while the assignment is parsed: ::
+ called once, while the assignment is parsed::
FOO := "${@foo()}"
@@ -437,7 +437,7 @@ Unsetting variables
It is possible to completely remove a variable or a variable flag from
BitBake's internal data dictionary by using the "unset" keyword. Here is
-an example: ::
+an example::
unset DATE
unset do_fetch[noexec]
@@ -452,7 +452,7 @@ When specifying pathnames for use with BitBake, do not use the tilde
cause BitBake to not recognize the path since BitBake does not expand
this character in the same way a shell would.
-Instead, provide a fuller path as the following example illustrates: ::
+Instead, provide a fuller path as the following example illustrates::
BBLAYERS ?= " \
/home/scott-lenovo/LayerA \
@@ -463,7 +463,7 @@ Exporting Variables to the Environment
You can export variables to the environment of running tasks by using
the ``export`` keyword. For example, in the following example, the
-``do_foo`` task prints "value from the environment" when run: ::
+``do_foo`` task prints "value from the environment" when run::
export ENV_VARIABLE
ENV_VARIABLE = "value from the environment"
@@ -481,7 +481,7 @@ It does not matter whether ``export ENV_VARIABLE`` appears before or
after assignments to ``ENV_VARIABLE``.
It is also possible to combine ``export`` with setting a value for the
-variable. Here is an example: ::
+variable. Here is an example::
export ENV_VARIABLE = "variable-value"
@@ -518,7 +518,7 @@ variable.
to satisfy conditions. Thus, if you have a variable that is
conditional on "arm", and "arm" is in ``OVERRIDES``, then the
"arm"-specific version of the variable is used rather than the
- non-conditional version. Here is an example: ::
+ non-conditional version. Here is an example::
OVERRIDES = "architecture:os:machine"
TEST = "default"
@@ -535,7 +535,7 @@ variable.
an OpenEmbedded metadata-based Linux kernel recipe file. The
following lines from the recipe file first set the kernel branch
variable ``KBRANCH`` to a default value, then conditionally override
- that value based on the architecture of the build: ::
+ that value based on the architecture of the build::
KBRANCH = "standard/base"
KBRANCH_qemuarm = "standard/arm-versatile-926ejs"
@@ -547,7 +547,7 @@ variable.
- *Appending and Prepending:* BitBake also supports append and prepend
operations to variable values based on whether a specific item is
- listed in ``OVERRIDES``. Here is an example: ::
+ listed in ``OVERRIDES``. Here is an example::
DEPENDS = "glibc ncurses"
OVERRIDES = "machine:local"
@@ -557,14 +557,14 @@ variable.
Again, using an OpenEmbedded metadata-based kernel recipe file as an
example, the following lines will conditionally append to the
- ``KERNEL_FEATURES`` variable based on the architecture: ::
+ ``KERNEL_FEATURES`` variable based on the architecture::
KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
- *Setting a Variable for a Single Task:* BitBake supports setting a
- variable just for the duration of a single task. Here is an example: ::
+ variable just for the duration of a single task. Here is an example::
FOO_task-configure = "val 1"
FOO_task-compile = "val 2"
@@ -580,7 +580,7 @@ variable.
``do_compile`` task.
You can also use this syntax with other combinations (e.g.
- "``_prepend``") as shown in the following example: ::
+ "``_prepend``") as shown in the following example::
EXTRA_OEMAKE_prepend_task-compile = "${PARALLEL_MAKE} "
@@ -588,7 +588,7 @@ Key Expansion
-------------
Key expansion happens when the BitBake datastore is finalized. To better
-understand this, consider the following example: ::
+understand this, consider the following example::
A${B} = "X"
B = "2"
@@ -614,7 +614,7 @@ There is often confusion concerning the order in which overrides and
various "append" operators take effect. Recall that an append or prepend
operation using "_append" and "_prepend" does not result in an immediate
assignment as would "+=", ".=", "=+", or "=.". Consider the following
-example: ::
+example::
OVERRIDES = "foo"
A = "Z"
@@ -631,7 +631,7 @@ Applying overrides, however, changes things. Since "foo" is listed in
version, which is equal to "X". So effectively, ``A_foo`` replaces
``A``.
-This next example changes the order of the override and the append: ::
+This next example changes the order of the override and the append::
OVERRIDES = "foo"
A = "Z"
@@ -644,7 +644,7 @@ appended with "X". Consequently, ``A`` becomes "ZX". Notice that spaces
are not appended.
This next example has the order of the appends and overrides reversed
-back as in the first example: ::
+back as in the first example::
OVERRIDES = "foo"
A = "Y"
@@ -658,7 +658,7 @@ leaving the variable set to "ZX". Finally, applying the override for
"foo" results in the conditional variable ``A`` becoming "ZX" (i.e.
``A`` is replaced with ``A_foo``).
-This final example mixes in some varying operators: ::
+This final example mixes in some varying operators::
A = "1"
A_append = "2"
@@ -720,7 +720,7 @@ file and then have your recipe inherit that class file.
As an example, your recipes could use the following directive to inherit
an ``autotools.bbclass`` file. The class file would contain common
-functionality for using Autotools that could be shared across recipes: ::
+functionality for using Autotools that could be shared across recipes::
inherit autotools
@@ -734,7 +734,7 @@ In this case, BitBake would search for the directory
If you want to use the directive to inherit multiple classes, separate
them with spaces. The following example shows how to inherit both the
-``buildhistory`` and ``rm_work`` classes: ::
+``buildhistory`` and ``rm_work`` classes::
inherit buildhistory rm_work
@@ -742,19 +742,19 @@ An advantage with the inherit directive as compared to both the
:ref:`include <bitbake-user-manual/bitbake-user-manual-metadata:\`\`include\`\` directive>` and :ref:`require <bitbake-user-manual/bitbake-user-manual-metadata:\`\`require\`\` directive>`
directives is that you can inherit class files conditionally. You can
accomplish this by using a variable expression after the ``inherit``
-statement. Here is an example: ::
+statement. Here is an example::
inherit ${VARNAME}
If ``VARNAME`` is
going to be set, it needs to be set before the ``inherit`` statement is
parsed. One way to achieve a conditional inherit in this case is to use
-overrides: ::
+overrides::
VARIABLE = ""
VARIABLE_someoverride = "myclass"
-Another method is by using anonymous Python. Here is an example: ::
+Another method is by using anonymous Python. Here is an example::
python () {
if condition == value:
@@ -764,7 +764,7 @@ Another method is by using anonymous Python. Here is an example: ::
}
Alternatively, you could use an in-line Python expression in the
-following form: ::
+following form::
inherit ${@'classname' if condition else ''}
inherit ${@functionname(params)}
@@ -790,7 +790,7 @@ encapsulated functionality or configuration that does not suit a
``.bbclass`` file.
As an example, suppose you needed a recipe to include some self-test
-definitions: ::
+definitions::
include test_defs.inc
@@ -831,7 +831,7 @@ include file named ``foo.inc`` that contains the common definitions
needed to build "foo". You need to be sure ``foo.inc`` is located in the
same directory as your two recipe files as well. Once these conditions
are set up, you can share the functionality using a ``require``
-directive from within each recipe: ::
+directive from within each recipe::
require foo.inc
@@ -844,7 +844,7 @@ class. BitBake only supports this directive when used within a
configuration file.
As an example, suppose you needed to inherit a class file called
-``abc.bbclass`` from a configuration file as follows: ::
+``abc.bbclass`` from a configuration file as follows::
INHERIT += "abc"
@@ -862,7 +862,7 @@ subdirectory in one of the directories specified in ``BBPATH``.
If you want to use the directive to inherit multiple classes, you can
provide them on the same line in the ``local.conf`` file. Use spaces to
separate the classes. The following example shows how to inherit both
-the ``autotools`` and ``pkgconfig`` classes: ::
+the ``autotools`` and ``pkgconfig`` classes::
INHERIT += "autotools pkgconfig"
@@ -895,7 +895,7 @@ Shell Functions
Functions written in shell script and executed either directly as
functions, tasks, or both. They can also be called by other shell
-functions. Here is an example shell function definition: ::
+functions. Here is an example shell function definition::
some_function () {
echo "Hello World"
@@ -912,7 +912,7 @@ can also be applied to shell functions. Most commonly, this application
would be used in a ``.bbappend`` file to modify functions in the main
recipe. It can also be used to modify functions inherited from classes.
-As an example, consider the following: ::
+As an example, consider the following::
do_foo() {
bbplain first
@@ -931,7 +931,7 @@ As an example, consider the following: ::
bbplain fourth
}
-Running ``do_foo`` prints the following: ::
+Running ``do_foo`` prints the following::
recipename do_foo: first
recipename do_foo: second
@@ -952,7 +952,7 @@ BitBake-Style Python Functions
These functions are written in Python and executed by BitBake or other
Python functions using ``bb.build.exec_func()``.
-An example BitBake function is: ::
+An example BitBake function is::
python some_python_function () {
d.setVar("TEXT", "Hello World")
@@ -975,7 +975,7 @@ import these modules. Also in these types of functions, the datastore
Similar to shell functions, you can also apply overrides and
override-style operators to BitBake-style Python functions.
-As an example, consider the following: ::
+As an example, consider the following::
python do_foo_prepend() {
bb.plain("first")
@@ -989,7 +989,7 @@ As an example, consider the following: ::
bb.plain("third")
}
-Running ``do_foo`` prints the following: ::
+Running ``do_foo`` prints the following::
recipename do_foo: first
recipename do_foo: second
@@ -1004,7 +1004,7 @@ Python Functions
These functions are written in Python and are executed by other Python
code. Examples of Python functions are utility functions that you intend
to call from in-line Python or from within other Python functions. Here
-is an example: ::
+is an example::
def get_depends(d):
if d.getVar('SOMECONDITION'):
@@ -1056,7 +1056,7 @@ functions and regular Python functions defined with "def":
- Regular Python functions are called with the usual Python syntax.
BitBake-style Python functions are usually tasks and are called
directly by BitBake, but can also be called manually from Python code
- by using the ``bb.build.exec_func()`` function. Here is an example: ::
+ by using the ``bb.build.exec_func()`` function. Here is an example::
bb.build.exec_func("my_bitbake_style_function", d)
@@ -1094,7 +1094,7 @@ Sometimes it is useful to set variables or perform other operations
programmatically during parsing. To do this, you can define special
Python functions, called anonymous Python functions, that run at the end
of parsing. For example, the following conditionally sets a variable
-based on the value of another variable: ::
+based on the value of another variable::
python () {
if d.getVar('SOMEVAR') == 'value':
@@ -1107,7 +1107,7 @@ the name "__anonymous", rather than no name.
Anonymous Python functions always run at the end of parsing, regardless
of where they are defined. If a recipe contains many anonymous
functions, they run in the same order as they are defined within the
-recipe. As an example, consider the following snippet: ::
+recipe. As an example, consider the following snippet::
python () {
d.setVar('FOO', 'foo 2')
@@ -1122,7 +1122,7 @@ recipe. As an example, consider the following snippet: ::
BAR = "bar 1"
The previous example is conceptually
-equivalent to the following snippet: ::
+equivalent to the following snippet::
FOO = "foo 1"
BAR = "bar 1"
@@ -1136,7 +1136,7 @@ available to tasks, which always run after parsing.
Overrides and override-style operators such as "``_append``" are applied
before anonymous functions run. In the following example, ``FOO`` ends
-up with the value "foo from anonymous": ::
+up with the value "foo from anonymous"::
FOO = "foo"
FOO_append = " from outside"
@@ -1173,24 +1173,24 @@ version of the function.
To make use of this technique, you need the following things in place:
-- The class needs to define the function as follows: ::
+- The class needs to define the function as follows::
classname_functionname
For example, if you have a class file
``bar.bbclass`` and a function named ``do_foo``, the class must
- define the function as follows: ::
+ define the function as follows::
bar_do_foo
- The class needs to contain the ``EXPORT_FUNCTIONS`` statement as
- follows: ::
+ follows::
EXPORT_FUNCTIONS functionname
For example, continuing with
the same example, the statement in the ``bar.bbclass`` would be as
- follows: ::
+ follows::
EXPORT_FUNCTIONS do_foo
@@ -1199,7 +1199,7 @@ To make use of this technique, you need the following things in place:
class version of the function, it should call ``bar_do_foo``.
Assuming ``do_foo`` was a shell function and ``EXPORT_FUNCTIONS`` was
used as above, the recipe's function could conditionally call the
- class version of the function as follows: ::
+ class version of the function as follows::
do_foo() {
if [ somecondition ] ; then
@@ -1233,7 +1233,7 @@ Tasks are either :ref:`shell functions <bitbake-user-manual/bitbake-user-manual-
that have been promoted to tasks by using the ``addtask`` command. The
``addtask`` command can also optionally describe dependencies between
the task and other tasks. Here is an example that shows how to define a
-task and declare some dependencies: ::
+task and declare some dependencies::
python do_printdate () {
import time
@@ -1264,12 +1264,12 @@ Additionally, the ``do_printdate`` task becomes dependent upon the
rerun for experimentation purposes, you can make BitBake always
consider the task "out-of-date" by using the
:ref:`[nostamp] <bitbake-user-manual/bitbake-user-manual-metadata:Variable Flags>`
- variable flag, as follows: ::
+ variable flag, as follows::
do_printdate[nostamp] = "1"
You can also explicitly run the task and provide the
- -f option as follows: ::
+ -f option as follows::
$ bitbake recipe -c printdate -f
@@ -1278,7 +1278,7 @@ Additionally, the ``do_printdate`` task becomes dependent upon the
name.
You might wonder about the practical effects of using ``addtask``
-without specifying any dependencies as is done in the following example: ::
+without specifying any dependencies as is done in the following example::
addtask printdate
@@ -1286,7 +1286,7 @@ In this example, assuming dependencies have not been
added through some other means, the only way to run the task is by
explicitly selecting it with ``bitbake`` recipe ``-c printdate``. You
can use the ``do_listtasks`` task to list all tasks defined in a recipe
-as shown in the following example: ::
+as shown in the following example::
$ bitbake recipe -c listtasks
@@ -1312,7 +1312,7 @@ Deleting a Task
As well as being able to add tasks, you can delete them. Simply use the
``deltask`` command to delete a task. For example, to delete the example
-task used in the previous sections, you would use: ::
+task used in the previous sections, you would use::
deltask printdate
@@ -1328,7 +1328,7 @@ to run before ``do_a``.
If you want dependencies such as these to remain intact, use the
``[noexec]`` varflag to disable the task instead of using the
-``deltask`` command to delete it: ::
+``deltask`` command to delete it::
do_b[noexec] = "1"
@@ -1356,7 +1356,7 @@ environment, you must take these two steps:
example, assume you want to prevent the build system from accessing
your ``$HOME/.ccache`` directory. The following command "whitelists"
the environment variable ``CCACHE_DIR`` causing BitBake to allow that
- variable into the datastore: ::
+ variable into the datastore::
export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE CCACHE_DIR"
@@ -1366,7 +1366,7 @@ environment, you must take these two steps:
available in the datastore. To export it to the task environment of
every running task, use a command similar to the following in your
local configuration file ``local.conf`` or your distribution
- configuration file: ::
+ configuration file::
export CCACHE_DIR
@@ -1385,7 +1385,7 @@ environment into a special variable named :term:`BB_ORIGENV`.
The ``BB_ORIGENV`` variable returns a datastore object that can be
queried using the standard datastore operators such as
``getVar(, False)``. The datastore object is useful, for example, to
-find the original ``DISPLAY`` variable. Here is an example: ::
+find the original ``DISPLAY`` variable. Here is an example::
origenv = d.getVar("BB_ORIGENV", False)
bar = origenv.getVar("BAR", False)
@@ -1398,7 +1398,7 @@ Variable Flags
Variable flags (varflags) help control a task's functionality and
dependencies. BitBake reads and writes varflags to the datastore using
-the following command forms: ::
+the following command forms::
variable = d.getVarFlags("variable")
self.d.setVarFlags("FOO", {"func": True})
@@ -1537,7 +1537,7 @@ intent is to make it easy to do things like email notification on build
failures.
Following is an example event handler that prints the name of the event
-and the content of the ``FILE`` variable: ::
+and the content of the ``FILE`` variable::
addhandler myclass_eventhandler
python myclass_eventhandler() {
@@ -1676,7 +1676,7 @@ incarnations are buildable. These features are enabled through the
also specify conditional metadata (using the
:term:`OVERRIDES` mechanism) for a single
version, or an optionally named range of versions. Here is an
- example: ::
+ example::
BBVERSIONS = "1.0 2.0 git"
SRC_URI_git = "git://someurl/somepath.git"
@@ -1719,7 +1719,7 @@ Dependencies Internal to the ``.bb`` File
BitBake uses the ``addtask`` directive to manage dependencies that are
internal to a given recipe file. You can use the ``addtask`` directive
to indicate when a task is dependent on other tasks or when other tasks
-depend on that recipe. Here is an example: ::
+depend on that recipe. Here is an example::
addtask printdate after do_fetch before do_build
@@ -1743,7 +1743,7 @@ task depends on the completion of the ``do_printdate`` task.
- The directive ``addtask mytask after do_configure`` by itself
never causes ``do_mytask`` to run. ``do_mytask`` can still be run
- manually as follows: ::
+ manually as follows::
$ bitbake recipe -c mytask
@@ -1757,7 +1757,7 @@ Build Dependencies
BitBake uses the :term:`DEPENDS` variable to manage
build time dependencies. The ``[deptask]`` varflag for tasks signifies
the task of each item listed in ``DEPENDS`` that must complete before
-that task can be executed. Here is an example: ::
+that task can be executed. Here is an example::
do_configure[deptask] = "do_populate_sysroot"
@@ -1799,7 +1799,7 @@ dependencies are discovered and added.
The ``[recrdeptask]`` flag is most commonly used in high-level recipes
that need to wait for some task to finish "globally". For example,
-``image.bbclass`` has the following: ::
+``image.bbclass`` has the following::
do_rootfs[recrdeptask] += "do_packagedata"
@@ -1808,7 +1808,7 @@ the current recipe and all recipes reachable (by way of dependencies)
from the image recipe must run before the ``do_rootfs`` task can run.
BitBake allows a task to recursively depend on itself by
-referencing itself in the task list: ::
+referencing itself in the task list::
do_a[recrdeptask] = "do_a do_b"
@@ -1825,7 +1825,7 @@ Inter-Task Dependencies
BitBake uses the ``[depends]`` flag in a more generic form to manage
inter-task dependencies. This more generic form allows for
inter-dependency checks for specific tasks rather than checks for the
-data in ``DEPENDS``. Here is an example: ::
+data in ``DEPENDS``. Here is an example::
do_patch[depends] = "quilt-native:do_populate_sysroot"
@@ -1920,7 +1920,7 @@ To help understand how BitBake does this, the section assumes an
OpenEmbedded metadata-based example.
These checksums are stored in :term:`STAMP`. You can
-examine the checksums using the following BitBake command: ::
+examine the checksums using the following BitBake command::
$ bitbake-dumpsigs
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst
index 489fa15fa..e1b640e2f 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst
@@ -130,7 +130,7 @@ overview of their function and contents.
you to control the build based on these parameters.
Disk space monitoring is disabled by default. When setting this
- variable, use the following form: ::
+ variable, use the following form::
BB_DISKMON_DIRS = "<action>,<dir>,<threshold> [...]"
@@ -166,7 +166,7 @@ overview of their function and contents.
not specify G, M, or K, Kbytes is assumed by
default. Do not use GB, MB, or KB.
- Here are some examples: ::
+ Here are some examples::
BB_DISKMON_DIRS = "ABORT,${TMPDIR},1G,100K WARN,${SSTATE_DIR},1G,100K"
BB_DISKMON_DIRS = "STOPTASKS,${TMPDIR},1G"
@@ -207,7 +207,7 @@ overview of their function and contents.
BB_DISKMON_WARNINTERVAL = "50M,5K"
When specifying the variable in your configuration file, use the
- following form: ::
+ following form::
BB_DISKMON_WARNINTERVAL = "<disk_space_interval>,<disk_inode_interval>"
@@ -223,7 +223,7 @@ overview of their function and contents.
G, M, or K for Gbytes, Mbytes, or Kbytes,
respectively. You cannot use GB, MB, or KB.
- Here is an example: ::
+ Here is an example::
BB_DISKMON_DIRS = "WARN,${SSTATE_DIR},1G,100K"
BB_DISKMON_WARNINTERVAL = "50M,5K"
@@ -329,7 +329,7 @@ overview of their function and contents.
Specifies the name of the log files saved into
``${``\ :term:`T`\ ``}``. By default, the ``BB_LOGFMT``
variable is undefined and the log file names get created using the
- following form: ::
+ following form::
log.{task}.{pid}
@@ -383,7 +383,7 @@ overview of their function and contents.
Specifies the name of the executable script files (i.e. run files)
saved into ``${``\ :term:`T`\ ``}``. By default, the
``BB_RUNFMT`` variable is undefined and the run file names get
- created using the following form: ::
+ created using the following form::
run.{task}.{pid}
@@ -511,7 +511,7 @@ overview of their function and contents.
This variable works similarly to the :term:`BB_TASK_NICE_LEVEL`
variable except with a task's I/O priorities.
- Set the variable as follows: ::
+ Set the variable as follows::
BB_TASK_IONICE_LEVEL = "class.prio"
@@ -529,7 +529,7 @@ overview of their function and contents.
In order for your I/O priority settings to take effect, you need the
Completely Fair Queuing (CFQ) Scheduler selected for the backing block
device. To select the scheduler, use the following command form where
- device is the device (e.g. sda, sdb, and so forth): ::
+ device is the device (e.g. sda, sdb, and so forth)::
$ sudo sh -c "echo cfq > /sys/block/device/queu/scheduler"
@@ -570,7 +570,7 @@ overview of their function and contents.
To build a different variant of the recipe with a minimal amount of
code, it usually is as simple as adding the variable to your recipe.
Here are two examples. The "native" variants are from the
- OpenEmbedded-Core metadata: ::
+ OpenEmbedded-Core metadata::
BBCLASSEXTEND =+ "native nativesdk"
BBCLASSEXTEND =+ "multilib:multilib_name"
@@ -658,12 +658,12 @@ overview of their function and contents.
``.bb`` files in case a layer is not present. Use this avoid hard
dependency on those other layers.
- Use the following form for ``BBFILES_DYNAMIC``: ::
+ Use the following form for ``BBFILES_DYNAMIC``::
collection_name:filename_pattern
The following example identifies two collection names and two filename
- patterns: ::
+ patterns::
BBFILES_DYNAMIC += "\
clang-layer:${LAYERDIR}/bbappends/meta-clang/*/*/*.bbappend \
@@ -671,14 +671,14 @@ overview of their function and contents.
"
When the collection name is prefixed with "!" it will add the file pattern in case
- the layer is absent: ::
+ the layer is absent::
BBFILES_DYNAMIC += "\
!clang-layer:${LAYERDIR}/backfill/meta-clang/*/*/*.bb \
"
This next example shows an error message that occurs because invalid
- entries are found, which cause parsing to abort: ::
+ entries are found, which cause parsing to abort::
ERROR: BBFILES_DYNAMIC entries must be of the form {!}<collection name>:<filename pattern>, not:
/work/my-layer/bbappends/meta-security-isafw/*/*/*.bbappend
@@ -701,7 +701,7 @@ overview of their function and contents.
:term:`BBLAYERS`
Lists the layers to enable during the build. This variable is defined
in the ``bblayers.conf`` configuration file in the build directory.
- Here is an example: ::
+ Here is an example::
BBLAYERS = " \
/home/scottrif/poky/meta \
@@ -735,13 +735,13 @@ overview of their function and contents.
The following example uses a complete regular expression to tell
BitBake to ignore all recipe and recipe append files in the
- ``meta-ti/recipes-misc/`` directory: ::
+ ``meta-ti/recipes-misc/`` directory::
BBMASK = "meta-ti/recipes-misc/"
If you want to mask out multiple directories or recipes, you can
specify multiple regular expression fragments. This next example
- masks out multiple directories and individual recipes: ::
+ masks out multiple directories and individual recipes::
BBMASK += "/meta-ti/recipes-misc/ meta-ti/recipes-ti/packagegroup/"
BBMASK += "/meta-oe/recipes-support/"
@@ -762,7 +762,7 @@ overview of their function and contents.
``conf/local.conf`` configuration file.
As an example, the following line specifies three multiconfigs, each
- having a separate configuration file: ::
+ having a separate configuration file::
BBMULTIFONFIG = "configA configB configC"
@@ -783,7 +783,7 @@ overview of their function and contents.
If you run BitBake from a directory outside of the build directory,
you must be sure to set ``BBPATH`` to point to the build directory.
Set the variable as you would any environment variable and then run
- BitBake: ::
+ BitBake::
$ BBPATH="build_directory"
$ export BBPATH
@@ -852,7 +852,7 @@ overview of their function and contents.
Consider this simple example for two recipes named "a" and "b" that
produce similarly named packages. In this example, the ``DEPENDS``
- statement appears in the "a" recipe: ::
+ statement appears in the "a" recipe::
DEPENDS = "b"
@@ -1074,7 +1074,7 @@ overview of their function and contents.
recipes provide the same item. You should always suffix the variable
with the name of the provided item, and you should set it to the
:term:`PN` of the recipe to which you want to give
- precedence. Some examples: ::
+ precedence. Some examples::
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86"
@@ -1086,11 +1086,11 @@ overview of their function and contents.
``PREFERRED_PROVIDERS`` is identical to
:term:`PREFERRED_PROVIDER`. However, the ``PREFERRED_PROVIDERS`` variable
lets you define preferences for multiple situations using the following
- form: ::
+ form::
PREFERRED_PROVIDERS = "xxx:yyy aaa:bbb ..."
- This form is a convenient replacement for the following: ::
+ This form is a convenient replacement for the following::
PREFERRED_PROVIDER_xxx = "yyy"
PREFERRED_PROVIDER_aaa = "bbb"
@@ -1106,7 +1106,7 @@ overview of their function and contents.
through the "``%``" character. You can use the character to match any
number of characters, which can be useful when specifying versions
that contain long revision numbers that potentially change. Here are
- two examples: ::
+ two examples::
PREFERRED_VERSION_python = "2.7.3"
PREFERRED_VERSION_linux-yocto = "4.12%"
@@ -1130,7 +1130,7 @@ overview of their function and contents.
Typically, you would add a specific server for the build system to
attempt before any others by adding something like the following to
- your configuration: ::
+ your configuration::
PREMIRRORS_prepend = "\
git://.*/.* http://www.yoctoproject.org/sources/ \n \
@@ -1152,7 +1152,7 @@ overview of their function and contents.
``DEPENDS``.
Consider the following example ``PROVIDES`` statement from a recipe
- file ``libav_0.8.11.bb``: ::
+ file ``libav_0.8.11.bb``::
PROVIDES += "libpostproc"
@@ -1175,7 +1175,7 @@ overview of their function and contents.
:term:`PRSERV_HOST`
The network based :term:`PR` service host and port.
- Following is an example of how the ``PRSERV_HOST`` variable is set: ::
+ Following is an example of how the ``PRSERV_HOST`` variable is set::
PRSERV_HOST = "localhost:0"
@@ -1196,7 +1196,7 @@ overview of their function and contents.
you should always use the variable in a form with an attached package
name. For example, suppose you are building a development package
that depends on the ``perl`` package. In this case, you would use the
- following ``RDEPENDS`` statement: ::
+ following ``RDEPENDS`` statement::
RDEPENDS_${PN}-dev += "perl"
@@ -1207,11 +1207,11 @@ overview of their function and contents.
BitBake supports specifying versioned dependencies. Although the
syntax varies depending on the packaging format, BitBake hides these
differences from you. Here is the general syntax to specify versions
- with the ``RDEPENDS`` variable: ::
+ with the ``RDEPENDS`` variable::
RDEPENDS_${PN} = "package (operator version)"
- For ``operator``, you can specify the following: ::
+ For ``operator``, you can specify the following::
=
<
@@ -1220,7 +1220,7 @@ overview of their function and contents.
>=
For example, the following sets up a dependency on version 1.2 or
- greater of the package ``foo``: ::
+ greater of the package ``foo``::
RDEPENDS_${PN} = "foo (>= 1.2)"
@@ -1249,7 +1249,7 @@ overview of their function and contents.
As with all package-controlling variables, you must always use the
variable in conjunction with a package name override. Here is an
- example: ::
+ example::
RPROVIDES_${PN} = "widget-abi-2"
@@ -1263,11 +1263,11 @@ overview of their function and contents.
BitBake supports specifying versioned recommends. Although the syntax
varies depending on the packaging format, BitBake hides these
differences from you. Here is the general syntax to specify versions
- with the ``RRECOMMENDS`` variable: ::
+ with the ``RRECOMMENDS`` variable::
RRECOMMENDS_${PN} = "package (operator version)"
- For ``operator``, you can specify the following: ::
+ For ``operator``, you can specify the following::
=
<
@@ -1276,7 +1276,7 @@ overview of their function and contents.
>=
For example, the following sets up a recommend on version
- 1.2 or greater of the package ``foo``: ::
+ 1.2 or greater of the package ``foo``::
RRECOMMENDS_${PN} = "foo (>= 1.2)"
diff --git a/poky/bitbake/lib/bb/__init__.py b/poky/bitbake/lib/bb/__init__.py
index 9f61dae14..a144bd609 100644
--- a/poky/bitbake/lib/bb/__init__.py
+++ b/poky/bitbake/lib/bb/__init__.py
@@ -9,7 +9,7 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-__version__ = "1.50.0"
+__version__ = "1.51.0"
import sys
if sys.version_info < (3, 5, 0):
diff --git a/poky/bitbake/lib/bb/asyncrpc/__init__.py b/poky/bitbake/lib/bb/asyncrpc/__init__.py
new file mode 100644
index 000000000..b2bec31ab
--- /dev/null
+++ b/poky/bitbake/lib/bb/asyncrpc/__init__.py
@@ -0,0 +1,31 @@
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
+import itertools
+import json
+
+# The Python async server defaults to a 64K receive buffer, so we hardcode our
+# maximum chunk size. It would be better if the client and server reported to
+# each other what the maximum chunk sizes were, but that will slow down the
+# connection setup with a round trip delay so I'd rather not do that unless it
+# is necessary
+DEFAULT_MAX_CHUNK = 32 * 1024
+
+
+def chunkify(msg, max_chunk):
+ if len(msg) < max_chunk - 1:
+ yield ''.join((msg, "\n"))
+ else:
+ yield ''.join((json.dumps({
+ 'chunk-stream': None
+ }), "\n"))
+
+ args = [iter(msg)] * (max_chunk - 1)
+ for m in map(''.join, itertools.zip_longest(*args, fillvalue='')):
+ yield ''.join(itertools.chain(m, "\n"))
+ yield "\n"
+
+
+from .client import AsyncClient, Client
+from .serv import AsyncServer, AsyncServerConnection
diff --git a/poky/bitbake/lib/bb/asyncrpc/client.py b/poky/bitbake/lib/bb/asyncrpc/client.py
new file mode 100644
index 000000000..4cdad9ac3
--- /dev/null
+++ b/poky/bitbake/lib/bb/asyncrpc/client.py
@@ -0,0 +1,145 @@
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
+import abc
+import asyncio
+import json
+import os
+import socket
+from . import chunkify, DEFAULT_MAX_CHUNK
+
+
+class AsyncClient(object):
+ def __init__(self, proto_name, proto_version, logger):
+ self.reader = None
+ self.writer = None
+ self.max_chunk = DEFAULT_MAX_CHUNK
+ self.proto_name = proto_name
+ self.proto_version = proto_version
+ self.logger = logger
+
+ async def connect_tcp(self, address, port):
+ async def connect_sock():
+ return await asyncio.open_connection(address, port)
+
+ self._connect_sock = connect_sock
+
+ async def connect_unix(self, path):
+ async def connect_sock():
+ return await asyncio.open_unix_connection(path)
+
+ self._connect_sock = connect_sock
+
+ async def setup_connection(self):
+ s = '%s %s\n\n' % (self.proto_name, self.proto_version)
+ self.writer.write(s.encode("utf-8"))
+ await self.writer.drain()
+
+ async def connect(self):
+ if self.reader is None or self.writer is None:
+ (self.reader, self.writer) = await self._connect_sock()
+ await self.setup_connection()
+
+ async def close(self):
+ self.reader = None
+
+ if self.writer is not None:
+ self.writer.close()
+ self.writer = None
+
+ async def _send_wrapper(self, proc):
+ count = 0
+ while True:
+ try:
+ await self.connect()
+ return await proc()
+ except (
+ OSError,
+ ConnectionError,
+ json.JSONDecodeError,
+ UnicodeDecodeError,
+ ) as e:
+ self.logger.warning("Error talking to server: %s" % e)
+ if count >= 3:
+ if not isinstance(e, ConnectionError):
+ raise ConnectionError(str(e))
+ raise e
+ await self.close()
+ count += 1
+
+ async def send_message(self, msg):
+ async def get_line():
+ line = await self.reader.readline()
+ if not line:
+ raise ConnectionError("Connection closed")
+
+ line = line.decode("utf-8")
+
+ if not line.endswith("\n"):
+ raise ConnectionError("Bad message %r" % msg)
+
+ return line
+
+ async def proc():
+ for c in chunkify(json.dumps(msg), self.max_chunk):
+ self.writer.write(c.encode("utf-8"))
+ await self.writer.drain()
+
+ l = await get_line()
+
+ m = json.loads(l)
+ if m and "chunk-stream" in m:
+ lines = []
+ while True:
+ l = (await get_line()).rstrip("\n")
+ if not l:
+ break
+ lines.append(l)
+
+ m = json.loads("".join(lines))
+
+ return m
+
+ return await self._send_wrapper(proc)
+
+
+class Client(object):
+ def __init__(self):
+ self.client = self._get_async_client()
+ self.loop = asyncio.new_event_loop()
+
+ self._add_methods('connect_tcp', 'close')
+
+ @abc.abstractmethod
+ def _get_async_client(self):
+ pass
+
+ def _get_downcall_wrapper(self, downcall):
+ def wrapper(*args, **kwargs):
+ return self.loop.run_until_complete(downcall(*args, **kwargs))
+
+ return wrapper
+
+ def _add_methods(self, *methods):
+ for m in methods:
+ downcall = getattr(self.client, m)
+ setattr(self, m, self._get_downcall_wrapper(downcall))
+
+ def connect_unix(self, path):
+ # AF_UNIX has path length issues so chdir here to workaround
+ cwd = os.getcwd()
+ try:
+ os.chdir(os.path.dirname(path))
+ self.loop.run_until_complete(self.client.connect_unix(os.path.basename(path)))
+ self.loop.run_until_complete(self.client.connect())
+ finally:
+ os.chdir(cwd)
+
+ @property
+ def max_chunk(self):
+ return self.client.max_chunk
+
+ @max_chunk.setter
+ def max_chunk(self, value):
+ self.client.max_chunk = value
diff --git a/poky/bitbake/lib/bb/asyncrpc/serv.py b/poky/bitbake/lib/bb/asyncrpc/serv.py
new file mode 100644
index 000000000..cb3384639
--- /dev/null
+++ b/poky/bitbake/lib/bb/asyncrpc/serv.py
@@ -0,0 +1,218 @@
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
+import abc
+import asyncio
+import json
+import os
+import signal
+import socket
+import sys
+from . import chunkify, DEFAULT_MAX_CHUNK
+
+
+class ClientError(Exception):
+ pass
+
+
+class ServerError(Exception):
+ pass
+
+
+class AsyncServerConnection(object):
+ def __init__(self, reader, writer, proto_name, logger):
+ self.reader = reader
+ self.writer = writer
+ self.proto_name = proto_name
+ self.max_chunk = DEFAULT_MAX_CHUNK
+ self.handlers = {
+ 'chunk-stream': self.handle_chunk,
+ }
+ self.logger = logger
+
+ async def process_requests(self):
+ try:
+ self.addr = self.writer.get_extra_info('peername')
+ self.logger.debug('Client %r connected' % (self.addr,))
+
+ # Read protocol and version
+ client_protocol = await self.reader.readline()
+ if client_protocol is None:
+ return
+
+ (client_proto_name, client_proto_version) = client_protocol.decode('utf-8').rstrip().split()
+ if client_proto_name != self.proto_name:
+ self.logger.debug('Rejecting invalid protocol %s' % (self.proto_name))
+ return
+
+ self.proto_version = tuple(int(v) for v in client_proto_version.split('.'))
+ if not self.validate_proto_version():
+ self.logger.debug('Rejecting invalid protocol version %s' % (client_proto_version))
+ return
+
+ # Read headers. Currently, no headers are implemented, so look for
+ # an empty line to signal the end of the headers
+ while True:
+ line = await self.reader.readline()
+ if line is None:
+ return
+
+ line = line.decode('utf-8').rstrip()
+ if not line:
+ break
+
+ # Handle messages
+ while True:
+ d = await self.read_message()
+ if d is None:
+ break
+ await self.dispatch_message(d)
+ await self.writer.drain()
+ except ClientError as e:
+ self.logger.error(str(e))
+ finally:
+ self.writer.close()
+
+ async def dispatch_message(self, msg):
+ for k in self.handlers.keys():
+ if k in msg:
+ self.logger.debug('Handling %s' % k)
+ await self.handlers[k](msg[k])
+ return
+
+ raise ClientError("Unrecognized command %r" % msg)
+
+ def write_message(self, msg):
+ for c in chunkify(json.dumps(msg), self.max_chunk):
+ self.writer.write(c.encode('utf-8'))
+
+ async def read_message(self):
+ l = await self.reader.readline()
+ if not l:
+ return None
+
+ try:
+ message = l.decode('utf-8')
+
+ if not message.endswith('\n'):
+ return None
+
+ return json.loads(message)
+ except (json.JSONDecodeError, UnicodeDecodeError) as e:
+ self.logger.error('Bad message from client: %r' % message)
+ raise e
+
+ async def handle_chunk(self, request):
+ lines = []
+ try:
+ while True:
+ l = await self.reader.readline()
+ l = l.rstrip(b"\n").decode("utf-8")
+ if not l:
+ break
+ lines.append(l)
+
+ msg = json.loads(''.join(lines))
+ except (json.JSONDecodeError, UnicodeDecodeError) as e:
+ self.logger.error('Bad message from client: %r' % lines)
+ raise e
+
+ if 'chunk-stream' in msg:
+ raise ClientError("Nested chunks are not allowed")
+
+ await self.dispatch_message(msg)
+
+
+class AsyncServer(object):
+ def __init__(self, logger, loop=None):
+ if loop is None:
+ self.loop = asyncio.new_event_loop()
+ self.close_loop = True
+ else:
+ self.loop = loop
+ self.close_loop = False
+
+ self._cleanup_socket = None
+ self.logger = logger
+
+ def start_tcp_server(self, host, port):
+ self.server = self.loop.run_until_complete(
+ asyncio.start_server(self.handle_client, host, port, loop=self.loop)
+ )
+
+ for s in self.server.sockets:
+ self.logger.info('Listening on %r' % (s.getsockname(),))
+ # Newer python does this automatically. Do it manually here for
+ # maximum compatibility
+ s.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1)
+ s.setsockopt(socket.SOL_TCP, socket.TCP_QUICKACK, 1)
+
+ name = self.server.sockets[0].getsockname()
+ if self.server.sockets[0].family == socket.AF_INET6:
+ self.address = "[%s]:%d" % (name[0], name[1])
+ else:
+ self.address = "%s:%d" % (name[0], name[1])
+
+ def start_unix_server(self, path):
+ def cleanup():
+ os.unlink(path)
+
+ cwd = os.getcwd()
+ try:
+ # Work around path length limits in AF_UNIX
+ os.chdir(os.path.dirname(path))
+ self.server = self.loop.run_until_complete(
+ asyncio.start_unix_server(self.handle_client, os.path.basename(path), loop=self.loop)
+ )
+ finally:
+ os.chdir(cwd)
+
+ self.logger.info('Listening on %r' % path)
+
+ self._cleanup_socket = cleanup
+ self.address = "unix://%s" % os.path.abspath(path)
+
+ @abc.abstractmethod
+ def accept_client(self, reader, writer):
+ pass
+
+ async def handle_client(self, reader, writer):
+ # writer.transport.set_write_buffer_limits(0)
+ try:
+ client = self.accept_client(reader, writer)
+ await client.process_requests()
+ except Exception as e:
+ import traceback
+ self.logger.error('Error from client: %s' % str(e), exc_info=True)
+ traceback.print_exc()
+ writer.close()
+ self.logger.info('Client disconnected')
+
+ def run_loop_forever(self):
+ try:
+ self.loop.run_forever()
+ except KeyboardInterrupt:
+ pass
+
+ def signal_handler(self):
+ self.loop.stop()
+
+ def serve_forever(self):
+ asyncio.set_event_loop(self.loop)
+ try:
+ self.loop.add_signal_handler(signal.SIGTERM, self.signal_handler)
+
+ self.run_loop_forever()
+ self.server.close()
+
+ self.loop.run_until_complete(self.server.wait_closed())
+ self.logger.info('Server shutting down')
+ finally:
+ if self.close_loop:
+ if sys.version_info >= (3, 6):
+ self.loop.run_until_complete(self.loop.shutdown_asyncgens())
+ self.loop.close()
+
+ if self._cleanup_socket is not None:
+ self._cleanup_socket()
diff --git a/poky/bitbake/lib/bb/command.py b/poky/bitbake/lib/bb/command.py
index dd77cdd6e..f530cf844 100644
--- a/poky/bitbake/lib/bb/command.py
+++ b/poky/bitbake/lib/bb/command.py
@@ -20,6 +20,7 @@ Commands are queued in a CommandQueue
from collections import OrderedDict, defaultdict
+import io
import bb.event
import bb.cooker
import bb.remotedata
@@ -500,6 +501,17 @@ class CommandsSync:
d = command.remotedatastores[dsindex].varhistory
return getattr(d, method)(*args, **kwargs)
+ def dataStoreConnectorVarHistCmdEmit(self, command, params):
+ dsindex = params[0]
+ var = params[1]
+ oval = params[2]
+ val = params[3]
+ d = command.remotedatastores[params[4]]
+
+ o = io.StringIO()
+ command.remotedatastores[dsindex].varhistory.emit(var, oval, val, o, d)
+ return o.getvalue()
+
def dataStoreConnectorIncHistCmd(self, command, params):
dsindex = params[0]
method = params[1]
diff --git a/poky/bitbake/lib/bb/fetch2/git.py b/poky/bitbake/lib/bb/fetch2/git.py
index e3ba80a3f..5e65c83c6 100644
--- a/poky/bitbake/lib/bb/fetch2/git.py
+++ b/poky/bitbake/lib/bb/fetch2/git.py
@@ -168,7 +168,11 @@ class Git(FetchMethod):
if len(branches) != len(ud.names):
raise bb.fetch2.ParameterError("The number of name and branch parameters is not balanced", ud.url)
- ud.cloneflags = "-s -n"
+ ud.noshared = d.getVar("BB_GIT_NOSHARED") == "1"
+
+ ud.cloneflags = "-n"
+ if not ud.noshared:
+ ud.cloneflags += " -s"
if ud.bareclone:
ud.cloneflags += " --mirror"
@@ -394,7 +398,7 @@ class Git(FetchMethod):
tmpdir = tempfile.mkdtemp(dir=d.getVar('DL_DIR'))
try:
# Do the checkout. This implicitly involves a Git LFS fetch.
- self.unpack(ud, tmpdir, d)
+ Git.unpack(self, ud, tmpdir, d)
# Scoop up a copy of any stuff that Git LFS downloaded. Merge them into
# the bare clonedir.
diff --git a/poky/bitbake/lib/bb/fetch2/s3.py b/poky/bitbake/lib/bb/fetch2/s3.py
index ffca73c8e..6b8ffd535 100644
--- a/poky/bitbake/lib/bb/fetch2/s3.py
+++ b/poky/bitbake/lib/bb/fetch2/s3.py
@@ -18,10 +18,47 @@ The aws tool must be correctly installed and configured prior to use.
import os
import bb
import urllib.request, urllib.parse, urllib.error
+import re
from bb.fetch2 import FetchMethod
from bb.fetch2 import FetchError
from bb.fetch2 import runfetchcmd
+def convertToBytes(value, unit):
+ value = float(value)
+ if (unit == "KiB"):
+ value = value*1024.0;
+ elif (unit == "MiB"):
+ value = value*1024.0*1024.0;
+ elif (unit == "GiB"):
+ value = value*1024.0*1024.0*1024.0;
+ return value
+
+class S3ProgressHandler(bb.progress.LineFilterProgressHandler):
+ """
+ Extract progress information from s3 cp output, e.g.:
+ Completed 5.1 KiB/8.8 GiB (12.0 MiB/s) with 1 file(s) remaining
+ """
+ def __init__(self, d):
+ super(S3ProgressHandler, self).__init__(d)
+ # Send an initial progress event so the bar gets shown
+ self._fire_progress(0)
+
+ def writeline(self, line):
+ percs = re.findall(r'^Completed (\d+.{0,1}\d*) (\w+)\/(\d+.{0,1}\d*) (\w+) (\(.+\)) with\s+', line)
+ if percs:
+ completed = (percs[-1][0])
+ completedUnit = (percs[-1][1])
+ total = (percs[-1][2])
+ totalUnit = (percs[-1][3])
+ completed = convertToBytes(completed, completedUnit)
+ total = convertToBytes(total, totalUnit)
+ progress = (completed/total)*100.0
+ rate = percs[-1][4]
+ self.update(progress, rate)
+ return False
+ return True
+
+
class S3(FetchMethod):
"""Class to fetch urls via 'aws s3'"""
@@ -52,7 +89,9 @@ class S3(FetchMethod):
cmd = '%s cp s3://%s%s %s' % (ud.basecmd, ud.host, ud.path, ud.localpath)
bb.fetch2.check_network_access(d, cmd, ud.url)
- runfetchcmd(cmd, d)
+
+ progresshandler = S3ProgressHandler(d)
+ runfetchcmd(cmd, d, False, log=progresshandler)
# Additional sanity checks copied from the wget class (although there
# are no known issues which mean these are required, treat the aws cli
diff --git a/poky/bitbake/lib/bb/fetch2/svn.py b/poky/bitbake/lib/bb/fetch2/svn.py
index 8856ef1c6..80102b44f 100644
--- a/poky/bitbake/lib/bb/fetch2/svn.py
+++ b/poky/bitbake/lib/bb/fetch2/svn.py
@@ -86,7 +86,7 @@ class Svn(FetchMethod):
if command == "info":
svncmd = "%s info %s %s://%s/%s/" % (ud.basecmd, " ".join(options), proto, svnroot, ud.module)
elif command == "log1":
- svncmd = "%s log --limit 1 %s %s://%s/%s/" % (ud.basecmd, " ".join(options), proto, svnroot, ud.module)
+ svncmd = "%s log --limit 1 --quiet %s %s://%s/%s/" % (ud.basecmd, " ".join(options), proto, svnroot, ud.module)
else:
suffix = ""
diff --git a/poky/bitbake/lib/bb/progress.py b/poky/bitbake/lib/bb/progress.py
index d051ba019..52d704d64 100644
--- a/poky/bitbake/lib/bb/progress.py
+++ b/poky/bitbake/lib/bb/progress.py
@@ -94,12 +94,15 @@ class LineFilterProgressHandler(ProgressHandler):
while True:
breakpos = self._linebuffer.find('\n') + 1
if breakpos == 0:
- break
+ # for the case when the line with progress ends with only '\r'
+ breakpos = self._linebuffer.find('\r') + 1
+ if breakpos == 0:
+ break
line = self._linebuffer[:breakpos]
self._linebuffer = self._linebuffer[breakpos:]
# Drop any line feeds and anything that precedes them
lbreakpos = line.rfind('\r') + 1
- if lbreakpos:
+ if lbreakpos and lbreakpos != breakpos:
line = line[lbreakpos:]
if self.writeline(filter_color(line)):
super().write(line)
diff --git a/poky/bitbake/lib/bb/runqueue.py b/poky/bitbake/lib/bb/runqueue.py
index cd56a5547..6c41fe6d4 100644
--- a/poky/bitbake/lib/bb/runqueue.py
+++ b/poky/bitbake/lib/bb/runqueue.py
@@ -2030,8 +2030,6 @@ class RunQueueExecute:
logger.debug("%s didn't become valid, skipping setscene" % nexttask)
self.sq_task_failoutright(nexttask)
return True
- else:
- self.sqdata.outrightfail.remove(nexttask)
if nexttask in self.sqdata.outrightfail:
logger.debug2('No package found, so skipping setscene task %s', nexttask)
self.sq_task_failoutright(nexttask)
@@ -2296,10 +2294,16 @@ class RunQueueExecute:
self.updated_taskhash_queue.remove((tid, unihash))
if unihash != self.rqdata.runtaskentries[tid].unihash:
- hashequiv_logger.verbose("Task %s unihash changed to %s" % (tid, unihash))
- self.rqdata.runtaskentries[tid].unihash = unihash
- bb.parse.siggen.set_unihash(tid, unihash)
- toprocess.add(tid)
+ # Make sure we rehash any other tasks with the same task hash that we're deferred against.
+ torehash = [tid]
+ for deftid in self.sq_deferred:
+ if self.sq_deferred[deftid] == tid:
+ torehash.append(deftid)
+ for hashtid in torehash:
+ hashequiv_logger.verbose("Task %s unihash changed to %s" % (hashtid, unihash))
+ self.rqdata.runtaskentries[hashtid].unihash = unihash
+ bb.parse.siggen.set_unihash(hashtid, unihash)
+ toprocess.add(hashtid)
# Work out all tasks which depend upon these
total = set()
@@ -2827,6 +2831,8 @@ def update_scenequeue_data(tids, sqdata, rqdata, rq, cooker, stampcache, sqrq, s
sqdata.stamppresent.remove(tid)
if tid in sqdata.valid:
sqdata.valid.remove(tid)
+ if tid in sqdata.outrightfail:
+ sqdata.outrightfail.remove(tid)
noexec, stamppresent = check_setscene_stamps(tid, rqdata, rq, stampcache, noexecstamp=True)
@@ -2845,6 +2851,7 @@ def update_scenequeue_data(tids, sqdata, rqdata, rq, cooker, stampcache, sqrq, s
sqdata.valid |= rq.validate_hashes(tocheck, cooker.data, len(sqdata.stamppresent), False, summary=summary)
sqdata.hashes = {}
+ sqrq.sq_deferred = {}
for mc in sorted(sqdata.multiconfigs):
for tid in sorted(sqdata.sq_revdeps):
if mc_from_tid(tid) != mc:
@@ -2857,10 +2864,13 @@ def update_scenequeue_data(tids, sqdata, rqdata, rq, cooker, stampcache, sqrq, s
continue
if tid in sqrq.scenequeue_notcovered:
continue
- sqdata.outrightfail.add(tid)
+ if tid in sqrq.scenequeue_covered:
+ continue
h = pending_hash_index(tid, rqdata)
if h not in sqdata.hashes:
+ if tid in tids:
+ sqdata.outrightfail.add(tid)
sqdata.hashes[h] = tid
else:
sqrq.sq_deferred[tid] = sqdata.hashes[h]
diff --git a/poky/bitbake/lib/bb/server/process.py b/poky/bitbake/lib/bb/server/process.py
index b27b4aefe..3e99bcef8 100644
--- a/poky/bitbake/lib/bb/server/process.py
+++ b/poky/bitbake/lib/bb/server/process.py
@@ -509,7 +509,7 @@ class BitBakeServer(object):
os.set_inheritable(self.bitbake_lock.fileno(), True)
os.set_inheritable(self.readypipein, True)
serverscript = os.path.realpath(os.path.dirname(__file__) + "/../../../bin/bitbake-server")
- os.execl(sys.executable, "bitbake-server", serverscript, "decafbad", str(self.bitbake_lock.fileno()), str(self.readypipein), self.logfile, self.bitbake_lock.name, self.sockname, str(self.server_timeout), str(self.xmlrpcinterface[0]), str(self.xmlrpcinterface[1]))
+ os.execl(sys.executable, "bitbake-server", serverscript, "decafbad", str(self.bitbake_lock.fileno()), str(self.readypipein), self.logfile, self.bitbake_lock.name, self.sockname, str(self.server_timeout or 0), str(self.xmlrpcinterface[0]), str(self.xmlrpcinterface[1]))
def execServer(lockfd, readypipeinfd, lockname, sockname, server_timeout, xmlrpcinterface):
diff --git a/poky/bitbake/lib/bb/siggen.py b/poky/bitbake/lib/bb/siggen.py
index 0d88c6ec6..07692e673 100644
--- a/poky/bitbake/lib/bb/siggen.py
+++ b/poky/bitbake/lib/bb/siggen.py
@@ -402,7 +402,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
p = pickle.dump(data, stream, -1)
stream.flush()
os.chmod(tmpfile, 0o664)
- os.rename(tmpfile, sigfile)
+ bb.utils.rename(tmpfile, sigfile)
except (OSError, IOError) as err:
try:
os.unlink(tmpfile)
@@ -542,7 +542,7 @@ class SignatureGeneratorUniHashMixIn(object):
hashequiv_logger.debug((1, 2)[unihash == taskhash], 'Found unihash %s in place of %s for %s from %s' % (unihash, taskhash, tid, self.server))
else:
hashequiv_logger.debug2('No reported unihash for %s:%s from %s' % (tid, taskhash, self.server))
- except hashserv.client.HashConnectionError as e:
+ except ConnectionError as e:
bb.warn('Error contacting Hash Equivalence Server %s: %s' % (self.server, str(e)))
self.set_unihash(tid, unihash)
@@ -621,7 +621,7 @@ class SignatureGeneratorUniHashMixIn(object):
d.setVar('BB_UNIHASH', new_unihash)
else:
hashequiv_logger.debug('Reported task %s as unihash %s to %s' % (taskhash, unihash, self.server))
- except hashserv.client.HashConnectionError as e:
+ except ConnectionError as e:
bb.warn('Error contacting Hash Equivalence Server %s: %s' % (self.server, str(e)))
finally:
if sigfile:
@@ -661,7 +661,7 @@ class SignatureGeneratorUniHashMixIn(object):
# TODO: What to do here?
hashequiv_logger.verbose('Task %s unihash reported as unwanted hash %s' % (tid, finalunihash))
- except hashserv.client.HashConnectionError as e:
+ except ConnectionError as e:
bb.warn('Error contacting Hash Equivalence Server %s: %s' % (self.server, str(e)))
return False
diff --git a/poky/bitbake/lib/bb/tests/fetch.py b/poky/bitbake/lib/bb/tests/fetch.py
index ddf6e9743..9291ce4a0 100644
--- a/poky/bitbake/lib/bb/tests/fetch.py
+++ b/poky/bitbake/lib/bb/tests/fetch.py
@@ -390,6 +390,7 @@ class FetcherTest(unittest.TestCase):
if os.environ.get("BB_TMPDIR_NOCLEAN") == "yes":
print("Not cleaning up %s. Please remove manually." % self.tempdir)
else:
+ bb.process.run('chmod u+rw -R %s' % self.tempdir)
bb.utils.prunedir(self.tempdir)
class MirrorUriTest(FetcherTest):
@@ -673,12 +674,14 @@ class FetcherLocalTest(FetcherTest):
with self.assertRaises(bb.fetch2.UnpackError):
self.fetchUnpack(['file://a;subdir=/bin/sh'])
- def test_local_gitfetch_usehead(self):
+ def dummyGitTest(self, suffix):
# Create dummy local Git repo
src_dir = tempfile.mkdtemp(dir=self.tempdir,
prefix='gitfetch_localusehead_')
src_dir = os.path.abspath(src_dir)
bb.process.run("git init", cwd=src_dir)
+ bb.process.run("git config user.email 'you@example.com'", cwd=src_dir)
+ bb.process.run("git config user.name 'Your Name'", cwd=src_dir)
bb.process.run("git commit --allow-empty -m'Dummy commit'",
cwd=src_dir)
# Use other branch than master
@@ -690,7 +693,7 @@ class FetcherLocalTest(FetcherTest):
# Fetch and check revision
self.d.setVar("SRCREV", "AUTOINC")
- url = "git://" + src_dir + ";protocol=file;usehead=1"
+ url = "git://" + src_dir + ";protocol=file;" + suffix
fetcher = bb.fetch.Fetch([url], self.d)
fetcher.download()
fetcher.unpack(self.unpackdir)
@@ -699,31 +702,23 @@ class FetcherLocalTest(FetcherTest):
unpack_rev = stdout[0].strip()
self.assertEqual(orig_rev, unpack_rev)
+ def test_local_gitfetch_usehead(self):
+ self.dummyGitTest("usehead=1")
+
def test_local_gitfetch_usehead_withname(self):
- # Create dummy local Git repo
- src_dir = tempfile.mkdtemp(dir=self.tempdir,
- prefix='gitfetch_localusehead_')
- src_dir = os.path.abspath(src_dir)
- bb.process.run("git init", cwd=src_dir)
- bb.process.run("git commit --allow-empty -m'Dummy commit'",
- cwd=src_dir)
- # Use other branch than master
- bb.process.run("git checkout -b my-devel", cwd=src_dir)
- bb.process.run("git commit --allow-empty -m'Dummy commit 2'",
- cwd=src_dir)
- stdout = bb.process.run("git rev-parse HEAD", cwd=src_dir)
- orig_rev = stdout[0].strip()
+ self.dummyGitTest("usehead=1;name=newName")
- # Fetch and check revision
- self.d.setVar("SRCREV", "AUTOINC")
- url = "git://" + src_dir + ";protocol=file;usehead=1;name=newName"
- fetcher = bb.fetch.Fetch([url], self.d)
- fetcher.download()
- fetcher.unpack(self.unpackdir)
- stdout = bb.process.run("git rev-parse HEAD",
- cwd=os.path.join(self.unpackdir, 'git'))
- unpack_rev = stdout[0].strip()
- self.assertEqual(orig_rev, unpack_rev)
+ def test_local_gitfetch_shared(self):
+ self.dummyGitTest("usehead=1;name=sharedName")
+ alt = os.path.join(self.unpackdir, 'git/.git/objects/info/alternates')
+ self.assertTrue(os.path.exists(alt))
+
+ def test_local_gitfetch_noshared(self):
+ self.d.setVar('BB_GIT_NOSHARED', '1')
+ self.unpackdir += '_noshared'
+ self.dummyGitTest("usehead=1;name=noSharedName")
+ alt = os.path.join(self.unpackdir, 'git/.git/objects/info/alternates')
+ self.assertFalse(os.path.exists(alt))
class FetcherNoNetworkTest(FetcherTest):
def setUp(self):
@@ -1390,6 +1385,8 @@ class GitMakeShallowTest(FetcherTest):
self.gitdir = os.path.join(self.tempdir, 'gitshallow')
bb.utils.mkdirhier(self.gitdir)
bb.process.run('git init', cwd=self.gitdir)
+ bb.process.run('git config user.email "you@example.com"', cwd=self.gitdir)
+ bb.process.run('git config user.name "Your Name"', cwd=self.gitdir)
def assertRefs(self, expected_refs):
actual_refs = self.git(['for-each-ref', '--format=%(refname)']).splitlines()
@@ -1513,6 +1510,8 @@ class GitShallowTest(FetcherTest):
bb.utils.mkdirhier(self.srcdir)
self.git('init', cwd=self.srcdir)
+ self.git('config user.email "you@example.com"', cwd=self.srcdir)
+ self.git('config user.name "Your Name"', cwd=self.srcdir)
self.d.setVar('WORKDIR', self.tempdir)
self.d.setVar('S', self.gitdir)
self.d.delVar('PREMIRRORS')
@@ -1594,6 +1593,7 @@ class GitShallowTest(FetcherTest):
# fetch and unpack, from the shallow tarball
bb.utils.remove(self.gitdir, recurse=True)
+ bb.process.run('chmod u+w -R "%s"' % ud.clonedir)
bb.utils.remove(ud.clonedir, recurse=True)
bb.utils.remove(ud.clonedir.replace('gitsource', 'gitsubmodule'), recurse=True)
@@ -1746,6 +1746,8 @@ class GitShallowTest(FetcherTest):
smdir = os.path.join(self.tempdir, 'gitsubmodule')
bb.utils.mkdirhier(smdir)
self.git('init', cwd=smdir)
+ self.git('config user.email "you@example.com"', cwd=smdir)
+ self.git('config user.name "Your Name"', cwd=smdir)
# Make this look like it was cloned from a remote...
self.git('config --add remote.origin.url "%s"' % smdir, cwd=smdir)
self.git('config --add remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"', cwd=smdir)
@@ -1776,6 +1778,8 @@ class GitShallowTest(FetcherTest):
smdir = os.path.join(self.tempdir, 'gitsubmodule')
bb.utils.mkdirhier(smdir)
self.git('init', cwd=smdir)
+ self.git('config user.email "you@example.com"', cwd=smdir)
+ self.git('config user.name "Your Name"', cwd=smdir)
# Make this look like it was cloned from a remote...
self.git('config --add remote.origin.url "%s"' % smdir, cwd=smdir)
self.git('config --add remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"', cwd=smdir)
@@ -1794,7 +1798,7 @@ class GitShallowTest(FetcherTest):
# Set up the mirror
mirrordir = os.path.join(self.tempdir, 'mirror')
- os.rename(self.dldir, mirrordir)
+ bb.utils.rename(self.dldir, mirrordir)
self.d.setVar('PREMIRRORS', 'gitsm://.*/.* file://%s/\n' % mirrordir)
# Fetch from the mirror
@@ -1818,8 +1822,8 @@ class GitShallowTest(FetcherTest):
self.git('annex init', cwd=self.srcdir)
open(os.path.join(self.srcdir, 'c'), 'w').close()
self.git('annex add c', cwd=self.srcdir)
- self.git('commit -m annex-c -a', cwd=self.srcdir)
- bb.process.run('chmod u+w -R %s' % os.path.join(self.srcdir, '.git', 'annex'))
+ self.git('commit --author "Foo Bar <foo@bar>" -m annex-c -a', cwd=self.srcdir)
+ bb.process.run('chmod u+w -R %s' % self.srcdir)
uri = 'gitannex://%s;protocol=file;subdir=${S}' % self.srcdir
fetcher, ud = self.fetch_shallow(uri)
@@ -1912,7 +1916,7 @@ class GitShallowTest(FetcherTest):
bb.utils.mkdirhier(mirrordir)
self.d.setVar('PREMIRRORS', 'git://.*/.* file://%s/\n' % mirrordir)
- os.rename(os.path.join(self.dldir, mirrortarball),
+ bb.utils.rename(os.path.join(self.dldir, mirrortarball),
os.path.join(mirrordir, mirrortarball))
# Fetch from the mirror
@@ -2094,6 +2098,8 @@ class GitLfsTest(FetcherTest):
bb.utils.mkdirhier(self.srcdir)
self.git('init', cwd=self.srcdir)
+ self.git('config user.email "you@example.com"', cwd=self.srcdir)
+ self.git('config user.name "Your Name"', cwd=self.srcdir)
with open(os.path.join(self.srcdir, '.gitattributes'), 'wt') as attrs:
attrs.write('*.mp3 filter=lfs -text')
self.git(['add', '.gitattributes'], cwd=self.srcdir)
@@ -2634,3 +2640,29 @@ class NPMTest(FetcherTest):
fetcher = bb.fetch.Fetch(['npmsw://' + swfile], self.d)
fetcher.download()
self.assertTrue(os.path.exists(ud.localpath))
+
+class GitSharedTest(FetcherTest):
+ def setUp(self):
+ super(GitSharedTest, self).setUp()
+ self.recipe_url = "git://git.openembedded.org/bitbake"
+ self.d.setVar('SRCREV', '82ea737a0b42a8b53e11c9cde141e9e9c0bd8c40')
+
+ @skipIfNoNetwork()
+ def test_shared_unpack(self):
+ fetcher = bb.fetch.Fetch([self.recipe_url], self.d)
+
+ fetcher.download()
+ fetcher.unpack(self.unpackdir)
+ alt = os.path.join(self.unpackdir, 'git/.git/objects/info/alternates')
+ self.assertTrue(os.path.exists(alt))
+
+ @skipIfNoNetwork()
+ def test_noshared_unpack(self):
+ self.d.setVar('BB_GIT_NOSHARED', '1')
+ self.unpackdir += '_noshared'
+ fetcher = bb.fetch.Fetch([self.recipe_url], self.d)
+
+ fetcher.download()
+ fetcher.unpack(self.unpackdir)
+ alt = os.path.join(self.unpackdir, 'git/.git/objects/info/alternates')
+ self.assertFalse(os.path.exists(alt))
diff --git a/poky/bitbake/lib/bb/tinfoil.py b/poky/bitbake/lib/bb/tinfoil.py
index 796a98f05..27a341541 100644
--- a/poky/bitbake/lib/bb/tinfoil.py
+++ b/poky/bitbake/lib/bb/tinfoil.py
@@ -52,6 +52,10 @@ class TinfoilDataStoreConnectorVarHistory:
def remoteCommand(self, cmd, *args, **kwargs):
return self.tinfoil.run_command('dataStoreConnectorVarHistCmd', self.dsindex, cmd, args, kwargs)
+ def emit(self, var, oval, val, o, d):
+ ret = self.tinfoil.run_command('dataStoreConnectorVarHistCmdEmit', self.dsindex, var, oval, val, d.dsindex)
+ o.write(ret)
+
def __getattr__(self, name):
if not hasattr(bb.data_smart.VariableHistory, name):
raise AttributeError("VariableHistory has no such method %s" % name)
diff --git a/poky/bitbake/lib/bb/ui/knotty.py b/poky/bitbake/lib/bb/ui/knotty.py
index 0efa614df..65ff2727d 100644
--- a/poky/bitbake/lib/bb/ui/knotty.py
+++ b/poky/bitbake/lib/bb/ui/knotty.py
@@ -21,6 +21,7 @@ import fcntl
import struct
import copy
import atexit
+from itertools import groupby
from bb.ui import uihelper
@@ -539,6 +540,13 @@ def main(server, eventHandler, params, tf = TerminalFilter):
except OSError:
pass
+ # Add the logging domains specified by the user on the command line
+ for (domainarg, iterator) in groupby(params.debug_domains):
+ dlevel = len(tuple(iterator))
+ l = logconfig["loggers"].setdefault("BitBake.%s" % domainarg, {})
+ l["level"] = logging.DEBUG - dlevel + 1
+ l.setdefault("handlers", []).extend(["BitBake.verbconsole"])
+
conf = bb.msg.setLoggingConfig(logconfig, logconfigfile)
if sys.stdin.isatty() and sys.stdout.isatty():
diff --git a/poky/bitbake/lib/bb/utils.py b/poky/bitbake/lib/bb/utils.py
index b282d09ab..6ba1d2a37 100644
--- a/poky/bitbake/lib/bb/utils.py
+++ b/poky/bitbake/lib/bb/utils.py
@@ -782,7 +782,7 @@ def movefile(src, dest, newmtime = None, sstat = None):
if sstat[stat.ST_DEV] == dstat[stat.ST_DEV]:
try:
- os.rename(src, destpath)
+ bb.utils.rename(src, destpath)
renamefailed = 0
except Exception as e:
if e.errno != errno.EXDEV:
@@ -796,7 +796,7 @@ def movefile(src, dest, newmtime = None, sstat = None):
if stat.S_ISREG(sstat[stat.ST_MODE]):
try: # For safety copy then move it over.
shutil.copyfile(src, destpath + "#new")
- os.rename(destpath + "#new", destpath)
+ bb.utils.rename(destpath + "#new", destpath)
didcopy = 1
except Exception as e:
print('movefile: copy', src, '->', dest, 'failed.', e)
@@ -874,7 +874,7 @@ def copyfile(src, dest, newmtime = None, sstat = None):
# For safety copy then move it over.
shutil.copyfile(src, dest + "#new")
- os.rename(dest + "#new", dest)
+ bb.utils.rename(dest + "#new", dest)
except Exception as e:
logger.warning("copyfile: copy %s to %s failed (%s)" % (src, dest, e))
return False
@@ -1669,3 +1669,15 @@ def is_semver(version):
return False
return True
+
+# Wrapper around os.rename which can handle cross device problems
+# e.g. from container filesystems
+def rename(src, dst):
+ try:
+ os.rename(src, dst)
+ except OSError as err:
+ if err.errno == 18:
+ # Invalid cross-device link error
+ shutil.move(src, dst)
+ else:
+ raise err
diff --git a/poky/bitbake/lib/bblayers/layerindex.py b/poky/bitbake/lib/bblayers/layerindex.py
index b2f27b21e..793651620 100644
--- a/poky/bitbake/lib/bblayers/layerindex.py
+++ b/poky/bitbake/lib/bblayers/layerindex.py
@@ -159,12 +159,17 @@ class LayerIndexPlugin(ActionPlugin):
logger.plain(' recommended by: %s' % ' '.join(recommendedby))
if dependencies:
- fetchdir = self.tinfoil.config_data.getVar('BBLAYERS_FETCH_DIR')
- if not fetchdir:
- logger.error("Cannot get BBLAYERS_FETCH_DIR")
- return 1
+ if args.fetchdir:
+ fetchdir = args.fetchdir
+ else:
+ fetchdir = self.tinfoil.config_data.getVar('BBLAYERS_FETCH_DIR')
+ if not fetchdir:
+ logger.error("Cannot get BBLAYERS_FETCH_DIR")
+ return 1
+
if not os.path.exists(fetchdir):
os.makedirs(fetchdir)
+
addlayers = []
for deplayerbranch in dependencies:
@@ -206,6 +211,8 @@ class LayerIndexPlugin(ActionPlugin):
"""
args.show_only = True
args.ignore = []
+ args.fetchdir = ""
+ args.shallow = True
self.do_layerindex_fetch(args)
def register_commands(self, sp):
@@ -214,6 +221,7 @@ class LayerIndexPlugin(ActionPlugin):
parser_layerindex_fetch.add_argument('-b', '--branch', help='branch name to fetch')
parser_layerindex_fetch.add_argument('-s', '--shallow', help='do only shallow clones (--depth=1)', action='store_true')
parser_layerindex_fetch.add_argument('-i', '--ignore', help='assume the specified layers do not need to be fetched/added (separate multiple layers with commas, no spaces)', metavar='LAYER')
+ parser_layerindex_fetch.add_argument('-f', '--fetchdir', help='directory to fetch the layer(s) into (will be created if it does not exist)')
parser_layerindex_fetch.add_argument('layername', nargs='+', help='layer to fetch')
parser_layerindex_show_depends = self.add_command(sp, 'layerindex-show-depends', self.do_layerindex_show_depends, parserecipes=False)
diff --git a/poky/bitbake/lib/hashserv/client.py b/poky/bitbake/lib/hashserv/client.py
index e05c1eb56..531170967 100644
--- a/poky/bitbake/lib/hashserv/client.py
+++ b/poky/bitbake/lib/hashserv/client.py
@@ -8,110 +8,26 @@ import json
import logging
import socket
import os
-from . import chunkify, DEFAULT_MAX_CHUNK, create_async_client
+import bb.asyncrpc
+from . import create_async_client
logger = logging.getLogger("hashserv.client")
-class HashConnectionError(Exception):
- pass
-
-
-class AsyncClient(object):
+class AsyncClient(bb.asyncrpc.AsyncClient):
MODE_NORMAL = 0
MODE_GET_STREAM = 1
def __init__(self):
- self.reader = None
- self.writer = None
+ super().__init__('OEHASHEQUIV', '1.1', logger)
self.mode = self.MODE_NORMAL
- self.max_chunk = DEFAULT_MAX_CHUNK
-
- async def connect_tcp(self, address, port):
- async def connect_sock():
- return await asyncio.open_connection(address, port)
-
- self._connect_sock = connect_sock
-
- async def connect_unix(self, path):
- async def connect_sock():
- return await asyncio.open_unix_connection(path)
-
- self._connect_sock = connect_sock
-
- async def connect(self):
- if self.reader is None or self.writer is None:
- (self.reader, self.writer) = await self._connect_sock()
-
- self.writer.write("OEHASHEQUIV 1.1\n\n".encode("utf-8"))
- await self.writer.drain()
-
- cur_mode = self.mode
- self.mode = self.MODE_NORMAL
- await self._set_mode(cur_mode)
-
- async def close(self):
- self.reader = None
-
- if self.writer is not None:
- self.writer.close()
- self.writer = None
-
- async def _send_wrapper(self, proc):
- count = 0
- while True:
- try:
- await self.connect()
- return await proc()
- except (
- OSError,
- HashConnectionError,
- json.JSONDecodeError,
- UnicodeDecodeError,
- ) as e:
- logger.warning("Error talking to server: %s" % e)
- if count >= 3:
- if not isinstance(e, HashConnectionError):
- raise HashConnectionError(str(e))
- raise e
- await self.close()
- count += 1
-
- async def send_message(self, msg):
- async def get_line():
- line = await self.reader.readline()
- if not line:
- raise HashConnectionError("Connection closed")
-
- line = line.decode("utf-8")
-
- if not line.endswith("\n"):
- raise HashConnectionError("Bad message %r" % message)
-
- return line
-
- async def proc():
- for c in chunkify(json.dumps(msg), self.max_chunk):
- self.writer.write(c.encode("utf-8"))
- await self.writer.drain()
-
- l = await get_line()
-
- m = json.loads(l)
- if m and "chunk-stream" in m:
- lines = []
- while True:
- l = (await get_line()).rstrip("\n")
- if not l:
- break
- lines.append(l)
-
- m = json.loads("".join(lines))
-
- return m
- return await self._send_wrapper(proc)
+ async def setup_connection(self):
+ await super().setup_connection()
+ cur_mode = self.mode
+ self.mode = self.MODE_NORMAL
+ await self._set_mode(cur_mode)
async def send_stream(self, msg):
async def proc():
@@ -119,7 +35,7 @@ class AsyncClient(object):
await self.writer.drain()
l = await self.reader.readline()
if not l:
- raise HashConnectionError("Connection closed")
+ raise ConnectionError("Connection closed")
return l.decode("utf-8").rstrip()
return await self._send_wrapper(proc)
@@ -128,11 +44,11 @@ class AsyncClient(object):
if new_mode == self.MODE_NORMAL and self.mode == self.MODE_GET_STREAM:
r = await self.send_stream("END")
if r != "ok":
- raise HashConnectionError("Bad response from server %r" % r)
+ raise ConnectionError("Bad response from server %r" % r)
elif new_mode == self.MODE_GET_STREAM and self.mode == self.MODE_NORMAL:
r = await self.send_message({"get-stream": None})
if r != "ok":
- raise HashConnectionError("Bad response from server %r" % r)
+ raise ConnectionError("Bad response from server %r" % r)
elif new_mode != self.mode:
raise Exception(
"Undefined mode transition %r -> %r" % (self.mode, new_mode)
@@ -189,12 +105,10 @@ class AsyncClient(object):
return (await self.send_message({"backfill-wait": None}))["tasks"]
-class Client(object):
+class Client(bb.asyncrpc.Client):
def __init__(self):
- self.client = AsyncClient()
- self.loop = asyncio.new_event_loop()
-
- for call in (
+ super().__init__()
+ self._add_methods(
"connect_tcp",
"close",
"get_unihash",
@@ -204,30 +118,7 @@ class Client(object):
"get_stats",
"reset_stats",
"backfill_wait",
- ):
- downcall = getattr(self.client, call)
- setattr(self, call, self._get_downcall_wrapper(downcall))
-
- def _get_downcall_wrapper(self, downcall):
- def wrapper(*args, **kwargs):
- return self.loop.run_until_complete(downcall(*args, **kwargs))
-
- return wrapper
-
- def connect_unix(self, path):
- # AF_UNIX has path length issues so chdir here to workaround
- cwd = os.getcwd()
- try:
- os.chdir(os.path.dirname(path))
- self.loop.run_until_complete(self.client.connect_unix(os.path.basename(path)))
- self.loop.run_until_complete(self.client.connect())
- finally:
- os.chdir(cwd)
-
- @property
- def max_chunk(self):
- return self.client.max_chunk
-
- @max_chunk.setter
- def max_chunk(self, value):
- self.client.max_chunk = value
+ )
+
+ def _get_async_client(self):
+ return AsyncClient()
diff --git a/poky/bitbake/lib/hashserv/server.py b/poky/bitbake/lib/hashserv/server.py
index a0dc0c170..c941c0e9d 100644
--- a/poky/bitbake/lib/hashserv/server.py
+++ b/poky/bitbake/lib/hashserv/server.py
@@ -14,7 +14,9 @@ import signal
import socket
import sys
import time
-from . import chunkify, DEFAULT_MAX_CHUNK, create_async_client, TABLE_COLUMNS
+from . import create_async_client, TABLE_COLUMNS
+import bb.asyncrpc
+
logger = logging.getLogger('hashserv.server')
@@ -109,12 +111,6 @@ class Stats(object):
return {k: getattr(self, k) for k in ('num', 'total_time', 'max_time', 'average', 'stdev')}
-class ClientError(Exception):
- pass
-
-class ServerError(Exception):
- pass
-
def insert_task(cursor, data, ignore=False):
keys = sorted(data.keys())
query = '''INSERT%s INTO tasks_v2 (%s) VALUES (%s)''' % (
@@ -149,7 +145,7 @@ async def copy_outhash_from_upstream(client, db, method, outhash, taskhash):
return d
-class ServerClient(object):
+class ServerClient(bb.asyncrpc.AsyncServerConnection):
FAST_QUERY = 'SELECT taskhash, method, unihash FROM tasks_v2 WHERE method=:method AND taskhash=:taskhash ORDER BY created ASC LIMIT 1'
ALL_QUERY = 'SELECT * FROM tasks_v2 WHERE method=:method AND taskhash=:taskhash ORDER BY created ASC LIMIT 1'
OUTHASH_QUERY = '''
@@ -168,21 +164,19 @@ class ServerClient(object):
'''
def __init__(self, reader, writer, db, request_stats, backfill_queue, upstream, read_only):
- self.reader = reader
- self.writer = writer
+ super().__init__(reader, writer, 'OEHASHEQUIV', logger)
self.db = db
self.request_stats = request_stats
- self.max_chunk = DEFAULT_MAX_CHUNK
+ self.max_chunk = bb.asyncrpc.DEFAULT_MAX_CHUNK
self.backfill_queue = backfill_queue
self.upstream = upstream
- self.handlers = {
+ self.handlers.update({
'get': self.handle_get,
'get-outhash': self.handle_get_outhash,
'get-stream': self.handle_get_stream,
'get-stats': self.handle_get_stats,
- 'chunk-stream': self.handle_chunk,
- }
+ })
if not read_only:
self.handlers.update({
@@ -192,56 +186,19 @@ class ServerClient(object):
'backfill-wait': self.handle_backfill_wait,
})
+ def validate_proto_version(self):
+ return (self.proto_version > (1, 0) and self.proto_version <= (1, 1))
+
async def process_requests(self):
if self.upstream is not None:
self.upstream_client = await create_async_client(self.upstream)
else:
self.upstream_client = None
- try:
-
-
- self.addr = self.writer.get_extra_info('peername')
- logger.debug('Client %r connected' % (self.addr,))
-
- # Read protocol and version
- protocol = await self.reader.readline()
- if protocol is None:
- return
-
- (proto_name, proto_version) = protocol.decode('utf-8').rstrip().split()
- if proto_name != 'OEHASHEQUIV':
- return
-
- proto_version = tuple(int(v) for v in proto_version.split('.'))
- if proto_version < (1, 0) or proto_version > (1, 1):
- return
-
- # Read headers. Currently, no headers are implemented, so look for
- # an empty line to signal the end of the headers
- while True:
- line = await self.reader.readline()
- if line is None:
- return
+ await super().process_requests()
- line = line.decode('utf-8').rstrip()
- if not line:
- break
-
- # Handle messages
- while True:
- d = await self.read_message()
- if d is None:
- break
- await self.dispatch_message(d)
- await self.writer.drain()
- except ClientError as e:
- logger.error(str(e))
- finally:
- if self.upstream_client is not None:
- await self.upstream_client.close()
-
- self.writer.close()
+ if self.upstream_client is not None:
+ await self.upstream_client.close()
async def dispatch_message(self, msg):
for k in self.handlers.keys():
@@ -255,47 +212,7 @@ class ServerClient(object):
await self.handlers[k](msg[k])
return
- raise ClientError("Unrecognized command %r" % msg)
-
- def write_message(self, msg):
- for c in chunkify(json.dumps(msg), self.max_chunk):
- self.writer.write(c.encode('utf-8'))
-
- async def read_message(self):
- l = await self.reader.readline()
- if not l:
- return None
-
- try:
- message = l.decode('utf-8')
-
- if not message.endswith('\n'):
- return None
-
- return json.loads(message)
- except (json.JSONDecodeError, UnicodeDecodeError) as e:
- logger.error('Bad message from client: %r' % message)
- raise e
-
- async def handle_chunk(self, request):
- lines = []
- try:
- while True:
- l = await self.reader.readline()
- l = l.rstrip(b"\n").decode("utf-8")
- if not l:
- break
- lines.append(l)
-
- msg = json.loads(''.join(lines))
- except (json.JSONDecodeError, UnicodeDecodeError) as e:
- logger.error('Bad message from client: %r' % message)
- raise e
-
- if 'chunk-stream' in msg:
- raise ClientError("Nested chunks are not allowed")
-
- await self.dispatch_message(msg)
+ raise bb.asyncrpc.ClientError("Unrecognized command %r" % msg)
async def handle_get(self, request):
method = request['method']
@@ -499,74 +416,20 @@ class ServerClient(object):
cursor.close()
-class Server(object):
+class Server(bb.asyncrpc.AsyncServer):
def __init__(self, db, loop=None, upstream=None, read_only=False):
if upstream and read_only:
- raise ServerError("Read-only hashserv cannot pull from an upstream server")
+ raise bb.asyncrpc.ServerError("Read-only hashserv cannot pull from an upstream server")
+
+ super().__init__(logger, loop)
self.request_stats = Stats()
self.db = db
-
- if loop is None:
- self.loop = asyncio.new_event_loop()
- self.close_loop = True
- else:
- self.loop = loop
- self.close_loop = False
-
self.upstream = upstream
self.read_only = read_only
- self._cleanup_socket = None
-
- def start_tcp_server(self, host, port):
- self.server = self.loop.run_until_complete(
- asyncio.start_server(self.handle_client, host, port, loop=self.loop)
- )
-
- for s in self.server.sockets:
- logger.info('Listening on %r' % (s.getsockname(),))
- # Newer python does this automatically. Do it manually here for
- # maximum compatibility
- s.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1)
- s.setsockopt(socket.SOL_TCP, socket.TCP_QUICKACK, 1)
-
- name = self.server.sockets[0].getsockname()
- if self.server.sockets[0].family == socket.AF_INET6:
- self.address = "[%s]:%d" % (name[0], name[1])
- else:
- self.address = "%s:%d" % (name[0], name[1])
-
- def start_unix_server(self, path):
- def cleanup():
- os.unlink(path)
-
- cwd = os.getcwd()
- try:
- # Work around path length limits in AF_UNIX
- os.chdir(os.path.dirname(path))
- self.server = self.loop.run_until_complete(
- asyncio.start_unix_server(self.handle_client, os.path.basename(path), loop=self.loop)
- )
- finally:
- os.chdir(cwd)
-
- logger.info('Listening on %r' % path)
-
- self._cleanup_socket = cleanup
- self.address = "unix://%s" % os.path.abspath(path)
-
- async def handle_client(self, reader, writer):
- # writer.transport.set_write_buffer_limits(0)
- try:
- client = ServerClient(reader, writer, self.db, self.request_stats, self.backfill_queue, self.upstream, self.read_only)
- await client.process_requests()
- except Exception as e:
- import traceback
- logger.error('Error from client: %s' % str(e), exc_info=True)
- traceback.print_exc()
- writer.close()
- logger.info('Client disconnected')
+ def accept_client(self, reader, writer):
+ return ServerClient(reader, writer, self.db, self.request_stats, self.backfill_queue, self.upstream, self.read_only)
@contextmanager
def _backfill_worker(self):
@@ -597,31 +460,8 @@ class Server(object):
else:
yield
- def serve_forever(self):
- def signal_handler():
- self.loop.stop()
-
- asyncio.set_event_loop(self.loop)
- try:
- self.backfill_queue = asyncio.Queue()
-
- self.loop.add_signal_handler(signal.SIGTERM, signal_handler)
-
- with self._backfill_worker():
- try:
- self.loop.run_forever()
- except KeyboardInterrupt:
- pass
-
- self.server.close()
-
- self.loop.run_until_complete(self.server.wait_closed())
- logger.info('Server shutting down')
- finally:
- if self.close_loop:
- if sys.version_info >= (3, 6):
- self.loop.run_until_complete(self.loop.shutdown_asyncgens())
- self.loop.close()
+ def run_loop_forever(self):
+ self.backfill_queue = asyncio.Queue()
- if self._cleanup_socket is not None:
- self._cleanup_socket()
+ with self._backfill_worker():
+ super().run_loop_forever()
diff --git a/poky/bitbake/lib/hashserv/tests.py b/poky/bitbake/lib/hashserv/tests.py
index 1a696481e..e2b762dbf 100644
--- a/poky/bitbake/lib/hashserv/tests.py
+++ b/poky/bitbake/lib/hashserv/tests.py
@@ -6,7 +6,6 @@
#
from . import create_server, create_client
-from .client import HashConnectionError
import hashlib
import logging
import multiprocessing
@@ -277,7 +276,7 @@ class HashEquivalenceCommonTests(object):
outhash2 = '3c979c3db45c569f51ab7626a4651074be3a9d11a84b1db076f5b14f7d39db44'
unihash2 = '90e9bc1d1f094c51824adca7f8ea79a048d68824'
- with self.assertRaises(HashConnectionError):
+ with self.assertRaises(ConnectionError):
ro_client.report_unihash(taskhash2, self.METHOD, outhash2, unihash2)
# Ensure that the database was not modified
diff --git a/poky/bitbake/lib/prserv/serv.py b/poky/bitbake/lib/prserv/serv.py
index 25dcf8a0e..5e322bf83 100644
--- a/poky/bitbake/lib/prserv/serv.py
+++ b/poky/bitbake/lib/prserv/serv.py
@@ -5,8 +5,6 @@
import os,sys,logging
import signal, time
from xmlrpc.server import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler
-import threading
-import queue
import socket
import io
import sqlite3
@@ -14,14 +12,10 @@ import bb.server.xmlrpcclient
import prserv
import prserv.db
import errno
-import select
+import multiprocessing
logger = logging.getLogger("BitBake.PRserv")
-if sys.hexversion < 0x020600F0:
- print("Sorry, python 2.6 or later is required.")
- sys.exit(1)
-
class Handler(SimpleXMLRPCRequestHandler):
def _dispatch(self,method,params):
try:
@@ -37,7 +31,7 @@ singleton = None
class PRServer(SimpleXMLRPCServer):
- def __init__(self, dbfile, logfile, interface, daemon=True):
+ def __init__(self, dbfile, logfile, interface):
''' constructor '''
try:
SimpleXMLRPCServer.__init__(self, interface,
@@ -50,57 +44,18 @@ class PRServer(SimpleXMLRPCServer):
raise PRServiceConfigError
self.dbfile=dbfile
- self.daemon=daemon
self.logfile=logfile
- self.working_thread=None
self.host, self.port = self.socket.getsockname()
- self.pidfile=PIDPREFIX % (self.host, self.port)
self.register_function(self.getPR, "getPR")
- self.register_function(self.quit, "quit")
self.register_function(self.ping, "ping")
self.register_function(self.export, "export")
- self.register_function(self.dump_db, "dump_db")
self.register_function(self.importone, "importone")
self.register_introspection_functions()
- self.quitpipein, self.quitpipeout = os.pipe()
-
- self.requestqueue = queue.Queue()
- self.handlerthread = threading.Thread(target = self.process_request_thread)
- self.handlerthread.daemon = False
-
- def process_request_thread(self):
- """Same as in BaseServer but as a thread.
-
- In addition, exception handling is done here.
-
- """
- iter_count = 1
+ self.iter_count = 0
# 60 iterations between syncs or sync if dirty every ~30 seconds
- iterations_between_sync = 60
-
- bb.utils.set_process_name("PRServ Handler")
-
- while not self.quitflag:
- try:
- (request, client_address) = self.requestqueue.get(True, 30)
- except queue.Empty:
- self.table.sync_if_dirty()
- continue
- if request is None:
- continue
- try:
- self.finish_request(request, client_address)
- self.shutdown_request(request)
- iter_count = (iter_count + 1) % iterations_between_sync
- if iter_count == 0:
- self.table.sync_if_dirty()
- except:
- self.handle_error(request, client_address)
- self.shutdown_request(request)
- self.table.sync()
- self.table.sync_if_dirty()
+ self.iterations_between_sync = 60
def sigint_handler(self, signum, stack):
if self.table:
@@ -109,11 +64,30 @@ class PRServer(SimpleXMLRPCServer):
def sigterm_handler(self, signum, stack):
if self.table:
self.table.sync()
- self.quit()
- self.requestqueue.put((None, None))
+ raise(SystemExit)
def process_request(self, request, client_address):
- self.requestqueue.put((request, client_address))
+ if request is None:
+ return
+ try:
+ self.finish_request(request, client_address)
+ self.shutdown_request(request)
+ self.iter_count = (self.iter_count + 1) % self.iterations_between_sync
+ if self.iter_count == 0:
+ self.table.sync_if_dirty()
+ except:
+ self.handle_error(request, client_address)
+ self.shutdown_request(request)
+ self.table.sync()
+ self.table.sync_if_dirty()
+
+ def serve_forever(self, poll_interval=0.5):
+ signal.signal(signal.SIGINT, self.sigint_handler)
+ signal.signal(signal.SIGTERM, self.sigterm_handler)
+
+ self.db = prserv.db.PRData(self.dbfile)
+ self.table = self.db["PRMAIN"]
+ return super().serve_forever(poll_interval)
def export(self, version=None, pkgarch=None, checksum=None, colinfo=True):
try:
@@ -122,31 +96,11 @@ class PRServer(SimpleXMLRPCServer):
logger.error(str(exc))
return None
- def dump_db(self):
- """
- Returns a script (string) that reconstructs the state of the
- entire database at the time this function is called. The script
- language is defined by the backing database engine, which is a
- function of server configuration.
- Returns None if the database engine does not support dumping to
- script or if some other error is encountered in processing.
- """
- buff = io.StringIO()
- try:
- self.table.sync()
- self.table.dump_db(buff)
- return buff.getvalue()
- except Exception as exc:
- logger.error(str(exc))
- return None
- finally:
- buff.close()
-
def importone(self, version, pkgarch, checksum, value):
return self.table.importone(version, pkgarch, checksum, value)
def ping(self):
- return not self.quitflag
+ return True
def getinfo(self):
return (self.host, self.port)
@@ -161,144 +115,6 @@ class PRServer(SimpleXMLRPCServer):
logger.error(str(exc))
return None
- def quit(self):
- self.quitflag=True
- os.write(self.quitpipeout, b"q")
- os.close(self.quitpipeout)
- return
-
- def work_forever(self,):
- self.quitflag = False
- # This timeout applies to the poll in TCPServer, we need the select
- # below to wake on our quit pipe closing. We only ever call into handle_request
- # if there is data there.
- self.timeout = 0.01
-
- bb.utils.set_process_name("PRServ")
-
- # DB connection must be created after all forks
- self.db = prserv.db.PRData(self.dbfile)
- self.table = self.db["PRMAIN"]
-
- logger.info("Started PRServer with DBfile: %s, IP: %s, PORT: %s, PID: %s" %
- (self.dbfile, self.host, self.port, str(os.getpid())))
-
- self.handlerthread.start()
- while not self.quitflag:
- ready = select.select([self.fileno(), self.quitpipein], [], [], 30)
- if self.quitflag:
- break
- if self.fileno() in ready[0]:
- self.handle_request()
- self.handlerthread.join()
- self.db.disconnect()
- logger.info("PRServer: stopping...")
- self.server_close()
- os.close(self.quitpipein)
- return
-
- def start(self):
- if self.daemon:
- pid = self.daemonize()
- else:
- pid = self.fork()
- self.pid = pid
-
- # Ensure both the parent sees this and the child from the work_forever log entry above
- logger.info("Started PRServer with DBfile: %s, IP: %s, PORT: %s, PID: %s" %
- (self.dbfile, self.host, self.port, str(pid)))
-
- def delpid(self):
- os.remove(self.pidfile)
-
- def daemonize(self):
- """
- See Advanced Programming in the UNIX, Sec 13.3
- """
- try:
- pid = os.fork()
- if pid > 0:
- os.waitpid(pid, 0)
- #parent return instead of exit to give control
- return pid
- except OSError as e:
- raise Exception("%s [%d]" % (e.strerror, e.errno))
-
- os.setsid()
- """
- fork again to make sure the daemon is not session leader,
- which prevents it from acquiring controlling terminal
- """
- try:
- pid = os.fork()
- if pid > 0: #parent
- os._exit(0)
- except OSError as e:
- raise Exception("%s [%d]" % (e.strerror, e.errno))
-
- self.cleanup_handles()
- os._exit(0)
-
- def fork(self):
- try:
- pid = os.fork()
- if pid > 0:
- self.socket.close() # avoid ResourceWarning in parent
- return pid
- except OSError as e:
- raise Exception("%s [%d]" % (e.strerror, e.errno))
-
- bb.utils.signal_on_parent_exit("SIGTERM")
- self.cleanup_handles()
- os._exit(0)
-
- def cleanup_handles(self):
- signal.signal(signal.SIGINT, self.sigint_handler)
- signal.signal(signal.SIGTERM, self.sigterm_handler)
- os.chdir("/")
-
- sys.stdout.flush()
- sys.stderr.flush()
-
- # We could be called from a python thread with io.StringIO as
- # stdout/stderr or it could be 'real' unix fd forking where we need
- # to physically close the fds to prevent the program launching us from
- # potentially hanging on a pipe. Handle both cases.
- si = open('/dev/null', 'r')
- try:
- os.dup2(si.fileno(),sys.stdin.fileno())
- except (AttributeError, io.UnsupportedOperation):
- sys.stdin = si
- so = open(self.logfile, 'a+')
- try:
- os.dup2(so.fileno(),sys.stdout.fileno())
- except (AttributeError, io.UnsupportedOperation):
- sys.stdout = so
- try:
- os.dup2(so.fileno(),sys.stderr.fileno())
- except (AttributeError, io.UnsupportedOperation):
- sys.stderr = so
-
- # Clear out all log handlers prior to the fork() to avoid calling
- # event handlers not part of the PRserver
- for logger_iter in logging.Logger.manager.loggerDict.keys():
- logging.getLogger(logger_iter).handlers = []
-
- # Ensure logging makes it to the logfile
- streamhandler = logging.StreamHandler()
- streamhandler.setLevel(logging.DEBUG)
- formatter = bb.msg.BBLogFormatter("%(levelname)s: %(message)s")
- streamhandler.setFormatter(formatter)
- logger.addHandler(streamhandler)
-
- # write pidfile
- pid = str(os.getpid())
- with open(self.pidfile, 'w') as pf:
- pf.write("%s\n" % pid)
-
- self.work_forever()
- self.delpid()
-
class PRServSingleton(object):
def __init__(self, dbfile, logfile, interface):
self.dbfile = dbfile
@@ -308,8 +124,10 @@ class PRServSingleton(object):
self.port = None
def start(self):
- self.prserv = PRServer(self.dbfile, self.logfile, self.interface, daemon=False)
- self.prserv.start()
+ self.prserv = PRServer(self.dbfile, self.logfile, self.interface)
+ self.process = multiprocessing.Process(target=self.prserv.serve_forever)
+ self.process.start()
+
self.host, self.port = self.prserv.getinfo()
def getinfo(self):
@@ -323,13 +141,6 @@ class PRServerConnection(object):
self.port = port
self.connection, self.transport = bb.server.xmlrpcclient._create_server(self.host, self.port)
- def terminate(self):
- try:
- logger.info("Terminating PRServer...")
- self.connection.quit()
- except Exception as exc:
- sys.stderr.write("%s\n" % str(exc))
-
def getPR(self, version, pkgarch, checksum):
return self.connection.getPR(version, pkgarch, checksum)
@@ -339,15 +150,82 @@ class PRServerConnection(object):
def export(self,version=None, pkgarch=None, checksum=None, colinfo=True):
return self.connection.export(version, pkgarch, checksum, colinfo)
- def dump_db(self):
- return self.connection.dump_db()
-
def importone(self, version, pkgarch, checksum, value):
return self.connection.importone(version, pkgarch, checksum, value)
def getinfo(self):
return self.host, self.port
+def run_as_daemon(func, pidfile, logfile):
+ """
+ See Advanced Programming in the UNIX, Sec 13.3
+ """
+ try:
+ pid = os.fork()
+ if pid > 0:
+ os.waitpid(pid, 0)
+ #parent return instead of exit to give control
+ return pid
+ except OSError as e:
+ raise Exception("%s [%d]" % (e.strerror, e.errno))
+
+ os.setsid()
+ """
+ fork again to make sure the daemon is not session leader,
+ which prevents it from acquiring controlling terminal
+ """
+ try:
+ pid = os.fork()
+ if pid > 0: #parent
+ os._exit(0)
+ except OSError as e:
+ raise Exception("%s [%d]" % (e.strerror, e.errno))
+
+ os.chdir("/")
+
+ sys.stdout.flush()
+ sys.stderr.flush()
+
+ # We could be called from a python thread with io.StringIO as
+ # stdout/stderr or it could be 'real' unix fd forking where we need
+ # to physically close the fds to prevent the program launching us from
+ # potentially hanging on a pipe. Handle both cases.
+ si = open('/dev/null', 'r')
+ try:
+ os.dup2(si.fileno(),sys.stdin.fileno())
+ except (AttributeError, io.UnsupportedOperation):
+ sys.stdin = si
+ so = open(logfile, 'a+')
+ try:
+ os.dup2(so.fileno(),sys.stdout.fileno())
+ except (AttributeError, io.UnsupportedOperation):
+ sys.stdout = so
+ try:
+ os.dup2(so.fileno(),sys.stderr.fileno())
+ except (AttributeError, io.UnsupportedOperation):
+ sys.stderr = so
+
+ # Clear out all log handlers prior to the fork() to avoid calling
+ # event handlers not part of the PRserver
+ for logger_iter in logging.Logger.manager.loggerDict.keys():
+ logging.getLogger(logger_iter).handlers = []
+
+ # Ensure logging makes it to the logfile
+ streamhandler = logging.StreamHandler()
+ streamhandler.setLevel(logging.DEBUG)
+ formatter = bb.msg.BBLogFormatter("%(levelname)s: %(message)s")
+ streamhandler.setFormatter(formatter)
+ logger.addHandler(streamhandler)
+
+ # write pidfile
+ pid = str(os.getpid())
+ with open(pidfile, 'w') as pf:
+ pf.write("%s\n" % pid)
+
+ func()
+ os.remove(pidfile)
+ os._exit(0)
+
def start_daemon(dbfile, host, port, logfile):
ip = socket.gethostbyname(host)
pidfile = PIDPREFIX % (ip, port)
@@ -363,7 +241,7 @@ def start_daemon(dbfile, host, port, logfile):
return 1
server = PRServer(os.path.abspath(dbfile), os.path.abspath(logfile), (ip,port))
- server.start()
+ run_as_daemon(server.serve_forever, pidfile, os.path.abspath(logfile))
# Sometimes, the port (i.e. localhost:0) indicated by the user does not match with
# the one the server actually is listening, so at least warn the user about it
@@ -400,25 +278,13 @@ def stop_daemon(host, port):
return 1
try:
- PRServerConnection(ip, port).terminate()
- except:
- logger.critical("Stop PRService %s:%d failed" % (host,port))
-
- try:
- if pid:
- wait_timeout = 0
- print("Waiting for pr-server to exit.")
- while is_running(pid) and wait_timeout < 50:
- time.sleep(0.1)
- wait_timeout += 1
-
- if is_running(pid):
- print("Sending SIGTERM to pr-server.")
- os.kill(pid,signal.SIGTERM)
- time.sleep(0.1)
+ if is_running(pid):
+ print("Sending SIGTERM to pr-server.")
+ os.kill(pid, signal.SIGTERM)
+ time.sleep(0.1)
- if os.path.exists(pidfile):
- os.remove(pidfile)
+ if os.path.exists(pidfile):
+ os.remove(pidfile)
except OSError as e:
err = str(e)
@@ -494,19 +360,14 @@ def auto_start(d):
def auto_shutdown():
global singleton
- if singleton:
- host, port = singleton.getinfo()
- try:
- PRServerConnection(host, port).terminate()
- except:
- logger.critical("Stop PRService %s:%d failed" % (host,port))
-
- try:
- os.waitpid(singleton.prserv.pid, 0)
- except ChildProcessError:
- pass
+ if singleton and singleton.process:
+ singleton.process.terminate()
+ singleton.process.join()
singleton = None
def ping(host, port):
conn=PRServerConnection(host, port)
return conn.ping()
+
+def connect(host, port):
+ return PRServerConnection(host, port)
diff --git a/poky/documentation/brief-yoctoprojectqs/index.rst b/poky/documentation/brief-yoctoprojectqs/index.rst
index 974ae5ebc..6a12b19ca 100644
--- a/poky/documentation/brief-yoctoprojectqs/index.rst
+++ b/poky/documentation/brief-yoctoprojectqs/index.rst
@@ -238,7 +238,7 @@ an entire Linux distribution, including the toolchain, from source.
You can significantly speed up your build and guard against fetcher
failures by using mirrors. To use mirrors, add these lines to your
- local.conf file in the Build directory: ::
+ local.conf file in the Build directory::
SSTATE_MIRRORS = "\
file://.* http://sstate.yoctoproject.org/dev/PATH;downloadfilename=PATH \n \
diff --git a/poky/documentation/bsp-guide/bsp.rst b/poky/documentation/bsp-guide/bsp.rst
index 89f156442..0b0b52d90 100644
--- a/poky/documentation/bsp-guide/bsp.rst
+++ b/poky/documentation/bsp-guide/bsp.rst
@@ -26,7 +26,7 @@ A BSP consists of a file structure inside a base directory.
Collectively, you can think of the base directory, its file structure,
and the contents as a BSP layer. Although not a strict requirement, BSP
layers in the Yocto Project use the following well-established naming
-convention: ::
+convention::
meta-bsp_root_name
@@ -58,7 +58,7 @@ Each repository is a BSP layer supported by the Yocto Project (e.g.
``meta-raspberrypi`` and ``meta-intel``). Each of these layers is a
repository unto itself and clicking on the layer name displays two URLs
from which you can clone the layer's repository to your local system.
-Here is an example that clones the Raspberry Pi BSP layer: ::
+Here is an example that clones the Raspberry Pi BSP layer::
$ git clone git://git.yoctoproject.org/meta-raspberrypi
@@ -84,7 +84,7 @@ established after you run the OpenEmbedded build environment setup
script (i.e. :ref:`ref-manual/structure:\`\`oe-init-build-env\`\``).
Adding the root directory allows the :term:`OpenEmbedded Build System`
to recognize the BSP
-layer and from it build an image. Here is an example: ::
+layer and from it build an image. Here is an example::
BBLAYERS ?= " \
/usr/local/src/yocto/meta \
@@ -113,7 +113,7 @@ this type of layer is OpenEmbedded's
`meta-openembedded <https://github.com/openembedded/meta-openembedded>`__
layer. The ``meta-openembedded`` layer contains many ``meta-*`` layers.
In cases like this, you need to include the names of the actual layers
-you want to work with, such as: ::
+you want to work with, such as::
BBLAYERS ?= " \
/usr/local/src/yocto/meta \
@@ -193,7 +193,7 @@ section.
#. *Check Out the Proper Branch:* The branch you check out for
``meta-intel`` must match the same branch you are using for the
- Yocto Project release (e.g. ``&DISTRO_NAME_NO_CAP;``): ::
+ Yocto Project release (e.g. ``&DISTRO_NAME_NO_CAP;``)::
$ cd meta-intel
$ git checkout -b &DISTRO_NAME_NO_CAP; remotes/origin/&DISTRO_NAME_NO_CAP;
@@ -216,7 +216,7 @@ section.
The process is identical to the process used for the ``meta-intel``
layer except for the layer's name. For example, if you determine that
your hardware most closely matches the ``meta-raspberrypi``, clone
- that layer: ::
+ that layer::
$ git clone git://git.yoctoproject.org/meta-raspberrypi
Cloning into 'meta-raspberrypi'...
@@ -451,7 +451,7 @@ The following sections describe each part of the proposed BSP format.
License Files
-------------
-You can find these files in the BSP Layer at: ::
+You can find these files in the BSP Layer at::
meta-bsp_root_name/bsp_license_file
@@ -469,7 +469,7 @@ section in the Yocto Project Development Tasks Manual.
README File
-----------
-You can find this file in the BSP Layer at: ::
+You can find this file in the BSP Layer at::
meta-bsp_root_name/README
@@ -484,7 +484,7 @@ name of the BSP maintainer with his or her contact information.
README.sources File
-------------------
-You can find this file in the BSP Layer at: ::
+You can find this file in the BSP Layer at::
meta-bsp_root_name/README.sources
@@ -503,7 +503,7 @@ used to generate the images that ship with the BSP.
Pre-built User Binaries
-----------------------
-You can find these files in the BSP Layer at: ::
+You can find these files in the BSP Layer at::
meta-bsp_root_name/binary/bootable_images
@@ -526,7 +526,7 @@ information on the Metadata.
Layer Configuration File
------------------------
-You can find this file in the BSP Layer at: ::
+You can find this file in the BSP Layer at::
meta-bsp_root_name/conf/layer.conf
@@ -550,7 +550,7 @@ template). ::
LAYERDEPENDS_bsp = "intel"
To illustrate the string substitutions, here are the corresponding
-statements from the Raspberry Pi ``conf/layer.conf`` file: ::
+statements from the Raspberry Pi ``conf/layer.conf`` file::
# We have a conf and classes directory, append to BBPATH
BBPATH .= ":${LAYERDIR}"
@@ -576,7 +576,7 @@ recognize the BSP.
Hardware Configuration Options
------------------------------
-You can find these files in the BSP Layer at: ::
+You can find these files in the BSP Layer at::
meta-bsp_root_name/conf/machine/*.conf
@@ -607,14 +607,14 @@ For example, many ``tune-*`` files (e.g. ``tune-arm1136jf-s.inc``,
To use an include file, you simply include them in the machine
configuration file. For example, the Raspberry Pi BSP
-``raspberrypi3.conf`` contains the following statement: ::
+``raspberrypi3.conf`` contains the following statement::
include conf/machine/include/rpi-base.inc
Miscellaneous BSP-Specific Recipe Files
---------------------------------------
-You can find these files in the BSP Layer at: ::
+You can find these files in the BSP Layer at::
meta-bsp_root_name/recipes-bsp/*
@@ -624,7 +624,7 @@ Raspberry Pi BSP, there is the ``formfactor_0.0.bbappend`` file, which
is an append file used to augment the recipe that starts the build.
Furthermore, there are machine-specific settings used during the build
that are defined by the ``machconfig`` file further down in the
-directory. Here is the ``machconfig`` file for the Raspberry Pi BSP: ::
+directory. Here is the ``machconfig`` file for the Raspberry Pi BSP::
HAVE_TOUCHSCREEN=0
HAVE_KEYBOARD=1
@@ -644,7 +644,7 @@ directory. Here is the ``machconfig`` file for the Raspberry Pi BSP: ::
Display Support Files
---------------------
-You can find these files in the BSP Layer at: ::
+You can find these files in the BSP Layer at::
meta-bsp_root_name/recipes-graphics/*
@@ -655,7 +655,7 @@ to support a display are kept here.
Linux Kernel Configuration
--------------------------
-You can find these files in the BSP Layer at: ::
+You can find these files in the BSP Layer at::
meta-bsp_root_name/recipes-kernel/linux/linux*.bbappend
meta-bsp_root_name/recipes-kernel/linux/*.bb
@@ -678,7 +678,7 @@ Suppose you are using the ``linux-yocto_4.4.bb`` recipe to build the
kernel. In other words, you have selected the kernel in your
``"bsp_root_name".conf`` file by adding
:term:`PREFERRED_PROVIDER` and :term:`PREFERRED_VERSION`
-statements as follows: ::
+statements as follows::
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
PREFERRED_VERSION_linux-yocto ?= "4.4%"
@@ -698,7 +698,7 @@ in the Yocto Project Linux Kernel Development Manual.
An alternate scenario is when you create your own kernel recipe for the
BSP. A good example of this is the Raspberry Pi BSP. If you examine the
-``recipes-kernel/linux`` directory you see the following: ::
+``recipes-kernel/linux`` directory you see the following::
linux-raspberrypi-dev.bb
linux-raspberrypi.inc
@@ -1042,7 +1042,7 @@ BSP-specific configuration file named ``interfaces`` to the
also supports several other machines:
#. Edit the ``init-ifupdown_1.0.bbappend`` file so that it contains the
- following: ::
+ following::
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
@@ -1050,14 +1050,14 @@ also supports several other machines:
directory.
#. Create and place the new ``interfaces`` configuration file in the
- BSP's layer here: ::
+ BSP's layer here::
meta-xyz/recipes-core/init-ifupdown/files/xyz-machine-one/interfaces
.. note::
If the ``meta-xyz`` layer did not support multiple machines, you would place
- the interfaces configuration file in the layer here: ::
+ the interfaces configuration file in the layer here::
meta-xyz/recipes-core/init-ifupdown/files/interfaces
@@ -1210,7 +1210,7 @@ BSP Layer Configuration Example
-------------------------------
The layer's ``conf`` directory contains the ``layer.conf`` configuration
-file. In this example, the ``conf/layer.conf`` is the following: ::
+file. In this example, the ``conf/layer.conf`` is the following::
# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
@@ -1242,7 +1242,7 @@ configuration file is what makes a layer a BSP layer as compared to a
general or kernel layer.
One or more machine configuration files exist in the
-``bsp_layer/conf/machine/`` directory of the layer: ::
+``bsp_layer/conf/machine/`` directory of the layer::
bsp_layer/conf/machine/machine1\.conf
bsp_layer/conf/machine/machine2\.conf
@@ -1252,7 +1252,7 @@ One or more machine configuration files exist in the
For example, the machine configuration file for the `BeagleBone and
BeagleBone Black development boards <https://beagleboard.org/bone>`__ is
located in the layer ``poky/meta-yocto-bsp/conf/machine`` and is named
-``beaglebone-yocto.conf``: ::
+``beaglebone-yocto.conf``::
#@TYPE: Machine
#@NAME: Beaglebone-yocto machine
@@ -1447,7 +1447,7 @@ BSP Kernel Recipe Example
-------------------------
The kernel recipe used to build the kernel image for the BeagleBone
-device was established in the machine configuration: ::
+device was established in the machine configuration::
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
PREFERRED_VERSION_linux-yocto ?= "5.0%"
@@ -1458,7 +1458,7 @@ metadata used to build the kernel. In this case, a kernel append file
kernel recipe (i.e. ``linux-yocto_5.0.bb``), which is located in
:yocto_git:`/poky/tree/meta/recipes-kernel/linux`.
-Following is the contents of the append file: ::
+Following is the contents of the append file::
KBRANCH_genericx86 = "v5.0/standard/base"
KBRANCH_genericx86-64 = "v5.0/standard/base"
diff --git a/poky/documentation/dev-manual/common-tasks.rst b/poky/documentation/dev-manual/common-tasks.rst
index 176025f9e..37c7a19bf 100644
--- a/poky/documentation/dev-manual/common-tasks.rst
+++ b/poky/documentation/dev-manual/common-tasks.rst
@@ -49,15 +49,13 @@ Follow these general steps to create your layer without using tools:
(e.g. the cloned ``poky`` repository).
While not strictly required, prepend the name of the directory with
- the string "meta-". For example:
- ::
+ the string "meta-". For example::
meta-mylayer
meta-GUI_xyz
meta-mymachine
- With rare exceptions, a layer's name follows this form:
- ::
+ With rare exceptions, a layer's name follows this form::
meta-root_name
@@ -77,8 +75,7 @@ Follow these general steps to create your layer without using tools:
:yocto_git:`Source Repositories </poky/tree/meta-yocto-bsp/conf>`
demonstrates the required syntax. For your layer, you need to replace
"yoctobsp" with a unique identifier for your layer (e.g. "machinexyz"
- for a layer named "meta-machinexyz"):
- ::
+ for a layer named "meta-machinexyz")::
# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
@@ -195,8 +192,7 @@ following list:
machine "one". To do so, you use an append file named
``base-files.bbappend`` and create a dependency on "foo" by
altering the :term:`DEPENDS`
- variable:
- ::
+ variable::
DEPENDS = "foo"
@@ -209,14 +205,12 @@ following list:
``foo``.
To make sure your changes apply only when building machine "one",
- use a machine override with the ``DEPENDS`` statement:
- ::
+ use a machine override with the ``DEPENDS`` statement::
DEPENDS_one = "foo"
You should follow the same strategy when using ``_append``
- and ``_prepend`` operations:
- ::
+ and ``_prepend`` operations::
DEPENDS_append_one = " foo"
DEPENDS_prepend_one = "foo "
@@ -224,8 +218,7 @@ following list:
As an actual example, here's a
snippet from the generic kernel include file ``linux-yocto.inc``,
wherein the kernel compile and link options are adjusted in the
- case of a subset of the supported architectures:
- ::
+ case of a subset of the supported architectures::
DEPENDS_append_aarch64 = " libgcc"
KERNEL_CC_append_aarch64 = " ${TOOLCHAIN_OPTIONS}"
@@ -252,8 +245,7 @@ following list:
file, you can use an append file to cause the build to use your
own version of the file. For example, an append file in your layer
at ``meta-one/recipes-core/base-files/base-files.bbappend`` could
- extend :term:`FILESPATH` using :term:`FILESEXTRAPATHS` as follows:
- ::
+ extend :term:`FILESPATH` using :term:`FILESEXTRAPATHS` as follows::
FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
@@ -375,8 +367,7 @@ the COMMON and DISTRO related tests. Furthermore, if your layer is a BSP
layer, the layer must pass the COMMON and BSP set of tests.
To execute the script, enter the following commands from your build
-directory:
-::
+directory::
$ source oe-init-build-env
$ yocto-check-layer your_layer_directory
@@ -432,8 +423,7 @@ enable it. To enable your layer, simply add your layer's path to the
``BBLAYERS`` variable in your ``conf/bblayers.conf`` file, which is
found in the :term:`Build Directory`.
The following example shows how to enable a layer named
-``meta-mylayer``:
-::
+``meta-mylayer``::
# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
@@ -488,8 +478,7 @@ As an example, consider the main formfactor recipe and a corresponding
formfactor append file both from the :term:`Source Directory`.
Here is the main
formfactor recipe, which is named ``formfactor_0.0.bb`` and located in
-the "meta" layer at ``meta/recipes-bsp/formfactor``:
-::
+the "meta" layer at ``meta/recipes-bsp/formfactor``::
SUMMARY = "Device formfactor information"
DESCRIPTION = "A formfactor configuration file provides information about the \
@@ -521,8 +510,7 @@ during the build.
Following is the append file, which is named ``formfactor_0.0.bbappend``
and is from the Raspberry Pi BSP Layer named ``meta-raspberrypi``. The
-file is in the layer at ``recipes-bsp/formfactor``:
-::
+file is in the layer at ``recipes-bsp/formfactor``::
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
@@ -570,8 +558,7 @@ build system to calculate it based on the layer's dependencies.
To specify the layer's priority manually, use the
:term:`BBFILE_PRIORITY`
-variable and append the layer's root name:
-::
+variable and append the layer's root name::
BBFILE_PRIORITY_mylayer = "1"
@@ -595,8 +582,7 @@ with their paths and priorities and on ``.bbappend`` files and their
applicable recipes can help to reveal potential problems.
For help on the BitBake layer management tool, use the following
-command:
-::
+command::
$ bitbake-layers --help
NOTE: Starting bitbake server...
@@ -676,8 +662,7 @@ The following list describes the available commands:
variable values, you need to tidy these up yourself. Consider the
following example. Here, the ``bitbake-layers`` command adds the
line ``#### bbappended ...`` so that you know where the following
- lines originate:
- ::
+ lines originate::
...
DESCRIPTION = "A useful utility"
@@ -691,8 +676,7 @@ The following list describes the available commands:
EXTRA_OECONF += "--enable-somethingelse"
- Ideally, you would tidy up these utilities as follows:
- ::
+ Ideally, you would tidy up these utilities as follows::
...
DESCRIPTION = "Customized utility"
@@ -746,14 +730,12 @@ create a layer with the following:
In its simplest form, you can use the following command form to create a
layer. The command creates a layer whose name corresponds to
-"your_layer_name" in the current directory:
-::
+"your_layer_name" in the current directory::
$ bitbake-layers create-layer your_layer_name
As an example, the following command creates a layer named ``meta-scottrif``
-in your home directory:
-::
+in your home directory::
$ cd /usr/home
$ bitbake-layers create-layer meta-scottrif
@@ -770,8 +752,7 @@ default, you can use the ``--example-recipe-name`` option.
The easiest way to see how the ``bitbake-layers create-layer`` command
works is to experiment with the script. You can also read the usage
-information by entering the following:
-::
+information by entering the following::
$ bitbake-layers create-layer --help
NOTE: Starting bitbake server...
@@ -799,16 +780,14 @@ Once you create your general layer, you must add it to your
makes the OpenEmbedded build system aware of your layer so that it can
search it for metadata.
-Add your layer by using the ``bitbake-layers add-layer`` command:
-::
+Add your layer by using the ``bitbake-layers add-layer`` command::
$ bitbake-layers add-layer your_layer_name
Here is an example that adds a
layer named ``meta-scottrif`` to the configuration file. Following the
command that adds the layer is another ``bitbake-layers`` command that
-shows the layers that are in your ``bblayers.conf`` file:
-::
+shows the layers that are in your ``bblayers.conf`` file::
$ bitbake-layers add-layer meta-scottrif
NOTE: Starting bitbake server...
@@ -851,8 +830,7 @@ variable changes are in effect for every build and consequently affect
all images, which might not be what you require.
To add a package to your image using the local configuration file, use
-the ``IMAGE_INSTALL`` variable with the ``_append`` operator:
-::
+the ``IMAGE_INSTALL`` variable with the ``_append`` operator::
IMAGE_INSTALL_append = " strace"
@@ -870,8 +848,7 @@ takes effect.
As shown in its simplest use, ``IMAGE_INSTALL_append`` affects all
images. It is possible to extend the syntax so that the variable applies
-to a specific image only. Here is an example:
-::
+to a specific image only. Here is an example::
IMAGE_INSTALL_append_pn-core-image-minimal = " strace"
@@ -942,8 +919,7 @@ Customizing Images Using Custom .bb Files
You can also customize an image by creating a custom recipe that defines
additional software as part of the image. The following example shows
-the form for the two lines you need:
-::
+the form for the two lines you need::
IMAGE_INSTALL = "packagegroup-core-x11-base package1 package2"
inherit core-image
@@ -958,8 +934,7 @@ The other method for creating a custom image is to base it on an
existing image. For example, if you want to create an image based on
``core-image-sato`` but add the additional package ``strace`` to the
image, copy the ``meta/recipes-sato/images/core-image-sato.bb`` to a new
-``.bb`` and add the following line to the end of the copy:
-::
+``.bb`` and add the following line to the end of the copy::
IMAGE_INSTALL += "strace"
@@ -990,8 +965,7 @@ in the ``packagegroup-base.bb`` recipe.
Here is a short, fabricated example showing the same basic pieces for a
hypothetical packagegroup defined in ``packagegroup-custom.bb``, where
the variable ``PN`` is the standard way to abbreviate the reference to
-the full packagegroup name ``packagegroup-custom``:
-::
+the full packagegroup name ``packagegroup-custom``::
DESCRIPTION = "My Custom Package Groups"
@@ -1033,13 +1007,11 @@ configured hostname written to ``/etc/hostname`` is "qemux86".
You can customize this name by altering the value of the "hostname"
variable in the ``base-files`` recipe using either an append file or a
-configuration file. Use the following in an append file:
-::
+configuration file. Use the following in an append file::
hostname = "myhostname"
-Use the following in a configuration file:
-::
+Use the following in a configuration file::
hostname_pn-base-files = "myhostname"
@@ -1054,8 +1026,7 @@ you can easily reset the default hostname.
Another point of interest is that if you unset the variable, the image
will have no default hostname in the filesystem. Here is an example that
-unsets the variable in a configuration file:
-::
+unsets the variable in a configuration file::
hostname_pn-base-files = ""
@@ -1136,8 +1107,7 @@ To run the tool, you just need to be in your
:term:`Build Directory` and have sourced the
build environment setup script (i.e.
:ref:`structure-core-script`).
-To get help on the tool, use the following command:
-::
+To get help on the tool, use the following command::
$ recipetool -h
NOTE: Starting bitbake server...
@@ -1166,8 +1136,7 @@ locates it properly in the layer that contains your source files.
Following are some syntax examples:
- Use this syntax to generate a recipe based on source. Once generated,
- the recipe resides in the existing source code layer:
- ::
+ the recipe resides in the existing source code layer::
recipetool create -o OUTFILE source
@@ -1180,8 +1149,7 @@ Following are some syntax examples:
- Use this syntax to generate a recipe based on source. The options
direct ``recipetool`` to generate debugging information. Once generated,
- the recipe resides in the existing source code layer:
- ::
+ the recipe resides in the existing source code layer::
recipetool create -d -o OUTFILE source
@@ -1236,8 +1204,7 @@ the recipe.
recipe through the layer's ``conf/layer.conf`` file and the
:term:`BBFILES` variable. This
variable sets up a path from which the build system can locate
- recipes. Here is the typical use:
- ::
+ recipes. Here is the typical use::
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
@@ -1249,8 +1216,7 @@ the recipe.
":ref:`dev-manual/common-tasks:understanding and creating layers`" section.
- *Naming Your Recipe:* When you name your recipe, you need to follow
- this naming convention:
- ::
+ this naming convention::
basename_version.bb
@@ -1276,8 +1242,7 @@ Assuming you have sourced the build environment setup script (i.e.
:ref:`structure-core-script`) and you are in
the :term:`Build Directory`, use
BitBake to process your recipe. All you need to provide is the
-``basename`` of the recipe as described in the previous section:
-::
+``basename`` of the recipe as described in the previous section::
$ bitbake basename
@@ -1289,8 +1254,7 @@ compilation and packaging files, and so forth.
The path to the per-recipe temporary work directory depends on the
context in which it is being built. The quickest way to find this path
-is to have BitBake return it by running the following:
-::
+is to have BitBake return it by running the following::
$ bitbake -e basename | grep ^WORKDIR=
@@ -1299,8 +1263,7 @@ top-level folder named ``poky``, a default Build Directory at
``poky/build``, and a ``qemux86-poky-linux`` machine target system.
Furthermore, suppose your recipe is named ``foo_1.3.0.bb``. In this
case, the work directory the build system uses to build the package
-would be as follows:
-::
+would be as follows::
poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0
@@ -1352,8 +1315,7 @@ recipe to match the new version.
Here is a simple example from the
``meta/recipes-devtools/strace/strace_5.5.bb`` recipe where the source
comes from a single tarball. Notice the use of the
-:term:`PV` variable:
-::
+:term:`PV` variable::
SRC_URI = "https://strace.io/files/${PV}/strace-${PV}.tar.xz \
@@ -1369,8 +1331,7 @@ you must specify :term:`SRCREV` and
you should specify :term:`PV` to include
the revision with :term:`SRCPV`. Here
is an example from the recipe
-``meta/recipes-kernel/blktrace/blktrace_git.bb``:
-::
+``meta/recipes-kernel/blktrace/blktrace_git.bb``::
SRCREV = "d6918c8832793b4205ed3bfede78c2f915c23385"
@@ -1392,8 +1353,7 @@ SCM URLs), you need to provide the ``md5`` and ``sha256`` checksums for
each URL. For these cases, you provide a name for each URL as part of
the ``SRC_URI`` and then reference that name in the subsequent checksum
statements. Here is an example combining lines from the files
-``git.inc`` and ``git_2.24.1.bb``:
-::
+``git.inc`` and ``git_2.24.1.bb``::
SRC_URI = "${KERNELORG_MIRROR}/software/scm/git/git-${PV}.tar.gz;name=tarball \
${KERNELORG_MIRROR}/software/scm/git/git-manpages-${PV}.tar.gz;name=manpages"
@@ -1512,8 +1472,7 @@ variables:
include ``COPYING``, ``LICENSE``, and ``README`` files. You could
also find the information near the top of a source file. For example,
given a piece of software licensed under the GNU General Public
- License version 2, you would set ``LICENSE`` as follows:
- ::
+ License version 2, you would set ``LICENSE`` as follows::
LICENSE = "GPLv2"
@@ -1543,8 +1502,7 @@ variables:
See the ":ref:`dev-manual/common-tasks:fetching code`" section for
additional information.
- Here is an example that assumes the software has a ``COPYING`` file:
- ::
+ Here is an example that assumes the software has a ``COPYING`` file::
LIC_FILES_CHKSUM = "file://COPYING;md5=xxx"
@@ -1747,8 +1705,7 @@ standard mainline kernel, not your own custom one.
When you use custom kernel headers you need to get them from
:term:`STAGING_KERNEL_DIR`,
which is the directory with kernel headers that are required to build
-out-of-tree modules. Your recipe will also need the following:
-::
+out-of-tree modules. Your recipe will also need the following::
do_configure[depends] += "virtual/kernel:do_shared_workdir"
@@ -1779,8 +1736,7 @@ Here are some common issues that cause failures.
To fix the problem, you need to either satisfy the missing dependency
in the Makefile or whatever script produced the Makefile, or (as a
- workaround) set :term:`PARALLEL_MAKE` to an empty string:
- ::
+ workaround) set :term:`PARALLEL_MAKE` to an empty string::
PARALLEL_MAKE = ""
@@ -1889,8 +1845,7 @@ installed correctly.
missing dependencies between targets that can result in race
conditions. If you experience intermittent failures during
``do_install``, you might be able to work around them by disabling
- parallel Makefile installs by adding the following to the recipe:
- ::
+ parallel Makefile installs by adding the following to the recipe::
PARALLEL_MAKEINST = ""
@@ -2006,8 +1961,7 @@ take. The following list describes the process:
:term:`MACHINE` value is passed
into the configure script or a patch is applied only for a particular
machine), you should mark them as such by adding the following to the
- recipe:
- ::
+ recipe::
PACKAGE_ARCH = "${MACHINE_ARCH}"
@@ -2016,8 +1970,7 @@ take. The following list describes the process:
all (e.g. recipes that simply package script files or configuration
files), you should use the
:ref:`allarch <ref-classes-allarch>` class to
- do this for you by adding this to your recipe:
- ::
+ do this for you by adding this to your recipe::
inherit allarch
@@ -2061,8 +2014,7 @@ used by the :ref:`ref-tasks-populate_sysroot` task as defined by the the
:term:`SYSROOT_DIRS` variable to automatically populate the sysroot. It
is possible to modify the list of directories that populate the sysroot.
The following example shows how you could add the ``/opt`` directory to
-the list of directories within a recipe:
-::
+the list of directories within a recipe::
SYSROOT_DIRS += "/opt"
@@ -2091,8 +2043,7 @@ kernel recipe. Suppose you have three kernel recipes whose
in some way uses a :term:`PROVIDES`
statement that essentially identifies itself as being able to provide
``virtual/kernel``. Here is one way through the
-:ref:`kernel <ref-classes-kernel>` class:
-::
+:ref:`kernel <ref-classes-kernel>` class::
PROVIDES += "${@ "virtual/kernel" if (d.getVar("KERNEL_PACKAGE_NAME") == "kernel") else "" }"
@@ -2107,8 +2058,7 @@ an example, consider the :yocto_git:`x86-base.inc
</poky/tree/meta/conf/machine/include/x86-base.inc>` include file, which is a
machine (i.e. :term:`MACHINE`) configuration file. This include file is the
reason all x86-based machines use the ``linux-yocto`` kernel. Here are the
-relevant lines from the include file:
-::
+relevant lines from the include file::
PREFERRED_PROVIDER_virtual/kernel ??= "linux-yocto"
PREFERRED_VERSION_linux-yocto ??= "4.15%"
@@ -2116,8 +2066,7 @@ relevant lines from the include file:
When you use a virtual provider, you do not have to "hard code" a recipe
name as a build dependency. You can use the
:term:`DEPENDS` variable to state the
-build is dependent on ``virtual/kernel`` for example:
-::
+build is dependent on ``virtual/kernel`` for example::
DEPENDS = "virtual/kernel"
@@ -2125,8 +2074,7 @@ During the build, the OpenEmbedded build system picks
the correct recipe needed for the ``virtual/kernel`` dependency based on
the ``PREFERRED_PROVIDER`` variable. If you want to use the small kernel
mentioned at the beginning of this section, configure your build as
-follows:
-::
+follows::
PREFERRED_PROVIDER_virtual/kernel ??= "kernel-small"
@@ -2178,8 +2126,7 @@ In order to ensure the versions compare properly, the recommended
convention is to set :term:`PV` within the
recipe to "previous_version+current_version". You can use an additional
variable so that you can use the current version elsewhere. Here is an
-example:
-::
+example::
REALPV = "0.8.16-rc1"
PV = "0.8.15+${REALPV}"
@@ -2198,8 +2145,7 @@ required, specify
``${``\ :term:`PN`\ ``}`` in place of
PACKAGENAME.
-A post-installation function has the following structure:
-::
+A post-installation function has the following structure::
pkg_postinst_PACKAGENAME() {
# Commands to carry out
@@ -2352,13 +2298,11 @@ Otherwise, BitBake runs an empty ``do_install`` task by default.
Some applications might require extra parameters to be passed to the
compiler. For example, the application might need an additional header
path. You can accomplish this by adding to the ``CFLAGS`` variable. The
-following example shows this:
-::
+following example shows this::
CFLAGS_prepend = "-I ${S}/include "
-In the following example, ``mtd-utils`` is a makefile-based package:
-::
+In the following example, ``mtd-utils`` is a makefile-based package::
SUMMARY = "Tools for managing memory technology devices"
SECTION = "base"
@@ -2403,8 +2347,7 @@ application into multiple packages.
Following is an example that uses the ``libxpm`` recipe. By default,
this recipe generates a single package that contains the library along
with a few binaries. You can modify the recipe to split the binaries
-into separate packages:
-::
+into separate packages::
require xorg-lib-common.inc
@@ -2498,8 +2441,7 @@ doing the following:
that replaces ``do_configure`` and ``do_compile`` with custom
versions, then you can use the
``[``\ :ref:`noexec <bitbake-user-manual/bitbake-user-manual-metadata:variable flags>`\ ``]``
- flag to turn the tasks into no-ops, as follows:
- ::
+ flag to turn the tasks into no-ops, as follows::
do_configure[noexec] = "1"
do_compile[noexec] = "1"
@@ -2558,8 +2500,7 @@ chapter of the BitBake User Manual.
supported.
The following example shows some of the ways you can use variables in
- recipes:
- ::
+ recipes::
S = "${WORKDIR}/postfix-${PV}"
CFLAGS += "-DNO_ASM"
@@ -2572,8 +2513,7 @@ chapter of the BitBake User Manual.
syntax, although access to OpenEmbedded variables and internal
methods are also available.
- The following is an example function from the ``sed`` recipe:
- ::
+ The following is an example function from the ``sed`` recipe::
do_install () {
autotools_do_install
@@ -2594,16 +2534,14 @@ chapter of the BitBake User Manual.
from other files (``include`` and ``require``) and export variables
to the environment (``export``).
- The following example shows the use of some of these keywords:
- ::
+ The following example shows the use of some of these keywords::
export POSTCONF = "${STAGING_BINDIR}/postconf"
inherit autoconf
require otherfile.inc
- *Comments (#):* Any lines that begin with the hash character (``#``)
- are treated as comment lines and are ignored:
- ::
+ are treated as comment lines and are ignored::
# This is a comment
@@ -2615,8 +2553,7 @@ in the BitBake User Manual.
- *Line Continuation (\\):* Use the backward slash (``\``) character to
split a statement over multiple lines. Place the slash character at
- the end of the line that is to be continued on the next line:
- ::
+ the end of the line that is to be continued on the next line::
VAR = "A really long \
line"
@@ -2627,8 +2564,7 @@ in the BitBake User Manual.
slash character.
- *Using Variables (${VARNAME}):* Use the ``${VARNAME}`` syntax to
- access the contents of a variable:
- ::
+ access the contents of a variable::
SRC_URI = "${SOURCEFORGE_MIRROR}/libpng/zlib-${PV}.tar.gz"
@@ -2648,8 +2584,7 @@ in the BitBake User Manual.
when you make the assignment, but this is not generally needed.
- *Quote All Assignments ("value"):* Use double quotes around values in
- all variable assignments (e.g. ``"value"``). Following is an example:
- ::
+ all variable assignments (e.g. ``"value"``). Following is an example::
VAR1 = "${OTHERVAR}"
VAR2 = "The version is ${PV}"
@@ -2663,13 +2598,11 @@ in the BitBake User Manual.
Here is an example where ``VAR1`` is set to "New value" if it is
currently empty. However, if ``VAR1`` has already been set, it
- remains unchanged:
- ::
+ remains unchanged::
VAR1 ?= "New value"
- In this next example, ``VAR1`` is left with the value "Original value":
- ::
+ In this next example, ``VAR1`` is left with the value "Original value"::
VAR1 = "Original value"
VAR1 ?= "New value"
@@ -2682,8 +2615,7 @@ in the BitBake User Manual.
This operator adds a space between the existing content of the
variable and the new content.
- Here is an example:
- ::
+ Here is an example::
SRC_URI += "file://fix-makefile.patch"
@@ -2695,8 +2627,7 @@ in the BitBake User Manual.
This operator adds a space between the new content and the
existing content of the variable.
- Here is an example:
- ::
+ Here is an example::
VAR =+ "Starts"
@@ -2708,15 +2639,13 @@ in the BitBake User Manual.
The following example shows the space being explicitly added to the
start to ensure the appended value is not merged with the existing
- value:
- ::
+ value::
SRC_URI_append = " file://fix-makefile.patch"
You can also use
the ``_append`` operator with overrides, which results in the actions
- only being performed for the specified target or machine:
- ::
+ only being performed for the specified target or machine::
SRC_URI_append_sh4 = " file://fix-makefile.patch"
@@ -2728,15 +2657,13 @@ in the BitBake User Manual.
The following example shows the space being explicitly added to the
end to ensure the prepended value is not merged with the existing
- value:
- ::
+ value::
CFLAGS_prepend = "-I${S}/myincludes "
You can also use the
``_prepend`` operator with overrides, which results in the actions
- only being performed for the specified target or machine:
- ::
+ only being performed for the specified target or machine::
CFLAGS_prepend_sh4 = "-I${S}/myincludes "
@@ -2746,8 +2673,7 @@ in the BitBake User Manual.
value to "standard/base" for any target
:term:`MACHINE`, except for
qemuarm where it should be set to "standard/arm-versatile-926ejs",
- you would do the following:
- ::
+ you would do the following::
KBRANCH = "standard/base"
KBRANCH_qemuarm = "standard/arm-versatile-926ejs"
@@ -2770,8 +2696,7 @@ in the BitBake User Manual.
search and replacement on a variable).
You indicate Python code using the ``${@python_code}`` syntax for the
- variable assignment:
- ::
+ variable assignment::
SRC_URI = "ftp://ftp.info-zip.org/pub/infozip/src/zip${@d.getVar('PV',1).replace('.', '')}.tgz
@@ -2861,8 +2786,7 @@ of adding a suitable ``defconfig`` file. The file needs to be added into
a location similar to ``defconfig`` files used for other machines in a
given kernel recipe. A possible way to do this is by listing the file in
the ``SRC_URI`` and adding the machine to the expression in
-``COMPATIBLE_MACHINE``:
-::
+``COMPATIBLE_MACHINE``::
COMPATIBLE_MACHINE = '(qemux86|qemumips)'
@@ -2889,8 +2813,7 @@ contains directories for specific machines such as ``qemuarm`` and
defaults, see the ``meta/recipes-bsp/formfactor/files/config`` file
found in the same area.
-Following is an example for "qemuarm" machine:
-::
+Following is an example for "qemuarm" machine::
HAVE_TOUCHSCREEN=1
HAVE_KEYBOARD=1
@@ -2961,22 +2884,19 @@ The following steps describe how to set up the AUH utility:
2. *Make Sure Git is Configured:* The AUH utility requires Git to be
configured because AUH uses Git to save upgrades. Thus, you must have
Git user and email configured. The following command shows your
- configurations:
- ::
+ configurations::
$ git config --list
If you do not have the user and
- email configured, you can use the following commands to do so:
- ::
+ email configured, you can use the following commands to do so::
$ git config --global user.name some_name
$ git config --global user.email username@domain.com
3. *Clone the AUH Repository:* To use AUH, you must clone the repository
onto your development host. The following command uses Git to create
- a local copy of the repository on your system:
- ::
+ a local copy of the repository on your system::
$ git clone git://git.yoctoproject.org/auto-upgrade-helper
Cloning into 'auto-upgrade-helper'... remote: Counting objects: 768, done.
@@ -2992,8 +2912,7 @@ The following steps describe how to set up the AUH utility:
4. *Create a Dedicated Build Directory:* Run the
:ref:`structure-core-script`
script to create a fresh build directory that you use exclusively for
- running the AUH utility:
- ::
+ running the AUH utility::
$ cd poky
$ source oe-init-build-env your_AUH_build_directory
@@ -3010,8 +2929,7 @@ The following steps describe how to set up the AUH utility:
- If you want to enable :ref:`Build
History <dev-manual/common-tasks:maintaining build output quality>`,
which is optional, you need the following lines in the
- ``conf/local.conf`` file:
- ::
+ ``conf/local.conf`` file::
INHERIT =+ "buildhistory"
BUILDHISTORY_COMMIT = "1"
@@ -3024,23 +2942,20 @@ The following steps describe how to set up the AUH utility:
- If you want to enable testing through the
:ref:`testimage <ref-classes-testimage*>`
class, which is optional, you need to have the following set in
- your ``conf/local.conf`` file:
- ::
+ your ``conf/local.conf`` file::
INHERIT += "testimage"
.. note::
If your distro does not enable by default ptest, which Poky
- does, you need the following in your ``local.conf`` file:
- ::
+ does, you need the following in your ``local.conf`` file::
DISTRO_FEATURES_append = " ptest"
6. *Optionally Start a vncserver:* If you are running in a server
- without an X11 session, you need to start a vncserver:
- ::
+ without an X11 session, you need to start a vncserver::
$ vncserver :1
$ export DISPLAY=:1
@@ -3064,45 +2979,38 @@ The following steps describe how to set up the AUH utility:
This next set of examples describes how to use the AUH:
- *Upgrading a Specific Recipe:* To upgrade a specific recipe, use the
- following form:
- ::
+ following form::
$ upgrade-helper.py recipe_name
- For example, this command upgrades the ``xmodmap`` recipe:
- ::
+ For example, this command upgrades the ``xmodmap`` recipe::
$ upgrade-helper.py xmodmap
- *Upgrading a Specific Recipe to a Particular Version:* To upgrade a
- specific recipe to a particular version, use the following form:
- ::
+ specific recipe to a particular version, use the following form::
$ upgrade-helper.py recipe_name -t version
- For example, this command upgrades the ``xmodmap`` recipe to version 1.2.3:
- ::
+ For example, this command upgrades the ``xmodmap`` recipe to version 1.2.3::
$ upgrade-helper.py xmodmap -t 1.2.3
- *Upgrading all Recipes to the Latest Versions and Suppressing Email
Notifications:* To upgrade all recipes to their most recent versions
- and suppress the email notifications, use the following command:
- ::
+ and suppress the email notifications, use the following command::
$ upgrade-helper.py all
- *Upgrading all Recipes to the Latest Versions and Send Email
Notifications:* To upgrade all recipes to their most recent versions
and send email messages to maintainers for each attempted recipe as
- well as a status email, use the following command:
- ::
+ well as a status email, use the following command::
$ upgrade-helper.py -e all
Once you have run the AUH utility, you can find the results in the AUH
-build directory:
-::
+build directory::
${BUILDDIR}/upgrade-helper/timestamp
@@ -3127,15 +3035,13 @@ section in the Yocto Project Application Development and the Extensible
Software Development Kit (eSDK) Manual.
To see all the command-line options available with ``devtool upgrade``,
-use the following help command:
-::
+use the following help command::
$ devtool upgrade -h
If you want to find out what version a recipe is currently at upstream
without any attempt to upgrade your local version of the recipe, you can
-use the following command:
-::
+use the following command::
$ devtool latest-version recipe_name
@@ -3161,15 +3067,13 @@ could add it easily using the
":ref:`bitbake-layers <bsp-guide/bsp:creating a new bsp layer using the \`\`bitbake-layers\`\` script>`"
script. For example, suppose you use the ``nano.bb`` recipe from the
``meta-oe`` layer in the ``meta-openembedded`` repository. For this
-example, assume that the layer has been cloned into following area:
-::
+example, assume that the layer has been cloned into following area::
/home/scottrif/meta-openembedded
The following command from your
:term:`Build Directory` adds the layer to
-your build configuration (i.e. ``${BUILDDIR}/conf/bblayers.conf``):
-::
+your build configuration (i.e. ``${BUILDDIR}/conf/bblayers.conf``)::
$ bitbake-layers add-layer /home/scottrif/meta-openembedded/meta-oe
NOTE: Starting bitbake server...
@@ -3210,8 +3114,7 @@ directory automatically upgrades the recipe for you:
NOTE: New recipe is /home/scottrif/poky/build/workspace/recipes/nano/nano_2.9.3.bb
Continuing with this example, you can use ``devtool build`` to build the
-newly upgraded recipe:
-::
+newly upgraded recipe::
$ devtool build nano
NOTE: Starting bitbake server...
@@ -3236,8 +3139,7 @@ and submit commits for the changes generated by the upgrade process.
Once the tree is clean, you can clean things up in this example with the
following command from the ``${BUILDDIR}/workspace/sources/nano``
-directory:
-::
+directory::
$ devtool finish nano meta-oe
NOTE: Starting bitbake server...
@@ -3341,8 +3243,7 @@ build packages is available in the Build Directory as defined by the
:term:`S` variable. Below is the default
value for the ``S`` variable as defined in the
``meta/conf/bitbake.conf`` configuration file in the
-:term:`Source Directory`:
-::
+:term:`Source Directory`::
S = "${WORKDIR}/${BP}"
@@ -3353,16 +3254,14 @@ usually set ``S`` to ``${WORKDIR}/git``.
.. note::
The :term:`BP` represents the base recipe name, which consists of the name
- and version:
- ::
+ and version::
BP = "${BPN}-${PV}"
The path to the work directory for the recipe
(:term:`WORKDIR`) is defined as
-follows:
-::
+follows::
${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}
@@ -3388,8 +3287,7 @@ As an example, assume a Source Directory top-level folder named
``poky``, a default Build Directory at ``poky/build``, and a
``qemux86-poky-linux`` machine target system. Furthermore, suppose your
recipe is named ``foo_1.3.0.bb``. In this case, the work directory the
-build system uses to build the package would be as follows:
-::
+build system uses to build the package would be as follows::
poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0
@@ -3426,15 +3324,13 @@ Follow these general steps:
3. *Create a New Patch:* Before modifying source code, you need to
create a new patch. To create a new patch file, use ``quilt new`` as
- below:
- ::
+ below::
$ quilt new my_changes.patch
4. *Notify Quilt and Add Files:* After creating the patch, you need to
notify Quilt about the files you plan to edit. You notify Quilt by
- adding the files to the patch you just created:
- ::
+ adding the files to the patch you just created::
$ quilt add file1.c file2.c file3.c
@@ -3443,8 +3339,7 @@ Follow these general steps:
6. *Test Your Changes:* Once you have modified the source code, the
easiest way to test your changes is by calling the ``do_compile``
- task as shown in the following example:
- ::
+ task as shown in the following example::
$ bitbake -c compile -f package
@@ -3481,8 +3376,7 @@ Follow these general steps:
that holds the recipe (``.bb``) file or the append (``.bbappend``)
file. Placing the patch here guarantees that the OpenEmbedded build
system will find the patch. Next, add the patch into the ``SRC_URI``
- of the recipe. Here is an example:
- ::
+ of the recipe. Here is an example::
SRC_URI += "file://my_changes.patch"
@@ -3503,8 +3397,7 @@ this way can be helpful when debugging a build or preparing software to
be used with the OpenEmbedded build system.
Following is an example that uses ``devshell`` on a target named
-``matchbox-desktop``:
-::
+``matchbox-desktop``::
$ bitbake matchbox-desktop -c devshell
@@ -3533,8 +3426,7 @@ corresponding ``run.*`` script in the
directory (e.g., ``run.do_configure.``\ `pid`). If a task's script does
not exist, which would be the case if the task was skipped by way of the
sstate cache, you can create the task by first running it outside of the
-``devshell``:
-::
+``devshell``::
$ bitbake -c task
@@ -3581,8 +3473,7 @@ specified target. Then a new terminal is opened. Additionally, key
Python objects and code are available in the same way they are to
BitBake tasks, in particular, the data store 'd'. So, commands such as
the following are useful when exploring the data store and running
-functions:
-::
+functions::
pydevshell> d.getVar("STAGING_DIR")
'/media/build1/poky/build/tmp/sysroots'
@@ -3602,8 +3493,7 @@ helpful when debugging a build or preparing software to be used with the
OpenEmbedded build system.
Following is an example that uses ``devpyshell`` on a target named
-``matchbox-desktop``:
-::
+``matchbox-desktop``::
$ bitbake matchbox-desktop -c devpyshell
@@ -3664,8 +3554,7 @@ The following figure and list overviews the build process:
2. *Initialize the Build Environment:* Initialize the build environment
by sourcing the build environment script (i.e.
- :ref:`structure-core-script`):
- ::
+ :ref:`structure-core-script`)::
$ source oe-init-build-env [build_dir]
@@ -3690,8 +3579,7 @@ The following figure and list overviews the build process:
and a centralized tarball download directory through the
:term:`DL_DIR` variable.
-4. *Build the Image:* Build the image using the ``bitbake`` command:
- ::
+4. *Build the Image:* Build the image using the ``bitbake`` command::
$ bitbake target
@@ -3710,8 +3598,7 @@ The following figure and list overviews the build process:
Project Reference Manual.
As an example, the following command builds the
- ``core-image-minimal`` image:
- ::
+ ``core-image-minimal`` image::
$ bitbake core-image-minimal
@@ -3763,8 +3650,7 @@ Follow these steps to set up and execute multiple configuration builds:
Here is an example showing the minimal statements needed in a
configuration file for a "qemux86" target whose temporary build
- directory is ``tmpmultix86``:
- ::
+ directory is ``tmpmultix86``::
MACHINE = "qemux86"
TMPDIR = "${TOPDIR}/tmpmultix86"
@@ -3789,8 +3675,7 @@ Follow these steps to set up and execute multiple configuration builds:
variable in your ``conf/local.conf`` configuration file to specify
each multiconfig. Continuing with the example from the previous
figure, the ``BBMULTICONFIG`` variable needs to enable two
- multiconfigs: "x86" and "arm" by specifying each configuration file:
- ::
+ multiconfigs: "x86" and "arm" by specifying each configuration file::
BBMULTICONFIG = "x86 arm"
@@ -3804,13 +3689,11 @@ Follow these steps to set up and execute multiple configuration builds:
with "".
- *Launch BitBake*: Use the following BitBake command form to launch
- the multiple configuration build:
- ::
+ the multiple configuration build::
$ bitbake [mc:multiconfigname:]target [[[mc:multiconfigname:]target] ... ]
- For the example in this section, the following command applies:
- ::
+ For the example in this section, the following command applies::
$ bitbake mc:x86:core-image-minimal mc:arm:core-image-sato mc::core-image-base
@@ -3844,15 +3727,13 @@ essentially that the
To enable dependencies in a multiple configuration build, you must
declare the dependencies in the recipe using the following statement
-form:
-::
+form::
task_or_package[mcdepends] = "mc:from_multiconfig:to_multiconfig:recipe_name:task_on_which_to_depend"
To better show how to use this statement, consider the example scenario
from the first paragraph of this section. The following statement needs
-to be added to the recipe that builds the ``core-image-sato`` image:
-::
+to be added to the recipe that builds the ``core-image-sato`` image::
do_image[mcdepends] = "mc:x86:arm:core-image-minimal:do_rootfs"
@@ -3862,8 +3743,7 @@ task on which the ``do_image`` task in the recipe depends is the
with the "arm" multiconfig.
Once you set up this dependency, you can build the "x86" multiconfig
-using a BitBake command as follows:
-::
+using a BitBake command as follows::
$ bitbake mc:x86:core-image-sato
@@ -3874,8 +3754,7 @@ dependency, BitBake also executes through the ``do_rootfs`` task for the
Having a recipe depend on the root filesystem of another build might not
seem that useful. Consider this change to the statement in the
-``core-image-sato`` recipe:
-::
+``core-image-sato`` recipe::
do_image[mcdepends] = "mc:x86:arm:core-image-minimal:do_image"
@@ -4091,8 +3970,7 @@ happens, which changes the way you build them. You can also modify the
filesystem itself or select a different filesystem.
First, find out what is hogging your root filesystem by running the
-``dirsize.py`` script from your root directory:
-::
+``dirsize.py`` script from your root directory::
$ cd root-directory-of-image
$ dirsize.py 100000 > dirsize-100k.log
@@ -4107,8 +3985,7 @@ the root filesystem that take up large amounts of memory.
You need to be sure that what you eliminate does not cripple the
functionality you need. One way to see how packages relate to each other
-is by using the Dependency Explorer UI with the BitBake command:
-::
+is by using the Dependency Explorer UI with the BitBake command::
$ cd image-directory
$ bitbake -u taskexp -g image
@@ -4124,8 +4001,7 @@ instead of ``udev``.
Use your ``local.conf`` file to make changes. For example, to eliminate
``udev`` and ``glib``, set the following in the local configuration
-file:
-::
+file::
VIRTUAL-RUNTIME_dev_manager = ""
@@ -4153,8 +4029,7 @@ building? Which drivers do you build by default?
You can modify the kernel source if you want to help with boot time.
Run the ``ksize.py`` script from the top-level Linux build directory to
-get an idea of what is making up the kernel:
-::
+get an idea of what is making up the kernel::
$ cd top-level-linux-build-directory
$ ksize.py > ksize.log
@@ -4168,8 +4043,7 @@ in a compressed kernel image. Look to reduce the areas that are large
and taking up around the "90% rule."
To examine, or drill down, into any particular area, use the ``-d``
-option with the script:
-::
+option with the script::
$ ksize.py -d > ksize.log
@@ -4316,8 +4190,7 @@ your tunings to best consider build times and package feed maintenance.
machine-architecture dependent, make sure your recipe enables the
"machine" package architecture through the
:term:`MACHINE_ARCH`
- variable:
- ::
+ variable::
PACKAGE_ARCH = "${MACHINE_ARCH}"
@@ -4325,8 +4198,7 @@ your tunings to best consider build times and package feed maintenance.
specifically enable a package architecture through the
:term:`PACKAGE_ARCH`, The
OpenEmbedded build system defaults to the
- :term:`TUNE_PKGARCH` setting:
- ::
+ :term:`TUNE_PKGARCH` setting::
PACKAGE_ARCH = "${TUNE_PKGARCH}"
@@ -4426,15 +4298,13 @@ to do is inherit the
and then set the
:term:`EXTERNALSRC` variable to
point to your external source code. Here are the statements to put in
-your ``local.conf`` file:
-::
+your ``local.conf`` file::
INHERIT += "externalsrc"
EXTERNALSRC_pn-myrecipe = "path-to-your-source-tree"
This next example shows how to accomplish the same thing by setting
-``EXTERNALSRC`` in the recipe itself or in the recipe's append file:
-::
+``EXTERNALSRC`` in the recipe itself or in the recipe's append file::
EXTERNALSRC = "path"
EXTERNALSRC_BUILD = "path"
@@ -4451,8 +4321,7 @@ directory separate from the external source directory as specified by
to have the source built in the same directory in which it resides, or
some other nominated directory, you can set
:term:`EXTERNALSRC_BUILD`
-to point to that directory:
-::
+to point to that directory::
EXTERNALSRC_BUILD_pn-myrecipe = "path-to-your-source-tree"
@@ -4475,8 +4344,7 @@ Follow these steps to populate your Downloads directory:
an empty location or one that does not yet exist.
2. *Generate Tarballs of the Source Git Repositories:* Edit your
- ``local.conf`` configuration file as follows:
- ::
+ ``local.conf`` configuration file as follows::
DL_DIR = "/home/your-download-dir/"
BB_GENERATE_MIRROR_TARBALLS = "1"
@@ -4489,8 +4357,7 @@ Follow these steps to populate your Downloads directory:
variable for more information.
3. *Populate Your Downloads Directory Without Building:* Use BitBake to
- fetch your sources but inhibit the build:
- ::
+ fetch your sources but inhibit the build::
$ bitbake target --runonly=fetch
@@ -4536,8 +4403,7 @@ directory:
``${``\ :term:`TMPDIR`\ ``}``
directory or using a new :term:`Build Directory`.
-3. *Build Your Target:* Use BitBake to build your target:
- ::
+3. *Build Your Target:* Use BitBake to build your target::
$ bitbake target
@@ -4550,8 +4416,7 @@ directory:
The offline build does not work if recipes attempt to find the
latest version of software by setting
:term:`SRCREV` to
- ``${``\ :term:`AUTOREV`\ ``}``:
- ::
+ ``${``\ :term:`AUTOREV`\ ``}``::
SRCREV = "${AUTOREV}"
@@ -4670,8 +4535,7 @@ that can help you speed up the build:
- Disable static library generation for recipes derived from
``autoconf`` or ``libtool``: Following is an example showing how to
disable static libraries and still provide an override to handle
- exceptions:
- ::
+ exceptions::
STATICLIBCONF = "--disable-static"
STATICLIBCONF_sqlite3-native = ""
@@ -4726,8 +4590,7 @@ library files.
static library files through ``${PN}-dev``.
Following is part of the BitBake configuration file, where you can see
-how the static library files are defined:
-::
+how the static library files are defined::
PACKAGE_BEFORE_PN ?= ""
PACKAGES = "${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}"
@@ -4833,8 +4696,7 @@ After you have set up the recipes, you need to define the actual
combination of multiple libraries you want to build. You accomplish this
through your ``local.conf`` configuration file in the
:term:`Build Directory`. An example
-configuration would be as follows:
-::
+configuration would be as follows::
MACHINE = "qemux86-64"
require conf/multilib.conf
@@ -4850,14 +4712,12 @@ on this particular tuning, see
The example then includes ``lib32-glib-2.0`` in all the images, which
illustrates one method of including a multiple library dependency. You
-can use a normal image build to include this dependency, for example:
-::
+can use a normal image build to include this dependency, for example::
$ bitbake core-image-sato
You can also build Multilib packages
-specifically with a command like this:
-::
+specifically with a command like this::
$ bitbake lib32-glib-2.0
@@ -4952,8 +4812,7 @@ you have other recipes that depend on a given library, you need to use
the :term:`DEPENDS` variable to
create the dependency. Continuing with the same example, if you want to
have a recipe depend on the 1.8 version of the ``clutter`` library, use
-the following in your recipe:
-::
+the following in your recipe::
DEPENDS = "clutter-1.8"
@@ -4996,8 +4855,7 @@ follows:
- Support for large images exists.
To use the x32 psABI, you need to edit your ``conf/local.conf``
-configuration file as follows:
-::
+configuration file as follows::
MACHINE = "qemux86-64"
DEFAULTTUNE = "x86-64-x32"
@@ -5006,8 +4864,7 @@ configuration file as follows:
Once you have set
up your configuration file, use BitBake to build an image that supports
-the x32 psABI. Here is an example:
-::
+the x32 psABI. Here is an example::
$ bitbake core-image-sato
@@ -5066,8 +4923,7 @@ library package involves the following:
3. Try to build the recipe. If you encounter build errors that look like
something is unable to find ``.so`` libraries, check where these
libraries are located in the source tree and add the following to the
- recipe:
- ::
+ recipe::
GIR_EXTRA_LIBS_PATH = "${B}/something/.libs"
@@ -5097,8 +4953,7 @@ perhaps QEMU does not work on your build host and target architecture
combination. If so, you can use either of the following methods to
disable GIR file generations:
-- Add the following to your distro configuration:
- ::
+- Add the following to your distro configuration::
DISTRO_FEATURES_BACKFILL_CONSIDERED = "gobject-introspection-data"
@@ -5106,8 +4961,7 @@ disable GIR file generations:
QEMU but will still enable building introspection tools and libraries
(i.e. building them does not require the use of QEMU).
-- Add the following to your machine configuration:
- ::
+- Add the following to your machine configuration::
MACHINE_FEATURES_BACKFILL_CONSIDERED = "qemu-usermode"
@@ -5140,8 +4994,7 @@ working in an image:
3. Launch a Terminal and then start Python in the terminal.
-4. Enter the following in the terminal:
- ::
+4. Enter the following in the terminal::
>>> from gi.repository import GLib
>>> GLib.get_host_name()
@@ -5289,8 +5142,7 @@ system needs to meet the following requirements:
form generated by the OpenEmbedded build system.
- You must build several native tools, which are built to run on the
- build system:
- ::
+ build system::
$ bitbake parted-native dosfstools-native mtools-native
@@ -5306,8 +5158,7 @@ Getting Help
You can get general help for the ``wic`` command by entering the ``wic``
command by itself or by entering the command with a help argument as
-follows:
-::
+follows::
$ wic -h
$ wic --help
@@ -5315,32 +5166,27 @@ follows:
Currently, Wic supports seven commands: ``cp``, ``create``, ``help``,
``list``, ``ls``, ``rm``, and ``write``. You can get help for all these
-commands except "help" by using the following form:
-::
+commands except "help" by using the following form::
$ wic help command
For example, the following command returns help for the ``write``
-command:
-::
+command::
$ wic help write
Wic supports help for three topics: ``overview``, ``plugins``, and
-``kickstart``. You can get help for any topic using the following form:
-::
+``kickstart``. You can get help for any topic using the following form::
$ wic help topic
-For example, the following returns overview help for Wic:
-::
+For example, the following returns overview help for Wic::
$ wic help overview
One additional level of help exists for Wic. You can get help on
individual images through the ``list`` command. You can use the ``list``
-command to return the available Wic images as follows:
-::
+command to return the available Wic images as follows::
$ wic list images
genericx86 Create an EFI disk image for genericx86*
@@ -5359,8 +5205,7 @@ command to return the available Wic images as follows:
Once you know the list of available
Wic images, you can use ``help`` with the command to get help on a
particular image. For example, the following command returns help on the
-"beaglebone-yocto" image:
-::
+"beaglebone-yocto" image::
$ wic list beaglebone-yocto help
@@ -5397,8 +5242,7 @@ can point to arbitrary kernel, root filesystem locations, and so forth.
Contrast this behavior with cooked mode where Wic looks in the Build
Directory (e.g. ``tmp/deploy/images/``\ machine).
-The general form of the ``wic`` command in raw mode is:
-::
+The general form of the ``wic`` command in raw mode is::
$ wic create wks_file options ...
@@ -5456,8 +5300,7 @@ a kickstart file and the name of the image from which to use artifacts
by using the "-e" option. Wic looks in the Build Directory (e.g.
``tmp/deploy/images/``\ machine) for artifacts.
-The general form of the ``wic`` command using Cooked Mode is as follows:
-::
+The general form of the ``wic`` command using Cooked Mode is as follows::
$ wic create wks_file -e IMAGE_NAME
@@ -5480,14 +5323,12 @@ Using an Existing Kickstart File
If you do not want to create your own kickstart file, you can use an
existing file provided by the Wic installation. As shipped, kickstart
files can be found in the :ref:`overview-manual/development-environment:yocto project source repositories` in the
-following two locations:
-::
+following two locations::
poky/meta-yocto-bsp/wic
poky/scripts/lib/wic/canned-wks
-Use the following command to list the available kickstart files:
-::
+Use the following command to list the available kickstart files::
$ wic list images
genericx86 Create an EFI disk image for genericx86*
@@ -5505,15 +5346,13 @@ Use the following command to list the available kickstart files:
When you use an existing file, you
do not have to use the ``.wks`` extension. Here is an example in Raw
-Mode that uses the ``directdisk`` file:
-::
+Mode that uses the ``directdisk`` file::
$ wic create directdisk -r rootfs_dir -b bootimg_dir \
-k kernel_dir -n native_sysroot
Here are the actual partition language commands used in the
-``genericx86.wks`` file to generate an image:
-::
+``genericx86.wks`` file to generate an image::
# short-description: Create an EFI disk image for genericx86*
# long-description: Creates a partitioned EFI disk image for genericx86* machines
@@ -5571,8 +5410,7 @@ When the Wic implementation needs to invoke a partition-specific
implementation, it looks for the plugin with the same name as the
``--source`` parameter used in the kickstart file given to that
partition. For example, if the partition is set up using the following
-command in a kickstart file:
-::
+command in a kickstart file::
part /boot --source bootimg-pcbios --ondisk sda --label boot --active --align 1024
@@ -5583,8 +5421,7 @@ members of the matching source plugin (i.e. ``bootimg-pcbios``) in the
To be more concrete, here is the corresponding plugin definition from
the ``bootimg-pcbios.py`` file for the previous command along with an
example method called by the Wic implementation when it needs to prepare
-a partition using an implementation-specific function:
-::
+a partition using an implementation-specific function::
.
.
@@ -5675,8 +5512,7 @@ Generate an Image using an Existing Kickstart File
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This example runs in Cooked Mode and uses the ``mkefidisk`` kickstart
-file:
-::
+file::
$ wic create mkefidisk -e core-image-minimal
INFO: Building wic-tools...
@@ -5712,8 +5548,7 @@ and kickstart file information.
Continuing with the example, you can now write the image from the Build
Directory onto a USB stick, or whatever media for which you built your
image, and boot from the media. You can write the image by using
-``bmaptool`` or ``dd``:
-::
+``bmaptool`` or ``dd``::
$ oe-run-native bmaptool copy mkefidisk-201804191017-sda.direct /dev/sdX
@@ -5761,8 +5596,7 @@ the lines that specify the target disk from which to boot.
Next, the example modifies the ``directdisksdb-gpt.wks`` file and
changes all instances of "``--ondisk sda``" to "``--ondisk sdb``". The
example changes the following two lines and leaves the remaining lines
-untouched:
-::
+untouched::
part /boot --source bootimg-pcbios --ondisk sdb --label boot --active --align 1024
part / --source rootfs --ondisk sdb --fstype=ext4 --label platform --align 1024 --use-uuid
@@ -5799,8 +5633,7 @@ Computing (nuc) :term:`MACHINE` the
Continuing with the example, you can now directly ``dd`` the image to a
USB stick, or whatever media for which you built your image, and boot
-the resulting media:
-::
+the resulting media::
$ sudo dd if=directdisksdb-gpt-201710090938-sdb.direct of=/dev/sdb
140966+0 records in
@@ -5814,8 +5647,7 @@ Using a Modified Kickstart File and Running in Raw Mode
This next example manually specifies each build artifact (runs in Raw
Mode) and uses a modified kickstart file. The example also uses the
``-o`` option to cause Wic to create the output somewhere other than the
-default output directory, which is the current directory:
-::
+default output directory, which is the current directory::
$ wic create /home/stephano/my_yocto/test.wks -o /home/stephano/testwic \
--rootfs-dir /home/stephano/build/master/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/rootfs \
@@ -5860,8 +5692,7 @@ The following example examines the contents of the Wic image, deletes
the existing kernel, and then inserts a new kernel:
1. *List the Partitions:* Use the ``wic ls`` command to list all the
- partitions in the Wic image:
- ::
+ partitions in the Wic image::
$ wic ls tmp/deploy/images/qemux86/core-image-minimal-qemux86.wic
Num Start End Size Fstype
@@ -5877,8 +5708,7 @@ the existing kernel, and then inserts a new kernel:
.. note::
You can get command usage on any Wic command using the following
- form:
- ::
+ form::
$ wic help command
@@ -5886,14 +5716,12 @@ the existing kernel, and then inserts a new kernel:
For example, the following command shows you the various ways to
use the
wic ls
- command:
- ::
+ command::
$ wic help ls
- The following command shows what is in partition one:
- ::
+ The following command shows what is in partition one::
$ wic ls tmp/deploy/images/qemux86/core-image-minimal-qemux86.wic:1
Volume in drive : is boot
@@ -5915,8 +5743,7 @@ the existing kernel, and then inserts a new kernel:
If you see the following error, you need to update or create a
``~/.mtoolsrc`` file and be sure to have the line "mtools_skip_check=1"
- in the file. Then, run the Wic command again:
- ::
+ in the file. Then, run the Wic command again::
ERROR: _exec_cmd: /usr/bin/mdir -i /tmp/wic-parttfokuwra ::/ returned '1' instead of 0
output: Total number of sectors (47824) not a multiple of sectors per track (32)!
@@ -5924,8 +5751,7 @@ the existing kernel, and then inserts a new kernel:
3. *Remove the Old Kernel:* Use the ``wic rm`` command to remove the
- ``vmlinuz`` file (kernel):
- ::
+ ``vmlinuz`` file (kernel)::
$ wic rm tmp/deploy/images/qemux86/core-image-minimal-qemux86.wic:1/vmlinuz
@@ -5937,8 +5763,7 @@ the existing kernel, and then inserts a new kernel:
kernel will be in the ``workspace/sources`` area.
The following example assumes ``devtool`` was used to build the
- kernel:
- ::
+ kernel::
$ wic cp poky_sdk/tmp/work/qemux86-poky-linux/linux-yocto/4.12.12+git999-r0/linux-yocto-4.12.12+git999/arch/x86/boot/bzImage \
poky/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.wic:1/vmlinuz
@@ -5968,14 +5793,12 @@ system image files much faster.
- If you are using Ubuntu or Debian distributions, you can install
the ``bmap-tools`` package using the following command and then
use the tool without specifying ``PATH`` even from the root
- account:
- ::
+ account::
$ sudo apt-get install bmap-tools
- If you are unable to install the ``bmap-tools`` package, you will
- need to build Bmaptool before using it. Use the following command:
- ::
+ need to build Bmaptool before using it. Use the following command::
$ bitbake bmap-tools-native
@@ -5984,15 +5807,13 @@ that while this example uses a Wic image, you can use Bmaptool to flash
any type of image. Use these steps to flash an image using Bmaptool:
1. *Update your local.conf File:* You need to have the following set
- in your ``local.conf`` file before building your image:
- ::
+ in your ``local.conf`` file before building your image::
IMAGE_FSTYPES += "wic wic.bmap"
2. *Get Your Image:* Either have your image ready (pre-built with the
:term:`IMAGE_FSTYPES`
- setting previously mentioned) or take the step to build the image:
- ::
+ setting previously mentioned) or take the step to build the image::
$ bitbake image
@@ -6000,20 +5821,17 @@ any type of image. Use these steps to flash an image using Bmaptool:
depending on your particular setup. The following commands assume the
image resides in the Build Directory's ``deploy/images/`` area:
- - If you have write access to the media, use this command form:
- ::
+ - If you have write access to the media, use this command form::
$ oe-run-native bmap-tools-native bmaptool copy build-directory/tmp/deploy/images/machine/image.wic /dev/sdX
- If you do not have write access to the media, set your permissions
- first and then use the same command form:
- ::
+ first and then use the same command form::
$ sudo chmod 666 /dev/sdX
$ oe-run-native bmap-tools-native bmaptool copy build-directory/tmp/deploy/images/machine/image.wic /dev/sdX
-For help on the ``bmaptool`` command, use the following command:
-::
+For help on the ``bmaptool`` command, use the following command::
$ bmaptool --help
@@ -6107,8 +5925,7 @@ your build output more secure. The security flags are in the
Use the following line in your ``local.conf`` file or in your custom
distribution configuration file to enable the security compiler and
-linker flags for your build:
-::
+linker flags for your build::
require conf/distro/include/security_flags.inc
@@ -6123,8 +5940,7 @@ system to make your images more secure:
When creating a new project, the default is to provide you with an
initial ``local.conf`` file that enables this feature using the
:term:`EXTRA_IMAGE_FEATURES`
- variable with the line:
- ::
+ variable with the line::
EXTRA_IMAGE_FEATURES = "debug-tweaks"
@@ -6250,8 +6066,7 @@ layer. The following steps provide some more detail:
:term:`DISTRO` variable to point to
your distribution's configuration file. For example, if your
distribution's configuration file is named ``mydistro.conf``, then
- you point to it as follows:
- ::
+ you point to it as follows::
DISTRO = "mydistro"
@@ -6292,8 +6107,7 @@ The OpenEmbedded build system uses the environment variable
configuration information that ultimately ends up in the
:term:`Build Directory` ``conf`` directory.
By default, ``TEMPLATECONF`` is set as follows in the ``poky``
-repository:
-::
+repository::
TEMPLATECONF=${TEMPLATECONF:-meta-poky/conf}
@@ -6335,8 +6149,7 @@ display BitBake targets as part of the script output. Customizing this
targets appears as part of the script's output.
Here is the default list of targets displayed as a result of running
-either of the setup scripts:
-::
+either of the setup scripts::
You can now run 'bitbake <target>'
@@ -6355,8 +6168,7 @@ Conserving Disk Space During Builds
To help conserve disk space during builds, you can add the following
statement to your project's ``local.conf`` configuration file found in
-the :term:`Build Directory`:
-::
+the :term:`Build Directory`::
INHERIT += "rm_work"
@@ -6534,8 +6346,7 @@ The simplest form for a PR Service is for it to exist for a single host
development system that builds the package feed (building system). For
this scenario, you can enable a local PR Service by setting
:term:`PRSERV_HOST` in your
-``local.conf`` file in the :term:`Build Directory`:
-::
+``local.conf`` file in the :term:`Build Directory`::
PRSERV_HOST = "localhost:0"
@@ -6546,8 +6357,7 @@ stopping the server.
If you have a more complex setup where multiple host development systems
work against a common, shared package feed, you have a single PR Service
running and it is connected to each building system. For this scenario,
-you need to start the PR Service using the ``bitbake-prserv`` command:
-::
+you need to start the PR Service using the ``bitbake-prserv`` command::
bitbake-prserv --host ip --port port --start
@@ -6559,8 +6369,7 @@ server and port.
It is also recommended you use build history, which adds some sanity
checks to binary package versions, in conjunction with the server that
is running the PR Service. To enable build history, add the following to
-each building system's ``local.conf`` file:
-::
+each building system's ``local.conf`` file::
# It is recommended to activate "buildhistory" for testing the PR service
INHERIT += "buildhistory"
@@ -6629,15 +6438,13 @@ the specific source code revision from which to build. You set the
``SRCREV`` variable to
:term:`AUTOREV` to cause the
OpenEmbedded build system to automatically use the latest revision of
-the software:
-::
+the software::
SRCREV = "${AUTOREV}"
Furthermore, you need to reference ``SRCPV`` in ``PV`` in order to
automatically update the version whenever the revision of the source
-code changes. Here is an example:
-::
+code changes. Here is an example::
PV = "1.0+git${SRCPV}"
@@ -6707,8 +6514,7 @@ package for each one it finds by appending to the
:term:`PACKAGES` variable and
setting the appropriate values for ``FILES_packagename``,
``RDEPENDS_packagename``, ``DESCRIPTION_packagename``, and so forth.
-Here is an example from the ``lighttpd`` recipe:
-::
+Here is an example from the ``lighttpd`` recipe::
python populate_packages_prepend () {
lighttpd_libdir = d.expand('${libdir}')
@@ -6751,8 +6557,7 @@ directory of the ``poky`` :ref:`source repository <overview-manual/development-e
also find examples in ``meta/classes/kernel.bbclass``.
Following is a reference that shows ``do_split_packages`` mandatory and
-optional arguments:
-::
+optional arguments::
Mandatory arguments
@@ -6840,8 +6645,7 @@ any dependencies on optional modules from other recipes are satisfied by
your recipe. You can be sure these dependencies are satisfied by using
the :term:`PACKAGES_DYNAMIC`
variable. Here is an example that continues with the ``lighttpd`` recipe
-shown earlier:
-::
+shown earlier::
PACKAGES_DYNAMIC = "lighttpd-module-.*"
@@ -6933,8 +6737,7 @@ variable to specify the format:
:term:`Build Directory` (e.g.
``poky/build/conf/local.conf``).
-2. Select the desired package format as follows:
- ::
+2. Select the desired package format as follows::
PACKAGE_CLASSES ?= "package_packageformat"
@@ -6968,15 +6771,13 @@ target's package database(s) later once your image is up and running.
Whenever you perform any sort of build step that can potentially
generate a package or modify existing package, it is always a good idea
to re-generate the package index after the build by using the following
-command:
-::
+command::
$ bitbake package-index
It might be tempting to build the
package and the package index at the same time with a command such as
-the following:
-::
+the following::
$ bitbake some-package package-index
@@ -7024,8 +6825,7 @@ your packaging choice (i.e. the
:term:`PACKAGE_CLASSES`
setting), simply start the server. The following example assumes a build
directory of ``poky/build/tmp/deploy/rpm`` and a ``PACKAGE_CLASSES``
-setting of "package_rpm":
-::
+setting of "package_rpm"::
$ cd poky/build/tmp/deploy/rpm
$ python3 -m http.server
@@ -7091,8 +6891,7 @@ for all architectures. You cannot do both:
architectures.
- *Create a Single (Full) Package Index:* Define a single base URL that
- identifies where a full package database is located:
- ::
+ identifies where a full package database is located::
[oe-packages]
baseurl=http://my.server/rpm
@@ -7210,8 +7009,7 @@ Signing RPM Packages
To enable signing RPM packages, you must set up the following
configurations in either your ``local.config`` or ``distro.config``
-file:
-::
+file::
# Inherit sign_rpm.bbclass to enable signing functionality
INHERIT += " sign_rpm"
@@ -7242,8 +7040,7 @@ signed package feeds for IPK and RPM packages.
The steps you need to take to enable signed package feed use are similar
to the steps used to sign RPM packages. You must define the following in
-your ``local.config`` or ``distro.config`` file:
-::
+your ``local.config`` or ``distro.config`` file::
INHERIT += "sign_package_feed"
PACKAGE_FEED_GPG_NAME = "key_name"
@@ -7282,8 +7079,7 @@ hand, the test can be anything from a simple shell script that runs a
binary and checks the output to an elaborate system of test binaries and
data files.
-The test generates output in the format used by Automake:
-::
+The test generates output in the format used by Automake::
result: testname
@@ -7305,8 +7101,7 @@ To add package testing to your build, add the
:term:`DISTRO_FEATURES` and
:term:`EXTRA_IMAGE_FEATURES`
variables to your ``local.conf`` file, which is found in the
-:term:`Build Directory`:
-::
+:term:`Build Directory`::
DISTRO_FEATURES_append = " ptest"
EXTRA_IMAGE_FEATURES += "ptest-pkgs"
@@ -7331,16 +7126,14 @@ test. Here is what you have to do for each recipe:
- *Be sure the recipe inherits
the* :ref:`ptest <ref-classes-ptest>` *class:*
- Include the following line in each recipe:
- ::
+ Include the following line in each recipe::
inherit ptest
- *Create run-ptest:* This script starts your test. Locate the
script where you will refer to it using
:term:`SRC_URI`. Here is an
- example that starts a test for ``dbus``:
- ::
+ example that starts a test for ``dbus``::
#!/bin/sh
cd test
@@ -7352,8 +7145,7 @@ test. Here is what you have to do for each recipe:
:term:`DEPENDS` and
:term:`RDEPENDS` variables in
your recipe in order for the package to meet the dependencies. Here
- is an example where the package has a runtime dependency on "make":
- ::
+ is an example where the package has a runtime dependency on "make"::
RDEPENDS_${PN}-ptest += "make"
@@ -7374,8 +7166,7 @@ test. Here is what you have to do for each recipe:
Regardless, you still must add a ``do_compile_ptest`` function to
build the test suite. Add a function similar to the following to your
- recipe:
- ::
+ recipe::
do_compile_ptest() {
oe_runmake buildtest-TESTS
@@ -7457,8 +7248,7 @@ which is a file browser web application.
You must know the ``cute-files`` module version.
The first thing you need to do is use ``devtool`` and the NPM fetcher to
-create the recipe:
-::
+create the recipe::
$ devtool add "npm://registry.npmjs.org;package=cute-files;version=1.0.2"
@@ -7486,8 +7276,7 @@ runs.
practical way to have the licenses for all of the dependencies
represented in the license manifest of the image.
-The ``devtool edit-recipe`` command lets you take a look at the recipe:
-::
+The ``devtool edit-recipe`` command lets you take a look at the recipe::
$ devtool edit-recipe cute-files
SUMMARY = "Turn any folder on your computer into a cute file browser, available on the local network."
@@ -7520,8 +7309,7 @@ Three key points exist in the previous example:
:ref:`npm <ref-classes-npm>` class to package
up all the modules.
-You can run the following command to build the ``cute-files`` package:
-::
+You can run the following command to build the ``cute-files`` package::
$ devtool build cute-files
@@ -7529,8 +7317,7 @@ Remember that ``nodejs`` must be installed on
the target before your package.
Assuming 192.168.7.2 for the target's IP address, use the following
-command to deploy your package:
-::
+command to deploy your package::
$ devtool deploy-target -s cute-files root@192.168.7.2
@@ -7569,15 +7356,13 @@ projects method, you provide ``devtool`` with an URL that points to the
source files.
Replicating the same example, (i.e. ``cute-files``) use the following
-command:
-::
+command::
$ devtool add https://github.com/martinaglv/cute-files.git
The
recipe this command generates is very similar to the recipe created in
-the previous section. However, the ``SRC_URI`` looks like the following:
-::
+the previous section. However, the ``SRC_URI`` looks like the following::
SRC_URI = " \
git://github.com/martinaglv/cute-files.git;protocol=https \
@@ -7629,8 +7414,7 @@ by the literal sequence '\\n'. The separator can be redefined using the
variable flag ``separator``.
The following is an example that adds two custom fields for ipk
-packages:
-::
+packages::
PACKAGE_ADD_METADATA_IPK = "Vendor: CustomIpk\nGroup:Applications/Spreadsheets"
@@ -7660,8 +7444,7 @@ adding statements to your configuration file so that the build process
checks local directories first for existing tarballs before checking the
Internet.
-Here is an efficient way to set it up in your ``local.conf`` file:
-::
+Here is an efficient way to set it up in your ``local.conf`` file::
SOURCE_MIRROR_URL ?= "file:///home/you/your-download-dir/"
INHERIT += "own-mirrors"
@@ -7692,8 +7475,7 @@ download directory :ref:`structure-build-downloads`,
which is located with :term:`DL_DIR`.
Use the following BitBake command form to fetch all the necessary
-sources without starting the build:
-::
+sources without starting the build::
$ bitbake target --runall=fetch
@@ -7740,15 +7522,13 @@ following sections.
Using systemd Exclusively
-------------------------
-Set these variables in your distribution configuration file as follows:
-::
+Set these variables in your distribution configuration file as follows::
DISTRO_FEATURES_append = " systemd"
VIRTUAL-RUNTIME_init_manager = "systemd"
You can also prevent the SysVinit distribution feature from
-being automatically enabled as follows:
-::
+being automatically enabled as follows::
DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"
@@ -7756,8 +7536,7 @@ Doing so removes any
redundant SysVinit scripts.
To remove initscripts from your image altogether, set this variable
-also:
-::
+also::
VIRTUAL-RUNTIME_initscripts = ""
@@ -7767,8 +7546,7 @@ For information on the backfill variable, see
Using systemd for the Main Image and Using SysVinit for the Rescue Image
------------------------------------------------------------------------
-Set these variables in your distribution configuration file as follows:
-::
+Set these variables in your distribution configuration file as follows::
DISTRO_FEATURES_append = " systemd"
VIRTUAL-RUNTIME_init_manager = "systemd"
@@ -7800,8 +7578,7 @@ Using Persistent and Pre-Populated\ ``/dev``
To use the static method for device population, you need to set the
:term:`USE_DEVFS` variable to "0"
-as follows:
-::
+as follows::
USE_DEVFS = "0"
@@ -7813,8 +7590,7 @@ machine or distro configuration file. Alternatively, you can set this
variable in your ``local.conf`` configuration file.
If you do not define the ``IMAGE_DEVICE_TABLES`` variable, the default
-``device_table-minimal.txt`` is used:
-::
+``device_table-minimal.txt`` is used::
IMAGE_DEVICE_TABLES = "device_table-mymachine.txt"
@@ -7826,8 +7602,7 @@ Using ``devtmpfs`` and a Device Manager
To use the dynamic method for device population, you need to use (or be
sure to set) the :term:`USE_DEVFS`
-variable to "1", which is the default:
-::
+variable to "1", which is the default::
USE_DEVFS = "1"
@@ -7844,8 +7619,7 @@ To have more control over the device nodes, you can use a device manager
like ``udev`` or ``busybox-mdev``. You choose the device manager by
defining the ``VIRTUAL-RUNTIME_dev_manager`` variable in your machine or
distro configuration file. Alternatively, you can set this variable in
-your ``local.conf`` configuration file:
-::
+your ``local.conf`` configuration file::
VIRTUAL-RUNTIME_dev_manager = "udev"
@@ -7866,14 +7640,12 @@ Subversion (SVN), Git, and Bazaar (BZR) repositories.
To enable this behavior, the :term:`PV` of
the recipe needs to reference
-:term:`SRCPV`. Here is an example:
-::
+:term:`SRCPV`. Here is an example::
PV = "1.2.3+git${SRCPV}"
Then, you can add the following to your
-``local.conf``:
-::
+``local.conf``::
SRCREV_pn-PN = "${AUTOREV}"
@@ -7881,20 +7653,17 @@ Then, you can add the following to your
which you want to enable automatic source revision updating.
If you do not want to update your local configuration file, you can add
-the following directly to the recipe to finish enabling the feature:
-::
+the following directly to the recipe to finish enabling the feature::
SRCREV = "${AUTOREV}"
The Yocto Project provides a distribution named ``poky-bleeding``, whose
-configuration file contains the line:
-::
+configuration file contains the line::
require conf/distro/include/poky-floating-revisions.inc
This line pulls in the
-listed include file that contains numerous lines of exactly that form:
-::
+listed include file that contains numerous lines of exactly that form::
#SRCREV_pn-opkg-native ?= "${AUTOREV}"
#SRCREV_pn-opkg-sdk ?= "${AUTOREV}"
@@ -7946,15 +7715,13 @@ Creating the Root Filesystem
To create the read-only root filesystem, simply add the
"read-only-rootfs" feature to your image, normally in one of two ways.
The first way is to add the "read-only-rootfs" image feature in the
-image's recipe file via the ``IMAGE_FEATURES`` variable:
-::
+image's recipe file via the ``IMAGE_FEATURES`` variable::
IMAGE_FEATURES += "read-only-rootfs"
As an alternative, you can add the same feature
from within your build directory's ``local.conf`` file with the
-associated ``EXTRA_IMAGE_FEATURES`` variable, as in:
-::
+associated ``EXTRA_IMAGE_FEATURES`` variable, as in::
EXTRA_IMAGE_FEATURES = "read-only-rootfs"
@@ -8051,8 +7818,7 @@ Build history is disabled by default. To enable it, add the following
``INHERIT`` statement and set the
:term:`BUILDHISTORY_COMMIT`
variable to "1" at the end of your ``conf/local.conf`` file found in the
-:term:`Build Directory`:
-::
+:term:`Build Directory`::
INHERIT += "buildhistory"
BUILDHISTORY_COMMIT = "1"
@@ -8140,8 +7906,7 @@ and actual revisions might differ when
:term:`SRCREV` is set to
${:term:`AUTOREV`}. Here is an
example assuming
-``buildhistory/packages/qemux86-poky-linux/linux-yocto/latest_srcrev``):
-::
+``buildhistory/packages/qemux86-poky-linux/linux-yocto/latest_srcrev``)::
# SRCREV_machine = "38cd560d5022ed2dbd1ab0dca9642e47c98a0aa1"
SRCREV_machine = "38cd560d5022ed2dbd1ab0dca9642e47c98a0aa1"
@@ -8154,8 +7919,7 @@ collect the stored ``SRCREV`` values from build history and report them
in a format suitable for use in global configuration (e.g.,
``local.conf`` or a distro include file) to override floating
``AUTOREV`` values to a fixed set of revisions. Here is some example
-output from this command:
-::
+output from this command::
$ buildhistory-collect-srcrevs -a
# i586-poky-linux
@@ -8270,8 +8034,7 @@ image. If you are just interested in this information and not interested
in collecting specific package or SDK information, you can enable
writing only image information without any history by adding the
following to your ``conf/local.conf`` file found in the
-:term:`Build Directory`:
-::
+:term:`Build Directory`::
INHERIT += "buildhistory"
BUILDHISTORY_COMMIT = "0"
@@ -8370,8 +8133,7 @@ interface.
To see any changes that have occurred (assuming you have
:term:`BUILDHISTORY_COMMIT` = "1"),
you can simply use any Git command that allows you to view the history
-of a repository. Here is one method:
-::
+of a repository. Here is one method::
$ git log -p
@@ -8381,8 +8143,7 @@ however, that this method does show changes that are not significant
A command-line tool called ``buildhistory-diff`` does exist, though,
that queries the Git repository and prints just the differences that
-might be significant in human-readable form. Here is an example:
-::
+might be significant in human-readable form. Here is an example::
$ poky/poky/scripts/buildhistory-diff . HEAD^
Changes to images/qemux86_64/glibc/core-image-minimal (files-in-image.txt):
@@ -8402,8 +8163,7 @@ might be significant in human-readable form. Here is an example:
.. note::
The ``buildhistory-diff`` tool requires the ``GitPython``
- package. Be sure to install it using Pip3 as follows:
- ::
+ package. Be sure to install it using Pip3 as follows::
$ pip3 install GitPython --user
@@ -8473,8 +8233,7 @@ In order to run tests, you need to do the following:
with sudo.
- The package recipe ``qemu-helper-native`` is required to run
- this script. Build the package using the following command:
- ::
+ this script. Build the package using the following command::
$ bitbake qemu-helper-native
@@ -8609,8 +8368,7 @@ not need any information in this section. You can skip down to the
If you did set ``TEST_TARGET`` to "SystemdbootTarget", you also need to
perform a one-time setup of your master image by doing the following:
-1. *Set EFI_PROVIDER:* Be sure that ``EFI_PROVIDER`` is as follows:
- ::
+1. *Set EFI_PROVIDER:* Be sure that ``EFI_PROVIDER`` is as follows::
EFI_PROVIDER = "systemd-boot"
@@ -8648,16 +8406,14 @@ The final thing you need to do when setting ``TEST_TARGET`` to
"SystemdbootTarget" is to set up the test image:
1. *Set up your local.conf file:* Make sure you have the following
- statements in your ``local.conf`` file:
- ::
+ statements in your ``local.conf`` file::
IMAGE_FSTYPES += "tar.gz"
INHERIT += "testimage"
TEST_TARGET = "SystemdbootTarget"
TEST_TARGET_IP = "192.168.2.3"
-2. *Build your test image:* Use BitBake to build the image:
- ::
+2. *Build your test image:* Use BitBake to build the image::
$ bitbake core-image-sato
@@ -8671,8 +8427,7 @@ power:
``TEST_POWERCONTROL_EXTRA_ARGS`` as a command that runs on the host
and does power cycling. The test code passes one argument to that
command: off, on or cycle (off then on). Here is an example that
- could appear in your ``local.conf`` file:
- ::
+ could appear in your ``local.conf`` file::
TEST_POWERCONTROL_CMD = "powercontrol.exp test 10.11.12.1 nuc1"
@@ -8705,8 +8460,7 @@ wish to experiment with automated hardware testing, you can use the
the required power action. This script requires either KDialog or Zenity
to be installed. To use this script, set the
:term:`TEST_POWERCONTROL_CMD`
-variable as follows:
-::
+variable as follows::
TEST_POWERCONTROL_CMD = "${COREBASE}/scripts/contrib/dialog-power-control"
@@ -8728,8 +8482,7 @@ connecting to a remote console server. Regardless of the case, the
command simply needs to connect to the serial console and forward that
connection to standard input and output as any normal terminal program
does. For example, to use the picocom terminal program on serial device
-``/dev/ttyUSB0`` at 115200bps, you would set the variable as follows:
-::
+``/dev/ttyUSB0`` at 115200bps, you would set the variable as follows::
TEST_SERIALCONTROL_CMD = "picocom /dev/ttyUSB0 -b 115200"
@@ -8737,8 +8490,7 @@ For local
devices where the serial port device disappears when the device reboots,
an additional "serdevtry" wrapper script is provided. To use this
wrapper, simply prefix the terminal command with
-``${COREBASE}/scripts/contrib/serdevtry``:
-::
+``${COREBASE}/scripts/contrib/serdevtry``::
TEST_SERIALCONTROL_CMD = "${COREBASE}/scripts/contrib/serdevtry picocom -b 115200 /dev/ttyUSB0"
@@ -8752,27 +8504,23 @@ You can start the tests automatically or manually:
set the
:term:`TESTIMAGE_AUTO`
variable to "1" in your ``local.conf`` file in the
- :term:`Build Directory`:
- ::
+ :term:`Build Directory`::
TESTIMAGE_AUTO = "1"
Next, build your image. If the image successfully builds, the
- tests run:
- ::
+ tests run::
bitbake core-image-sato
- *Manually running tests:* To manually run the tests, first globally
inherit the
:ref:`testimage <ref-classes-testimage*>` class
- by editing your ``local.conf`` file:
- ::
+ by editing your ``local.conf`` file::
INHERIT += "testimage"
- Next, use BitBake to run the tests:
- ::
+ Next, use BitBake to run the tests::
bitbake -c testimage image
@@ -8815,18 +8563,15 @@ handling.
Here are some things to keep in mind when running tests:
-- The default tests for the image are defined as:
- ::
+- The default tests for the image are defined as::
DEFAULT_TEST_SUITES_pn-image = "ping ssh df connman syslog xorg scp vnc date rpm dnf dmesg"
-- Add your own test to the list of the by using the following:
- ::
+- Add your own test to the list of the by using the following::
TEST_SUITES_append = " mytest"
-- Run a specific list of tests as follows:
- ::
+- Run a specific list of tests as follows::
TEST_SUITES = "test1 test2 test3"
@@ -8842,16 +8587,14 @@ test execution off to a scheduler. You can only export tests that are
defined in :term:`TEST_SUITES`.
If your image is already built, make sure the following are set in your
-``local.conf`` file:
-::
+``local.conf`` file::
INHERIT += "testexport"
TEST_TARGET_IP = "IP-address-for-the-test-target"
TEST_SERVER_IP = "IP-address-for-the-test-server"
You can then export the tests with the
-following BitBake command form:
-::
+following BitBake command form::
$ bitbake image -c testexport
@@ -8860,28 +8603,24 @@ Exporting the tests places them in the
``tmp/testexport/``\ image, which is controlled by the
``TEST_EXPORT_DIR`` variable.
-You can now run the tests outside of the build environment:
-::
+You can now run the tests outside of the build environment::
$ cd tmp/testexport/image
$ ./runexported.py testdata.json
Here is a complete example that shows IP addresses and uses the
-``core-image-sato`` image:
-::
+``core-image-sato`` image::
INHERIT += "testexport"
TEST_TARGET_IP = "192.168.7.2"
TEST_SERVER_IP = "192.168.7.1"
-Use BitBake to export the tests:
-::
+Use BitBake to export the tests::
$ bitbake core-image-sato -c testexport
Run the tests outside of
-the build environment using the following:
-::
+the build environment using the following::
$ cd tmp/testexport/core-image-sato
$ ./runexported.py testdata.json
@@ -9157,14 +8896,12 @@ variables>` did not work out as expected.
BitBake's ``-e`` option is used to display variable values after
parsing. The following command displays the variable values after the
configuration files (i.e. ``local.conf``, ``bblayers.conf``,
-``bitbake.conf`` and so forth) have been parsed:
-::
+``bitbake.conf`` and so forth) have been parsed::
$ bitbake -e
The following command displays variable values after a specific recipe has
-been parsed. The variables include those from the configuration as well:
-::
+been parsed. The variables include those from the configuration as well::
$ bitbake -e recipename
@@ -9187,8 +8924,7 @@ variable flags (varflags) set on the variable. The output can be very
helpful during debugging.
Variables that are exported to the environment are preceded by
-``export`` in the output of ``bitbake -e``. See the following example:
-::
+``export`` in the output of ``bitbake -e``. See the following example::
export CC="i586-poky-linux-gcc -m32 -march=i586 --sysroot=/home/ulf/poky/build/tmp/sysroots/qemux86"
@@ -9250,8 +8986,7 @@ Following are a few of the available ``oe-pkgdata-util`` subcommands.
- ``oe-pkgdata-util find-path path ...``: Lists the names of
the packages that contain the given paths. For example, the following
tells us that ``/usr/share/man/man1/make.1`` is contained in the
- ``make-doc`` package:
- ::
+ ``make-doc`` package::
$ oe-pkgdata-util find-path /usr/share/man/man1/make.1
make-doc: /usr/share/man/man1/make.1
@@ -9260,8 +8995,7 @@ Following are a few of the available ``oe-pkgdata-util`` subcommands.
of the recipes that produce the given packages.
For more information on the ``oe-pkgdata-util`` command, use the help
-facility:
-::
+facility::
$ oe-pkgdata-util --help
$ oe-pkgdata-util subcommand --help
@@ -9274,8 +9008,7 @@ before the one you have specified. Dependency information can help you
understand why a recipe is built.
To generate dependency information for a recipe, run the following
-command:
-::
+command::
$ bitbake -g recipename
@@ -9305,8 +9038,7 @@ format and can be converted to images (e.g. using the ``dot`` tool from
provide useful information.
As an example, the ``task-depends.dot`` file contains lines such
- as the following:
- ::
+ as the following::
"libxslt.do_configure" -> "libxml2.do_populate_sysroot"
@@ -9323,8 +9055,7 @@ format and can be converted to images (e.g. using the ``dot`` tool from
displays paths between graph nodes.
You can use a different method to view dependency information by using
-the following command:
-::
+the following command::
$ bitbake -g -u taskexp recipename
@@ -9350,8 +9081,7 @@ If you are unsure whether a variable dependency is being picked up
automatically for a given task, you can list the variable dependencies
BitBake has determined by doing the following:
-1. Build the recipe containing the task:
-::
+1. Build the recipe containing the task::
$ bitbake recipename
@@ -9362,8 +9092,7 @@ BitBake has determined by doing the following:
checksum for the task. As an example, for the
:ref:`ref-tasks-fetch` task of the
``db`` recipe, the ``sigdata`` file might be found in the following
- location:
- ::
+ location::
${BUILDDIR}/tmp/stamps/i586-poky-linux/db/6.0.30-r1.do_fetch.sigdata.7c048c18222b16ff0bcee2000ef648b1
@@ -9375,8 +9104,7 @@ BitBake has determined by doing the following:
same information as ``sigdata`` files.
3. Run ``bitbake-dumpsig`` on the ``sigdata`` or ``siginfo`` file. Here
- is an example:
- ::
+ is an example::
$ bitbake-dumpsig ${BUILDDIR}/tmp/stamps/i586-poky-linux/db/6.0.30-r1.do_fetch.sigdata.7c048c18222b16ff0bcee2000ef648b1
@@ -9406,8 +9134,7 @@ call ``bitbake-diffsigs`` with just one file, the command behaves like
You can also use BitBake to dump out the signature construction
information without executing tasks by using either of the following
-BitBake command-line options:
-::
+BitBake command-line options::
‐‐dump-signatures=SIGNATURE_HANDLER
-S SIGNATURE_HANDLER
@@ -9494,8 +9221,7 @@ behavior in most cases is: ``do_fetch``, ``do_unpack``, ``do_patch``,
``do_build`` and any tasks on which it depends build first. Some tasks,
such as ``do_devshell``, are not part of the default build chain. If you
wish to run a task that is not part of the default build chain, you can
-use the ``-c`` option in BitBake. Here is an example:
-::
+use the ``-c`` option in BitBake. Here is an example::
$ bitbake matchbox-desktop -c devshell
@@ -9520,8 +9246,7 @@ out), then you can use the ``-f`` option.
[\ :ref:`nostamp <bitbake:bitbake-user-manual/bitbake-user-manual-metadata:variable flags>`\ ]
variable flag is already set for the task.
-The following example shows one way you can use the ``-f`` option:
-::
+The following example shows one way you can use the ``-f`` option::
$ bitbake matchbox-desktop
.
@@ -9550,8 +9275,7 @@ Using this option invalidates the given task and then runs the
:ref:`ref-tasks-build` task, which is
the default task if no task is given, and the tasks on which it depends.
You could replace the final two commands in the previous example with
-the following single command:
-::
+the following single command::
$ bitbake matchbox-desktop -C compile
@@ -9575,16 +9299,14 @@ task dependency mechanisms.
and build output might not be in the clean state they would be in for
a "normal" build, depending on what actions you took. To get rid of
such warnings, you can remove the work directory and rebuild the
- recipe, as follows:
- ::
+ recipe, as follows::
$ bitbake matchbox-desktop -c clean
$ bitbake matchbox-desktop
You can view a list of tasks in a given package by running the
-``do_listtasks`` task as follows:
-::
+``do_listtasks`` task as follows::
$ bitbake matchbox-desktop -c listtasks
@@ -9608,8 +9330,7 @@ Building with No Dependencies
-----------------------------
To build a specific recipe (``.bb`` file), you can use the following
-command form:
-::
+command form::
$ bitbake -b somepath/somerecipe.bb
@@ -9678,8 +9399,7 @@ in the log, use the "debug" loglevel.
Following is an example written in Python. The code handles logging for
a function that determines the number of tasks needed to be run. See the
":ref:`ref-tasks-listtasks`"
-section for additional information:
-::
+section for additional information::
python do_listtasks() {
bb.debug(2, "Starting to figure out the task list")
@@ -9841,21 +9561,18 @@ build, set the
:term:`PARALLEL_MAKE` variable
in your ``local.conf`` file to a high number (e.g. "-j 20"). Using a
high value for ``PARALLEL_MAKE`` increases the chances of the race
-condition showing up:
-::
+condition showing up::
$ bitbake neard
-Once the local build for "neard" completes, start a ``devshell`` build:
-::
+Once the local build for "neard" completes, start a ``devshell`` build::
$ bitbake neard -c devshell
For information on how to use a ``devshell``, see the
":ref:`dev-manual/common-tasks:using a development shell`" section.
-In the ``devshell``, do the following:
-::
+In the ``devshell``, do the following::
$ make clean
$ make tools/snep-send.o
@@ -9863,8 +9580,7 @@ In the ``devshell``, do the following:
The ``devshell`` commands cause the failure to clearly
be visible. In this case, a missing dependency exists for the "neard"
Makefile target. Here is some abbreviated, sample output with the
-missing dependency clearly visible at the end:
-::
+missing dependency clearly visible at the end::
i586-poky-linux-gcc -m32 -march=i586 --sysroot=/home/scott-lenovo/......
.
@@ -9885,8 +9601,7 @@ Creating a Patch for the Fix
Because there is a missing dependency for the Makefile target, you need
to patch the ``Makefile.am`` file, which is generated from
-``Makefile.in``. You can use Quilt to create the patch:
-::
+``Makefile.in``. You can use Quilt to create the patch::
$ quilt new parallelmake.patch
Patch patches/parallelmake.patch is now on top
@@ -9898,14 +9613,12 @@ For more information on using Quilt, see the
At this point you need to make the edits to ``Makefile.am`` to add the
missing dependency. For our example, you have to add the following line
-to the file:
-::
+to the file::
tools/snep-send.$(OBJEXT): include/near/dbus.h
Once you have edited the file, use the ``refresh`` command to create the
-patch:
-::
+patch::
$ quilt refresh
Refreshed patch patches/parallelmake.patch
@@ -9913,8 +9626,7 @@ patch:
Once
the patch file exists, you need to add it back to the originating recipe
folder. Here is an example assuming a top-level
-:term:`Source Directory` named ``poky``:
-::
+:term:`Source Directory` named ``poky``::
$ cp patches/parallelmake.patch poky/meta/recipes-connectivity/neard/neard
@@ -9922,8 +9634,7 @@ The final thing you need to do to implement the fix in the build is to
update the "neard" recipe (i.e. ``neard-0.14.bb``) so that the
:term:`SRC_URI` statement includes
the patch file. The recipe file is in the folder above the patch. Here
-is what the edited ``SRC_URI`` statement would look like:
-::
+is what the edited ``SRC_URI`` statement would look like::
SRC_URI = "${KERNELORG_MIRROR}/linux/network/nfc/${BPN}-${PV}.tar.xz \
file://neard.in \
@@ -9932,8 +9643,7 @@ is what the edited ``SRC_URI`` statement would look like:
"
With the patch complete and moved to the correct folder and the
-``SRC_URI`` statement updated, you can exit the ``devshell``:
-::
+``SRC_URI`` statement updated, you can exit the ``devshell``::
$ exit
@@ -9941,16 +9651,14 @@ Testing the Build
~~~~~~~~~~~~~~~~~
With everything in place, you can get back to trying the build again
-locally:
-::
+locally::
$ bitbake neard
This build should succeed.
Now you can open up a ``devshell`` again and repeat the clean and make
-operations as follows:
-::
+operations as follows::
$ bitbake neard -c devshell
$ make clean
@@ -9997,42 +9705,47 @@ methods you can use: running a debuginfod server and using gdbserver.
Using the debuginfod server method
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-"debuginfod" from "elfutils" is a way to distribute "debuginfo" files.
-Running a "debuginfod" server makes debug symbols readily available,
+``debuginfod`` from ``elfutils`` is a way to distribute ``debuginfo`` files.
+Running a ``debuginfod`` server makes debug symbols readily available,
which means you don't need to download debugging information
and the binaries of the process being debugged. You can just fetch
debug symbols from the server.
-To run a debuginfod server, you need to do the following:
+To run a ``debuginfod`` server, you need to do the following:
-- Ensure that this variable is set in your ``local.conf`` file:
- ::
+- Ensure that ``debuginfod`` is present in :term:`DISTRO_FEATURES`
+ (it already is in ``OpenEmbedded-core`` defaults and ``poky`` reference distribution).
+ If not, set in your distro config file or in ``local.conf``::
- PACKAGECONFIG_pn-elfutils-native = "debuginfod libdebuginfod"
+ DISTRO_FEATURES_append = " debuginfod"
- This :term:`PACKAGECONFIG` option enables debuginfod and libdebuginfod for
- "elfutils-native".
+ This distro feature enables the server and client library in ``elfutils``,
+ and enables ``debuginfod`` support in clients (at the moment, ``gdb`` and ``binutils``).
-- Run the following commands to set up the "debuginfod" server:
- ::
+- Run the following commands to launch the ``debuginfod`` server on the host::
$ oe-debuginfod
+- To use ``debuginfod`` on the target, you need to know the ip:port where
+ ``debuginfod`` is listening on the host (port defaults to 8002), and export
+ that into the shell environment, for example in ``qemu``::
-To use debuginfod on the target, you need the following:
+ root@qemux86-64:~# export DEBUGINFOD_URLS="http://192.168.7.1:8002/"
-- Ensure that this variable is set in your ``local.conf`` file:
- ::
-
- DEBUGINFOD_URLS = "http://localhost:8002/"
+- Then debug info fetching should simply work when running the target ``gdb``,
+ ``readelf`` or ``objdump``, for example::
- This :term:`DEBUGINFOD_URLS` option does the client configuration.
+ root@qemux86-64:~# gdb /bin/cat
+ ...
+ Reading symbols from /bin/cat...
+ Downloading separate debug info for /bin/cat...
+ Reading symbols from /home/root/.cache/debuginfod_client/923dc4780cfbc545850c616bffa884b6b5eaf322/debuginfo...
- ::
+- It's also possible to use ``debuginfod-find`` to just query the server::
- PACKAGECONFIG_pn-gdb = "debuginfod"
+ root@qemux86-64:~# debuginfod-find debuginfo /bin/ls
+ /home/root/.cache/debuginfod_client/356edc585f7f82d46f94fcb87a86a3fe2d2e60bd/debuginfo
- This :term:`PACKAGECONFIG` option enables "debuginfod" for "gdb".
Using the gdbserver method
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -10069,8 +9782,7 @@ debugger.
1. *Configure your build system to construct the companion debug
filesystem:*
- In your ``local.conf`` file, set the following:
- ::
+ In your ``local.conf`` file, set the following::
IMAGE_GEN_DEBUGFS = "1"
IMAGE_FSTYPES_DEBUGFS = "tar.bz2"
@@ -10090,8 +9802,7 @@ debugger.
2. *Configure the system to include gdbserver in the target filesystem:*
Make the following addition in either your ``local.conf`` file or in
- an image recipe:
- ::
+ an image recipe::
IMAGE_INSTALL_append = " gdbserver"
@@ -10101,29 +9812,25 @@ debugger.
3. *Build the environment:*
Use the following command to construct the image and the companion
- Debug Filesystem:
- ::
+ Debug Filesystem::
$ bitbake image
Build the cross GDB component and
make it available for debugging. Build the SDK that matches the
image. Building the SDK is best for a production build that can be
- used later for debugging, especially during long term maintenance:
- ::
+ used later for debugging, especially during long term maintenance::
$ bitbake -c populate_sdk image
Alternatively, you can build the minimal toolchain components that
match the target. Doing so creates a smaller than typical SDK and
only contains a minimal set of components with which to build simple
- test applications, as well as run the debugger:
- ::
+ test applications, as well as run the debugger::
$ bitbake meta-toolchain
- A final method is to build Gdb itself within the build system:
- ::
+ A final method is to build Gdb itself within the build system::
$ bitbake gdb-cross-<architecture>
@@ -10140,8 +9847,7 @@ debugger.
4. *Set up the* ``debugfs``\ *:*
- Run the following commands to set up the ``debugfs``:
- ::
+ Run the following commands to set up the ``debugfs``::
$ mkdir debugfs
$ cd debugfs
@@ -10180,8 +9886,7 @@ debugger.
Documentation <https://www.gnu.org/software/gdb/documentation/>`__.
After running gdbserver on the target, you need to run Gdb on the
- host and configure it and connect to the target. Use these commands:
- ::
+ host and configure it and connect to the target. Use these commands::
$ cd directory-holding-the-debugfs-directory
$ arch-gdb
@@ -10212,8 +9917,7 @@ debugger.
If the binary is processed through the debug splitting in
OpenEmbedded, you should also copy the debug items (i.e. ``.debug``
contents and corresponding ``/usr/src/debug`` files) from the work
- directory. Here is an example:
- ::
+ directory. Here is an example::
$ bitbake bash
$ bitbake -c devshell bash
@@ -10234,25 +9938,21 @@ debug on the target hardware.
To support this kind of debugging, you need do the following:
- Ensure that GDB is on the target. You can do this by adding "gdb" to
- :term:`IMAGE_INSTALL`:
- ::
+ :term:`IMAGE_INSTALL`::
IMAGE_INSTALL_append = " gdb"
- Alternatively, you can add "tools-debug" to :term:`IMAGE_FEATURES`:
- ::
+ Alternatively, you can add "tools-debug" to :term:`IMAGE_FEATURES`::
IMAGE_FEATURES_append = " tools-debug"
- Ensure that debug symbols are present. You can make sure these
- symbols are present by installing ``-dbg``:
- ::
+ symbols are present by installing ``-dbg``::
IMAGE_INSTALL_append = "packagename-dbg"
Alternatively, you can do the following to include
- all the debug symbols:
- ::
+ all the debug symbols::
IMAGE_FEATURES_append = " dbg-pkgs"
@@ -10262,8 +9962,7 @@ To support this kind of debugging, you need do the following:
of optimization used by the compiler. For example, when adding the
following line to your ``local.conf`` file, you will reduce optimization
from :term:`FULL_OPTIMIZATION` of "-O2" to :term:`DEBUG_OPTIMIZATION`
- of "-O -fno-omit-frame-pointer":
- ::
+ of "-O -fno-omit-frame-pointer"::
DEBUG_BUILD = "1"
@@ -10307,8 +10006,7 @@ Here are some other tips that you might find useful:
Using GNU Grep, you can use the following shell function to
recursively search through common recipe-related files, skipping
binary files, ``.git`` directories, and the Build Directory (assuming
- its name starts with "build"):
- ::
+ its name starts with "build")::
g() {
grep -Ir \
@@ -10321,8 +10019,7 @@ Here are some other tips that you might find useful:
"$@"
}
- Following are some usage examples:
- ::
+ Following are some usage examples::
$ g FOO # Search recursively for "FOO"
$ g -i foo # Search recursively for "foo", ignoring case
@@ -10581,8 +10278,7 @@ Preparing Changes for Submission
specific convention for bug references - any commit that addresses
a specific bug should use the following form for the detailed
description. Be sure to use the actual bug-tracking ID from
- Bugzilla for bug-id:
- ::
+ Bugzilla for bug-id::
Fixes [YOCTO #bug-id]
@@ -10608,8 +10304,7 @@ without using the scripts once the steps in
provide the command, you must include a revision list or a number of
patches as part of the command. For example, either of these two
commands takes your most recent single commit and formats it as an
- email message in the current directory:
- ::
+ email message in the current directory::
$ git format-patch -1
@@ -10701,8 +10396,7 @@ been followed:
1. *Push Your Commits to a "Contrib" Upstream:* If you have arranged for
permissions to push to an upstream contrib repository, push the
- change to that repository:
- ::
+ change to that repository::
$ git push upstream_remote_repo local_branch_name
@@ -10711,8 +10405,7 @@ been followed:
working in a local branch named `your_name`\ ``/README``. The following
command pushes your local commits to the ``meta-intel-contrib``
upstream repository and puts the commit in a branch named
- `your_name`\ ``/README``:
- ::
+ `your_name`\ ``/README``::
$ git push meta-intel-contrib your_name/README
@@ -10729,8 +10422,7 @@ been followed:
- *Search by File:* Using :ref:`overview-manual/development-environment:git`, you can
enter the following command to bring up a short list of all
- commits against a specific file:
- ::
+ commits against a specific file::
git shortlog -- filename
@@ -10764,8 +10456,7 @@ been followed:
First, create the pull request. For example, the following command
runs the script, specifies the upstream repository in the contrib
directory into which you pushed the change, and provides a subject
- line in the created patch files:
- ::
+ line in the created patch files::
$ poky/scripts/create-pull-request -u meta-intel-contrib -s "Updated Manual Section Reference in README"
@@ -10778,8 +10469,7 @@ been followed:
editing the cover letter, send the pull request. For example, the
following command runs the script and specifies the patch directory
and email address. In this example, the email address is a mailing
- list:
- ::
+ list::
$ poky/scripts/send-pull-request -p ~/meta-intel/pull-10565 -t meta-intel@yoctoproject.org
@@ -10788,8 +10478,7 @@ been followed:
.. note::
For help on using these scripts, simply provide the ``-h``
- argument as follows:
- ::
+ argument as follows::
$ poky/scripts/create-pull-request -h
$ poky/scripts/send-pull-request -h
@@ -10901,8 +10590,7 @@ Specifying the ``LIC_FILES_CHKSUM`` Variable
The ``LIC_FILES_CHKSUM`` variable contains checksums of the license text
in the source code for the recipe. Following is an example of how to
-specify ``LIC_FILES_CHKSUM``:
-::
+specify ``LIC_FILES_CHKSUM``::
LIC_FILES_CHKSUM = "file://COPYING;md5=xxxx \
file://licfile1.txt;beginline=5;endline=29;md5=yyyy \
@@ -10925,8 +10613,7 @@ variable as the default directory when searching files listed in
``LIC_FILES_CHKSUM``. The previous example employs the default
directory.
-Consider this next example:
-::
+Consider this next example::
LIC_FILES_CHKSUM = "file://src/ls.c;beginline=5;endline=16;\
md5=bb14ed3c4cda583abc85401304b5cd4e"
@@ -10988,15 +10675,13 @@ are defined on a recipe-by-recipe basis through the
:term:`LICENSE_FLAGS` variable
definition in the affected recipe. For instance, the
``poky/meta/recipes-multimedia/gstreamer/gst-plugins-ugly`` recipe
-contains the following statement:
-::
+contains the following statement::
LICENSE_FLAGS = "commercial"
Here is a
slightly more complicated example that contains both an explicit recipe
-name and version (after variable expansion):
-::
+name and version (after variable expansion)::
LICENSE_FLAGS = "license_${PN}_${PV}"
@@ -11011,8 +10696,7 @@ could add either the string "commercial_gst-plugins-ugly" or the more
general string "commercial" to ``LICENSE_FLAGS_WHITELIST``. See the
":ref:`dev-manual/common-tasks:license flag matching`" section for a full
explanation of how ``LICENSE_FLAGS`` matching works. Here is the
-example:
-::
+example::
LICENSE_FLAGS_WHITELIST = "commercial_gst-plugins-ugly"
@@ -11020,8 +10704,7 @@ Likewise, to additionally enable the package built from the recipe
containing ``LICENSE_FLAGS = "license_${PN}_${PV}"``, and assuming that
the actual recipe name was ``emgd_1.10.bb``, the following string would
enable that package as well as the original ``gst-plugins-ugly``
-package:
-::
+package::
LICENSE_FLAGS_WHITELIST = "commercial_gst-plugins-ugly license_emgd_1.10"
@@ -11077,8 +10760,7 @@ matches any expanded ``LICENSE_FLAGS`` definition that starts with the
string "commercial" such as "commercial_foo" and "commercial_bar", which
are the strings the build system automatically generates for
hypothetical recipes named "foo" and "bar" assuming those recipes simply
-specify the following:
-::
+specify the following::
LICENSE_FLAGS = "commercial"
@@ -11116,8 +10798,7 @@ Other Variables Related to Commercial Licenses
Other helpful variables related to commercial license handling exist and
are defined in the
-``poky/meta/conf/distro/include/default-distrovars.inc`` file:
-::
+``poky/meta/conf/distro/include/default-distrovars.inc`` file::
COMMERCIAL_AUDIO_PLUGINS ?= ""
COMMERCIAL_VIDEO_PLUGINS ?= ""
@@ -11125,8 +10806,7 @@ are defined in the
If you
want to enable these components, you can do so by making sure you have
statements similar to the following in your ``local.conf`` configuration
-file:
-::
+file::
COMMERCIAL_AUDIO_PLUGINS = "gst-plugins-ugly-mad \
gst-plugins-ugly-mpegaudioparse"
@@ -11138,8 +10818,7 @@ file:
Of course, you could also create a matching whitelist for those
components using the more general "commercial" in the whitelist, but
that would also enable all the other packages with ``LICENSE_FLAGS``
-containing "commercial", which you may or may not want:
-::
+containing "commercial", which you may or may not want::
LICENSE_FLAGS_WHITELIST = "commercial"
@@ -11219,8 +10898,7 @@ of compliance in mind.
One way of doing this (but certainly not the only way) is to release
just the source as a tarball. You can do this by adding the following to
the ``local.conf`` file found in the
-:term:`Build Directory`:
-::
+:term:`Build Directory`::
INHERIT += "archiver"
ARCHIVER_MODE[src] = "original"
@@ -11276,8 +10954,7 @@ One requirement that is often overlooked is inclusion of license text.
This requirement also needs to be dealt with prior to generating the
final image. Some licenses require the license text to accompany the
binary. You can achieve this by adding the following to your
-``local.conf`` file:
-::
+``local.conf`` file::
COPY_LIC_MANIFEST = "1"
COPY_LIC_DIRS = "1"
@@ -11344,8 +11021,7 @@ thing a development organization might want to consider for end-user
convenience is to modify ``meta-poky/conf/bblayers.conf.sample`` to
ensure that when the end user utilizes the released build system to
build an image, the development organization's layers are included in
-the ``bblayers.conf`` file automatically:
-::
+the ``bblayers.conf`` file automatically::
# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
@@ -11413,8 +11089,7 @@ variable. Using this variable also avoids QA errors when you use a
non-common, non-CLOSED license in a recipe.
The following is an example that uses the ``LICENSE.Abilis.txt`` file as
-the license from the fetched source:
-::
+the license from the fetched source::
NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENSE.Abilis.txt"
@@ -11457,8 +11132,7 @@ class by adding the following statement to the end of your
By default, the error reporting feature stores information in
``${``\ :term:`LOG_DIR`\ ``}/error-report``.
However, you can specify a directory to use by adding the following to
-your ``local.conf`` file:
-::
+your ``local.conf`` file::
ERR_REPORT_DIR = "path"
@@ -11467,8 +11141,7 @@ reporting causes the build process to collect the errors and store them
in a file as previously described. When the build system encounters an
error, it includes a command as part of the console output. You can run
the command to send the error file to the server. For example, the
-following command sends the errors to an upstream server:
-::
+following command sends the errors to an upstream server::
$ send-error-report /home/brandusa/project/poky/build/tmp/log/error-report/error_report_201403141617.txt
@@ -11476,8 +11149,7 @@ In the previous example, the errors are sent to a public database
available at https://errors.yoctoproject.org, which is used by the
entire community. If you specify a particular server, you can send the
errors to a different database. Use the following command for more
-information on available options:
-::
+information on available options::
$ send-error-report --help
@@ -11557,8 +11229,7 @@ Wayland with Kernel Mode Setting
(`KMS <https://wiki.archlinux.org/index.php/Kernel_Mode_Setting>`__)
support, include the "wayland" flag in the
:term:`DISTRO_FEATURES`
-statement in your ``local.conf`` file:
-::
+statement in your ``local.conf`` file::
DISTRO_FEATURES_append = " wayland"
@@ -11573,8 +11244,7 @@ Installing Wayland and Weston
To install the Wayland feature into an image, you must include the
following
:term:`CORE_IMAGE_EXTRA_INSTALL`
-statement in your ``local.conf`` file:
-::
+statement in your ``local.conf`` file::
CORE_IMAGE_EXTRA_INSTALL += "wayland weston"
@@ -11589,14 +11259,12 @@ Alternatively, you can run Weston through the command-line interpretor
(CLI), which is better suited for development work. To run Weston under
the CLI, you need to do the following after your image is built:
-1. Run these commands to export ``XDG_RUNTIME_DIR``:
- ::
+1. Run these commands to export ``XDG_RUNTIME_DIR``::
mkdir -p /tmp/$USER-weston
chmod 0700 /tmp/$USER-weston
export XDG_RUNTIME_DIR=/tmp/$USER-weston
-2. Launch Weston in the shell:
- ::
+2. Launch Weston in the shell::
weston
diff --git a/poky/documentation/dev-manual/qemu.rst b/poky/documentation/dev-manual/qemu.rst
index 92799d6d2..2b6d3d76c 100644
--- a/poky/documentation/dev-manual/qemu.rst
+++ b/poky/documentation/dev-manual/qemu.rst
@@ -55,16 +55,14 @@ available. Follow these general steps to run QEMU:
- If you cloned the ``poky`` repository or you downloaded and
unpacked a Yocto Project release tarball, you can source the build
- environment script (i.e. :ref:`structure-core-script`):
- ::
+ environment script (i.e. :ref:`structure-core-script`)::
$ cd poky
$ source oe-init-build-env
- If you installed a cross-toolchain, you can run the script that
initializes the toolchain. For example, the following commands run
- the initialization script from the default ``poky_sdk`` directory:
- ::
+ the initialization script from the default ``poky_sdk`` directory::
. poky_sdk/environment-setup-core2-64-poky-linux
@@ -86,8 +84,7 @@ available. Follow these general steps to run QEMU:
Extensible Software Development Kit (eSDK) manual for information on
how to extract a root filesystem.
-4. *Run QEMU:* The basic ``runqemu`` command syntax is as follows:
- ::
+4. *Run QEMU:* The basic ``runqemu`` command syntax is as follows::
$ runqemu [option ] [...]
@@ -222,18 +219,15 @@ using an NFS server.
Should you need to start, stop, or restart the NFS share, you can use
the following commands:
- - The following command starts the NFS share:
- ::
+ - The following command starts the NFS share::
runqemu-export-rootfs start file-system-location
- - The following command stops the NFS share:
- ::
+ - The following command stops the NFS share::
runqemu-export-rootfs stop file-system-location
- - The following command restarts the NFS share:
- ::
+ - The following command restarts the NFS share::
runqemu-export-rootfs restart file-system-location
@@ -313,8 +307,7 @@ present, the toolchain is also automatically used.
QEMU Command-Line Syntax
========================
-The basic ``runqemu`` command syntax is as follows:
-::
+The basic ``runqemu`` command syntax is as follows::
$ runqemu [option ] [...]
@@ -325,8 +318,7 @@ timestamp when it needs to look for an image. Minimally, through the use
of options, you must provide either a machine name, a virtual machine
image (``*wic.vmdk``), or a kernel image (``*.bin``).
-Following is the command-line help output for the ``runqemu`` command:
-::
+Following is the command-line help output for the ``runqemu`` command::
$ runqemu --help
diff --git a/poky/documentation/dev-manual/start.rst b/poky/documentation/dev-manual/start.rst
index 84abf4c51..18fd8ccf6 100644
--- a/poky/documentation/dev-manual/start.rst
+++ b/poky/documentation/dev-manual/start.rst
@@ -387,36 +387,28 @@ as your Yocto Project build host:
software. Follow the instructions for your specific machine and the
type of the software you need to install:
- - Install `Docker CE for
+ - Install `Docker Desktop on
Windows <https://docs.docker.com/docker-for-windows/install/#install-docker-desktop-on-windows>`__
for Windows build hosts that meet requirements.
- - Install `Docker CE for
+ - Install `Docker Desktop on
MacOs <https://docs.docker.com/docker-for-mac/install/#install-and-run-docker-desktop-on-mac>`__
for Mac build hosts that meet requirements.
- - Install `Docker Toolbox for
- Windows <https://docs.docker.com/toolbox/toolbox_install_windows/>`__
- for Windows build hosts that do not meet Docker requirements.
-
- - Install `Docker Toolbox for
- MacOS <https://docs.docker.com/toolbox/toolbox_install_mac/>`__
- for Mac build hosts that do not meet Docker requirements.
-
- - Install `Docker CE for
- CentOS <https://docs.docker.com/install/linux/docker-ce/centos/>`__
+ - Install `Docker Engine on
+ CentOS <https://docs.docker.com/engine/install/centos/>`__
for Linux build hosts running the CentOS distribution.
- - Install `Docker CE for
- Debian <https://docs.docker.com/install/linux/docker-ce/debian/>`__
+ - Install `Docker Engine on
+ Debian <https://docs.docker.com/engine/install/debian/>`__
for Linux build hosts running the Debian distribution.
- - Install `Docker CE for
- Fedora <https://docs.docker.com/install/linux/docker-ce/fedora/>`__
+ - Install `Docker Engine for
+ Fedora <https://docs.docker.com/engine/install/fedora/>`__
for Linux build hosts running the Fedora distribution.
- - Install `Docker CE for
- Ubuntu <https://docs.docker.com/install/linux/docker-ce/ubuntu/>`__
+ - Install `Docker Engine for
+ Ubuntu <https://docs.docker.com/engine/install/ubuntu/>`__
for Linux build hosts running the Ubuntu distribution.
5. *Optionally Orient Yourself With Docker:* If you are unfamiliar with
@@ -486,8 +478,7 @@ your Yocto Project build host:
distribution.
3. *Check your Linux distribution is using WSLv2:* Open a Windows
- PowerShell and run:
- ::
+ PowerShell and run::
C:\WINDOWS\system32> wsl -l -v
NAME STATE VERSION
@@ -514,8 +505,7 @@ your Yocto Project build host:
1. *Find the location of your VHDX file:* First you need to find the
distro app package directory, to achieve this open a Windows
- Powershell as Administrator and run:
- ::
+ Powershell as Administrator and run::
C:\WINDOWS\system32> Get-AppxPackage -Name "*Ubuntu*" | Select PackageFamilyName
PackageFamilyName
@@ -525,8 +515,7 @@ your Yocto Project build host:
You should now
replace the PackageFamilyName and your user on the following path
- to find your VHDX file:
- ::
+ to find your VHDX file::
ls C:\Users\myuser\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79abcdefgh\LocalState\
Mode LastWriteTime Length Name
@@ -536,8 +525,7 @@ your Yocto Project build host:
``C:\Users\myuser\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79abcdefgh\LocalState\ext4.vhdx``
2. *Optimize your VHDX file:* Open a Windows Powershell as
- Administrator to optimize your VHDX file, shutting down WSL first:
- ::
+ Administrator to optimize your VHDX file, shutting down WSL first::
C:\WINDOWS\system32> wsl --shutdown
C:\WINDOWS\system32> optimize-vhd -Path C:\Users\myuser\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79abcdefgh\LocalState\ext4.vhdx -Mode full
@@ -741,8 +729,7 @@ Follow these steps to create a local version of the upstream
2. *Clone the Repository:* The following example command clones the
``poky`` repository and uses the default name "poky" for your local
- repository:
- ::
+ repository::
$ git clone git://git.yoctoproject.org/poky
Cloning into 'poky'...
@@ -764,8 +751,7 @@ Follow these steps to create a local version of the upstream
Once the local repository is created, you can change to that
directory and check its status. Here, the single "master" branch
- exists on your system and by default, it is checked out:
- ::
+ exists on your system and by default, it is checked out::
$ cd poky
$ git status
@@ -826,8 +812,7 @@ and then specifically check out that development branch.
3. *Check out the Branch:* Check out the development branch in which you
want to work. For example, to access the files for the Yocto Project
- &DISTRO; Release (&DISTRO_NAME;), use the following command:
- ::
+ &DISTRO; Release (&DISTRO_NAME;), use the following command::
$ git checkout -b &DISTRO_NAME_NO_CAP; origin/&DISTRO_NAME_NO_CAP;
Branch &DISTRO_NAME_NO_CAP; set up to track remote branch &DISTRO_NAME_NO_CAP; from origin.
@@ -839,8 +824,7 @@ and then specifically check out that development branch.
The following command displays the branches that are now part of your
local poky repository. The asterisk character indicates the branch
- that is currently checked out for work:
- ::
+ that is currently checked out for work::
$ git branch
master
@@ -867,14 +851,12 @@ similar to checking out by branch name except you use tag names.
section.
2. *Fetch the Tag Names:* To checkout the branch based on a tag name,
- you need to fetch the upstream tags into your local repository:
- ::
+ you need to fetch the upstream tags into your local repository::
$ git fetch --tags
$
-3. *List the Tag Names:* You can list the tag names now:
- ::
+3. *List the Tag Names:* You can list the tag names now::
$ git tag
1.1_M1.final
diff --git a/poky/documentation/kernel-dev/advanced.rst b/poky/documentation/kernel-dev/advanced.rst
index fb6dfca85..b0d03851b 100644
--- a/poky/documentation/kernel-dev/advanced.rst
+++ b/poky/documentation/kernel-dev/advanced.rst
@@ -67,8 +67,7 @@ to indicate the branch.
.. note::
You can use the ``KBRANCH`` value to define an alternate branch typically
- with a machine override as shown here from the ``meta-yocto-bsp`` layer:
- ::
+ with a machine override as shown here from the ``meta-yocto-bsp`` layer::
KBRANCH_edgerouter = "standard/edgerouter"
@@ -106,15 +105,13 @@ You can use the
variable to include features (configuration fragments, patches, or both)
that are not already included by the ``KMACHINE`` and
``LINUX_KERNEL_TYPE`` variable combination. For example, to include a
-feature specified as "features/netfilter/netfilter.scc", specify:
-::
+feature specified as "features/netfilter/netfilter.scc", specify::
KERNEL_FEATURES += "features/netfilter/netfilter.scc"
To include a
feature called "cfg/sound.scc" just for the ``qemux86`` machine,
-specify:
-::
+specify::
KERNEL_FEATURES_append_qemux86 = " cfg/sound.scc"
@@ -157,8 +154,7 @@ types to form the final description of what will be assembled and built.
While the kernel Metadata syntax does not enforce any logical separation
of configuration fragments, patches, features or kernel types, best
practices dictate a logical separation of these types of Metadata. The
-following Metadata file hierarchy is recommended:
-::
+following Metadata file hierarchy is recommended::
base/
bsp/
@@ -222,8 +218,7 @@ used with the ``linux-yocto-4.12`` kernel as defined outside of the
recipe space (i.e. ``yocto-kernel-cache``). This Metadata consists of
two files: ``smp.scc`` and ``smp.cfg``. You can find these files in the
``cfg`` directory of the ``yocto-4.12`` branch in the
-``yocto-kernel-cache`` Git repository:
-::
+``yocto-kernel-cache`` Git repository::
cfg/smp.scc:
define KFEATURE_DESCRIPTION "Enable SMP for 32 bit builds"
@@ -265,8 +260,7 @@ non-hardware fragment.
As described in the
":ref:`kernel-dev/common:validating configuration`" section, you can
-use the following BitBake command to audit your configuration:
-::
+use the following BitBake command to audit your configuration::
$ bitbake linux-yocto -c kernel_configcheck -f
@@ -287,8 +281,7 @@ in the ``patches/build`` directory of the ``yocto-4.12`` branch in the
``yocto-kernel-cache`` Git repository.
The following listings show the ``build.scc`` file and part of the
-``modpost-mask-trivial-warnings.patch`` file:
-::
+``modpost-mask-trivial-warnings.patch`` file::
patches/build/build.scc:
patch arm-serialize-build-targets.patch
@@ -334,8 +327,7 @@ Features
Features are complex kernel Metadata types that consist of configuration
fragments, patches, and possibly other feature description files. As an
-example, consider the following generic listing:
-::
+example, consider the following generic listing::
features/myfeature.scc
define KFEATURE_DESCRIPTION "Enable myfeature"
@@ -371,15 +363,13 @@ the ``linux-yocto_4.12.bb`` kernel recipe found in
``poky/meta/recipes-kernel/linux``, a
:ref:`require <bitbake:bitbake-user-manual/bitbake-user-manual-metadata:\`\`require\`\` directive>` directive
includes the ``poky/meta/recipes-kernel/linux/linux-yocto.inc`` file,
-which has the following statement that defines the default kernel type:
-::
+which has the following statement that defines the default kernel type::
LINUX_KERNEL_TYPE ??= "standard"
Another example would be the real-time kernel (i.e.
``linux-yocto-rt_4.12.bb``). This kernel recipe directly sets the kernel
-type as follows:
-::
+type as follows::
LINUX_KERNEL_TYPE = "preempt-rt"
@@ -412,8 +402,7 @@ for Linux Yocto kernels:
For any given kernel type, the Metadata is defined by the ``.scc`` (e.g.
``standard.scc``). Here is a partial listing for the ``standard.scc``
file, which is found in the ``ktypes/standard`` directory of the
-``yocto-kernel-cache`` Git repository:
-::
+``yocto-kernel-cache`` Git repository::
# Include this kernel type fragment to get the standard features and
# configuration values.
@@ -482,15 +471,13 @@ Description Overview
For simplicity, consider the following root BSP layer description files
for the BeagleBone board. These files employ both a structure and naming
convention for consistency. The naming convention for the file is as
-follows:
-::
+follows::
bsp_root_name-kernel_type.scc
Here are some example root layer
BSP filenames for the BeagleBone Board BSP, which is supported by the
-Yocto Project:
-::
+Yocto Project::
beaglebone-standard.scc
beaglebone-preempt-rt.scc
@@ -498,8 +485,7 @@ Yocto Project:
Each file uses the root name (i.e "beaglebone") BSP name followed by the
kernel type.
-Examine the ``beaglebone-standard.scc`` file:
-::
+Examine the ``beaglebone-standard.scc`` file::
define KMACHINE beaglebone
define KTYPE standard
@@ -533,8 +519,7 @@ description file match.
To separate your kernel policy from your hardware configuration, you
include a kernel type (``ktype``), such as "standard". In the previous
-example, this is done using the following:
-::
+example, this is done using the following::
include ktypes/standard/standard.scc
@@ -544,13 +529,11 @@ policy. See the ":ref:`kernel-dev/advanced:kernel types`" section for more
information.
To aggregate common configurations and features specific to the kernel
-for `mybsp`, use the following:
-::
+for `mybsp`, use the following::
include mybsp.scc
-You can see that in the BeagleBone example with the following:
-::
+You can see that in the BeagleBone example with the following::
include beaglebone.scc
@@ -558,15 +541,13 @@ For information on how to break a complete ``.config`` file into the various
configuration fragments, see the ":ref:`kernel-dev/common:creating configuration fragments`" section.
Finally, if you have any configurations specific to the hardware that
-are not in a ``*.scc`` file, you can include them as follows:
-::
+are not in a ``*.scc`` file, you can include them as follows::
kconf hardware mybsp-extra.cfg
The BeagleBone example does not include these
types of configurations. However, the Malta 32-bit board does
-("mti-malta32"). Here is the ``mti-malta32-le-standard.scc`` file:
-::
+("mti-malta32"). Here is the ``mti-malta32-le-standard.scc`` file::
define KMACHINE mti-malta32-le
define KMACHINE qemumipsel
@@ -623,8 +604,7 @@ found on the machine. This ``minnow.scc`` description file is then
included in each of the three "minnow" description files for the
supported kernel types (i.e. "standard", "preempt-rt", and "tiny").
Consider the "minnow" description for the "standard" kernel type (i.e.
-``minnow-standard.scc``):
-::
+``minnow-standard.scc``)::
define KMACHINE minnow
define KTYPE standard
@@ -656,8 +636,7 @@ that defines all enabled hardware for the BSP that is common to all
kernel types. Using this command significantly reduces duplication.
Now consider the "minnow" description for the "tiny" kernel type (i.e.
-``minnow-tiny.scc``):
-::
+``minnow-tiny.scc``)::
define KMACHINE minnow
define KTYPE tiny
@@ -720,8 +699,7 @@ See the ":ref:`kernel-dev/common:modifying an existing recipe`"
section for more information.
Here is an example that shows a trivial tree of kernel Metadata stored
-in recipe-space within a BSP layer:
-::
+in recipe-space within a BSP layer::
meta-my_bsp_layer/
`-- recipes-kernel
@@ -744,8 +722,7 @@ value when changing the content of files not explicitly listed in the
If the BSP description is in recipe space, you cannot simply list the
``*.scc`` in the ``SRC_URI`` statement. You need to use the following
-form from your kernel append file:
-::
+form from your kernel append file::
SRC_URI_append_myplatform = " \
file://myplatform;type=kmeta;destsuffix=myplatform \
@@ -759,8 +736,7 @@ reside in a separate repository. The OpenEmbedded build system adds the
Metadata to the build as a "type=kmeta" repository through the
:term:`SRC_URI` variable. As an
example, consider the following ``SRC_URI`` statement from the
-``linux-yocto_4.12.bb`` kernel recipe:
-::
+``linux-yocto_4.12.bb`` kernel recipe::
SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.12.git;name=machine;branch=${KBRANCH}; \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.12;destsuffix=${KMETA}"
@@ -844,14 +820,12 @@ patches into a feature.
Once you have a new branch, you can set up your kernel Metadata to use
the branch a couple different ways. In the recipe, you can specify the
-new branch as the ``KBRANCH`` to use for the board as follows:
-::
+new branch as the ``KBRANCH`` to use for the board as follows::
KBRANCH = "mynewbranch"
Another method is to use the ``branch`` command in the BSP
-description:
-::
+description::
mybsp.scc:
define KMACHINE mybsp
@@ -865,15 +839,13 @@ description:
If you find yourself with numerous branches, you might consider using a
hierarchical branching system similar to what the Yocto Linux Kernel Git
-repositories use:
-::
+repositories use::
common/kernel_type/machine
If you had two kernel types, "standard" and "small" for instance, three
machines, and common as ``mydir``, the branches in your Git repository
-might look like this:
-::
+might look like this::
mydir/base
mydir/standard/base
@@ -905,8 +877,7 @@ that have to be regularly updated. The Yocto Project Linux kernel tools
provide for this with the ``git merge`` command.
To merge a feature branch into a BSP, insert the ``git merge`` command
-after any ``branch`` commands:
-::
+after any ``branch`` commands::
mybsp.scc:
define KMACHINE mybsp
diff --git a/poky/documentation/kernel-dev/common.rst b/poky/documentation/kernel-dev/common.rst
index 56217b9d3..3f35d8412 100644
--- a/poky/documentation/kernel-dev/common.rst
+++ b/poky/documentation/kernel-dev/common.rst
@@ -54,8 +54,7 @@ section:
1. *Initialize the BitBake Environment:* Before building an extensible
SDK, you need to initialize the BitBake build environment by sourcing
- the build environment script (i.e. :ref:`structure-core-script`):
- ::
+ the build environment script (i.e. :ref:`structure-core-script`)::
$ cd poky
$ source oe-init-build-env
@@ -83,16 +82,14 @@ section:
In this example we wish to build for qemux86 so we must set the
``MACHINE`` variable to "qemux86" and also add the "kernel-modules".
- As described we do this by appending to ``conf/local.conf``:
- ::
+ As described we do this by appending to ``conf/local.conf``::
MACHINE = "qemux86"
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-modules"
3. *Create a Layer for Patches:* You need to create a layer to hold
patches created for the kernel image. You can use the
- ``bitbake-layers create-layer`` command as follows:
- ::
+ ``bitbake-layers create-layer`` command as follows::
$ cd poky/build
$ bitbake-layers create-layer ../../meta-mylayer
@@ -116,8 +113,7 @@ section:
4. *Inform the BitBake Build Environment About Your Layer:* As directed
when you created your layer, you need to add the layer to the
:term:`BBLAYERS` variable in the
- ``bblayers.conf`` file as follows:
- ::
+ ``bblayers.conf`` file as follows::
$ cd poky/build
$ bitbake-layers add-layer ../../meta-mylayer
@@ -125,16 +121,14 @@ section:
$
5. *Build the Extensible SDK:* Use BitBake to build the extensible SDK
- specifically for use with images to be run using QEMU:
- ::
+ specifically for use with images to be run using QEMU::
$ cd poky/build
$ bitbake core-image-minimal -c populate_sdk_ext
Once
the build finishes, you can find the SDK installer file (i.e.
- ``*.sh`` file) in the following directory:
- ::
+ ``*.sh`` file) in the following directory::
poky/build/tmp/deploy/sdk
@@ -143,8 +137,7 @@ section:
6. *Install the Extensible SDK:* Use the following command to install
the SDK. For this example, install the SDK in the default
- ``poky_sdk`` directory:
- ::
+ ``poky_sdk`` directory::
$ cd poky/build/tmp/deploy/sdk
$ ./poky-glibc-x86_64-core-image-minimal-i586-toolchain-ext-&DISTRO;.sh
@@ -172,8 +165,7 @@ section:
BitBake shell used to build the installer.
After opening a new shell, run the SDK environment setup script as
- directed by the output from installing the SDK:
- ::
+ directed by the output from installing the SDK::
$ source poky_sdk/environment-setup-i586-poky-linux
"SDK environment now set up; additionally you may now run devtool to perform development tasks.
@@ -186,8 +178,7 @@ section:
8. *Build the Clean Image:* The final step in preparing to work on the
kernel is to build an initial image using ``devtool`` in the new
- terminal you just set up and initialized for SDK work:
- ::
+ terminal you just set up and initialized for SDK work::
$ devtool build-image
Parsing recipes: 100% |##########################################| Time: 0:00:05
@@ -269,16 +260,14 @@ section:
In this example we wish to build for qemux86 so we must set the
``MACHINE`` variable to "qemux86" and also add the "kernel-modules".
- As described we do this by appending to ``conf/local.conf``:
- ::
+ As described we do this by appending to ``conf/local.conf``::
MACHINE = "qemux86"
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-modules"
3. *Create a Layer for Patches:* You need to create a layer to hold
patches created for the kernel image. You can use the
- ``bitbake-layers create-layer`` command as follows:
- ::
+ ``bitbake-layers create-layer`` command as follows::
$ cd poky/build
$ bitbake-layers create-layer ../../meta-mylayer
@@ -301,8 +290,7 @@ section:
4. *Inform the BitBake Build Environment About Your Layer:* As directed
when you created your layer, you need to add the layer to the
:term:`BBLAYERS` variable in the
- ``bblayers.conf`` file as follows:
- ::
+ ``bblayers.conf`` file as follows::
$ cd poky/build
$ bitbake-layers add-layer ../../meta-mylayer
@@ -350,8 +338,7 @@ section:
the ``yocto-4.12`` branch.
The following commands show how to create a local copy of the
- ``yocto-kernel-cache`` and be in the ``yocto-4.12`` branch:
- ::
+ ``yocto-kernel-cache`` and be in the ``yocto-4.12`` branch::
$ cd ~
$ git clone git://git.yoctoproject.org/yocto-kernel-cache --branch yocto-4.12
@@ -394,8 +381,7 @@ following section describes how to create a layer without the aid of
tools. These steps assume creation of a layer named ``mylayer`` in your
home directory:
-1. *Create Structure*: Create the layer's structure:
- ::
+1. *Create Structure*: Create the layer's structure::
$ mkdir meta-mylayer
$ mkdir meta-mylayer/conf
@@ -409,8 +395,7 @@ home directory:
2. *Create the Layer Configuration File*: Move to the
``meta-mylayer/conf`` directory and create the ``layer.conf`` file as
- follows:
- ::
+ follows::
# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
@@ -429,8 +414,7 @@ home directory:
``meta-mylayer/recipes-kernel/linux`` directory and create the
kernel's append file. This example uses the ``linux-yocto-4.12``
kernel. Thus, the name of the append file is
- ``linux-yocto_4.12.bbappend``:
- ::
+ ``linux-yocto_4.12.bbappend``::
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
@@ -483,8 +467,7 @@ The append file should initially extend the
:term:`FILESPATH` search path by
prepending the directory that contains your files to the
:term:`FILESEXTRAPATHS`
-variable as follows:
-::
+variable as follows::
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
@@ -492,8 +475,7 @@ The path ``${``\ :term:`THISDIR`\ ``}/${``\ :term:`PN`\ ``}``
expands to "linux-yocto" in the current directory for this example. If
you add any new files that modify the kernel recipe and you have
extended ``FILESPATH`` as described above, you must place the files in
-your layer in the following area:
-::
+your layer in the following area::
your-layer/recipes-kernel/linux/linux-yocto/
@@ -582,8 +564,7 @@ To group related configurations into multiple files, you perform a
similar procedure. Here is an example that groups separate
configurations specifically for Ethernet and graphics into their own
files and adds the configurations by using a ``SRC_URI`` statement like
-the following in your append file:
-::
+the following in your append file::
SRC_URI += "file://myconfig.cfg \
file://eth.cfg \
@@ -627,8 +608,7 @@ reference them in :term:`SRC_URI`
statements.
For example, you can apply a three-patch series by adding the following
-lines to your linux-yocto ``.bbappend`` file in your layer:
-::
+lines to your linux-yocto ``.bbappend`` file in your layer::
SRC_URI += "file://0001-first-change.patch"
SRC_URI += "file://0002-second-change.patch"
@@ -658,8 +638,7 @@ If you have a complete, working Linux kernel ``.config`` file you want
to use for the configuration, as before, copy that file to the
appropriate ``${PN}`` directory in your layer's ``recipes-kernel/linux``
directory, and rename the copied file to "defconfig". Then, add the
-following lines to the linux-yocto ``.bbappend`` file in your layer:
-::
+following lines to the linux-yocto ``.bbappend`` file in your layer::
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://defconfig"
@@ -685,8 +664,7 @@ Generally speaking, the preferred approach is to determine the
incremental change you want to make and add that as a configuration
fragment. For example, if you want to add support for a basic serial
console, create a file named ``8250.cfg`` in the ``${PN}`` directory
-with the following content (without indentation):
-::
+with the following content (without indentation)::
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
@@ -698,8 +676,7 @@ with the following content (without indentation):
Next, include this
configuration fragment and extend the ``FILESPATH`` variable in your
-``.bbappend`` file:
-::
+``.bbappend`` file::
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://8250.cfg"
@@ -718,8 +695,7 @@ It might be desirable to have kernel configuration fragment support
through a ``defconfig`` file that is pulled from the kernel source tree
for the configured machine. By default, the OpenEmbedded build system
looks for ``defconfig`` files in the layer used for Metadata, which is
-"out-of-tree", and then configures them using the following:
-::
+"out-of-tree", and then configures them using the following::
SRC_URI += "file://defconfig"
@@ -732,16 +708,14 @@ append files, you can direct the OpenEmbedded build system to use a
``defconfig`` file that is "in-tree".
To specify an "in-tree" ``defconfig`` file, use the following statement
-form:
-::
+form::
KBUILD_DEFCONFIG_KMACHINE ?= "defconfig_file"
Here is an example
that assigns the ``KBUILD_DEFCONFIG`` variable based on "raspberrypi2"
and provides the path to the "in-tree" ``defconfig`` file to be used for
-a Raspberry Pi 2, which is based on the Broadcom 2708/2709 chipset:
-::
+a Raspberry Pi 2, which is based on the Broadcom 2708/2709 chipset::
KBUILD_DEFCONFIG_raspberrypi2 ?= "bcm2709_defconfig"
@@ -792,8 +766,7 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se
":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``"
section for more information.
- Use the following ``devtool`` command to check out the code:
- ::
+ Use the following ``devtool`` command to check out the code::
$ devtool modify linux-yocto
@@ -819,14 +792,12 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se
noted where you can find the source files (e.g.
``poky_sdk/workspace/sources/linux-yocto``). Change to where the
kernel source code is before making your edits to the
- ``calibrate.c`` file:
- ::
+ ``calibrate.c`` file::
$ cd poky_sdk/workspace/sources/linux-yocto
2. *Edit the source file*: Edit the ``init/calibrate.c`` file to have
- the following changes:
- ::
+ the following changes::
void calibrate_delay(void)
{
@@ -846,8 +817,7 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se
.
3. *Build the Updated Kernel Source:* To build the updated kernel
- source, use ``devtool``:
- ::
+ source, use ``devtool``::
$ devtool build linux-yocto
@@ -872,8 +842,7 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se
using QEMU to verify your changes:
1. *Boot the image*: Boot the modified image in the QEMU emulator
- using this command:
- ::
+ using this command::
$ runqemu qemux86
@@ -891,8 +860,7 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se
6. *Stage and commit your changes*: Within your eSDK terminal, change
your working directory to where you modified the ``calibrate.c`` file
- and use these Git commands to stage and commit your changes:
- ::
+ and use these Git commands to stage and commit your changes::
$ cd poky_sdk/workspace/sources/linux-yocto
$ git status
@@ -921,8 +889,7 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se
image that includes your kernel patches. Execute the following
command from your
:term:`Build Directory` in the terminal
- set up to run BitBake:
- ::
+ set up to run BitBake::
$ cd poky/build
$ bitbake core-image-minimal
@@ -966,14 +933,12 @@ Section.
1. *Change the working directory*: You need to locate the source
files in the local copy of the kernel Git repository. Change to
where the kernel source code is before making your edits to the
- ``calibrate.c`` file:
- ::
+ ``calibrate.c`` file::
$ cd ~/linux-yocto-4.12/init
2. *Edit the source file*: Edit the ``calibrate.c`` file to have the
- following changes:
- ::
+ following changes::
void calibrate_delay(void)
{
@@ -993,8 +958,7 @@ Section.
.
2. *Stage and Commit Your Changes:* Use standard Git commands to stage
- and commit the changes you just made:
- ::
+ and commit the changes you just made::
$ git add calibrate.c
$ git commit -m "calibrate.c - Added some printk statements"
@@ -1009,13 +973,11 @@ Section.
updated kernel source files. Add
:term:`SRC_URI` and
:term:`SRCREV` statements similar
- to the following to your ``local.conf``:
- ::
+ to the following to your ``local.conf``::
$ cd poky/build/conf
- Add the following to the ``local.conf``:
- ::
+ Add the following to the ``local.conf``::
SRC_URI_pn-linux-yocto = "git:///path-to/linux-yocto-4.12;protocol=file;name=machine;branch=standard/base; \
git:///path-to/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-4.12;destsuffix=${KMETA}"
@@ -1031,16 +993,14 @@ Section.
4. *Build the Image:* With the source modified, your changes staged and
committed, and the ``local.conf`` file pointing to the kernel files,
- you can now use BitBake to build the image:
- ::
+ you can now use BitBake to build the image::
$ cd poky/build
$ bitbake core-image-minimal
5. *Boot the image*: Boot the modified image in the QEMU emulator using
this command. When prompted to login to the QEMU console, use "root"
- with no password:
- ::
+ with no password::
$ cd poky/build
$ runqemu qemux86
@@ -1059,8 +1019,7 @@ Section.
7. *Generate the Patch File:* Once you are sure that your patch works
correctly, you can generate a ``*.patch`` file in the kernel source
- repository:
- ::
+ repository::
$ cd ~/linux-yocto-4.12/init
$ git format-patch -1
@@ -1073,8 +1032,7 @@ Section.
``meta-mylayer``. When the layer was created using the
``yocto-create`` script, no additional hierarchy was created to
support patches. Before moving the patch file, you need to add
- additional structure to your layer using the following commands:
- ::
+ additional structure to your layer using the following commands::
$ cd ~/meta-mylayer
$ mkdir recipes-kernel
@@ -1083,8 +1041,7 @@ Section.
Once you have created this
hierarchy in your layer, you can move the patch file using the
- following command:
- ::
+ following command::
$ mv ~/linux-yocto-4.12/init/0001-calibrate.c-Added-some-printk-statements.patch ~/meta-mylayer/recipes-kernel/linux/linux-yocto
@@ -1093,8 +1050,7 @@ Section.
the OpenEmbedded build system to find the patch. The append file
needs to be in your layer's ``recipes-kernel/linux`` directory and it
must be named ``linux-yocto_4.12.bbappend`` and have the following
- contents:
- ::
+ contents::
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI_append = "file://0001-calibrate.c-Added-some-printk-statements.patch"
@@ -1113,8 +1069,7 @@ Section.
To build ``core-image-minimal`` again and see the effects of your patch,
you can essentially eliminate the temporary source files saved in
``poky/build/tmp/work/...`` and residual effects of the build by entering
- the following sequence of commands:
- ::
+ the following sequence of commands::
$ cd poky/build
$ bitbake -c cleanall yocto-linux
@@ -1160,8 +1115,7 @@ environment, you must do the following:
- You must be sure of the state of your build's configuration in the
:term:`Source Directory`.
-- Your build host must have the following two packages installed:
- ::
+- Your build host must have the following two packages installed::
libncurses5-dev
libtinfo-dev
@@ -1169,8 +1123,7 @@ environment, you must do the following:
The following commands initialize the BitBake environment, run the
:ref:`ref-tasks-kernel_configme`
task, and launch ``menuconfig``. These commands assume the Source
-Directory's top-level folder is ``poky``:
-::
+Directory's top-level folder is ``poky``::
$ cd poky
$ source oe-init-build-env
@@ -1232,8 +1185,7 @@ the ``.config`` file would be:
Within the ``.config`` file, you can see the kernel settings. For
example, the following entry shows that symmetric multi-processor
-support is not set:
-::
+support is not set::
# CONFIG_SMP is not set
@@ -1274,8 +1226,7 @@ your layer's ``recipes-kernel/linux`` directory, and rename the copied
file to "defconfig" (e.g.
``~/meta-mylayer/recipes-kernel/linux/linux-yocto/defconfig``). Then,
add the following lines to the linux-yocto ``.bbappend`` file in your
-layer:
-::
+layer::
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://defconfig"
@@ -1323,8 +1274,7 @@ appear in the ``.config`` file, which is in the :term:`Build Directory`.
It is simple to create a configuration fragment. One method is to use
shell commands. For example, issuing the following from the shell
creates a configuration fragment file named ``my_smp.cfg`` that enables
-multi-processor support within the kernel:
-::
+multi-processor support within the kernel::
$ echo "CONFIG_SMP=y" >> my_smp.cfg
@@ -1342,8 +1292,7 @@ To create a configuration fragment using this method, follow these
steps:
1. *Complete a Build Through Kernel Configuration:* Complete a build at
- least through the kernel configuration task as follows:
- ::
+ least through the kernel configuration task as follows::
$ bitbake linux-yocto -c kernel_configme -f
@@ -1352,8 +1301,7 @@ steps:
your build state might become unknown, it is best to run this task
prior to starting ``menuconfig``.
-2. *Launch menuconfig:* Run the ``menuconfig`` command:
- ::
+2. *Launch menuconfig:* Run the ``menuconfig`` command::
$ bitbake linux-yocto -c menuconfig
@@ -1361,8 +1309,7 @@ steps:
to prepare a configuration fragment. The resulting file
``fragment.cfg`` is placed in the
``${``\ :term:`WORKDIR`\ ``}``
- directory:
- ::
+ directory::
$ bitbake linux-yocto -c diffconfig
@@ -1387,8 +1334,7 @@ options in a file called ``myconfig.cfg``. If you put that file inside a
directory named ``linux-yocto`` that resides in the same directory as
the kernel's append file within your layer and then add the following
statements to the kernel's append file, those configuration options will
-be picked up and applied when the kernel is built:
-::
+be picked up and applied when the kernel is built::
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://myconfig.cfg"
@@ -1397,8 +1343,7 @@ As mentioned earlier, you can group related configurations into multiple
files and name them all in the ``SRC_URI`` statement as well. For
example, you could group separate configurations specifically for
Ethernet and graphics into their own files and add those by using a
-``SRC_URI`` statement like the following in your append file:
-::
+``SRC_URI`` statement like the following in your append file::
SRC_URI += "file://myconfig.cfg \
file://eth.cfg \
@@ -1409,8 +1354,7 @@ Validating Configuration
You can use the
:ref:`ref-tasks-kernel_configcheck`
-task to provide configuration validation:
-::
+task to provide configuration validation::
$ bitbake linux-yocto -c kernel_configcheck -f
@@ -1537,8 +1481,7 @@ To streamline the configuration, do the following:
successfully. Use this configuration file as your baseline.
2. *Run Configure and Check Tasks:* Separately run the
- ``do_kernel_configme`` and ``do_kernel_configcheck`` tasks:
- ::
+ ``do_kernel_configme`` and ``do_kernel_configcheck`` tasks::
$ bitbake linux-yocto -c kernel_configme -f
$ bitbake linux-yocto -c kernel_configcheck -f
@@ -1572,8 +1515,7 @@ Expanding Variables
Sometimes it is helpful to determine what a variable expands to during a
build. You can examine the values of variables by examining the
output of the ``bitbake -e`` command. The output is long and is more
-easily managed in a text file, which allows for easy searches:
-::
+easily managed in a text file, which allows for easy searches::
$ bitbake -e virtual/kernel > some_text_file
@@ -1590,15 +1532,13 @@ source directory. Follow these steps to clean up the version string:
1. *Discover the Uncommitted Changes:* Go to the kernel's locally cloned
Git repository (source directory) and use the following Git command
- to list the files that have been changed, added, or removed:
- ::
+ to list the files that have been changed, added, or removed::
$ git status
2. *Commit the Changes:* You should commit those changes to the kernel
source tree regardless of whether or not you will save, export, or
- use the changes:
- ::
+ use the changes::
$ git add
$ git commit -s -a -m "getting rid of -dirty"
@@ -1633,8 +1573,7 @@ linux-yocto custom recipe (``linux-yocto-custom.bb``) that uses
``kernel.org`` sources and the Yocto Project Linux kernel tools for
managing kernel Metadata. You can find this recipe in the ``poky`` Git
repository of the Yocto Project :yocto_git:`Source Repository <>`
-at:
-::
+at::
poky/meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb
@@ -1655,8 +1594,7 @@ Here are some basic steps you can use to work with your own sources:
``defconfig`` file or configuration fragment files in your layer.
When you use the ``linux-yocto-custom.bb`` recipe, you must specify a
configuration. If you do not have a ``defconfig`` file, you can run
- the following:
- ::
+ the following::
$ make defconfig
@@ -1708,8 +1646,7 @@ Here are some basic steps you can use to work with your own sources:
``LINUX_VERSION`` with the Source Control Manager (SCM) revision
as derived from the :term:`SRCPV`
variable. The combined results are a string with the following
- form:
- ::
+ form::
3.19.11+git1+68a635bf8dfb64b02263c1ac80c948647cc76d5f_1+218bd8d2022b9852c60d32f0d770931e3cf343e2
@@ -1723,8 +1660,7 @@ Here are some basic steps you can use to work with your own sources:
triggers an explicit build failure. You must change it to match a
list of the machines that your new recipe supports. For example,
to support the ``qemux86`` and ``qemux86-64`` machines, use the
- following form:
- ::
+ following form::
COMPATIBLE_MACHINE = "qemux86|qemux86-64"
@@ -1807,8 +1743,7 @@ Typically, you will need to set the following variables:
Depending on the build system used by the module sources, you might need
to make some adjustments. For example, a typical module ``Makefile``
-looks much like the one provided with the ``hello-mod`` template:
-::
+looks much like the one provided with the ``hello-mod`` template::
obj-m := hello.o
@@ -1845,8 +1780,7 @@ them appropriately for your machine configuration file:
- :term:`MACHINE_EXTRA_RRECOMMENDS`
Modules are often not required for boot and can be excluded from certain
-build configurations. The following allows for the most flexibility:
-::
+build configurations. The following allows for the most flexibility::
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-mymodule"
@@ -1895,26 +1829,22 @@ branch.
$ git whatchanged origin/standard/base..origin/standard/emenlow
-To see short, one line summaries of changes use the ``git log`` command:
-::
+To see short, one line summaries of changes use the ``git log`` command::
$ git log --oneline origin/standard/base..origin/standard/emenlow
-Use this command to see code differences for the changes:
-::
+Use this command to see code differences for the changes::
$ git diff origin/standard/base..origin/standard/emenlow
Use this command to see the commit log messages and the text
-differences:
-::
+differences::
$ git show origin/standard/base..origin/standard/emenlow
Use this command to create individual patches for each change. Here is
an example that creates patch files for each commit and places them
-in your ``Documents`` directory:
-::
+in your ``Documents`` directory::
$ git format-patch -o $HOME/Documents origin/standard/base..origin/standard/emenlow
@@ -1923,15 +1853,13 @@ Showing a Particular Feature or Branch Change
Tags in the Yocto Project kernel tree divide changes for significant
features or branches. The ``git show`` tag command shows changes based
-on a tag. Here is an example that shows ``systemtap`` changes:
-::
+on a tag. Here is an example that shows ``systemtap`` changes::
$ git show systemtap
You can use the ``git branch --contains`` tag command to
show the branches that contain a particular feature. This command shows
-the branches that contain the ``systemtap`` feature:
-::
+the branches that contain the ``systemtap`` feature::
$ git branch --contains systemtap
@@ -1986,8 +1914,7 @@ build.
searched during the build as potential feature directories.
Continuing with the example, suppose the "test.scc" feature you are
- adding has a ``test.scc`` file in the following directory:
- ::
+ adding has a ``test.scc`` file in the following directory::
my_recipe
|
@@ -2001,8 +1928,7 @@ build.
a similarly named configuration fragment file ``test.cfg``.
2. *Add the Feature File to SRC_URI:* Add the ``.scc`` file to the
- recipe's ``SRC_URI`` statement:
- ::
+ recipe's ``SRC_URI`` statement::
SRC_URI_append = " file://test.scc"
@@ -2011,8 +1937,7 @@ build.
3. *Specify the Feature as a Kernel Feature:* Use the
``KERNEL_FEATURES`` statement to specify the feature as a kernel
- feature:
- ::
+ feature::
KERNEL_FEATURES_append = " test.scc"
diff --git a/poky/documentation/kernel-dev/concepts-appx.rst b/poky/documentation/kernel-dev/concepts-appx.rst
index 4b6dbe5ef..63e67315f 100644
--- a/poky/documentation/kernel-dev/concepts-appx.rst
+++ b/poky/documentation/kernel-dev/concepts-appx.rst
@@ -359,8 +359,7 @@ To determine whether or not a given option is "hardware" or
"non-hardware", the kernel Metadata in ``yocto-kernel-cache`` contains
files that classify individual or groups of options as either hardware
or non-hardware. To better show this, consider a situation where the
-``yocto-kernel-cache`` contains the following files:
-::
+``yocto-kernel-cache`` contains the following files::
yocto-kernel-cache/features/drm-psb/hardware.cfg
yocto-kernel-cache/features/kgdb/hardware.cfg
@@ -400,8 +399,7 @@ provides explanations for the various files:
(i.e. ``hardware.kcf`` or ``non-hardware.kcf``).
Here is a specific example using the
-``kernel-cache/bsp/mti-malta32/hardware.cfg``:
-::
+``kernel-cache/bsp/mti-malta32/hardware.cfg``::
CONFIG_SERIAL_8250
CONFIG_SERIAL_8250_CONSOLE
diff --git a/poky/documentation/kernel-dev/faq.rst b/poky/documentation/kernel-dev/faq.rst
index c2106f81e..816951144 100644
--- a/poky/documentation/kernel-dev/faq.rst
+++ b/poky/documentation/kernel-dev/faq.rst
@@ -57,8 +57,7 @@ These other variables are useful for installing specific modules:
For example, set the following in the ``qemux86.conf`` file to include
the ``ab123`` kernel modules with images built for the ``qemux86``
-machine:
-::
+machine::
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-ab123"
@@ -71,8 +70,7 @@ How do I change the Linux kernel command line?
The Linux kernel command line is
typically specified in the machine config using the ``APPEND`` variable.
For example, you can add some helpful debug information doing the
-following:
-::
+following::
APPEND += "printk.time=y initcall_debug debug"
diff --git a/poky/documentation/kernel-dev/maint-appx.rst b/poky/documentation/kernel-dev/maint-appx.rst
index 44c43893e..f84ab6e23 100644
--- a/poky/documentation/kernel-dev/maint-appx.rst
+++ b/poky/documentation/kernel-dev/maint-appx.rst
@@ -28,8 +28,7 @@ in the Yocto Project Linux kernel in any clone of the Yocto Project
Linux kernel source repository and ``yocto-kernel-cache`` Git trees. For
example, the following commands clone the Yocto Project baseline Linux
kernel that branches off ``linux.org`` version 4.12 and the
-``yocto-kernel-cache``, which contains stores of kernel Metadata:
-::
+``yocto-kernel-cache``, which contains stores of kernel Metadata::
$ git clone git://git.yoctoproject.org/linux-yocto-4.12
$ git clone git://git.yoctoproject.org/linux-kernel-cache
@@ -42,16 +41,14 @@ section.
Once you have cloned the kernel Git repository and the cache of Metadata
on your local machine, you can discover the branches that are available
-in the repository using the following Git command:
-::
+in the repository using the following Git command::
$ git branch -a
Checking out a branch allows you to work with a particular Yocto Linux
kernel. For example, the following commands check out the
"standard/beagleboard" branch of the Yocto Linux kernel repository and
-the "yocto-4.12" branch of the ``yocto-kernel-cache`` repository:
-::
+the "yocto-4.12" branch of the ``yocto-kernel-cache`` repository::
$ cd ~/linux-yocto-4.12
$ git checkout -b my-kernel-4.12 remotes/origin/standard/beagleboard
@@ -111,8 +108,7 @@ patch, or BSP:
For a typical build, the target of the search is a feature
description in an ``.scc`` file whose name follows this format (e.g.
- ``beaglebone-standard.scc`` and ``beaglebone-preempt-rt.scc``):
- ::
+ ``beaglebone-standard.scc`` and ``beaglebone-preempt-rt.scc``)::
bsp_root_name-kernel_type.scc
@@ -222,8 +218,7 @@ build process generates a build tree that is separate from your kernel's
local Git source repository tree. This build tree has a name that uses
the following form, where ``${MACHINE}`` is the metadata name of the
machine (BSP) and "kernel_type" is one of the Yocto Project supported
-kernel types (e.g. "standard"):
-::
+kernel types (e.g. "standard")::
linux-${MACHINE}-kernel_type-build
diff --git a/poky/documentation/overview-manual/concepts.rst b/poky/documentation/overview-manual/concepts.rst
index ada5143b2..2e3f1af44 100644
--- a/poky/documentation/overview-manual/concepts.rst
+++ b/poky/documentation/overview-manual/concepts.rst
@@ -55,8 +55,7 @@ This section briefly introduces BitBake. If you want more information on
BitBake, see the :doc:`BitBake User Manual <bitbake:index>`.
To see a list of the options BitBake supports, use either of the
-following commands:
-::
+following commands::
$ bitbake -h
$ bitbake --help
@@ -66,8 +65,7 @@ The most common usage for BitBake is ``bitbake recipename``, where
to as the "target"). The target often equates to the first part of a
recipe's filename (e.g. "foo" for a recipe named ``foo_1.3.0-r0.bb``).
So, to process the ``matchbox-desktop_1.2.3.bb`` recipe file, you might
-type the following:
-::
+type the following::
$ bitbake matchbox-desktop
@@ -1068,15 +1066,13 @@ the image. The formats used for the root filesystem depend on the
support compression.
As an example, a dynamically created task when creating a particular
-image type would take the following form:
-::
+image type would take the following form::
do_image_type
So, if the type
as specified by the ``IMAGE_FSTYPES`` were ``ext4``, the dynamically
-generated task would be as follows:
-::
+generated task would be as follows::
do_image_ext4
@@ -1478,8 +1474,7 @@ cross-compiler that is used internally within BitBake only.
gcc-cross
.
-The chain of events that occurs when the standard toolchain is bootstrapped:
-::
+The chain of events that occurs when the standard toolchain is bootstrapped::
binutils-cross -> linux-libc-headers -> gcc-cross -> libgcc-initial -> glibc -> libgcc -> gcc-runtime
@@ -1528,8 +1523,7 @@ might not be the same machine as the Build Host.
can take advantage of pre-built images that ship with the Yocto
Project and already contain cross-development toolchain installers.
-Here is the bootstrap process for the relocatable toolchain:
-::
+Here is the bootstrap process for the relocatable toolchain::
gcc -> binutils-crosssdk -> gcc-crosssdk-initial -> linux-libc-headers -> glibc-initial -> nativesdk-glibc -> gcc-crosssdk -> gcc-cross-canadian
@@ -1703,8 +1697,7 @@ to the task.
Like the ``WORKDIR`` case, situations exist where dependencies should be
ignored. For these situations, you can instruct the build process to
-ignore a dependency by using a line like the following:
-::
+ignore a dependency by using a line like the following::
PACKAGE_ARCHS[vardepsexclude] = "MACHINE"
@@ -1714,8 +1707,7 @@ reference it.
Equally, there are cases where you need to add dependencies BitBake is
not able to find. You can accomplish this by using a line like the
-following:
-::
+following::
PACKAGE_ARCHS[vardeps] = "MACHINE"
@@ -1745,8 +1737,7 @@ and the dependent task hashes can be influenced. Within the BitBake
configuration file, you can give BitBake some extra information to help
it construct the basehash. The following statement effectively results
in a list of global variable dependency excludes (i.e. variables never
-included in any checksum):
-::
+included in any checksum)::
BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR \\
SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM \\
@@ -1771,8 +1762,7 @@ desired. This file defines the two basic signature generators
"OEBasicHash". By default, a dummy "noop" signature handler is enabled
in BitBake. This means that behavior is unchanged from previous
versions. OE-Core uses the "OEBasicHash" signature handler by default
-through this setting in the ``bitbake.conf`` file:
-::
+through this setting in the ``bitbake.conf`` file::
BB_SIGNATURE_HANDLER ?= "OEBasicHash"
@@ -1826,8 +1816,7 @@ The Yocto Project team has tried to keep the details of the
implementation hidden in ``sstate`` class. From a user's perspective,
adding shared state wrapping to a task is as simple as this
:ref:`ref-tasks-deploy` example taken
-from the :ref:`deploy <ref-classes-deploy>` class:
-::
+from the :ref:`deploy <ref-classes-deploy>` class::
DEPLOYDIR = "${WORKDIR}/deploy-${PN}"
SSTATETASKS += "do_deploy"
@@ -1871,8 +1860,7 @@ The following list explains the previous example:
instead, skipping the ``do_deploy`` task.
- The following task definition is glue logic needed to make the
- previous settings effective:
- ::
+ previous settings effective::
python do_deploy_setscene () {
sstate_setscene(d)
@@ -1898,8 +1886,7 @@ The following list explains the previous example:
In cases where ``sstate-inputdirs`` and ``sstate-outputdirs`` would be
the same, you can use ``sstate-plaindirs``. For example, to preserve the
${:term:`PKGD`} and ${:term:`PKGDEST`} output from the ``do_package``
- task, use the following:
- ::
+ task, use the following::
do_package[sstate-plaindirs] = "${PKGD} ${PKGDEST}"
@@ -1917,24 +1904,21 @@ The following list explains the previous example:
multiple directories. For example, the following declares
``PKGDESTWORK`` and ``SHLIBWORK`` as shared state input directories,
which populates the shared state cache, and ``PKGDATA_DIR`` and
- ``SHLIBSDIR`` as the corresponding shared state output directories:
- ::
+ ``SHLIBSDIR`` as the corresponding shared state output directories::
do_package[sstate-inputdirs] = "${PKGDESTWORK} ${SHLIBSWORKDIR}"
do_package[sstate-outputdirs] = "${PKGDATA_DIR} ${SHLIBSDIR}"
- These methods also include the ability to take a lockfile when
manipulating shared state directory structures, for cases where file
- additions or removals are sensitive:
- ::
+ additions or removals are sensitive::
do_package[sstate-lockfile] = "${PACKAGELOCK}"
Behind the scenes, the shared state code works by looking in
:term:`SSTATE_DIR` and
:term:`SSTATE_MIRRORS` for
-shared state files. Here is an example:
-::
+shared state files. Here is an example::
SSTATE_MIRRORS ?= "\
file://.\* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \
@@ -2116,8 +2100,7 @@ accomplished using fakeroot.
under fakeroot. Otherwise, the task cannot run root-only operations,
and cannot see the fake file ownership and permissions set by the
other task. You need to also add a dependency on
- ``virtual/fakeroot-native:do_populate_sysroot``, giving the following:
- ::
+ ``virtual/fakeroot-native:do_populate_sysroot``, giving the following::
fakeroot do_mytask () {
...
diff --git a/poky/documentation/overview-manual/development-environment.rst b/poky/documentation/overview-manual/development-environment.rst
index a33f89e4f..1decf01e4 100644
--- a/poky/documentation/overview-manual/development-environment.rst
+++ b/poky/documentation/overview-manual/development-environment.rst
@@ -430,8 +430,7 @@ local working area (also called a branch) that tracks a specific
development branch from the upstream source Git repository. in other
words, you can define your local Git environment to work on any
development branch in the repository. To help illustrate, consider the
-following example Git commands:
-::
+following example Git commands::
$ cd ~
$ git clone git://git.yoctoproject.org/poky
@@ -476,8 +475,7 @@ create and checkout a local working Git branch based on a tag name. When
you do this, you get a snapshot of the Git repository that reflects the
state of the files when the change was made associated with that tag.
The most common use is to checkout a working branch that matches a
-specific Yocto Project release. Here is an example:
-::
+specific Yocto Project release. Here is an example::
$ cd ~
$ git clone git://git.yoctoproject.org/poky
diff --git a/poky/documentation/poky.yaml b/poky/documentation/poky.yaml
index 8ccb359e0..22706a0fb 100644
--- a/poky/documentation/poky.yaml
+++ b/poky/documentation/poky.yaml
@@ -1,12 +1,12 @@
-DISTRO : "3.2.3"
-DISTRO_NAME_NO_CAP : "gatesgarth"
-DISTRO_NAME : "Gatesgarth"
-DISTRO_NAME_NO_CAP_MINUS_ONE : "dunfell"
+DISTRO : "3.3"
+DISTRO_NAME_NO_CAP : "hardknott"
+DISTRO_NAME : "Hardknott"
+DISTRO_NAME_NO_CAP_MINUS_ONE : "gatesgarth"
DISTRO_NAME_NO_CAP_LTS : "dunfell"
-YOCTO_DOC_VERSION : "3.2.3"
-YOCTO_DOC_VERSION_MINUS_ONE : "3.1.6"
-DISTRO_REL_TAG : "yocto-3.2.3"
-POKYVERSION : "24.0.3"
+YOCTO_DOC_VERSION : "3.3"
+YOCTO_DOC_VERSION_MINUS_ONE : "3.2.3"
+DISTRO_REL_TAG : "yocto-3.3"
+POKYVERSION : "25.0.0"
YOCTO_POKY : "poky-&DISTRO_NAME_NO_CAP;-&POKYVERSION;"
YOCTO_DL_URL : "https://downloads.yoctoproject.org"
YOCTO_AB_URL : "https://autobuilder.yoctoproject.org"
diff --git a/poky/documentation/profile-manual/intro.rst b/poky/documentation/profile-manual/intro.rst
index 4e1008b05..9c8fa3dbf 100644
--- a/poky/documentation/profile-manual/intro.rst
+++ b/poky/documentation/profile-manual/intro.rst
@@ -39,12 +39,12 @@ an 'sdk' image e.g. ::
$ bitbake core-image-sato-sdk
or alternatively by adding 'tools-profile' to the EXTRA_IMAGE_FEATURES line in
-your local.conf: ::
+your local.conf::
EXTRA_IMAGE_FEATURES = "debug-tweaks tools-profile"
If you use the 'tools-profile' method, you don't need to build an sdk image -
-the tracing and profiling tools will be included in non-sdk images as well e.g.: ::
+the tracing and profiling tools will be included in non-sdk images as well e.g.::
$ bitbake core-image-sato
@@ -55,7 +55,7 @@ the tracing and profiling tools will be included in non-sdk images as well e.g.:
You can prevent that by setting the
:term:`INHIBIT_PACKAGE_STRIP`
- variable to "1" in your ``local.conf`` when you build the image: ::
+ variable to "1" in your ``local.conf`` when you build the image::
INHIBIT_PACKAGE_STRIP = "1"
@@ -65,11 +65,11 @@ If you've already built a stripped image, you can generate debug
packages (xxx-dbg) which you can manually install as needed.
To generate debug info for packages, you can add dbg-pkgs to
-EXTRA_IMAGE_FEATURES in local.conf. For example: ::
+EXTRA_IMAGE_FEATURES in local.conf. For example::
EXTRA_IMAGE_FEATURES = "debug-tweaks tools-profile dbg-pkgs"
Additionally, in order to generate the right type of debuginfo, we also need to
-set :term:`PACKAGE_DEBUG_SPLIT_STYLE` in the ``local.conf`` file: ::
+set :term:`PACKAGE_DEBUG_SPLIT_STYLE` in the ``local.conf`` file::
PACKAGE_DEBUG_SPLIT_STYLE = 'debug-file-directory'
diff --git a/poky/documentation/profile-manual/usage.rst b/poky/documentation/profile-manual/usage.rst
index c42f5b64b..825290c3f 100644
--- a/poky/documentation/profile-manual/usage.rst
+++ b/poky/documentation/profile-manual/usage.rst
@@ -48,7 +48,7 @@ For this section, we'll assume you've already performed the basic setup
outlined in the ":ref:`profile-manual/intro:General Setup`" section.
In particular, you'll get the most mileage out of perf if you profile an
-image built with the following in your ``local.conf`` file: ::
+image built with the following in your ``local.conf`` file::
INHIBIT_PACKAGE_STRIP = "1"
@@ -62,7 +62,7 @@ Basic Perf Usage
The perf tool is pretty much self-documenting. To remind yourself of the
available commands, simply type 'perf', which will show you basic usage
-along with the available perf subcommands: ::
+along with the available perf subcommands::
root@crownbay:~# perf
@@ -110,7 +110,7 @@ applets in Yocto. ::
The quickest and easiest way to get some basic overall data about what's
going on for a particular workload is to profile it using 'perf stat'.
'perf stat' basically profiles using a few default counters and displays
-the summed counts at the end of the run: ::
+the summed counts at the end of the run::
root@crownbay:~# perf stat wget http://downloads.yoctoproject.org/mirror/sources/linux-2.6.19.2.tar.bz2
Connecting to downloads.yoctoproject.org (140.211.169.59:80)
@@ -139,7 +139,7 @@ Also, note that 'perf stat' isn't restricted to a fixed set of counters
- basically any event listed in the output of 'perf list' can be tallied
by 'perf stat'. For example, suppose we wanted to see a summary of all
the events related to kernel memory allocation/freeing along with cache
-hits and misses: ::
+hits and misses::
root@crownbay:~# perf stat -e kmem:* -e cache-references -e cache-misses wget http://downloads.yoctoproject.org/mirror/sources/linux-2.6.19.2.tar.bz2
Connecting to downloads.yoctoproject.org (140.211.169.59:80)
@@ -191,7 +191,7 @@ directory. ::
To see the results in a
'text-based UI' (tui), simply run 'perf report', which will read the
perf.data file in the current working directory and display the results
-in an interactive UI: ::
+in an interactive UI::
root@crownbay:~# perf report
@@ -217,7 +217,7 @@ Before we do that, however, let's try running a different profile, one
which shows something a little more interesting. The only difference
between the new profile and the previous one is that we'll add the -g
option, which will record not just the address of a sampled function,
-but the entire callchain to the sampled function as well: ::
+but the entire callchain to the sampled function as well::
root@crownbay:~# perf record -g wget http://downloads.yoctoproject.org/mirror/sources/linux-2.6.19.2.tar.bz2
Connecting to downloads.yoctoproject.org (140.211.169.59:80)
@@ -293,7 +293,7 @@ busybox binary, which is actually stripped out by the Yocto build
system.
One way around that is to put the following in your ``local.conf`` file
-when you build the image: ::
+when you build the image::
INHIBIT_PACKAGE_STRIP = "1"
@@ -302,26 +302,26 @@ what can we do to get perf to resolve the symbols? Basically we need to
install the debuginfo for the BusyBox package.
To generate the debug info for the packages in the image, we can add
-``dbg-pkgs`` to :term:`EXTRA_IMAGE_FEATURES` in ``local.conf``. For example: ::
+``dbg-pkgs`` to :term:`EXTRA_IMAGE_FEATURES` in ``local.conf``. For example::
EXTRA_IMAGE_FEATURES = "debug-tweaks tools-profile dbg-pkgs"
Additionally, in order to generate the type of debuginfo that perf
understands, we also need to set
:term:`PACKAGE_DEBUG_SPLIT_STYLE`
-in the ``local.conf`` file: ::
+in the ``local.conf`` file::
PACKAGE_DEBUG_SPLIT_STYLE = 'debug-file-directory'
Once we've done that, we can install the
debuginfo for BusyBox. The debug packages once built can be found in
``build/tmp/deploy/rpm/*`` on the host system. Find the busybox-dbg-...rpm
-file and copy it to the target. For example: ::
+file and copy it to the target. For example::
[trz@empanada core2]$ scp /home/trz/yocto/crownbay-tracing-dbg/build/tmp/deploy/rpm/core2_32/busybox-dbg-1.20.2-r2.core2_32.rpm root@192.168.1.31:
busybox-dbg-1.20.2-r2.core2_32.rpm 100% 1826KB 1.8MB/s 00:01
-Now install the debug rpm on the target: ::
+Now install the debug rpm on the target::
root@crownbay:~# rpm -i busybox-dbg-1.20.2-r2.core2_32.rpm
@@ -382,7 +382,7 @@ traditional tools can also make use of the expanded possibilities now
available to them, and in some cases have, as mentioned previously).
We can get a list of the available events that can be used to profile a
-workload via 'perf list': ::
+workload via 'perf list'::
root@crownbay:~# perf list
@@ -525,7 +525,7 @@ workload via 'perf list': ::
Only a subset of these would be of interest to us when looking at this
workload, so let's choose the most likely subsystems (identified by the
string before the colon in the Tracepoint events) and do a 'perf stat'
-run using only those wildcarded subsystems: ::
+run using only those wildcarded subsystems::
root@crownbay:~# perf stat -e skb:* -e net:* -e napi:* -e sched:* -e workqueue:* -e irq:* -e syscalls:* wget http://downloads.yoctoproject.org/mirror/sources/linux-2.6.19.2.tar.bz2
Performance counter stats for 'wget http://downloads.yoctoproject.org/mirror/sources/linux-2.6.19.2.tar.bz2':
@@ -587,7 +587,7 @@ run using only those wildcarded subsystems: ::
Let's pick one of these tracepoints
-and tell perf to do a profile using it as the sampling event: ::
+and tell perf to do a profile using it as the sampling event::
root@crownbay:~# perf record -g -e sched:sched_wakeup wget http://downloads.yoctoproject.org/mirror/sources/linux-2.6.19.2.tar.bz2
@@ -644,14 +644,14 @@ individual steps that go into the higher-level behavior exposed by the
coarse-grained profiling data.
As a concrete example, we can trace all the events we think might be
-applicable to our workload: ::
+applicable to our workload::
root@crownbay:~# perf record -g -e skb:* -e net:* -e napi:* -e sched:sched_switch -e sched:sched_wakeup -e irq:*
-e syscalls:sys_enter_read -e syscalls:sys_exit_read -e syscalls:sys_enter_write -e syscalls:sys_exit_write
wget http://downloads.yoctoproject.org/mirror/sources/linux-2.6.19.2.tar.bz2
We can look at the raw trace output using 'perf script' with no
-arguments: ::
+arguments::
root@crownbay:~# perf script
@@ -735,7 +735,7 @@ two programming language bindings, one for Python and one for Perl.
Now that we have the trace data in perf.data, we can use 'perf script
-g' to generate a skeleton script with handlers for the read/write
-entry/exit events we recorded: ::
+entry/exit events we recorded::
root@crownbay:~# perf script -g python
generated Python script: perf-script.py
@@ -755,7 +755,7 @@ with its parameters. For example:
print "skbaddr=%u, len=%u, name=%s\n" % (skbaddr, len, name),
We can run that script directly to print all of the events contained in the
-perf.data file: ::
+perf.data file::
root@crownbay:~# perf script -s perf-script.py
@@ -833,7 +833,7 @@ result of all the per-event tallies. For that, we use the special
for event_name, count in counts.iteritems():
print "%-40s %10s\n" % (event_name, count)
-The end result is a summary of all the events recorded in the trace: ::
+The end result is a summary of all the events recorded in the trace::
skb__skb_copy_datagram_iovec 13148
irq__softirq_entry 4796
@@ -877,13 +877,13 @@ To do system-wide profiling or tracing, you typically use the -a flag to
'perf record'.
To demonstrate this, open up one window and start the profile using the
--a flag (press Ctrl-C to stop tracing): ::
+-a flag (press Ctrl-C to stop tracing)::
root@crownbay:~# perf record -g -a
^C[ perf record: Woken up 6 times to write data ]
[ perf record: Captured and wrote 1.400 MB perf.data (~61172 samples) ]
-In another window, run the wget test: ::
+In another window, run the wget test::
root@crownbay:~# wget http://downloads.yoctoproject.org/mirror/sources/linux-2.6.19.2.tar.bz2
Connecting to downloads.yoctoproject.org (140.211.169.59:80)
@@ -903,7 +903,7 @@ unresolvable symbols in the expanded Xorg callchain).
Note also that we have both kernel and userspace entries in the above
snapshot. We can also tell perf to focus on userspace but providing a
modifier, in this case 'u', to the 'cycles' hardware counter when we
-record a profile: ::
+record a profile::
root@crownbay:~# perf record -g -a -e cycles:u
^C[ perf record: Woken up 2 times to write data ]
@@ -923,13 +923,13 @@ the entries associated with the libc-xxx.so DSO.
:align: center
We can also use the system-wide -a switch to do system-wide tracing.
-Here we'll trace a couple of scheduler events: ::
+Here we'll trace a couple of scheduler events::
root@crownbay:~# perf record -a -e sched:sched_switch -e sched:sched_wakeup
^C[ perf record: Woken up 38 times to write data ]
[ perf record: Captured and wrote 9.780 MB perf.data (~427299 samples) ]
-We can look at the raw output using 'perf script' with no arguments: ::
+We can look at the raw output using 'perf script' with no arguments::
root@crownbay:~# perf script
@@ -952,7 +952,7 @@ do with what we're interested in, namely events that schedule 'perf'
itself in and out or that wake perf up. We can get rid of those by using
the '--filter' option - for each event we specify using -e, we can add a
--filter after that to filter out trace events that contain fields with
-specific values: ::
+specific values::
root@crownbay:~# perf record -a -e sched:sched_switch --filter 'next_comm != perf && prev_comm != perf' -e sched:sched_wakeup --filter 'comm != perf'
^C[ perf record: Woken up 38 times to write data ]
@@ -1017,7 +1017,7 @@ perf isn't restricted to the fixed set of static tracepoints listed by
'perf list'. Users can also add their own 'dynamic' tracepoints anywhere
in the kernel. For instance, suppose we want to define our own
tracepoint on do_fork(). We can do that using the 'perf probe' perf
-subcommand: ::
+subcommand::
root@crownbay:~# perf probe do_fork
Added new event:
@@ -1031,7 +1031,7 @@ Adding a new tracepoint via
'perf probe' results in an event with all the expected files and format
in /sys/kernel/debug/tracing/events, just the same as for static
tracepoints (as discussed in more detail in the trace events subsystem
-section: ::
+section::
root@crownbay:/sys/kernel/debug/tracing/events/probe/do_fork# ls -al
drwxr-xr-x 2 root root 0 Oct 28 11:42 .
@@ -1056,7 +1056,7 @@ section: ::
print fmt: "(%lx)", REC->__probe_ip
We can list all dynamic tracepoints currently in
-existence: ::
+existence::
root@crownbay:~# perf probe -l
probe:do_fork (on do_fork)
@@ -1064,13 +1064,13 @@ existence: ::
Let's record system-wide ('sleep 30' is a
trick for recording system-wide but basically do nothing and then wake
-up after 30 seconds): ::
+up after 30 seconds)::
root@crownbay:~# perf record -g -a -e probe:do_fork sleep 30
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.087 MB perf.data (~3812 samples) ]
-Using 'perf script' we can see each do_fork event that fired: ::
+Using 'perf script' we can see each do_fork event that fired::
root@crownbay:~# perf script
@@ -1163,7 +1163,7 @@ addressed by a Yocto bug: :yocto_bugs:`Bug 3388 - perf: enable man pages for
basic 'help' functionality </show_bug.cgi?id=3388>`.
The man pages in text form, along with some other files, such as a set
-of examples, can be found in the 'perf' directory of the kernel tree: ::
+of examples, can be found in the 'perf' directory of the kernel tree::
tools/perf/Documentation
@@ -1197,7 +1197,7 @@ Basic ftrace usage
'ftrace' essentially refers to everything included in the /tracing
directory of the mounted debugfs filesystem (Yocto follows the standard
convention and mounts it at /sys/kernel/debug). Here's a listing of all
-the files found in /sys/kernel/debug/tracing on a Yocto system: ::
+the files found in /sys/kernel/debug/tracing on a Yocto system::
root@sugarbay:/sys/kernel/debug/tracing# ls
README kprobe_events trace
@@ -1222,12 +1222,12 @@ the ftrace documentation.
We'll start by looking at some of the available built-in tracers.
-cat'ing the 'available_tracers' file lists the set of available tracers: ::
+cat'ing the 'available_tracers' file lists the set of available tracers::
root@sugarbay:/sys/kernel/debug/tracing# cat available_tracers
blk function_graph function nop
-The 'current_tracer' file contains the tracer currently in effect: ::
+The 'current_tracer' file contains the tracer currently in effect::
root@sugarbay:/sys/kernel/debug/tracing# cat current_tracer
nop
@@ -1237,7 +1237,7 @@ The above listing of current_tracer shows that the
there's actually no tracer currently in effect.
echo'ing one of the available_tracers into current_tracer makes the
-specified tracer the current tracer: ::
+specified tracer the current tracer::
root@sugarbay:/sys/kernel/debug/tracing# echo function > current_tracer
root@sugarbay:/sys/kernel/debug/tracing# cat current_tracer
@@ -1247,7 +1247,7 @@ The above sets the current tracer to be the 'function tracer'. This tracer
traces every function call in the kernel and makes it available as the
contents of the 'trace' file. Reading the 'trace' file lists the
currently buffered function calls that have been traced by the function
-tracer: ::
+tracer::
root@sugarbay:/sys/kernel/debug/tracing# cat trace | less
@@ -1306,7 +1306,7 @@ great way to learn about how the kernel code works in a dynamic sense.
It is a little more difficult to follow the call chains than it needs to
be - luckily there's a variant of the function tracer that displays the
-callchains explicitly, called the 'function_graph' tracer: ::
+callchains explicitly, called the 'function_graph' tracer::
root@sugarbay:/sys/kernel/debug/tracing# echo function_graph > current_tracer
root@sugarbay:/sys/kernel/debug/tracing# cat trace | less
@@ -1442,7 +1442,7 @@ One especially important directory contained within the
/sys/kernel/debug/tracing directory is the 'events' subdirectory, which
contains representations of every tracepoint in the system. Listing out
the contents of the 'events' subdirectory, we see mainly another set of
-subdirectories: ::
+subdirectories::
root@sugarbay:/sys/kernel/debug/tracing# cd events
root@sugarbay:/sys/kernel/debug/tracing/events# ls -al
@@ -1491,7 +1491,7 @@ subdirectories: ::
Each one of these subdirectories
corresponds to a 'subsystem' and contains yet again more subdirectories,
each one of those finally corresponding to a tracepoint. For example,
-here are the contents of the 'kmem' subsystem: ::
+here are the contents of the 'kmem' subsystem::
root@sugarbay:/sys/kernel/debug/tracing/events# cd kmem
root@sugarbay:/sys/kernel/debug/tracing/events/kmem# ls -al
@@ -1513,7 +1513,7 @@ here are the contents of the 'kmem' subsystem: ::
drwxr-xr-x 2 root root 0 Nov 14 23:19 mm_page_pcpu_drain
Let's see what's inside the subdirectory for a
-specific tracepoint, in this case the one for kmalloc: ::
+specific tracepoint, in this case the one for kmalloc::
root@sugarbay:/sys/kernel/debug/tracing/events/kmem# cd kmalloc
root@sugarbay:/sys/kernel/debug/tracing/events/kmem/kmalloc# ls -al
@@ -1529,7 +1529,7 @@ tracepoint describes the event in memory, which is used by the various
tracing tools that now make use of these tracepoint to parse the event
and make sense of it, along with a 'print fmt' field that allows tools
like ftrace to display the event as text. Here's what the format of the
-kmalloc event looks like: ::
+kmalloc event looks like::
root@sugarbay:/sys/kernel/debug/tracing/events/kmem/kmalloc# cat format
name: kmalloc
@@ -1568,20 +1568,20 @@ The 'enable' file
in the tracepoint directory is what allows the user (or tools such as
trace-cmd) to actually turn the tracepoint on and off. When enabled, the
corresponding tracepoint will start appearing in the ftrace 'trace' file
-described previously. For example, this turns on the kmalloc tracepoint: ::
+described previously. For example, this turns on the kmalloc tracepoint::
root@sugarbay:/sys/kernel/debug/tracing/events/kmem/kmalloc# echo 1 > enable
At the moment, we're not interested in the function tracer or
some other tracer that might be in effect, so we first turn it off, but
if we do that, we still need to turn tracing on in order to see the
-events in the output buffer: ::
+events in the output buffer::
root@sugarbay:/sys/kernel/debug/tracing# echo nop > current_tracer
root@sugarbay:/sys/kernel/debug/tracing# echo 1 > tracing_on
Now, if we look at the 'trace' file, we see nothing
-but the kmalloc events we just turned on: ::
+but the kmalloc events we just turned on::
root@sugarbay:/sys/kernel/debug/tracing# cat trace | less
# tracer: nop
@@ -1627,7 +1627,7 @@ but the kmalloc events we just turned on: ::
<idle>-0 [000] ..s3 18156.400660: kmalloc: call_site=ffffffff81619b36 ptr=ffff88006d554800 bytes_req=512 bytes_alloc=512 gfp_flags=GFP_ATOMIC
matchbox-termin-1361 [001] ...1 18156.552800: kmalloc: call_site=ffffffff81614050 ptr=ffff88006db34800 bytes_req=576 bytes_alloc=1024 gfp_flags=GFP_KERNEL|GFP_REPEAT
-To again disable the kmalloc event, we need to send 0 to the enable file: ::
+To again disable the kmalloc event, we need to send 0 to the enable file::
root@sugarbay:/sys/kernel/debug/tracing/events/kmem/kmalloc# echo 0 > enable
@@ -1669,12 +1669,12 @@ a per-CPU graphical display. It directly uses 'trace-cmd' as the
plumbing that accomplishes all that underneath the covers (and actually
displays the trace-cmd command it uses, as we'll see).
-To start a trace using kernelshark, first start kernelshark: ::
+To start a trace using kernelshark, first start kernelshark::
root@sugarbay:~# kernelshark
Then bring up the 'Capture' dialog by
-choosing from the kernelshark menu: ::
+choosing from the kernelshark menu::
Capture | Record
@@ -1724,12 +1724,12 @@ ftrace Documentation
--------------------
The documentation for ftrace can be found in the kernel Documentation
-directory: ::
+directory::
Documentation/trace/ftrace.txt
The documentation for the trace event subsystem can also be found in the kernel
-Documentation directory: ::
+Documentation directory::
Documentation/trace/events.txt
@@ -1784,7 +1784,7 @@ which it extracts from the open syscall's argstr.
Normally, to execute this
probe, you'd simply install systemtap on the system you want to probe,
and directly run the probe on that system e.g. assuming the name of the
-file containing the above text is trace_open.stp: ::
+file containing the above text is trace_open.stp::
# stap trace_open.stp
@@ -1825,7 +1825,7 @@ target, with arguments if necessary.
In order to do this from a remote host, however, you need to have access
to the build for the image you booted. The 'crosstap' script provides
details on how to do this if you run the script on the host without
-having done a build: ::
+having done a build::
$ crosstap root@192.168.1.88 trace_open.stp
@@ -1885,7 +1885,7 @@ Running a Script on a Target
----------------------------
Once you've done that, you should be able to run a systemtap script on
-the target: ::
+the target::
$ cd /path/to/yocto
$ source oe-init-build-env
@@ -1903,17 +1903,17 @@ the target: ::
You can also run generated QEMU images with a command like 'runqemu qemux86-64'
Once you've done that, you can cd to whatever
-directory contains your scripts and use 'crosstap' to run the script: ::
+directory contains your scripts and use 'crosstap' to run the script::
$ cd /path/to/my/systemap/script
$ crosstap root@192.168.7.2 trace_open.stp
-If you get an error connecting to the target e.g.: ::
+If you get an error connecting to the target e.g.::
$ crosstap root@192.168.7.2 trace_open.stp
error establishing ssh connection on remote 'root@192.168.7.2'
-Try ssh'ing to the target and see what happens: ::
+Try ssh'ing to the target and see what happens::
$ ssh root@192.168.7.2
@@ -2038,7 +2038,7 @@ tracing.
Collecting and viewing a trace on the target (inside a shell)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-First, from the host, ssh to the target: ::
+First, from the host, ssh to the target::
$ ssh -l root 192.168.1.47
The authenticity of host '192.168.1.47 (192.168.1.47)' can't be established.
@@ -2047,30 +2047,30 @@ First, from the host, ssh to the target: ::
Warning: Permanently added '192.168.1.47' (RSA) to the list of known hosts.
root@192.168.1.47's password:
-Once on the target, use these steps to create a trace: ::
+Once on the target, use these steps to create a trace::
root@crownbay:~# lttng create
Spawning a session daemon
Session auto-20121015-232120 created.
Traces will be written in /home/root/lttng-traces/auto-20121015-232120
-Enable the events you want to trace (in this case all kernel events): ::
+Enable the events you want to trace (in this case all kernel events)::
root@crownbay:~# lttng enable-event --kernel --all
All kernel events are enabled in channel channel0
-Start the trace: ::
+Start the trace::
root@crownbay:~# lttng start
Tracing started for session auto-20121015-232120
And then stop the trace after awhile or after running a particular workload that
-you want to trace: ::
+you want to trace::
root@crownbay:~# lttng stop
Tracing stopped for session auto-20121015-232120
-You can now view the trace in text form on the target: ::
+You can now view the trace in text form on the target::
root@crownbay:~# lttng view
[23:21:56.989270399] (+?.?????????) sys_geteuid: { 1 }, { }
@@ -2116,14 +2116,14 @@ You can now view the trace in text form on the target: ::
You can now safely destroy the trace
session (note that this doesn't delete the trace - it's still there in
-~/lttng-traces): ::
+~/lttng-traces)::
root@crownbay:~# lttng destroy
Session auto-20121015-232120 destroyed at /home/root
Note that the trace is saved in a directory of the same name as returned by
'lttng create', under the ~/lttng-traces directory (note that you can change this by
-supplying your own name to 'lttng create'): ::
+supplying your own name to 'lttng create')::
root@crownbay:~# ls -al ~/lttng-traces
drwxrwx--- 3 root root 1024 Oct 15 23:21 .
@@ -2139,18 +2139,18 @@ generated by the lttng-ust build.
The 'hello' test program isn't installed on the rootfs by the lttng-ust
build, so we need to copy it over manually. First cd into the build
-directory that contains the hello executable: ::
+directory that contains the hello executable::
$ cd build/tmp/work/core2_32-poky-linux/lttng-ust/2.0.5-r0/git/tests/hello/.libs
-Copy that over to the target machine: ::
+Copy that over to the target machine::
$ scp hello root@192.168.1.20:
You now have the instrumented lttng 'hello world' test program on the
target, ready to test.
-First, from the host, ssh to the target: ::
+First, from the host, ssh to the target::
$ ssh -l root 192.168.1.47
The authenticity of host '192.168.1.47 (192.168.1.47)' can't be established.
@@ -2159,35 +2159,35 @@ First, from the host, ssh to the target: ::
Warning: Permanently added '192.168.1.47' (RSA) to the list of known hosts.
root@192.168.1.47's password:
-Once on the target, use these steps to create a trace: ::
+Once on the target, use these steps to create a trace::
root@crownbay:~# lttng create
Session auto-20190303-021943 created.
Traces will be written in /home/root/lttng-traces/auto-20190303-021943
-Enable the events you want to trace (in this case all userspace events): ::
+Enable the events you want to trace (in this case all userspace events)::
root@crownbay:~# lttng enable-event --userspace --all
All UST events are enabled in channel channel0
-Start the trace: ::
+Start the trace::
root@crownbay:~# lttng start
Tracing started for session auto-20190303-021943
-Run the instrumented hello world program: ::
+Run the instrumented hello world program::
root@crownbay:~# ./hello
Hello, World!
Tracing... done.
And then stop the trace after awhile or after running a particular workload
-that you want to trace: ::
+that you want to trace::
root@crownbay:~# lttng stop
Tracing stopped for session auto-20190303-021943
-You can now view the trace in text form on the target: ::
+You can now view the trace in text form on the target::
root@crownbay:~# lttng view
[02:31:14.906146544] (+?.?????????) hello:1424 ust_tests_hello:tptest: { cpu_id = 1 }, { intfield = 0, intfield2 = 0x0, longfield = 0, netintfield = 0, netintfieldhex = 0x0, arrfield1 = [ [0] = 1, [1] = 2, [2] = 3 ], arrfield2 = "test", _seqfield1_length = 4, seqfield1 = [ [0] = 116, [1] = 101, [2] = 115, [3] = 116 ], _seqfield2_length = 4, seqfield2 = "test", stringfield = "test", floatfield = 2222, doublefield = 2, boolfield = 1 }
@@ -2199,7 +2199,7 @@ You can now view the trace in text form on the target: ::
.
You can now safely destroy the trace session (note that this doesn't delete the
-trace - it's still there in ~/lttng-traces): ::
+trace - it's still there in ~/lttng-traces)::
root@crownbay:~# lttng destroy
Session auto-20190303-021943 destroyed at /home/root
@@ -2244,7 +2244,7 @@ Basic blktrace Usage
--------------------
To record a trace, simply run the 'blktrace' command, giving it the name
-of the block device you want to trace activity on: ::
+of the block device you want to trace activity on::
root@crownbay:~# blktrace /dev/sdc
@@ -2265,7 +2265,7 @@ dumps them to userspace for blkparse to merge and sort later). ::
Total: 8660 events (dropped 0), 406 KiB data
If you examine the files saved to disk, you see multiple files, one per CPU and
-with the device name as the first part of the filename: ::
+with the device name as the first part of the filename::
root@crownbay:~# ls -al
drwxr-xr-x 6 root root 1024 Oct 27 22:39 .
@@ -2275,7 +2275,7 @@ with the device name as the first part of the filename: ::
To view the trace events, simply invoke 'blkparse' in the directory
containing the trace files, giving it the device name that forms the
-first part of the filenames: ::
+first part of the filenames::
root@crownbay:~# blkparse sdc
@@ -2373,7 +2373,7 @@ Live Mode
blktrace and blkparse are designed from the ground up to be able to
operate together in a 'pipe mode' where the stdout of blktrace can be
-fed directly into the stdin of blkparse: ::
+fed directly into the stdin of blkparse::
root@crownbay:~# blktrace /dev/sdc -o - | blkparse -i -
@@ -2386,7 +2386,7 @@ identify and capture conditions of interest.
There's actually another blktrace command that implements the above
pipeline as a single command, so the user doesn't have to bother typing
-in the above command sequence: ::
+in the above command sequence::
root@crownbay:~# btrace /dev/sdc
@@ -2401,19 +2401,19 @@ the traced device at all by providing native support for sending all
trace data over the network.
To have blktrace operate in this mode, start blktrace on the target
-system being traced with the -l option, along with the device to trace: ::
+system being traced with the -l option, along with the device to trace::
root@crownbay:~# blktrace -l /dev/sdc
server: waiting for connections...
On the host system, use the -h option to connect to the target system,
-also passing it the device to trace: ::
+also passing it the device to trace::
$ blktrace -d /dev/sdc -h 192.168.1.43
blktrace: connecting to 192.168.1.43
blktrace: connected!
-On the target system, you should see this: ::
+On the target system, you should see this::
server: connection from 192.168.1.43
@@ -2424,7 +2424,7 @@ In another shell, execute a workload you want to trace. ::
linux-2.6.19.2.tar.b 100% \|*******************************\| 41727k 0:00:00 ETA
When it's done, do a Ctrl-C on the host system to stop the
-trace: ::
+trace::
^C=== sdc ===
CPU 0: 7691 events, 361 KiB data
@@ -2432,7 +2432,7 @@ trace: ::
Total: 11800 events (dropped 0), 554 KiB data
On the target system, you should also see a trace summary for the trace
-just ended: ::
+just ended::
server: end of run for 192.168.1.43:sdc
=== sdc ===
@@ -2441,20 +2441,20 @@ just ended: ::
Total: 11800 events (dropped 0), 554 KiB data
The blktrace instance on the host will
-save the target output inside a hostname-timestamp directory: ::
+save the target output inside a hostname-timestamp directory::
$ ls -al
drwxr-xr-x 10 root root 1024 Oct 28 02:40 .
drwxr-sr-x 4 root root 1024 Oct 26 18:24 ..
drwxr-xr-x 2 root root 1024 Oct 28 02:40 192.168.1.43-2012-10-28-02:40:56
-cd into that directory to see the output files: ::
+cd into that directory to see the output files::
$ ls -l
-rw-r--r-- 1 root root 369193 Oct 28 02:44 sdc.blktrace.0
-rw-r--r-- 1 root root 197278 Oct 28 02:44 sdc.blktrace.1
-And run blkparse on the host system using the device name: ::
+And run blkparse on the host system using the device name::
$ blkparse sdc
@@ -2517,25 +2517,25 @@ userspace tools.
To enable tracing for a given device, use /sys/block/xxx/trace/enable,
where xxx is the device name. This for example enables tracing for
-/dev/sdc: ::
+/dev/sdc::
root@crownbay:/sys/kernel/debug/tracing# echo 1 > /sys/block/sdc/trace/enable
Once you've selected the device(s) you want
-to trace, selecting the 'blk' tracer will turn the blk tracer on: ::
+to trace, selecting the 'blk' tracer will turn the blk tracer on::
root@crownbay:/sys/kernel/debug/tracing# cat available_tracers
blk function_graph function nop
root@crownbay:/sys/kernel/debug/tracing# echo blk > current_tracer
-Execute the workload you're interested in: ::
+Execute the workload you're interested in::
root@crownbay:/sys/kernel/debug/tracing# cat /media/sdc/testfile.txt
And look at the output (note here that we're using 'trace_pipe' instead of
trace to capture this trace - this allows us to wait around on the pipe
-for data to appear): ::
+for data to appear)::
root@crownbay:/sys/kernel/debug/tracing# cat trace_pipe
cat-3587 [001] d..1 3023.276361: 8,32 Q R 1699848 + 8 [cat]
@@ -2554,7 +2554,7 @@ for data to appear): ::
cat-3587 [001] d..1 3023.276497: 8,32 m N cfq3587 activate rq, drv=1
cat-3587 [001] d..2 3023.276500: 8,32 D R 1699848 + 8 [cat]
-And this turns off tracing for the specified device: ::
+And this turns off tracing for the specified device::
root@crownbay:/sys/kernel/debug/tracing# echo 0 > /sys/block/sdc/trace/enable
@@ -2572,6 +2572,6 @@ section can be found here:
The above manpages, along with manpages for the other blktrace utilities
(btt, blkiomon, etc) can be found in the /doc directory of the blktrace
-tools git repo: ::
+tools git repo::
$ git clone git://git.kernel.dk/blktrace.git
diff --git a/poky/documentation/ref-manual/classes.rst b/poky/documentation/ref-manual/classes.rst
index 52a50faf6..9a1fc2c93 100644
--- a/poky/documentation/ref-manual/classes.rst
+++ b/poky/documentation/ref-manual/classes.rst
@@ -168,8 +168,7 @@ example use for this class.
the "subpath" parameter limits the checkout to a specific subpath
of the tree. Here is an example where ``${BP}`` is used so that the files
are extracted into the subdirectory expected by the default value of
- ``S``:
- ::
+ ``S``::
SRC_URI = "git://example.com/downloads/somepackage.rpm;subpath=${BP}"
@@ -221,8 +220,7 @@ each recipe you wish to blacklist. Specify the :term:`PN`
value as a variable flag (varflag) and provide a reason, which is
reported, if the package is requested to be built as the value. For
example, if you want to blacklist a recipe called "exoticware", you add
-the following to your ``local.conf`` or distribution configuration:
-::
+the following to your ``local.conf`` or distribution configuration::
INHERIT += "blacklist"
PNBLACKLIST[exoticware] = "Not supported by our organization."
@@ -470,8 +468,7 @@ information about using ``devshell``.
The ``devupstream`` class uses
:term:`BBCLASSEXTEND` to add a variant of the
recipe that fetches from an alternative URI (e.g. Git) instead of a
-tarball. Following is an example:
-::
+tarball. Following is an example::
BBCLASSEXTEND = "devupstream:target"
SRC_URI_class-devupstream = "git://git.example.com/example"
@@ -481,8 +478,7 @@ Adding the above statements to your recipe creates a variant that has
:term:`DEFAULT_PREFERENCE` set to "-1".
Consequently, you need to select the variant of the recipe to use it.
Any development-specific adjustments can be done by using the
-``class-devupstream`` override. Here is an example:
-::
+``class-devupstream`` override. Here is an example::
DEPENDS_append_class-devupstream = " gperf-native"
do_configure_prepend_class-devupstream() {
@@ -544,8 +540,7 @@ By default, this class expects the source code to support recipe builds
that use the :term:`B` variable to point to the directory in
which the OpenEmbedded build system places the generated objects built
from the recipes. By default, the ``B`` directory is set to the
-following, which is separate from the source directory (``S``):
-::
+following, which is separate from the source directory (``S``)::
${WORKDIR}/${BPN}/{PV}/
@@ -581,8 +576,7 @@ be performed using the
useradd
class to add user and group configuration to a specific recipe.
-Here is an example that uses this class in an image recipe:
-::
+Here is an example that uses this class in an image recipe::
inherit extrausers
EXTRA_USERS_PARAMS = "\
@@ -595,8 +589,7 @@ Here is an example that uses this class in an image recipe:
"
Here is an example that adds two users named "tester-jim" and "tester-sue" and assigns
-passwords:
-::
+passwords::
inherit extrausers
EXTRA_USERS_PARAMS = "\
@@ -604,8 +597,7 @@ passwords:
useradd -P tester01 tester-sue; \
"
-Finally, here is an example that sets the root password to "1876*18":
-::
+Finally, here is an example that sets the root password to "1876*18"::
inherit extrausers
EXTRA_USERS_PARAMS = "\
@@ -867,8 +859,7 @@ system need to either inherit the ``icecc`` class or nobody should.
At the distribution level, you can inherit the ``icecc`` class to be
sure that all builders start with the same sstate signatures. After
inheriting the class, you can then disable the feature by setting the
-:term:`ICECC_DISABLED` variable to "1" as follows:
-::
+:term:`ICECC_DISABLED` variable to "1" as follows::
INHERIT_DISTRO_append = " icecc"
ICECC_DISABLED ??= "1"
@@ -876,8 +867,7 @@ inheriting the class, you can then disable the feature by setting the
This practice
makes sure everyone is using the same signatures but also requires
individuals that do want to use Icecream to enable the feature
-individually as follows in your ``local.conf`` file:
-::
+individually as follows in your ``local.conf`` file::
ICECC_DISABLED = ""
@@ -925,8 +915,7 @@ types.
By default, the :ref:`image <ref-classes-image>` class automatically
enables the ``image_types`` class. The ``image`` class uses the
-``IMGCLASSES`` variable as follows:
-::
+``IMGCLASSES`` variable as follows::
IMGCLASSES = "rootfs_${IMAGE_PKGTYPE} image_types ${IMAGE_CLASSES}"
IMGCLASSES += "${@['populate_sdk_base', 'populate_sdk_ext']['linux' in d.getVar("SDK_OS")]}"
@@ -968,8 +957,7 @@ during the :ref:`ref-tasks-rootfs` task, which optimizes
the size of libraries contained in the image.
By default, the class is enabled in the ``local.conf.template`` using
-the :term:`USER_CLASSES` variable as follows:
-::
+the :term:`USER_CLASSES` variable as follows::
USER_CLASSES ?= "buildstats image-mklibs image-prelink"
@@ -984,8 +972,7 @@ the dynamic linking of shared libraries to reduce executable startup
time.
By default, the class is enabled in the ``local.conf.template`` using
-the :term:`USER_CLASSES` variable as follows:
-::
+the :term:`USER_CLASSES` variable as follows::
USER_CLASSES ?= "buildstats image-mklibs image-prelink"
@@ -1014,8 +1001,7 @@ configuration). However, to skip one or more checks in recipes, you
should use :term:`INSANE_SKIP`. For example, to skip
the check for symbolic link ``.so`` files in the main package of a
recipe, add the following to the recipe. You need to realize that the
-package name override, in this example ``${PN}``, must be used:
-::
+package name override, in this example ``${PN}``, must be used::
INSANE_SKIP_${PN} += "dev-so"
@@ -1152,8 +1138,7 @@ The following list shows the tests you can list with the ``WARN_QA`` and
- ``invalid-packageconfig:`` Checks that no undefined features are
being added to :term:`PACKAGECONFIG`. For
- example, any name "foo" for which the following form does not exist:
- ::
+ example, any name "foo" for which the following form does not exist::
PACKAGECONFIG[foo] = "..."
@@ -1636,8 +1621,7 @@ a couple different ways:
.. note::
When creating a recipe this way, the recipe name must follow this
- naming convention:
- ::
+ naming convention::
myrecipe-native.bb
@@ -1645,8 +1629,7 @@ a couple different ways:
Not using this naming convention can lead to subtle problems
caused by existing code that depends on that naming convention.
-- Create or modify a target recipe that contains the following:
- ::
+- Create or modify a target recipe that contains the following::
BBCLASSEXTEND = "native"
@@ -1677,8 +1660,7 @@ couple different ways:
inherit statement in the recipe after all other inherit statements so
that the ``nativesdk`` class is inherited last.
-- Create a ``nativesdk`` variant of any recipe by adding the following:
- ::
+- Create a ``nativesdk`` variant of any recipe by adding the following::
BBCLASSEXTEND = "nativesdk"
@@ -1689,8 +1671,7 @@ couple different ways:
.. note::
- When creating a recipe, you must follow this naming convention:
- ::
+ When creating a recipe, you must follow this naming convention::
nativesdk-myrecipe.bb
@@ -1753,8 +1734,7 @@ before attempting to fetch it from the upstream specified in
:term:`SRC_URI` within each recipe.
To use this class, inherit it globally and specify
-:term:`SOURCE_MIRROR_URL`. Here is an example:
-::
+:term:`SOURCE_MIRROR_URL`. Here is an example::
INHERIT += "own-mirrors"
SOURCE_MIRROR_URL = "http://example.com/my-source-mirror"
@@ -2017,8 +1997,7 @@ established and then populates the SDK. After populating the SDK, the
contains the cross-compiler and associated tooling, and the target,
which contains a target root filesystem that is configured for the SDK
usage. These two images reside in :term:`SDK_OUTPUT`,
-which consists of the following:
-::
+which consists of the following::
${SDK_OUTPUT}/${SDK_ARCH}-nativesdk-pkgs
${SDK_OUTPUT}/${SDKTARGETSYSROOT}/target-pkgs
@@ -2180,8 +2159,7 @@ installed by ``libtool``. Removing these files results in them being
absent from both the sysroot and target packages.
If a recipe needs the ``.la`` files to be installed, then the recipe can
-override the removal by setting ``REMOVE_LIBTOOL_LA`` to "0" as follows:
-::
+override the removal by setting ``REMOVE_LIBTOOL_LA`` to "0" as follows::
REMOVE_LIBTOOL_LA = "0"
@@ -2231,8 +2209,7 @@ recipe, enabling ``rm_work`` will potentially result in your changes to
the source being lost. To exclude some recipes from having their work
directories deleted by ``rm_work``, you can add the names of the recipe
or recipes you are working on to the ``RM_WORK_EXCLUDE`` variable, which
-can also be set in your ``local.conf`` file. Here is an example:
-::
+can also be set in your ``local.conf`` file. Here is an example::
RM_WORK_EXCLUDE += "busybox glibc"
@@ -2531,8 +2508,7 @@ You should set :term:`SYSTEMD_SERVICE` to the
name of the service file. You should also use a package name override to
indicate the package to which the value applies. If the value applies to
the recipe's main package, use ``${``\ :term:`PN`\ ``}``. Here
-is an example from the connman recipe:
-::
+is an example from the connman recipe::
SYSTEMD_SERVICE_${PN} = "connman.service"
@@ -2608,8 +2584,7 @@ The tests are commands that run on the target system over ``ssh``. Each
test is written in Python and makes use of the ``unittest`` module.
The ``testimage.bbclass`` runs tests on an image when called using the
-following:
-::
+following::
$ bitbake -c testimage image
@@ -2628,8 +2603,7 @@ section in the Yocto Project Development Tasks Manual.
This class supports running automated tests against software development
kits (SDKs). The ``testsdk`` class runs tests on an SDK when called
-using the following:
-::
+using the following::
$ bitbake -c testsdk image
@@ -2684,8 +2658,7 @@ the environment for installed SDKs.
The ``typecheck`` class provides support for validating the values of
variables set at the configuration level against their defined types.
The OpenEmbedded build system allows you to define the type of a
-variable using the "type" varflag. Here is an example:
-::
+variable using the "type" varflag. Here is an example::
IMAGE_FEATURES[type] = "list"
@@ -2695,14 +2668,12 @@ variable using the "type" varflag. Here is an example:
========================
The ``uboot-config`` class provides support for U-Boot configuration for
-a machine. Specify the machine in your recipe as follows:
-::
+a machine. Specify the machine in your recipe as follows::
UBOOT_CONFIG ??= <default>
UBOOT_CONFIG[foo] = "config,images"
-You can also specify the machine using this method:
-::
+You can also specify the machine using this method::
UBOOT_MACHINE = "config"
diff --git a/poky/documentation/ref-manual/devtool-reference.rst b/poky/documentation/ref-manual/devtool-reference.rst
index 629aa2ffb..0ce321983 100644
--- a/poky/documentation/ref-manual/devtool-reference.rst
+++ b/poky/documentation/ref-manual/devtool-reference.rst
@@ -22,8 +22,7 @@ Getting Help
The ``devtool`` command line is organized similarly to Git in that it
has a number of sub-commands for each function. You can run
-``devtool --help`` to see all the commands:
-::
+``devtool --help`` to see all the commands::
$ devtool -h
NOTE: Starting bitbake server...
@@ -79,8 +78,7 @@ has a number of sub-commands for each function. You can run
As directed in the general help output, you can
get more syntax on a specific command by providing the command name and
-using "--help":
-::
+using "--help"::
$ devtool add --help
NOTE: Starting bitbake server...
@@ -172,8 +170,7 @@ you. The source files the recipe uses should exist in an external area.
The following example creates and adds a new recipe named ``jackson`` to
a workspace layer the tool creates. The source code built by the recipes
-resides in ``/home/user/sources/jackson``:
-::
+resides in ``/home/user/sources/jackson``::
$ devtool add jackson /home/user/sources/jackson
@@ -201,8 +198,7 @@ unpacking files from a remote URI. In some cases, you might want to
specify a source revision by branch, tag, or commit hash. You can
specify these options when using the ``devtool add`` command:
-- To specify a source branch, use the ``--srcbranch`` option:
- ::
+- To specify a source branch, use the ``--srcbranch`` option::
$ devtool add --srcbranch &DISTRO_NAME_NO_CAP; jackson /home/user/sources/jackson
@@ -210,8 +206,7 @@ specify these options when using the ``devtool add`` command:
branch.
- To specify a specific tag or commit hash, use the ``--srcrev``
- option:
- ::
+ option::
$ devtool add --srcrev &DISTRO_REL_TAG; jackson /home/user/sources/jackson
$ devtool add --srcrev some_commit_hash /home/user/sources/jackson
@@ -269,8 +264,7 @@ The ``devtool modify`` command extracts the source for a recipe, sets it
up as a Git repository if the source had not already been fetched from
Git, checks out a branch for development, and applies any patches from
the recipe as commits on top. You can use the following command to
-checkout the source files:
-::
+checkout the source files::
$ devtool modify recipe
@@ -309,8 +303,7 @@ compile, and test the code.
When you are satisfied with the results and you have committed your
changes to the Git repository, you can then run the
-``devtool update-recipe`` to create the patches and update the recipe:
-::
+``devtool update-recipe`` to create the patches and update the recipe::
$ devtool update-recipe recipe
@@ -321,8 +314,7 @@ Often, you might want to apply customizations made to your software in
your own layer rather than apply them to the original recipe. If so, you
can use the ``-a`` or ``--append`` option with the
``devtool update-recipe`` command. These options allow you to specify
-the layer into which to write an append file:
-::
+the layer into which to write an append file::
$ devtool update-recipe recipe -a base-layer-directory
@@ -358,8 +350,7 @@ particular recipe.
recipe's latest version tag.
As with all ``devtool`` commands, you can get help on the individual
-command:
-::
+command::
$ devtool check-upgrade-status -h
NOTE: Starting bitbake server...
@@ -462,8 +453,7 @@ files have been modified, the command preserves the modified files in a
separate "attic" subdirectory under the workspace layer.
Here is an example that resets the workspace directory that contains the
-``mtr`` recipe:
-::
+``mtr`` recipe::
$ devtool reset mtr
NOTE: Cleaning sysroot for recipe mtr...
@@ -482,8 +472,7 @@ Use the ``devtool build`` command to build your recipe. The
When you use the ``devtool build`` command, you must supply the root
name of the recipe (i.e. do not provide versions, paths, or extensions).
You can use either the "-s" or the "--disable-parallel-make" options to
-disable parallel makes during the build. Here is an example:
-::
+disable parallel makes during the build. Here is an example::
$ devtool build recipe
@@ -499,8 +488,7 @@ device for testing. For proper integration into a final image, you need
to edit your custom image recipe appropriately.
When you use the ``devtool build-image`` command, you must supply the
-name of the image. This command has no command line options:
-::
+name of the image. This command has no command line options::
$ devtool build-image image
@@ -510,8 +498,7 @@ Deploying Your Software on the Target Machine
=============================================
Use the ``devtool deploy-target`` command to deploy the recipe's build
-output to the live target machine:
-::
+output to the live target machine::
$ devtool deploy-target recipe target
@@ -582,15 +569,13 @@ new workspace layer, it is populated with the ``README`` file and the
``conf`` directory only.
The following example creates a new workspace layer in your current
-working and by default names the workspace layer "workspace":
-::
+working and by default names the workspace layer "workspace"::
$ devtool create-workspace
You can create a workspace layer anywhere by supplying a pathname with
the command. The following command creates a new workspace layer named
-"new-workspace":
-::
+"new-workspace"::
$ devtool create-workspace /home/scottrif/new-workspace
@@ -603,15 +588,13 @@ Use the ``devtool status`` command to list the recipes currently in your
workspace. Information includes the paths to their respective external
source trees.
-The ``devtool status`` command has no command-line options:
-::
+The ``devtool status`` command has no command-line options::
$ devtool status
Following is sample output after using
:ref:`devtool add <ref-manual/devtool-reference:adding a new recipe to the workspace layer>`
-to create and add the ``mtr_0.86.bb`` recipe to the ``workspace`` directory:
-::
+to create and add the ``mtr_0.86.bb`` recipe to the ``workspace`` directory::
$ devtool status
mtr:/home/scottrif/poky/build/workspace/sources/mtr (/home/scottrif/poky/build/workspace/recipes/mtr/mtr_0.86.bb)
diff --git a/poky/documentation/ref-manual/faq.rst b/poky/documentation/ref-manual/faq.rst
index 64fdfdf75..e7bca829a 100644
--- a/poky/documentation/ref-manual/faq.rst
+++ b/poky/documentation/ref-manual/faq.rst
@@ -125,7 +125,7 @@ file.
Following is the applicable code for setting various proxy types in the
``.wgetrc`` file. By default, these settings are disabled with comments.
-To use them, remove the comments: ::
+To use them, remove the comments::
# You can set the default proxies for Wget to use for http, https, and ftp.
# They will override the value in the environment.
@@ -209,8 +209,7 @@ section in the Yocto Project Development Tasks Manual.
**A:** You need to create a form factor file as described in the
":ref:`bsp-guide/bsp:miscellaneous bsp-specific recipe files`" section in
the Yocto Project Board Support Packages (BSP) Developer's Guide. Set
-the ``HAVE_TOUCHSCREEN`` variable equal to one as follows:
-::
+the ``HAVE_TOUCHSCREEN`` variable equal to one as follows::
HAVE_TOUCHSCREEN=1
@@ -224,7 +223,7 @@ to add a BSP-specific netbase that includes an interfaces file. See the
the Yocto Project Board Support Packages (BSP) Developer's Guide for
information on creating these types of miscellaneous recipe files.
-For example, add the following files to your layer: ::
+For example, add the following files to your layer::
meta-MACHINE/recipes-bsp/netbase/netbase/MACHINE/interfaces
meta-MACHINE/recipes-bsp/netbase/netbase_5.0.bbappend
@@ -300,7 +299,7 @@ fail.
As an example, you could add a specific server for the build system to
attempt before any others by adding something like the following to the
-``local.conf`` configuration file: ::
+``local.conf`` configuration file::
PREMIRRORS_prepend = "\
git://.*/.* http://www.yoctoproject.org/sources/ \n \
@@ -313,8 +312,7 @@ HTTPS requests and direct them to the ``http://`` sources mirror. You
can use ``file://`` URLs to point to local directories or network shares
as well.
-Aside from the previous technique, these options also exist:
-::
+Aside from the previous technique, these options also exist::
BB_NO_NETWORK = "1"
@@ -322,8 +320,7 @@ This statement tells BitBake to issue an error
instead of trying to access the Internet. This technique is useful if
you want to ensure code builds only from local sources.
-Here is another technique:
-::
+Here is another technique::
BB_FETCH_PREMIRRORONLY = "1"
@@ -331,8 +328,7 @@ This statement
limits the build system to pulling source from the ``PREMIRRORS`` only.
Again, this technique is useful for reproducing builds.
-Here is another technique:
-::
+Here is another technique::
BB_GENERATE_MIRROR_TARBALLS = "1"
@@ -343,7 +339,7 @@ however, the technique can simply waste time during the build.
Finally, consider an example where you are behind an HTTP-only firewall.
You could make the following changes to the ``local.conf`` configuration
-file as long as the ``PREMIRRORS`` server is current: ::
+file as long as the ``PREMIRRORS`` server is current::
PREMIRRORS_prepend = "\
ftp://.*/.* http://www.yoctoproject.org/sources/ \n \
diff --git a/poky/documentation/ref-manual/features.rst b/poky/documentation/ref-manual/features.rst
index 89c06eb65..eb4947d59 100644
--- a/poky/documentation/ref-manual/features.rst
+++ b/poky/documentation/ref-manual/features.rst
@@ -26,8 +26,7 @@ One method you can use to determine which recipes are checking to see if
a particular feature is contained or not is to ``grep`` through the
:term:`Metadata` for the feature. Here is an example that
discovers the recipes whose build is potentially changed based on a
-given feature:
-::
+given feature::
$ cd poky
$ git grep 'contains.*MACHINE_FEATURES.*feature'
diff --git a/poky/documentation/ref-manual/images.rst b/poky/documentation/ref-manual/images.rst
index cf5cc1109..b2db1a773 100644
--- a/poky/documentation/ref-manual/images.rst
+++ b/poky/documentation/ref-manual/images.rst
@@ -18,8 +18,7 @@ image you want.
are going to build an image using non-GPLv3 and similarly licensed
components, you must make the following changes in the ``local.conf``
file before using the BitBake command to build the minimal or base
- image:
- ::
+ image::
1. Comment out the EXTRA_IMAGE_FEATURES line
2. Set INCOMPATIBLE_LICENSE = "GPL-3.0 LGPL-3.0 AGPL-3.0"
@@ -27,7 +26,7 @@ image you want.
From within the ``poky`` Git repository, you can use the following
command to display the list of directories within the :term:`Source Directory`
-that contain image recipe files: ::
+that contain image recipe files::
$ ls meta*/recipes*/images/*.bb
diff --git a/poky/documentation/ref-manual/kickstart.rst b/poky/documentation/ref-manual/kickstart.rst
index b87cdc13b..843292b52 100644
--- a/poky/documentation/ref-manual/kickstart.rst
+++ b/poky/documentation/ref-manual/kickstart.rst
@@ -30,8 +30,7 @@ Command: part or partition
==========================
Either of these commands creates a partition on the system and uses the
-following syntax:
-::
+following syntax::
part [mntpoint]
partition [mntpoint]
@@ -59,8 +58,7 @@ must also provide one of the ``--ondrive``, ``--ondisk``, or
versions of these application are currently excluded.
Here is an example that uses "/" as the mountpoint. The command uses
-``--ondisk`` to force the partition onto the ``sdb`` disk:
-::
+``--ondisk`` to force the partition onto the ``sdb`` disk::
part / --source rootfs --ondisk sdb --fstype=ext3 --label platform --align 1024
diff --git a/poky/documentation/ref-manual/migration-1.3.rst b/poky/documentation/ref-manual/migration-1.3.rst
index 0929f490d..b90767ff9 100644
--- a/poky/documentation/ref-manual/migration-1.3.rst
+++ b/poky/documentation/ref-manual/migration-1.3.rst
@@ -29,7 +29,7 @@ location (either local or remote) and then point to it in
:term:`SSTATE_MIRRORS`, you need to append "PATH"
to the end of the mirror URL so that the path used by BitBake before the
mirror substitution is appended to the path used to access the mirror.
-Here is an example: ::
+Here is an example::
SSTATE_MIRRORS = "file://.* http://someserver.tld/share/sstate/PATH"
@@ -181,14 +181,13 @@ Linux Kernel Naming
-------------------
The naming scheme for kernel output binaries has been changed to now
-include :term:`PE` as part of the filename:
-::
+include :term:`PE` as part of the filename::
KERNEL_IMAGE_BASE_NAME ?= "${KERNEL_IMAGETYPE}-${PE}-${PV}-${PR}-${MACHINE}-${DATETIME}"
Because the ``PE`` variable is not set by default, these binary files
could result with names that include two dash characters. Here is an
-example: ::
+example::
bzImage--3.10.9+git0+cd502a8814_7144bcc4b8-r0-qemux86-64-20130830085431.bin
diff --git a/poky/documentation/ref-manual/migration-1.4.rst b/poky/documentation/ref-manual/migration-1.4.rst
index f5fac7a2a..deb848749 100644
--- a/poky/documentation/ref-manual/migration-1.4.rst
+++ b/poky/documentation/ref-manual/migration-1.4.rst
@@ -40,8 +40,7 @@ Differences include the following:
- *Shared State Code:* The shared state code has been optimized to
avoid running unnecessary tasks. For example, the following no longer
- populates the target sysroot since that is not necessary:
- ::
+ populates the target sysroot since that is not necessary::
$ bitbake -c rootfs some-image
@@ -136,8 +135,7 @@ Target Package Management with RPM
If runtime package management is enabled and the RPM backend is
selected, Smart is now installed for package download, dependency
resolution, and upgrades instead of Zypper. For more information on how
-to use Smart, run the following command on the target:
-::
+to use Smart, run the following command on the target::
smart --help
diff --git a/poky/documentation/ref-manual/migration-1.6.rst b/poky/documentation/ref-manual/migration-1.6.rst
index 4c6afab1f..5a18d6310 100644
--- a/poky/documentation/ref-manual/migration-1.6.rst
+++ b/poky/documentation/ref-manual/migration-1.6.rst
@@ -53,8 +53,7 @@ Matching Branch Requirement for Git Fetching
When fetching source from a Git repository using
:term:`SRC_URI`, BitBake will now validate the
:term:`SRCREV` value against the branch. You can specify
-the branch using the following form:
-::
+the branch using the following form::
SRC_URI = "git://server.name/repository;branch=branchname"
@@ -207,7 +206,7 @@ functions to call and not arbitrary shell commands:
For
migration purposes, you can simply wrap shell commands in a shell
-function and then call the function. Here is an example: ::
+function and then call the function. Here is an example::
my_postprocess_function() {
echo "hello" > ${IMAGE_ROOTFS}/hello.txt
@@ -248,8 +247,7 @@ the ``autotools`` or ``autotools_stage``\ classes.
``qemu-native`` now builds without SDL-based graphical output support by
default. The following additional lines are needed in your
-``local.conf`` to enable it:
-::
+``local.conf`` to enable it::
PACKAGECONFIG_pn-qemu-native = "sdl"
ASSUME_PROVIDED += "libsdl-native"
diff --git a/poky/documentation/ref-manual/migration-1.7.rst b/poky/documentation/ref-manual/migration-1.7.rst
index 9cf467f28..46bf12658 100644
--- a/poky/documentation/ref-manual/migration-1.7.rst
+++ b/poky/documentation/ref-manual/migration-1.7.rst
@@ -15,8 +15,7 @@ optional features. The method used to set defaults for these options
means that existing ``local.conf`` files will need to be modified to
append to ``PACKAGECONFIG`` for ``qemu-native`` and ``nativesdk-qemu``
instead of setting it. In other words, to enable graphical output for
-QEMU, you should now have these lines in ``local.conf``:
-::
+QEMU, you should now have these lines in ``local.conf``::
PACKAGECONFIG_append_pn-qemu-native = " sdl"
PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
@@ -80,8 +79,7 @@ disable the scripts due to the scripts previously requiring error-prone
path substitution. Software that links against these libraries using
these scripts should use the much more robust ``pkg-config`` instead.
The list of recipes changed in this version (and their configuration
-scripts) is as follows:
-::
+scripts) is as follows::
directfb (directfb-config)
freetype (freetype-config)
diff --git a/poky/documentation/ref-manual/migration-1.8.rst b/poky/documentation/ref-manual/migration-1.8.rst
index ec2b13879..68d5dcf85 100644
--- a/poky/documentation/ref-manual/migration-1.8.rst
+++ b/poky/documentation/ref-manual/migration-1.8.rst
@@ -56,7 +56,7 @@ you can now remove them.
Additionally, a ``bluetooth`` class has been added to make selection of
the appropriate bluetooth support within a recipe a little easier. If
you wish to make use of this class in a recipe, add something such as
-the following: ::
+the following::
inherit bluetooth
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)}"
@@ -84,7 +84,7 @@ where the ``linux.inc`` file in ``meta-oe`` was updated.
Recipes that rely on the kernel source code and do not inherit the
module classes might need to add explicit dependencies on the
-``do_shared_workdir`` kernel task, for example: ::
+``do_shared_workdir`` kernel task, for example::
do_configure[depends] += "virtual/kernel:do_shared_workdir"
@@ -131,7 +131,7 @@ One of the improvements is to attempt to run "make clean" during the
``do_configure`` task if a ``Makefile`` exists. Some software packages
do not provide a working clean target within their make files. If you
have such recipes, you need to set
-:term:`CLEANBROKEN` to "1" within the recipe, for example: ::
+:term:`CLEANBROKEN` to "1" within the recipe, for example::
CLEANBROKEN = "1"
diff --git a/poky/documentation/ref-manual/migration-2.0.rst b/poky/documentation/ref-manual/migration-2.0.rst
index 9da60dfdc..8319b0ee3 100644
--- a/poky/documentation/ref-manual/migration-2.0.rst
+++ b/poky/documentation/ref-manual/migration-2.0.rst
@@ -25,8 +25,7 @@ and the porting guide at
https://gcc.gnu.org/gcc-5/porting_to.html.
Alternatively, you can switch back to GCC 4.9 or 4.8 by setting
-``GCCVERSION`` in your configuration, as follows:
-::
+``GCCVERSION`` in your configuration, as follows::
GCCVERSION = "4.9%"
@@ -91,8 +90,7 @@ unlikely to require any changes to Metadata. However, these minor
changes in behavior exist:
- All potential overrides are now visible in the variable history as
- seen when you run the following:
- ::
+ seen when you run the following::
$ bitbake -e
@@ -200,8 +198,7 @@ changes.
Additionally, work directories for old versions of recipes are now
pruned. If you wish to disable pruning old work directories, you can set
-the following variable in your configuration:
-::
+the following variable in your configuration::
SSTATE_PRUNE_OBSOLETEWORKDIR = "0"
diff --git a/poky/documentation/ref-manual/migration-2.1.rst b/poky/documentation/ref-manual/migration-2.1.rst
index 1eb9ab552..32d193f0f 100644
--- a/poky/documentation/ref-manual/migration-2.1.rst
+++ b/poky/documentation/ref-manual/migration-2.1.rst
@@ -42,8 +42,7 @@ defaulted to False if not specified. Now, however, no default exists so
one must be specified. You must change any ``getVar()`` calls that do
not specify the final expand parameter to calls that do specify the
parameter. You can run the following ``sed`` command at the base of a
-layer to make this change:
-::
+layer to make this change::
sed -e 's:\(\.getVar([^,()]*\)):\1, False):g' -i `grep -ril getVar *`
sed -e 's:\(\.getVarFlag([^,()]*,[^,()]*\)):\1, False):g' -i `grep -ril getVarFlag *`
@@ -285,8 +284,7 @@ The following changes have been made for the Poky distribution:
Any recipe that needs to opt-out of having the "--disable-static"
option specified on the configure command line either because it is
not a supported option for the configure script or because static
- libraries are needed should set the following variable:
- ::
+ libraries are needed should set the following variable::
DISABLE_STATIC = ""
@@ -369,8 +367,7 @@ These additional changes exist:
- Previously, the following list of packages were removed if
package-management was not in
:term:`IMAGE_FEATURES`, regardless of any
- dependencies:
- ::
+ dependencies::
update-rc.d
base-passwd
diff --git a/poky/documentation/ref-manual/migration-2.2.rst b/poky/documentation/ref-manual/migration-2.2.rst
index 198181a46..a9d3cde7b 100644
--- a/poky/documentation/ref-manual/migration-2.2.rst
+++ b/poky/documentation/ref-manual/migration-2.2.rst
@@ -144,8 +144,7 @@ The new ``runqemu`` is a Python script. Machine knowledge is no longer
hardcoded into ``runqemu``. You can choose to use the ``qemuboot``
configuration file to define the BSP's own arguments and to make it
bootable with ``runqemu``. If you use a configuration file, use the
-following form:
-::
+following form::
image-name-machine.qemuboot.conf
@@ -160,8 +159,7 @@ rootfs). QEMU boot arguments can be set in BSP's configuration file and
the ``qemuboot`` class will save them to ``qemuboot.conf``.
If you want to use ``runqemu`` without a configuration file, use the
-following command form:
-::
+following command form::
$ runqemu machine rootfs kernel [options]
@@ -179,7 +177,7 @@ Supported machines are as follows:
Consider the
following example, which uses the ``qemux86-64`` machine, provides a
-root filesystem, provides an image, and uses the ``nographic`` option: ::
+root filesystem, provides an image, and uses the ``nographic`` option::
$ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4 tmp/deploy/images/qemux86-64/bzImage nographic
@@ -244,8 +242,7 @@ recipes. You need to fix these recipes so that they use the expected
``LDFLAGS``. Depending on how the software is built, the build system
used by the software (e.g. a Makefile) might need to be patched.
However, sometimes making this fix is as simple as adding the following
-to the recipe:
-::
+to the recipe::
TARGET_CC_ARCH += "${LDFLAGS}"
@@ -258,8 +255,7 @@ The ``KERNEL_IMAGE_BASE_NAME`` variable no longer uses the
:term:`KERNEL_IMAGETYPE` variable to create the
image's base name. Because the OpenEmbedded build system can now build
multiple kernel image types, this part of the kernel image base name as
-been removed leaving only the following:
-::
+been removed leaving only the following::
KERNEL_IMAGE_BASE_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
diff --git a/poky/documentation/ref-manual/migration-2.3.rst b/poky/documentation/ref-manual/migration-2.3.rst
index 0541eb3e7..dfbda612a 100644
--- a/poky/documentation/ref-manual/migration-2.3.rst
+++ b/poky/documentation/ref-manual/migration-2.3.rst
@@ -114,8 +114,7 @@ Changes to Scripts
The following changes to scripts took place:
- ``oe-find-native-sysroot``: The usage for the
- ``oe-find-native-sysroot`` script has changed to the following:
- ::
+ ``oe-find-native-sysroot`` script has changed to the following::
$ . oe-find-native-sysroot recipe
@@ -124,8 +123,7 @@ The following changes to scripts took place:
was not necessary to provide the script with the command.
- ``oe-run-native``: The usage for the ``oe-run-native`` script has
- changed to the following:
- ::
+ changed to the following::
$ oe-run-native native_recipe tool
@@ -453,14 +451,11 @@ The following miscellaneous changes have occurred:
tools.
- The ``USE_LDCONFIG`` variable has been replaced with the "ldconfig"
- ``DISTRO_FEATURES`` feature. Distributions that previously set:
- ::
+ ``DISTRO_FEATURES`` feature. Distributions that previously set::
USE_LDCONFIG = "0"
- should now instead use the following:
-
- ::
+ should now instead use the following::
DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " ldconfig"
@@ -478,8 +473,7 @@ The following miscellaneous changes have occurred:
order to allow module packages from multiple kernel versions to
co-exist on a target system. If you wish to return to the previous
naming scheme that does not include the version suffix, use the
- following:
- ::
+ following::
KERNEL_MODULE_PACKAGE_SUFFIX = ""
diff --git a/poky/documentation/ref-manual/migration-2.5.rst b/poky/documentation/ref-manual/migration-2.5.rst
index 9ef4b5539..86a0da9c4 100644
--- a/poky/documentation/ref-manual/migration-2.5.rst
+++ b/poky/documentation/ref-manual/migration-2.5.rst
@@ -138,13 +138,11 @@ The following are BitBake changes:
tree" tasks have been removed (e.g. ``fetchall``, ``checkuriall``,
and the ``*all`` tasks provided by the ``distrodata`` and
``archiver`` classes). There is a BitBake option to complete this for
- any arbitrary task. For example:
- ::
+ any arbitrary task. For example::
bitbake <target> -c fetchall
- should now be replaced with:
- ::
+ should now be replaced with::
bitbake <target> --runall=fetch
@@ -169,7 +167,7 @@ one of the packages provided by the Python recipe. You can no longer run
``bitbake python-foo`` or have a
:term:`DEPENDS` on ``python-foo``,
but doing either of the following causes the package to work as
-expected: ::
+expected::
IMAGE_INSTALL_append = " python-foo"
diff --git a/poky/documentation/ref-manual/migration-2.6.rst b/poky/documentation/ref-manual/migration-2.6.rst
index aeac50980..d1c6c0c5f 100644
--- a/poky/documentation/ref-manual/migration-2.6.rst
+++ b/poky/documentation/ref-manual/migration-2.6.rst
@@ -161,13 +161,11 @@ The following changes have been made:
allows easier and more direct changes.
The ``IMAGE_VERSION_SUFFIX`` variable is set in the ``bitbake.conf``
- configuration file as follows:
- ::
+ configuration file as follows::
IMAGE_VERSION_SUFFIX = "-${DATETIME}"
-- Several variables have changed names for consistency:
- ::
+- Several variables have changed names for consistency::
Old Variable Name New Variable Name
========================================================
@@ -292,8 +290,7 @@ avoids the ``systemd`` recipe from becoming machine-specific for cases
where machine-specific configurations need to be applied (e.g. for
``qemu*`` machines).
-Currently, the new recipe packages the following files:
-::
+Currently, the new recipe packages the following files::
${sysconfdir}/machine-id
${sysconfdir}/systemd/coredump.conf
@@ -393,8 +390,7 @@ If you wish to disable Python profile-guided optimization regardless of
the value of ``MACHINE_FEATURES``, then ensure that
:term:`PACKAGECONFIG` for the ``python3`` recipe
does not contain "pgo". You could accomplish the latter using the
-following at the configuration level:
-::
+following at the configuration level::
PACKAGECONFIG_remove_pn-python3 = "pgo"
@@ -411,8 +407,7 @@ The following miscellaneous changes occurred:
- Default to using the Thumb-2 instruction set for armv7a and above. If
you have any custom recipes that build software that needs to be
built with the ARM instruction set, change the recipe to set the
- instruction set as follows:
- ::
+ instruction set as follows::
ARM_INSTRUCTION_SET = "arm"
diff --git a/poky/documentation/ref-manual/migration-3.1.rst b/poky/documentation/ref-manual/migration-3.1.rst
index 84d32502e..7822285a8 100644
--- a/poky/documentation/ref-manual/migration-3.1.rst
+++ b/poky/documentation/ref-manual/migration-3.1.rst
@@ -71,8 +71,7 @@ when building a simple image such as core-image-minimal. If you do not
need runtime tests enabled for core components, then it is recommended
that you remove "ptest" from
:term:`DISTRO_FEATURES` to save a significant
-amount of build time e.g. by adding the following in your configuration:
-::
+amount of build time e.g. by adding the following in your configuration::
DISTRO_FEATURES_remove = "ptest"
@@ -179,12 +178,12 @@ parameter instead of the earlier ``name`` which overlapped with the
generic ``name`` parameter. All recipes using the npm fetcher will need
to be changed as a result.
-An example of the new scheme: ::
+An example of the new scheme::
SRC_URI = "npm://registry.npmjs.org;package=array-flatten;version=1.1.1 \
npmsw://${THISDIR}/npm-shrinkwrap.json"
-Another example where the sources are fetched from git rather than an npm repository: ::
+Another example where the sources are fetched from git rather than an npm repository::
SRC_URI = "git://github.com/foo/bar.git;protocol=https \
npmsw://${THISDIR}/npm-shrinkwrap.json"
diff --git a/poky/documentation/ref-manual/migration-3.2.rst b/poky/documentation/ref-manual/migration-3.2.rst
index 39743af70..956a56f62 100644
--- a/poky/documentation/ref-manual/migration-3.2.rst
+++ b/poky/documentation/ref-manual/migration-3.2.rst
@@ -90,12 +90,12 @@ If you have anonymous python or in-line python conditionally adding
dependencies in your custom recipes, and you intend for those recipes to
work with multilib, then you will need to ensure that ``${MLPREFIX}``
is prefixed on the package names in the dependencies, for example
-(from the ``glibc`` recipe): ::
+(from the ``glibc`` recipe)::
RRECOMMENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'ldconfig', '${MLPREFIX}ldconfig', '', d)}"
This also applies when conditionally adding packages to :term:`PACKAGES` where
-those packages have dependencies, for example (from the ``alsa-plugins`` recipe): ::
+those packages have dependencies, for example (from the ``alsa-plugins`` recipe)::
PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'alsa-plugins-pulseaudio-conf', '', d)}"
...
@@ -229,7 +229,7 @@ needs ``/etc/ld.so.conf`` to be present at image build time:
When some recipe installs libraries to a non-standard location, and
therefore installs in a file in ``/etc/ld.so.conf.d/foo.conf``, we
-need ``/etc/ld.so.conf`` containing: ::
+need ``/etc/ld.so.conf`` containing::
include /etc/ld.so.conf.d/*.conf
diff --git a/poky/documentation/ref-manual/qa-checks.rst b/poky/documentation/ref-manual/qa-checks.rst
index 6cb767d93..9cc4c577c 100644
--- a/poky/documentation/ref-manual/qa-checks.rst
+++ b/poky/documentation/ref-manual/qa-checks.rst
@@ -221,8 +221,7 @@ Errors and Warnings
Typically, the way to solve this performance issue is to add "-fPIC"
or "-fpic" to the compiler command-line options. For example, given
software that reads :term:`CFLAGS` when you build it,
- you could add the following to your recipe:
- ::
+ you could add the following to your recipe::
CFLAGS_append = " -fPIC "
@@ -240,8 +239,7 @@ Errors and Warnings
variable is being passed to the linker command. A common workaround
for this situation is to pass in ``LDFLAGS`` using
:term:`TARGET_CC_ARCH` within the recipe as
- follows:
- ::
+ follows::
TARGET_CC_ARCH += "${LDFLAGS}"
@@ -265,8 +263,7 @@ Errors and Warnings
The ``/usr/share/info/dir`` should not be packaged. Add the following
line to your :ref:`ref-tasks-install` task or to your
- ``do_install_append`` within the recipe as follows:
- ::
+ ``do_install_append`` within the recipe as follows::
rm ${D}${infodir}/dir
 
@@ -675,7 +672,7 @@ Errors and Warnings
task. Patch fuzz is a situation when the ``patch`` tool ignores some of the context
lines in order to apply the patch. Consider this example:
- Patch to be applied: ::
+ Patch to be applied::
--- filename
+++ filename
@@ -687,7 +684,7 @@ Errors and Warnings
context line 5
context line 6
- Original source code: ::
+ Original source code::
different context line 1
different context line 2
@@ -696,7 +693,7 @@ Errors and Warnings
different context line 5
different context line 6
- Outcome (after applying patch with fuzz): ::
+ Outcome (after applying patch with fuzz)::
different context line 1
different context line 2
@@ -716,14 +713,14 @@ Errors and Warnings
*How to eliminate patch fuzz warnings*
Use the ``devtool`` command as explained by the warning. First, unpack the
- source into devtool workspace: ::
+ source into devtool workspace::
devtool modify <recipe>
This will apply all of the patches, and create new commits out of them in
the workspace - with the patch context updated.
- Then, replace the patches in the recipe layer: ::
+ Then, replace the patches in the recipe layer::
devtool finish --force-patch-refresh <recipe> <layer_path>
diff --git a/poky/documentation/ref-manual/structure.rst b/poky/documentation/ref-manual/structure.rst
index 0f2093a8d..f8dc7d282 100644
--- a/poky/documentation/ref-manual/structure.rst
+++ b/poky/documentation/ref-manual/structure.rst
@@ -153,8 +153,7 @@ When you run this script, your Yocto Project environment is set up, a
:term:`Build Directory` is created, your working
directory becomes the Build Directory, and you are presented with some
simple suggestions as to what to do next, including a list of some
-possible targets to build. Here is an example:
-::
+possible targets to build. Here is an example::
$ source oe-init-build-env
@@ -185,8 +184,7 @@ creates the ``build/`` directory in your current working directory. If
you provide a Build Directory argument when you ``source`` the script,
you direct the OpenEmbedded build system to create a Build Directory of
your choice. For example, the following command creates a Build
-Directory named ``mybuilds/`` that is outside of the :term:`Source Directory`:
-::
+Directory named ``mybuilds/`` that is outside of the :term:`Source Directory`::
$ source oe-init-build-env ~/mybuilds
@@ -269,8 +267,7 @@ and to ``meta/conf/`` when you are building from the OpenEmbedded-Core
environment. Because the script variable points to the source of the
``local.conf.sample`` file, this implies that you can configure your
build environment from any layer by setting the variable in the
-top-level build environment setup script as follows:
-::
+top-level build environment setup script as follows::
TEMPLATECONF=your_layer/conf
@@ -309,8 +306,7 @@ Project development environment, and to ``meta/conf/`` when you are
building from the OpenEmbedded-Core environment. Because the script
variable points to the source of the ``bblayers.conf.sample`` file, this
implies that you can base your build from any layer by setting the
-variable in the top-level build environment setup script as follows:
-::
+variable in the top-level build environment setup script as follows::
TEMPLATECONF=your_layer/conf
@@ -463,8 +459,7 @@ image again.
If you do accidentally delete files here, you will need to force them to
be re-created. In order to do that, you will need to know the target
that produced them. For example, these commands rebuild and re-create
-the kernel files:
-::
+the kernel files::
$ bitbake -c clean virtual/kernel
$ bitbake virtual/kernel
@@ -535,8 +530,7 @@ recipe-specific :term:`WORKDIR` directories. Thus, the
This directory holds information that BitBake uses for accounting
purposes to track what tasks have run and when they have run. The
directory is sub-divided by architecture, package name, and version.
-Following is an example:
-::
+Following is an example::
stamps/all-poky-linux/distcc-config/1.0-r0.do_build-2fdd....2do
diff --git a/poky/documentation/ref-manual/system-requirements.rst b/poky/documentation/ref-manual/system-requirements.rst
index 80378cedb..4fa4d3ef5 100644
--- a/poky/documentation/ref-manual/system-requirements.rst
+++ b/poky/documentation/ref-manual/system-requirements.rst
@@ -120,8 +120,7 @@ supported Ubuntu or Debian Linux distribution:
might experience QEMU build failures due to the package installing
its own custom ``/usr/include/linux/soundcard.h`` on the Debian
system. If you run into this situation, either of the following
- solutions exist:
- ::
+ solutions exist::
$ sudo apt-get build-dep qemu
$ sudo apt-get remove oss4-dev
@@ -132,14 +131,12 @@ supported Ubuntu or Debian Linux distribution:
$ sudo pip3 install GitPython pylint==1.9.5
-- *Essentials:* Packages needed to build an image on a headless system:
- ::
+- *Essentials:* Packages needed to build an image on a headless system::
$ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL;
- *Documentation:* Packages needed if you are going to build out the
- Yocto Project documentation manuals:
- ::
+ Yocto Project documentation manuals::
$ sudo apt-get install make python3-pip
&PIP3_HOST_PACKAGES_DOC;
@@ -157,14 +154,12 @@ The following list shows the required packages by function given a
supported Fedora Linux distribution:
- *Essentials:* Packages needed to build an image for a headless
- system:
- ::
+ system::
$ sudo dnf install &FEDORA_HOST_PACKAGES_ESSENTIAL;
- *Documentation:* Packages needed if you are going to build out the
- Yocto Project documentation manuals:
- ::
+ Yocto Project documentation manuals::
$ sudo dnf install make python3-pip which
&PIP3_HOST_PACKAGES_DOC;
@@ -176,14 +171,12 @@ The following list shows the required packages by function given a
supported openSUSE Linux distribution:
- *Essentials:* Packages needed to build an image for a headless
- system:
- ::
+ system::
$ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL;
- *Documentation:* Packages needed if you are going to build out the
- Yocto Project documentation manuals:
- ::
+ Yocto Project documentation manuals::
$ sudo zypper install make python3-pip which
&PIP3_HOST_PACKAGES_DOC;
@@ -196,8 +189,7 @@ The following list shows the required packages by function given a
supported CentOS-7 Linux distribution:
- *Essentials:* Packages needed to build an image for a headless
- system:
- ::
+ system::
$ sudo yum install &CENTOS7_HOST_PACKAGES_ESSENTIAL;
@@ -212,8 +204,7 @@ supported CentOS-7 Linux distribution:
``epel-release``.
- *Documentation:* Packages needed if you are going to build out the
- Yocto Project documentation manuals:
- ::
+ Yocto Project documentation manuals::
$ sudo yum install make python3-pip which
&PIP3_HOST_PACKAGES_DOC;
@@ -225,8 +216,7 @@ The following list shows the required packages by function given a
supported CentOS-8 Linux distribution:
- *Essentials:* Packages needed to build an image for a headless
- system:
- ::
+ system::
$ sudo dnf install &CENTOS8_HOST_PACKAGES_ESSENTIAL;
@@ -244,8 +234,7 @@ supported CentOS-8 Linux distribution:
``epel-release``.
- *Documentation:* Packages needed if you are going to build out the
- Yocto Project documentation manuals:
- ::
+ Yocto Project documentation manuals::
$ sudo dnf install make python3-pip which
&PIP3_HOST_PACKAGES_DOC;
@@ -287,8 +276,7 @@ The ``install-buildtools`` script is the easiest of the three methods by
which you can get these tools. It downloads a pre-built buildtools
installer and automatically installs the tools for you:
-1. Execute the ``install-buildtools`` script. Here is an example:
- ::
+1. Execute the ``install-buildtools`` script. Here is an example::
$ cd poky
$ scripts/install-buildtools --without-extended-buildtools \
@@ -302,22 +290,19 @@ installer and automatically installs the tools for you:
installation is functional.
To avoid the need of ``sudo`` privileges, the ``install-buildtools``
- script will by default tell the installer to install in:
- ::
+ script will by default tell the installer to install in::
/path/to/poky/buildtools
If your host development system needs the additional tools provided
in the ``buildtools-extended`` tarball, you can instead execute the
- ``install-buildtools`` script with the default parameters:
- ::
+ ``install-buildtools`` script with the default parameters::
$ cd poky
$ scripts/install-buildtools
2. Source the tools environment setup script by using a command like the
- following:
- ::
+ following::
$ source /path/to/poky/buildtools/environment-setup-x86_64-pokysdk-linux
@@ -342,13 +327,11 @@ steps:
1. Locate and download the ``*.sh`` at &YOCTO_RELEASE_DL_URL;/buildtools/
2. Execute the installation script. Here is an example for the
- traditional installer:
- ::
+ traditional installer::
$ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh
- Here is an example for the extended installer:
- ::
+ Here is an example for the extended installer::
$ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-&DISTRO;.sh
@@ -357,8 +340,7 @@ steps:
``/home/your-username/buildtools``
3. Source the tools environment setup script by using a command like the
- following:
- ::
+ following::
$ source /home/your_username/buildtools/environment-setup-i586-poky-linux
@@ -390,13 +372,11 @@ installer:
your build environment with the setup script
(:ref:`structure-core-script`).
-2. Run the BitBake command to build the tarball:
- ::
+2. Run the BitBake command to build the tarball::
$ bitbake buildtools-tarball
- or run the BitBake command to build the extended tarball:
- ::
+ or run the BitBake command to build the extended tarball::
$ bitbake buildtools-extended-tarball
@@ -415,13 +395,11 @@ installer:
4. On the machine that does not meet the requirements, run the ``.sh``
file to install the tools. Here is an example for the traditional
- installer:
- ::
+ installer::
$ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh
- Here is an example for the extended installer:
- ::
+ Here is an example for the extended installer::
$ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-&DISTRO;.sh
@@ -430,8 +408,7 @@ installer:
``/home/your_username/buildtools``
5. Source the tools environment setup script by using a command like the
- following:
- ::
+ following::
$ source /home/your_username/buildtools/environment-setup-x86_64-poky-linux
diff --git a/poky/documentation/ref-manual/tasks.rst b/poky/documentation/ref-manual/tasks.rst
index 9fe1c296a..001edf6bb 100644
--- a/poky/documentation/ref-manual/tasks.rst
+++ b/poky/documentation/ref-manual/tasks.rst
@@ -93,8 +93,7 @@ output from ``${DEPLOYDIR}`` to ``${DEPLOY_DIR_IMAGE}``.
The ``do_deploy`` task is not added as a task by default and
consequently needs to be added manually. If you want the task to run
after :ref:`ref-tasks-compile`, you can add it by doing
-the following:
-::
+the following::
addtask deploy after do_compile
@@ -103,8 +102,7 @@ Adding ``do_deploy`` after other tasks works the same way.
.. note::
You do not need to add ``before do_build`` to the ``addtask`` command
- (though it is harmless), because the ``base`` class contains the following:
- ::
+ (though it is harmless), because the ``base`` class contains the following::
do_build[recrdeptask] += "do_deploy"
@@ -302,13 +300,11 @@ Patch files, by default, are ``*.patch`` and ``*.diff`` files created
and kept in a subdirectory of the directory holding the recipe file. For
example, consider the
:yocto_git:`bluez5 </poky/tree/meta/recipes-connectivity/bluez5>`
-recipe from the OE-Core layer (i.e. ``poky/meta``):
-::
+recipe from the OE-Core layer (i.e. ``poky/meta``)::
poky/meta/recipes-connectivity/bluez5
-This recipe has two patch files located here:
-::
+This recipe has two patch files located here::
poky/meta/recipes-connectivity/bluez5/bluez5
@@ -323,8 +319,7 @@ and patch files needed to build the package.
As mentioned earlier, the build system treats files whose file types are
``.patch`` and ``.diff`` as patch files. However, you can use the
"apply=yes" parameter with the ``SRC_URI`` statement to indicate any
-file as a patch file:
-::
+file as a patch file::
SRC_URI = " \
git://path_to_repo/some_package \
@@ -334,8 +329,7 @@ file as a patch file:
Conversely, if you have a directory full of patch files and you want to
exclude some so that the ``do_patch`` task does not apply them during
the patch phase, you can use the "apply=no" parameter with the
-``SRC_URI`` statement:
-::
+``SRC_URI`` statement::
SRC_URI = " \
git://path_to_repo/some_package \
@@ -455,8 +449,7 @@ of the recipe exists upstream and a status of not updated, updated, or
unknown.
To check the upstream version and status of a recipe, use the following
-devtool commands:
-::
+devtool commands::
$ devtool latest-version
$ devtool check-upgrade-status
@@ -467,8 +460,7 @@ chapter for more information on
section for information on checking the upgrade status of a recipe.
To build the ``checkpkg`` task, use the ``bitbake`` command with the
-"-c" option and task name:
-::
+"-c" option and task name::
$ bitbake core-image-minimal -c checkpkg
@@ -494,8 +486,7 @@ Removes all output files for a target from the
:ref:`ref-tasks-install`, and
:ref:`ref-tasks-package`).
-You can run this task using BitBake as follows:
-::
+You can run this task using BitBake as follows::
$ bitbake -c clean recipe
@@ -519,8 +510,7 @@ downloaded source files for a target (i.e. the contents of
identical to the :ref:`ref-tasks-cleansstate` task
with the added removal of downloaded source files.
-You can run this task using BitBake as follows:
-::
+You can run this task using BitBake as follows::
$ bitbake -c cleanall recipe
@@ -540,8 +530,7 @@ target. Essentially, the ``do_cleansstate`` task is identical to the
shared state (:ref:`sstate <overview-manual/concepts:shared state cache>`)
cache.
-You can run this task using BitBake as follows:
-::
+You can run this task using BitBake as follows::
$ bitbake -c cleansstate recipe
@@ -553,8 +542,7 @@ scratch is guaranteed.
The ``do_cleansstate`` task cannot remove sstate from a remote sstate
mirror. If you need to build a target from scratch using remote mirrors, use
- the "-f" option as follows:
- ::
+ the "-f" option as follows::
$ bitbake -f -c do_cleansstate target
@@ -687,8 +675,7 @@ changes made by the user with other methods (i.e. using
(:ref:`ref-tasks-kernel_menuconfig`). Once the
file of differences is created, it can be used to create a config
fragment that only contains the differences. You can invoke this task
-from the command line as follows:
-::
+from the command line as follows::
$ bitbake linux-yocto -c diffconfig
@@ -718,8 +705,7 @@ Validates the configuration produced by the
configuration does not appear in the final ``.config`` file or when you
override a policy configuration in a hardware configuration fragment.
You can run this task explicitly and view the output by using the
-following command:
-::
+following command::
$ bitbake linux-yocto -c kernel_configcheck -f
@@ -750,8 +736,7 @@ tool, which you then use to modify the kernel configuration.
.. note::
- You can also invoke this tool from the command line as follows:
- ::
+ You can also invoke this tool from the command line as follows::
$ bitbake linux-yocto -c menuconfig
@@ -793,8 +778,7 @@ instead of the default defconfig. The saved defconfig contains the
differences between the default defconfig and the changes made by the
user using other methods (i.e. the
:ref:`ref-tasks-kernel_menuconfig` task. You
-can invoke the task using the following command:
-::
+can invoke the task using the following command::
$ bitbake linux-yocto -c savedefconfig
diff --git a/poky/documentation/ref-manual/terms.rst b/poky/documentation/ref-manual/terms.rst
index 32bb75b27..0af9af648 100644
--- a/poky/documentation/ref-manual/terms.rst
+++ b/poky/documentation/ref-manual/terms.rst
@@ -26,8 +26,7 @@ universal, the list includes them just in case:
When you name an append file, you can use the "``%``" wildcard character
to allow for matching recipe names. For example, suppose you have an
- append file named as follows:
- ::
+ append file named as follows::
busybox_1.21.%.bbappend
diff --git a/poky/documentation/ref-manual/variables.rst b/poky/documentation/ref-manual/variables.rst
index 74ac12bf9..c339d45e1 100644
--- a/poky/documentation/ref-manual/variables.rst
+++ b/poky/documentation/ref-manual/variables.rst
@@ -24,8 +24,7 @@ system and gives an overview of their function and contents.
ABI extensions are set in the machine include files. For example, the
``meta/conf/machine/include/arm/arch-arm.inc`` file sets the
- following extension:
- ::
+ following extension::
ABIEXTENSION = "eabi"
@@ -37,8 +36,7 @@ system and gives an overview of their function and contents.
requirement on the existence of the package.
Like all package-controlling variables, you must always use them in
- conjunction with a package name override, as in:
- ::
+ conjunction with a package name override, as in::
ALLOW_EMPTY_${PN} = "1"
ALLOW_EMPTY_${PN}-dev = "1"
@@ -54,8 +52,7 @@ system and gives an overview of their function and contents.
To use the variable, list out the package's commands that also exist
as part of another package. For example, if the ``busybox`` package
has four commands that also exist as part of another package, you
- identify them as follows:
- ::
+ identify them as follows::
ALTERNATIVE_busybox = "sh sed test bracket"
@@ -68,8 +65,7 @@ system and gives an overview of their function and contents.
locations. For example, if the ``bracket`` command provided by the
``busybox`` package is duplicated through another package, you must
use the ``ALTERNATIVE_LINK_NAME`` variable to specify the actual
- location:
- ::
+ location::
ALTERNATIVE_LINK_NAME[bracket] = "/usr/bin/["
@@ -90,8 +86,7 @@ system and gives an overview of their function and contents.
default regardless of the command name or package, a default for
specific duplicated commands regardless of the package, or a default
for specific commands tied to particular packages. Here are the
- available syntax forms:
- ::
+ available syntax forms::
ALTERNATIVE_PRIORITY = "priority"
ALTERNATIVE_PRIORITY[name] = "priority"
@@ -107,8 +102,7 @@ system and gives an overview of their function and contents.
default location for all duplicated commands regardless of the
command name or package, a default for specific duplicated commands
regardless of the package, or a default for specific commands tied to
- particular packages. Here are the available syntax forms:
- ::
+ particular packages. Here are the available syntax forms::
ALTERNATIVE_TARGET = "target"
ALTERNATIVE_TARGET[name] = "target"
@@ -159,8 +153,7 @@ system and gives an overview of their function and contents.
determines the type of information used to create a released archive.
You can use this variable to create archives of patched source,
original source, configured source, and so forth by employing the
- following variable flags (varflags):
- ::
+ following variable flags (varflags)::
ARCHIVER_MODE[src] = "original" # Uses original (unpacked) source files.
ARCHIVER_MODE[src] = "patched" # Uses patched source files. This is the default.
@@ -193,14 +186,12 @@ system and gives an overview of their function and contents.
system. Separate multiple entries using spaces.
As an example, use the following form to add an ``shlib`` provider of
- shlibname in packagename with the optional version:
- ::
+ shlibname in packagename with the optional version::
shlibname:packagename[_version]
Here is an example that adds a shared library named ``libEGL.so.1``
- as being provided by the ``libegl-implementation`` package:
- ::
+ as being provided by the ``libegl-implementation`` package::
ASSUME_SHLIBS = "libEGL.so.1:libegl-implementation"
@@ -224,8 +215,7 @@ system and gives an overview of their function and contents.
:term:`AUTOREV`
When ``SRCREV`` is set to the value of this variable, it specifies to
- use the latest source revision in the repository. Here is an example:
- ::
+ use the latest source revision in the repository. Here is an example::
SRCREV = "${AUTOREV}"
@@ -286,8 +276,7 @@ system and gives an overview of their function and contents.
The directory within the :term:`Build Directory` in
which the OpenEmbedded build system places generated objects during a
recipe's build process. By default, this directory is the same as the
- :term:`S` directory, which is defined as:
- ::
+ :term:`S` directory, which is defined as::
S = "${WORKDIR}/${BP}"
@@ -301,15 +290,13 @@ system and gives an overview of their function and contents.
packages are packages installed only through the
:term:`RRECOMMENDS` variable. You can prevent any
of these "recommended" packages from being installed by listing them
- with the ``BAD_RECOMMENDATIONS`` variable:
- ::
+ with the ``BAD_RECOMMENDATIONS`` variable::
BAD_RECOMMENDATIONS = "package_name package_name package_name ..."
You can set this variable globally in your ``local.conf`` file or you
can attach it to a specific image recipe by using the recipe name
- override:
- ::
+ override::
BAD_RECOMMENDATIONS_pn-target_image = "package_name"
@@ -394,8 +381,7 @@ system and gives an overview of their function and contents.
You can change the default behavior by setting this variable to "1",
"yes", or "true" in your ``local.conf`` file, which is located in the
- :term:`Build Directory`: Here is an example:
- ::
+ :term:`Build Directory`: Here is an example::
BB_DANGLINGAPPENDS_WARNONLY = "1"
@@ -444,8 +430,7 @@ system and gives an overview of their function and contents.
not specify G, M, or K, Kbytes is assumed by
default. Do not use GB, MB, or KB.
- Here are some examples:
- ::
+ Here are some examples::
BB_DISKMON_DIRS = "ABORT,${TMPDIR},1G,100K WARN,${SSTATE_DIR},1G,100K"
BB_DISKMON_DIRS = "STOPTASKS,${TMPDIR},1G"
@@ -485,8 +470,7 @@ system and gives an overview of their function and contents.
If you do not provide a ``BB_DISKMON_WARNINTERVAL`` variable and you
do use ``BB_DISKMON_DIRS`` with the "WARN" action, the disk
- monitoring interval defaults to the following:
- ::
+ monitoring interval defaults to the following::
BB_DISKMON_WARNINTERVAL = "50M,5K"
@@ -509,8 +493,7 @@ system and gives an overview of their function and contents.
G, M, or K for Gbytes, Mbytes, or Kbytes,
respectively. You cannot use GB, MB, or KB.
- Here is an example:
- ::
+ Here is an example::
BB_DISKMON_DIRS = "WARN,${SSTATE_DIR},1G,100K"
BB_DISKMON_WARNINTERVAL = "50M,5K"
@@ -566,8 +549,7 @@ system and gives an overview of their function and contents.
long the BitBake server stays resident between invocations.
For example, the following statement in your ``local.conf`` file
- instructs the server to be unloaded after 20 seconds of inactivity:
- ::
+ instructs the server to be unloaded after 20 seconds of inactivity::
BB_SERVER_TIMEOUT = "20"
@@ -585,8 +567,7 @@ system and gives an overview of their function and contents.
"``multilib:``\ multilib_name".
To build a different variant of the recipe with a minimal amount of
- code, it usually is as simple as adding the following to your recipe:
- ::
+ code, it usually is as simple as adding the following to your recipe::
BBCLASSEXTEND =+ "native nativesdk"
BBCLASSEXTEND =+ "multilib:multilib_name"
@@ -662,8 +643,7 @@ system and gives an overview of their function and contents.
Use the following form for ``BBFILES_DYNAMIC``:
collection_name:filename_pattern The following example identifies two
- collection names and two filename patterns:
- ::
+ collection names and two filename patterns::
BBFILES_DYNAMIC += " \
clang-layer:${LAYERDIR}/bbappends/meta-clang/*/*/*.bbappend \
@@ -691,8 +671,7 @@ system and gives an overview of their function and contents.
:term:`BBLAYERS`
Lists the layers to enable during the build. This variable is defined
in the ``bblayers.conf`` configuration file in the :term:`Build Directory`.
- Here is an example:
- ::
+ Here is an example::
BBLAYERS = " \
/home/scottrif/poky/meta \
@@ -721,14 +700,13 @@ system and gives an overview of their function and contents.
The following example uses a complete regular expression to tell
BitBake to ignore all recipe and recipe append files in the
- ``meta-ti/recipes-misc/`` directory:
- ::
+ ``meta-ti/recipes-misc/`` directory::
BBMASK = "meta-ti/recipes-misc/"
If you want to mask out multiple directories or recipes, you can
specify multiple regular expression fragments. This next example
- masks out multiple directories and individual recipes: ::
+ masks out multiple directories and individual recipes::
BBMASK += "/meta-ti/recipes-misc/ meta-ti/recipes-ti/packagegroup/"
BBMASK += "/meta-oe/recipes-support/"
@@ -746,8 +724,7 @@ system and gives an overview of their function and contents.
building targets with multiple configurations. Use this variable in
your ``conf/local.conf`` configuration file. Specify a
multiconfigname for each configuration file you are using. For
- example, the following line specifies three configuration files:
- ::
+ example, the following line specifies three configuration files::
BBMULTICONFIG = "configA configB configC"
@@ -770,8 +747,7 @@ system and gives an overview of their function and contents.
If you run BitBake from a directory outside of the
:term:`Build Directory`, you must be sure to set ``BBPATH``
to point to the Build Directory. Set the variable as you would any
- environment variable and then run BitBake:
- ::
+ environment variable and then run BitBake::
$ BBPATH = "build_directory"
$ export BBPATH
@@ -783,8 +759,7 @@ system and gives an overview of their function and contents.
BitBake remote server.
Use the following format to export the variable to the BitBake
- environment:
- ::
+ environment::
export BBSERVER=localhost:$port
@@ -803,8 +778,7 @@ system and gives an overview of their function and contents.
replaced.
To add multiple scripts, separate them by spaces. Here is an example
- from the ``libpng`` recipe:
- ::
+ from the ``libpng`` recipe::
BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config"
@@ -834,8 +808,7 @@ system and gives an overview of their function and contents.
:term:`BP`
The base recipe name and version but without any special recipe name
suffix (i.e. ``-native``, ``lib64-``, and so forth). ``BP`` is
- comprised of the following:
- ::
+ comprised of the following::
${BPN}-${PV}
@@ -975,8 +948,7 @@ system and gives an overview of their function and contents.
you should set this value to "1".
By default, the ``buildhistory`` class does not commit the build
- history output in a local Git repository:
- ::
+ history output in a local Git repository::
BUILDHISTORY_COMMIT ?= "0"
@@ -992,8 +964,7 @@ system and gives an overview of their function and contents.
email@host". Providing an email address or host that is not valid
does not produce an error.
- By default, the ``buildhistory`` class sets the variable as follows:
- ::
+ By default, the ``buildhistory`` class sets the variable as follows::
BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory <buildhistory@${DISTRO}>"
@@ -1003,8 +974,7 @@ system and gives an overview of their function and contents.
information is kept. For more information on how the variable works,
see the ``buildhistory.class``.
- By default, the ``buildhistory`` class sets the directory as follows:
- ::
+ By default, the ``buildhistory`` class sets the directory as follows::
BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory"
@@ -1032,8 +1002,7 @@ system and gives an overview of their function and contents.
each file staged (i.e. the output of the task).
By default, the ``buildhistory`` class enables the following
- features:
- ::
+ features::
BUILDHISTORY_FEATURES ?= "image package sdk"
@@ -1049,8 +1018,7 @@ system and gives an overview of their function and contents.
Consequently, you can include files that might not always be present.
By default, the ``buildhistory`` class provides paths to the
- following files:
- ::
+ following files::
BUILDHISTORY_IMAGE_FILES ?= "/etc/passwd /etc/group"
@@ -1067,8 +1035,7 @@ system and gives an overview of their function and contents.
that you have set up manually using ``git remote`` within the local
repository.
- By default, the ``buildhistory`` class sets the variable as follows:
- ::
+ By default, the ``buildhistory`` class sets the variable as follows::
BUILDHISTORY_PUSH_REPO ?= ""
@@ -1152,8 +1119,7 @@ system and gives an overview of their function and contents.
``bitbake.conf`` file.
As an example, the following override allows you to install extra
- files, but only when building for the target:
- ::
+ files, but only when building for the target::
do_install_append_class-target() {
install my-extra-file ${D}${sysconfdir}
@@ -1161,8 +1127,7 @@ system and gives an overview of their function and contents.
Here is an example where ``FOO`` is set to
"native" when building for the build host, and to "other" when not
- building for the build host:
- ::
+ building for the build host::
FOO_class-native = "native"
FOO = "other"
@@ -1235,8 +1200,7 @@ system and gives an overview of their function and contents.
To add a new feature item pointing to a wildcard, use a variable flag
to specify the feature item name and use the value to specify the
- wildcard. Here is an example:
- ::
+ wildcard. Here is an example::
COMPLEMENTARY_GLOB[dev-pkgs] = '*-dev'
@@ -1268,8 +1232,7 @@ system and gives an overview of their function and contents.
To use the ``CONFFILES`` variable, provide a package name override
that identifies the resulting package. Then, provide a
- space-separated list of files. Here is an example:
- ::
+ space-separated list of files. Here is an example::
CONFFILES_${PN} += "${sysconfdir}/file1 \
${sysconfdir}/file2 ${sysconfdir}/file3"
@@ -1524,8 +1487,7 @@ system and gives an overview of their function and contents.
The destination directory. The location in the :term:`Build Directory`
where components are installed by the
:ref:`ref-tasks-install` task. This location defaults
- to:
- ::
+ to::
${WORKDIR}/image
@@ -1547,8 +1509,7 @@ system and gives an overview of their function and contents.
which is the default behavior, ``DEBIAN_NOAUTONAME`` specifies a
particular package should not be renamed according to Debian library
package naming. You must use the package name as an override when you
- set this variable. Here is an example from the ``fontconfig`` recipe:
- ::
+ set this variable. Here is an example from the ``fontconfig`` recipe::
DEBIAN_NOAUTONAME_fontconfig-utils = "1"
@@ -1558,17 +1519,10 @@ system and gives an overview of their function and contents.
the library name for an individual package. Overriding the library
name in these cases is rare. You must use the package name as an
override when you set this variable. Here is an example from the
- ``dbus`` recipe:
- ::
+ ``dbus`` recipe::
DEBIANNAME_${PN} = "dbus-1"
- :term:`DEBUGINFOD_URLS`
- Points to the URL of the "debuginfod" server. Such that for every
- debugging information lookup, the debuginfod client will query the
- server and return the requested information. You set this variable
- in your ``local.conf`` file.
-
:term:`DEBUG_BUILD`
Specifies to build packages with debugging information. This
influences the value of the ``SELECTED_OPTIMIZATION`` variable.
@@ -1610,8 +1564,7 @@ system and gives an overview of their function and contents.
needed by the recipe at build time.
As an example, consider a recipe ``foo`` that contains the following
- assignment:
- ::
+ assignment::
DEPENDS = "bar"
@@ -1635,8 +1588,7 @@ system and gives an overview of their function and contents.
As another example, ``DEPENDS`` can also be used to add utilities
that run on the build machine during the build. For example, a recipe
that makes use of a code generator built by the recipe ``codegen``
- might have the following:
- ::
+ might have the following::
DEPENDS = "codegen-native"
@@ -1702,8 +1654,7 @@ system and gives an overview of their function and contents.
The BitBake configuration file initially defines the
``DEPLOY_DIR_DEB`` variable as a sub-folder of
- :term:`DEPLOY_DIR`:
- ::
+ :term:`DEPLOY_DIR`::
DEPLOY_DIR_DEB = "${DEPLOY_DIR}/deb"
@@ -1738,8 +1689,7 @@ system and gives an overview of their function and contents.
"package_ipk".
The BitBake configuration file initially defines this variable as a
- sub-folder of :term:`DEPLOY_DIR`:
- ::
+ sub-folder of :term:`DEPLOY_DIR`::
DEPLOY_DIR_IPK = "${DEPLOY_DIR}/ipk"
@@ -1759,8 +1709,7 @@ system and gives an overview of their function and contents.
"package_rpm".
The BitBake configuration file initially defines this variable as a
- sub-folder of :term:`DEPLOY_DIR`:
- ::
+ sub-folder of :term:`DEPLOY_DIR`::
DEPLOY_DIR_RPM = "${DEPLOY_DIR}/rpm"
@@ -1780,8 +1729,7 @@ system and gives an overview of their function and contents.
"package_tar".
The BitBake configuration file initially defines this variable as a
- sub-folder of :term:`DEPLOY_DIR`:
- ::
+ sub-folder of :term:`DEPLOY_DIR`::
DEPLOY_DIR_TAR = "${DEPLOY_DIR}/tar"
@@ -1796,8 +1744,7 @@ system and gives an overview of their function and contents.
:term:`DEPLOYDIR`
When inheriting the :ref:`deploy <ref-classes-deploy>` class, the
``DEPLOYDIR`` points to a temporary work area for deployed files that
- is set in the ``deploy`` class as follows:
- ::
+ is set in the ``deploy`` class as follows::
DEPLOYDIR = "${WORKDIR}/deploy-${PN}"
@@ -1824,8 +1771,7 @@ system and gives an overview of their function and contents.
:term:`Source Directory`.
Within that ``poky.conf`` file, the ``DISTRO`` variable is set as
- follows:
- ::
+ follows::
DISTRO = "poky"
@@ -1899,8 +1845,7 @@ system and gives an overview of their function and contents.
able to reuse the default
:term:`DISTRO_FEATURES` options without the
need to write out the full set. Here is an example that uses
- ``DISTRO_FEATURES_DEFAULT`` from a custom distro configuration file:
- ::
+ ``DISTRO_FEATURES_DEFAULT`` from a custom distro configuration file::
DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} myfeature"
@@ -1948,8 +1893,7 @@ system and gives an overview of their function and contents.
of the :term:`Source Directory`.
Within that ``poky.conf`` file, the ``DISTRO_NAME`` variable is set
- as follows:
- ::
+ as follows::
DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
@@ -2065,8 +2009,7 @@ system and gives an overview of their function and contents.
You can set ``ERR_REPORT_DIR`` to the path you want the error
reporting tool to store the debug files as follows in your
- ``local.conf`` file:
- ::
+ ``local.conf`` file::
ERR_REPORT_DIR = "path"
@@ -2094,8 +2037,7 @@ system and gives an overview of their function and contents.
package's particular libraries only and not the whole package.
Use the ``EXCLUDE_FROM_SHLIBS`` variable by setting it to "1" for a
- particular package:
- ::
+ particular package::
EXCLUDE_FROM_SHLIBS = "1"
@@ -2129,8 +2071,7 @@ system and gives an overview of their function and contents.
The full package version specification as it appears on the final
packages produced by a recipe. The variable's value is normally used
to fix a runtime dependency to the exact same version of another
- package in the same recipe:
- ::
+ package in the same recipe::
RDEPENDS_${PN}-additional-module = "${PN} (= ${EXTENDPKGV})"
@@ -2230,8 +2171,7 @@ system and gives an overview of their function and contents.
Specifies additional options for the image creation command that has
been specified in :term:`IMAGE_CMD`. When setting
this variable, use an override for the associated image type. Here is
- an example:
- ::
+ an example::
EXTRA_IMAGECMD_ext3 ?= "-i 4096"
@@ -2255,8 +2195,7 @@ system and gives an overview of their function and contents.
added to the beginning of the environment variable ``PATH``. As an
example, the following prepends
"${STAGING_BINDIR_NATIVE}/foo:${STAGING_BINDIR_NATIVE}/bar:" to
- ``PATH``:
- ::
+ ``PATH``::
EXTRANATIVEPATH = "foo bar"
@@ -2294,8 +2233,7 @@ system and gives an overview of their function and contents.
The set list of commands you can configure using the
``EXTRA_USERS_PARAMS`` is shown in the ``extrausers`` class. These
- commands map to the normal Unix commands of the same names:
- ::
+ commands map to the normal Unix commands of the same names::
# EXTRA_USERS_PARAMS = "\
# useradd -p '' tester; \
@@ -2321,8 +2259,7 @@ system and gives an overview of their function and contents.
Defines one or more packages to include in an image when a specific
item is included in :term:`IMAGE_FEATURES`.
When setting the value, ``FEATURE_PACKAGES`` should have the name of
- the feature item as an override. Here is an example:
- ::
+ the feature item as an override. Here is an example::
FEATURE_PACKAGES_widget = "package1 package2"
@@ -2342,8 +2279,7 @@ system and gives an overview of their function and contents.
OPKG to support runtime package management of IPK packages. You set
this variable in your ``local.conf`` file.
- Consider the following example:
- ::
+ Consider the following example::
FEED_DEPLOYDIR_BASE_URI = "http://192.168.7.1/BOARD-dir"
@@ -2362,8 +2298,7 @@ system and gives an overview of their function and contents.
To use the ``FILES`` variable, provide a package name override that
identifies the resulting package. Then, provide a space-separated
list of files or paths that identify the files you want included as
- part of the resulting package. Here is an example:
- ::
+ part of the resulting package. Here is an example::
FILES_${PN} += "${bindir}/mydir1 ${bindir}/mydir2/myfile"
@@ -2398,8 +2333,7 @@ system and gives an overview of their function and contents.
symbolic link (symlink) for shared libraries on the target platform.
The following statement from the ``bitbake.conf`` shows how it is
- set:
- ::
+ set::
FILES_SOLIBSDEV ?= "${base_libdir}/lib*${SOLIBSDEV} ${libdir}/lib*${SOLIBSDEV}"
@@ -2413,8 +2347,7 @@ system and gives an overview of their function and contents.
Best practices dictate that you accomplish this by using
``FILESEXTRAPATHS`` from within a ``.bbappend`` file and that you
- prepend paths as follows:
- ::
+ prepend paths as follows::
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
@@ -2436,8 +2369,7 @@ system and gives an overview of their function and contents.
are directing BitBake to extend the path by prepending directories
to the search path.
- Here is another common use:
- ::
+ Here is another common use::
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
@@ -2445,15 +2377,13 @@ system and gives an overview of their function and contents.
``FILESPATH`` variable to include a directory named ``files`` that is
in the same directory as the corresponding append file.
- This next example specifically adds three paths:
- ::
+ This next example specifically adds three paths::
FILESEXTRAPATHS_prepend := "path_1:path_2:path_3:"
A final example shows how you can extend the search path and include
a :term:`MACHINE`-specific override, which is useful
- in a BSP layer:
- ::
+ in a BSP layer::
FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:"
@@ -2485,8 +2415,7 @@ system and gives an overview of their function and contents.
":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:conditional syntax (overrides)`"
section of the BitBake User Manual.
- By default, the ``FILESOVERRIDES`` variable is defined as:
- ::
+ By default, the ``FILESOVERRIDES`` variable is defined as::
FILESOVERRIDES = "${TRANSLATED_TARGET_ARCH}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}"
@@ -2507,8 +2436,7 @@ system and gives an overview of their function and contents.
The default value for the ``FILESPATH`` variable is defined in the
``base.bbclass`` class found in ``meta/classes`` in the
- :term:`Source Directory`:
- ::
+ :term:`Source Directory`::
FILESPATH = "${@base_set_filespath(["${FILE_DIRNAME}/${BP}", \
"${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files"], d)}"
@@ -2533,8 +2461,7 @@ system and gives an overview of their function and contents.
You can take advantage of this searching behavior in useful ways. For
example, consider a case where the following directory structure
- exists for general and machine-specific configurations:
- ::
+ exists for general and machine-specific configurations::
files/defconfig
files/MACHINEA/defconfig
@@ -2662,16 +2589,14 @@ system and gives an overview of their function and contents.
Programming (ROP) attacks much more difficult to execute.
By default the ``security_flags.inc`` file enables PIE by setting the
- variable as follows:
- ::
+ variable as follows::
GCCPIE ?= "--enable-default-pie"
:term:`GCCVERSION`
Specifies the default version of the GNU C Compiler (GCC) used for
compilation. By default, ``GCCVERSION`` is set to "8.x" in the
- ``meta/conf/distro/include/tcmode-default.inc`` include file:
- ::
+ ``meta/conf/distro/include/tcmode-default.inc`` include file::
GCCVERSION ?= "8.%"
@@ -2706,8 +2631,7 @@ system and gives an overview of their function and contents.
passed to the ``groupadd`` command if you wish to add a group to the
system when the package is installed.
- Here is an example from the ``dbus`` recipe:
- ::
+ Here is an example from the ``dbus`` recipe::
GROUPADD_PARAM_${PN} = "-r netdev"
@@ -2855,13 +2779,11 @@ system and gives an overview of their function and contents.
section.
Setting this variable to "1" in your ``local.conf`` disables the
- function:
- ::
+ function::
ICECC_DISABLED ??= "1"
- To enable the function, set the variable as follows:
- ::
+ To enable the function, set the variable as follows::
ICECC_DISABLED = ""
@@ -2946,8 +2868,7 @@ system and gives an overview of their function and contents.
installed name, separate it from the original name with a semi-colon
(;). Source files need to be located in
:term:`DEPLOY_DIR_IMAGE`. Here are two
- examples:
- ::
+ examples::
IMAGE_EFI_BOOT_FILES = "${KERNEL_IMAGETYPE};bz2"
IMAGE_EFI_BOOT_FILES = "${KERNEL_IMAGETYPE} microcode.cpio"
@@ -2956,8 +2877,7 @@ system and gives an overview of their function and contents.
this case, the destination file must have the same name as the base
name of the source file path. To install files into a directory
within the target location, pass its name after a semi-colon (;).
- Here are two examples:
- ::
+ Here are two examples::
IMAGE_EFI_BOOT_FILES = "boot/loader/*"
IMAGE_EFI_BOOT_FILES = "boot/loader/*;boot/"
@@ -2982,8 +2902,7 @@ system and gives an overview of their function and contents.
installed name, separate it from the original name with a semi-colon
(;). Source files need to be located in
:term:`DEPLOY_DIR_IMAGE`. Here are two
- examples:
- ::
+ examples::
IMAGE_BOOT_FILES = "u-boot.img uImage;kernel"
IMAGE_BOOT_FILES = "u-boot.${UBOOT_SUFFIX} ${KERNEL_IMAGETYPE}"
@@ -2992,8 +2911,7 @@ system and gives an overview of their function and contents.
this case, the destination file must have the same name as the base
name of the source file path. To install files into a directory
within the target location, pass its name after a semi-colon (;).
- Here are two examples:
- ::
+ Here are two examples::
IMAGE_BOOT_FILES = "bcm2835-bootfiles/*"
IMAGE_BOOT_FILES = "bcm2835-bootfiles/*;boot/"
@@ -3026,8 +2944,7 @@ system and gives an overview of their function and contents.
type, which corresponds to the value set in
:term:`IMAGE_FSTYPES`, (e.g. ``ext3``,
``btrfs``, and so forth). When setting this variable, you should use
- an override for the associated type. Here is an example:
- ::
+ an override for the associated type. Here is an example::
IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} \
--faketime --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
@@ -3071,8 +2988,7 @@ system and gives an overview of their function and contents.
Specifies the formats the OpenEmbedded build system uses during the
build when creating the root filesystem. For example, setting
``IMAGE_FSTYPES`` as follows causes the build system to create root
- filesystems using two formats: ``.ext3`` and ``.tar.bz2``:
- ::
+ filesystems using two formats: ``.ext3`` and ``.tar.bz2``::
IMAGE_FSTYPES = "ext3 tar.bz2"
@@ -3103,8 +3019,7 @@ system and gives an overview of their function and contents.
auto-generated entries in ``IMAGE_INSTALL`` in addition to its
default contents.
- When you use this variable, it is best to use it as follows:
- ::
+ When you use this variable, it is best to use it as follows::
IMAGE_INSTALL_append = " package-name"
@@ -3147,8 +3062,7 @@ system and gives an overview of their function and contents.
into separate packages. Setting the ``IMAGE_LINGUAS`` variable
ensures that any locale packages that correspond to packages already
selected for installation into the image are also installed. Here is
- an example:
- ::
+ an example::
IMAGE_LINGUAS = "pt-br de-de"
@@ -3167,8 +3081,7 @@ system and gives an overview of their function and contents.
The name of the output image symlink (which does not include
the version part as :term:`IMAGE_NAME` does). The default value
is derived using the :term:`IMAGE_BASENAME` and :term:`MACHINE`
- variables:
- ::
+ variables::
IMAGE_LINK_NAME ?= "${IMAGE_BASENAME}-${MACHINE}"
@@ -3176,14 +3089,12 @@ system and gives an overview of their function and contents.
:term:`IMAGE_MANIFEST`
The manifest file for the image. This file lists all the installed
packages that make up the image. The file contains package
- information on a line-per-package basis as follows:
- ::
+ information on a line-per-package basis as follows::
packagename packagearch version
The :ref:`image <ref-classes-image>` class defines the manifest
- file as follows:
- ::
+ file as follows::
IMAGE_MANIFEST ="${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.manifest"
@@ -3197,8 +3108,7 @@ system and gives an overview of their function and contents.
The name of the output image files minus the extension. This variable
is derived using the :term:`IMAGE_BASENAME`,
:term:`MACHINE`, and :term:`IMAGE_VERSION_SUFFIX`
- variables:
- ::
+ variables::
IMAGE_NAME ?= "${IMAGE_BASENAME}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
@@ -3229,8 +3139,7 @@ system and gives an overview of their function and contents.
to boot and allows for basic post installs while still leaving a
small amount of free disk space. If 30% free space is inadequate, you
can increase the default value. For example, the following setting
- gives you 50% free space added to the image:
- ::
+ gives you 50% free space added to the image::
IMAGE_OVERHEAD_FACTOR = "1.5"
@@ -3271,8 +3180,7 @@ system and gives an overview of their function and contents.
:term:`IMAGE_POSTPROCESS_COMMAND`
Specifies a list of functions to call once the OpenEmbedded build
system creates the final image output files. You can specify
- functions separated by semicolons:
- ::
+ functions separated by semicolons::
IMAGE_POSTPROCESS_COMMAND += "function; ... "
@@ -3285,8 +3193,7 @@ system and gives an overview of their function and contents.
:term:`IMAGE_PREPROCESS_COMMAND`
Specifies a list of functions to call before the OpenEmbedded build
system creates the final image output files. You can specify
- functions separated by semicolons:
- ::
+ functions separated by semicolons::
IMAGE_PREPROCESS_COMMAND += "function; ... "
@@ -3317,14 +3224,12 @@ system and gives an overview of their function and contents.
This variable is particularly useful when you want to ensure that a
specific amount of free disk space is available on a device after an
image is installed and running. For example, to be sure 5 Gbytes of
- free disk space is available, set the variable as follows:
- ::
+ free disk space is available, set the variable as follows::
IMAGE_ROOTFS_EXTRA_SPACE = "5242880"
For example, the Yocto Project Build Appliance specifically requests
- 40 Gbytes of extra space with the line:
- ::
+ 40 Gbytes of extra space with the line::
IMAGE_ROOTFS_EXTRA_SPACE = "41943040"
@@ -3335,8 +3240,7 @@ system and gives an overview of their function and contents.
the generated image, a requested size for the image, and requested
additional free disk space to be added to the image. Programatically,
the build system determines the final size of the generated image as
- follows:
- ::
+ follows::
if (image-du * overhead) < rootfs-size:
internal-rootfs-size = rootfs-size + xspace
@@ -3355,8 +3259,7 @@ system and gives an overview of their function and contents.
:term:`IMAGE_TYPEDEP`
Specifies a dependency from one image type on another. Here is an
- example from the :ref:`image-live <ref-classes-image-live>` class:
- ::
+ example from the :ref:`image-live <ref-classes-image-live>` class::
IMAGE_TYPEDEP_live = "ext3"
@@ -3443,8 +3346,7 @@ system and gives an overview of their function and contents.
variable. Once the variable is defined in the ``include`` file, you
can use the variable to set the ``PR`` values in each recipe. You
will notice that when you set a recipe's ``PR`` you can provide more
- granular revisioning by appending values to the ``INC_PR`` variable:
- ::
+ granular revisioning by appending values to the ``INC_PR`` variable::
recipes-graphics/xorg-font/xorg-font-common.inc:INC_PR = "r2"
recipes-graphics/xorg-font/encodings_1.0.4.bb:PR = "${INC_PR}.1"
@@ -3467,8 +3369,7 @@ system and gives an overview of their function and contents.
.. note::
This functionality is only regularly tested using the following
- setting:
- ::
+ setting::
INCOMPATIBLE_LICENSE = "GPL-3.0 LGPL-3.0 AGPL-3.0"
@@ -3482,8 +3383,7 @@ system and gives an overview of their function and contents.
It is possible to define a list of licenses that are allowed to be
used instead of the licenses that are excluded. To do this, define
a variable ``COMPATIBLE_LICENSES`` with the names of the licenses
- that are allowed. Then define ``INCOMPATIBLE_LICENSE`` as:
- ::
+ that are allowed. Then define ``INCOMPATIBLE_LICENSE`` as::
INCOMPATIBLE_LICENSE = "${@' '.join(sorted(set(d.getVar('AVAILABLE_LICENSES').split()) - set(d.getVar('COMPATIBLE_LICENSES').split())))}"
@@ -3508,8 +3408,7 @@ system and gives an overview of their function and contents.
unlikely that you want to edit this variable.
The default value of the variable is set as follows in the
- ``meta/conf/distro/defaultsetup.conf`` file:
- ::
+ ``meta/conf/distro/defaultsetup.conf`` file::
INHERIT_DISTRO ?= "debian devshell sstate license"
@@ -3533,8 +3432,7 @@ system and gives an overview of their function and contents.
To prevent the build system from splitting out debug information
during packaging, set the ``INHIBIT_PACKAGE_DEBUG_SPLIT`` variable as
- follows:
- ::
+ follows::
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
@@ -3646,15 +3544,13 @@ system and gives an overview of their function and contents.
Setting the variable to "1" in a configuration file causes the
OpenEmbedded build system to generate a kernel image with the
- initramfs specified in ``INITRAMFS_IMAGE`` bundled within:
- ::
+ initramfs specified in ``INITRAMFS_IMAGE`` bundled within::
INITRAMFS_IMAGE_BUNDLE = "1"
By default, the
:ref:`kernel <ref-classes-kernel>` class sets this variable to a
- null string as follows:
- ::
+ null string as follows::
INITRAMFS_IMAGE_BUNDLE ?= ""
@@ -3672,15 +3568,13 @@ system and gives an overview of their function and contents.
:term:`INITRAMFS_LINK_NAME`
The link name of the initial RAM filesystem image. This variable is
set in the ``meta/classes/kernel-artifact-names.bbclass`` file as
- follows:
- ::
+ follows::
INITRAMFS_LINK_NAME ?= "initramfs-${KERNEL_ARTIFACT_LINK_NAME}"
The value of the
``KERNEL_ARTIFACT_LINK_NAME`` variable, which is set in the same
- file, has the following value:
- ::
+ file, has the following value::
KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
@@ -3690,14 +3584,12 @@ system and gives an overview of their function and contents.
:term:`INITRAMFS_NAME`
The base name of the initial RAM filesystem image. This variable is
set in the ``meta/classes/kernel-artifact-names.bbclass`` file as
- follows:
- ::
+ follows::
INITRAMFS_NAME ?= "initramfs-${KERNEL_ARTIFACT_NAME}"
The value of the :term:`KERNEL_ARTIFACT_NAME`
- variable, which is set in the same file, has the following value:
- ::
+ variable, which is set in the same file, has the following value::
KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
@@ -3735,8 +3627,7 @@ system and gives an overview of their function and contents.
variable.
:term:`INITSCRIPT_PARAMS`
- Specifies the options to pass to ``update-rc.d``. Here is an example:
- ::
+ Specifies the options to pass to ``update-rc.d``. Here is an example::
INITSCRIPT_PARAMS = "start 99 5 2 . stop 20 0 1 6 ."
@@ -3756,8 +3647,7 @@ system and gives an overview of their function and contents.
recipe. For example, to skip the check for symbolic link ``.so``
files in the main package of a recipe, add the following to the
recipe. The package name override must be used, which in this example
- is ``${PN}``:
- ::
+ is ``${PN}``::
INSANE_SKIP_${PN} += "dev-so"
@@ -3799,8 +3689,7 @@ system and gives an overview of their function and contents.
kernel's append file. For example, if you are using the
``linux-yocto_4.12`` kernel, the kernel recipe file is the
``meta/recipes-kernel/linux/linux-yocto_4.12.bb`` file. ``KBRANCH``
- is set as follows in that kernel recipe file:
- ::
+ is set as follows in that kernel recipe file::
KBRANCH ?= "standard/base"
@@ -3812,8 +3701,7 @@ system and gives an overview of their function and contents.
Beaglebone, EdgeRouter, and generic versions of both 32 and 64-bit IA
machines (``meta-yocto-bsp``) is named
``meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.12.bbappend``.
- Here are the related statements from that append file:
- ::
+ Here are the related statements from that append file::
KBRANCH_genericx86 = "standard/base"
KBRANCH_genericx86-64 = "standard/base"
@@ -3839,19 +3727,16 @@ system and gives an overview of their function and contents.
``defconfig`` file.
To use the variable, set it in the append file for your kernel recipe
- using the following form:
- ::
+ using the following form::
KBUILD_DEFCONFIG_KMACHINE ?= defconfig_file
Here is an example from a "raspberrypi2" ``KMACHINE`` build that uses
- a ``defconfig`` file named "bcm2709_defconfig":
- ::
+ a ``defconfig`` file named "bcm2709_defconfig"::
KBUILD_DEFCONFIG_raspberrypi2 = "bcm2709_defconfig"
- As an alternative, you can use the following within your append file:
- ::
+ As an alternative, you can use the following within your append file::
KBUILD_DEFCONFIG_pn-linux-yocto ?= defconfig_file
@@ -3872,8 +3757,7 @@ system and gives an overview of their function and contents.
The value of ``KERNEL_ARTIFACT_NAME``, which is set in the
``meta/classes/kernel-artifact-names.bbclass`` file, has the
- following default value:
- ::
+ following default value::
KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
@@ -3905,15 +3789,13 @@ system and gives an overview of their function and contents.
:term:`KERNEL_DTB_LINK_NAME`
The link name of the kernel device tree binary (DTB). This variable
is set in the ``meta/classes/kernel-artifact-names.bbclass`` file as
- follows:
- ::
+ follows::
KERNEL_DTB_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
The
value of the ``KERNEL_ARTIFACT_LINK_NAME`` variable, which is set in
- the same file, has the following value:
- ::
+ the same file, has the following value::
KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
@@ -3923,14 +3805,12 @@ system and gives an overview of their function and contents.
:term:`KERNEL_DTB_NAME`
The base name of the kernel device tree binary (DTB). This variable
is set in the ``meta/classes/kernel-artifact-names.bbclass`` file as
- follows:
- ::
+ follows::
KERNEL_DTB_NAME ?= "${KERNEL_ARTIFACT_NAME}"
The value of the :term:`KERNEL_ARTIFACT_NAME`
- variable, which is set in the same file, has the following value:
- ::
+ variable, which is set in the same file, has the following value::
KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
@@ -3965,8 +3845,7 @@ system and gives an overview of their function and contents.
For example, the following example from the ``linux-yocto-rt_4.12``
kernel recipe adds "netfilter" and "taskstats" features to all BSPs
as well as "virtio" configurations to all QEMU machines. The last two
- statements add specific configurations to targeted machine types:
- ::
+ statements add specific configurations to targeted machine types::
KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
KERNEL_FEATURES_append = "${KERNEL_EXTRA_FEATURES}"
@@ -3977,15 +3856,13 @@ system and gives an overview of their function and contents.
:term:`KERNEL_FIT_LINK_NAME`
The link name of the kernel flattened image tree (FIT) image. This
variable is set in the ``meta/classes/kernel-artifact-names.bbclass``
- file as follows:
- ::
+ file as follows::
KERNEL_FIT_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
The value of the
``KERNEL_ARTIFACT_LINK_NAME`` variable, which is set in the same
- file, has the following value:
- ::
+ file, has the following value::
KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
@@ -3995,28 +3872,24 @@ system and gives an overview of their function and contents.
:term:`KERNEL_FIT_NAME`
The base name of the kernel flattened image tree (FIT) image. This
variable is set in the ``meta/classes/kernel-artifact-names.bbclass``
- file as follows:
- ::
+ file as follows::
KERNEL_FIT_NAME ?= "${KERNEL_ARTIFACT_NAME}"
The value of the :term:`KERNEL_ARTIFACT_NAME`
- variable, which is set in the same file, has the following value:
- ::
+ variable, which is set in the same file, has the following value::
KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
:term:`KERNEL_IMAGE_LINK_NAME`
The link name for the kernel image. This variable is set in the
- ``meta/classes/kernel-artifact-names.bbclass`` file as follows:
- ::
+ ``meta/classes/kernel-artifact-names.bbclass`` file as follows::
KERNEL_IMAGE_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
The value of
the ``KERNEL_ARTIFACT_LINK_NAME`` variable, which is set in the same
- file, has the following value:
- ::
+ file, has the following value::
KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
@@ -4038,15 +3911,13 @@ system and gives an overview of their function and contents.
:term:`KERNEL_IMAGE_NAME`
The base name of the kernel image. This variable is set in the
- ``meta/classes/kernel-artifact-names.bbclass`` file as follows:
- ::
+ ``meta/classes/kernel-artifact-names.bbclass`` file as follows::
KERNEL_IMAGE_NAME ?= "${KERNEL_ARTIFACT_NAME}"
The value of the
:term:`KERNEL_ARTIFACT_NAME` variable,
- which is set in the same file, has the following value:
- ::
+ which is set in the same file, has the following value::
KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
@@ -4074,8 +3945,7 @@ system and gives an overview of their function and contents.
configuration file, an append file for the recipe, or the recipe
itself).
- Specify it as follows:
- ::
+ Specify it as follows::
KERNEL_MODULE_AUTOLOAD += "module_name1 module_name2 module_name3"
@@ -4083,8 +3953,7 @@ system and gives an overview of their function and contents.
system to populate the ``/etc/modules-load.d/modname.conf`` file with
the list of modules to be auto-loaded on boot. The modules appear
one-per-line in the file. Here is an example of the most common use
- case:
- ::
+ case::
KERNEL_MODULE_AUTOLOAD += "module_name"
@@ -4146,8 +4015,7 @@ system and gives an overview of their function and contents.
Provides a short description of a configuration fragment. You use
this variable in the ``.scc`` file that describes a configuration
fragment file. Here is the variable used in a file named ``smp.scc``
- to describe SMP being enabled:
- ::
+ to describe SMP being enabled::
define KFEATURE_DESCRIPTION "Enable SMP"
@@ -4163,8 +4031,7 @@ system and gives an overview of their function and contents.
These mappings between different names occur in the Yocto Linux
Kernel's ``meta`` branch. As an example take a look in the
- ``common/recipes-kernel/linux/linux-yocto_3.19.bbappend`` file:
- ::
+ ``common/recipes-kernel/linux/linux-yocto_3.19.bbappend`` file::
LINUX_VERSION_core2-32-intel-common = "3.19.0"
COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
@@ -4202,8 +4069,7 @@ system and gives an overview of their function and contents.
:term:`LAYERDEPENDS`
Lists the layers, separated by spaces, on which this recipe depends.
Optionally, you can specify a specific layer version for a dependency
- by adding it to the end of the layer name. Here is an example:
- ::
+ by adding it to the end of the layer name. Here is an example::
LAYERDEPENDS_mylayer = "anotherlayer (=3)"
@@ -4228,8 +4094,7 @@ system and gives an overview of their function and contents.
Optionally, you can specify a specific layer version for a
recommendation by adding the version to the end of the layer name.
- Here is an example:
- ::
+ Here is an example::
LAYERRECOMMENDS_mylayer = "anotherlayer (=3)"
@@ -4253,8 +4118,7 @@ system and gives an overview of their function and contents.
For the list, use the Yocto Project
:yocto_wiki:`Release Name </Releases>` (e.g.
&DISTRO_NAME_NO_CAP;). To specify multiple OE-Core versions for the
- layer, use a space-separated list:
- ::
+ layer, use a space-separated list::
LAYERSERIES_COMPAT_layer_root_name = "&DISTRO_NAME_NO_CAP; &DISTRO_NAME_NO_CAP_MINUS_ONE;"
@@ -4335,8 +4199,7 @@ system and gives an overview of their function and contents.
:term:`SPDXLICENSEMAP` flag names defined in
``meta/conf/licenses.conf``.
- Here are some examples:
- ::
+ Here are some examples::
LICENSE = "LGPLv2.1 | GPLv3"
LICENSE = "MPL-1 & LGPLv2.1"
@@ -4353,8 +4216,7 @@ system and gives an overview of their function and contents.
situations where components of the output have different licenses.
For example, a piece of software whose code is licensed under GPLv2
but has accompanying documentation licensed under the GNU Free
- Documentation License 1.2 could be specified as follows:
- ::
+ Documentation License 1.2 could be specified as follows::
LICENSE = "GFDL-1.2 & GPLv2"
LICENSE_${PN} = "GPLv2"
@@ -4409,8 +4271,7 @@ system and gives an overview of their function and contents.
OpenEmbedded build system uses ``COMMON_LICENSE_DIR`` to define the
directory that holds common license text used during the build. The
``LICENSE_PATH`` variable allows you to extend that location to other
- areas that have additional licenses:
- ::
+ areas that have additional licenses::
LICENSE_PATH += "path-to-additional-common-licenses"
@@ -4434,14 +4295,12 @@ system and gives an overview of their function and contents.
being built using the OpenEmbedded build system is based. You define
this variable in the kernel recipe. For example, the
``linux-yocto-3.4.bb`` kernel recipe found in
- ``meta/recipes-kernel/linux`` defines the variables as follows:
- ::
+ ``meta/recipes-kernel/linux`` defines the variables as follows::
LINUX_VERSION ?= "3.4.24"
The ``LINUX_VERSION`` variable is used to define :term:`PV`
- for the recipe:
- ::
+ for the recipe::
PV = "${LINUX_VERSION}+git${SRCPV}"
@@ -4449,16 +4308,14 @@ system and gives an overview of their function and contents.
A string extension compiled into the version string of the Linux
kernel built with the OpenEmbedded build system. You define this
variable in the kernel recipe. For example, the linux-yocto kernel
- recipes all define the variable as follows:
- ::
+ recipes all define the variable as follows::
LINUX_VERSION_EXTENSION ?= "-yocto-${LINUX_KERNEL_TYPE}"
Defining this variable essentially sets the Linux kernel
configuration item ``CONFIG_LOCALVERSION``, which is visible through
the ``uname`` command. Here is an example that shows the extension
- assuming it was set as previously shown:
- ::
+ assuming it was set as previously shown::
$ uname -r
3.7.0-rc8-custom
@@ -4475,8 +4332,7 @@ system and gives an overview of their function and contents.
``MACHINE`` in the ``local.conf`` file found in the
:term:`Build Directory`. By default, ``MACHINE`` is set to
"qemux86", which is an x86-based architecture machine to be emulated
- using QEMU:
- ::
+ using QEMU::
MACHINE ?= "qemux86"
@@ -4488,8 +4344,7 @@ system and gives an overview of their function and contents.
``meta/conf/machine``.
The list of machines supported by the Yocto Project as shipped
- include the following:
- ::
+ include the following::
MACHINE ?= "qemuarm"
MACHINE ?= "qemuarm64"
@@ -4535,8 +4390,7 @@ system and gives an overview of their function and contents.
As an example, suppose the machine for which you are building
requires ``example-init`` to be run during boot to initialize the
hardware. In this case, you would use the following in the machine's
- ``.conf`` configuration file:
- ::
+ ``.conf`` configuration file::
MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "example-init"
@@ -4567,8 +4421,7 @@ system and gives an overview of their function and contents.
"recommends" relationship so that in the latter case, the build will
not fail due to the missing package. To accomplish this, assuming the
package for the module was called ``kernel-module-ab123``, you would
- use the following in the machine's ``.conf`` configuration file:
- ::
+ use the following in the machine's ``.conf`` configuration file::
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-module-ab123"
@@ -4604,8 +4457,7 @@ system and gives an overview of their function and contents.
exist, so it is acceptable for the build process to depend upon
finding the package. In this case, assuming the package for the
firmware was called ``wifidriver-firmware``, you would use the
- following in the ``.conf`` file for the machine:
- ::
+ following in the ``.conf`` file for the machine::
MACHINE_EXTRA_RDEPENDS += "wifidriver-firmware"
@@ -4631,8 +4483,7 @@ system and gives an overview of their function and contents.
the build to succeed instead of failing as a result of the package
not being found. To accomplish this, assuming the package for the
module was called ``kernel-module-examplewifi``, you would use the
- following in the ``.conf`` file for the machine:
- ::
+ following in the ``.conf`` file for the machine::
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-examplewifi"
@@ -4671,16 +4522,14 @@ system and gives an overview of their function and contents.
should apply to a machine. For example, all machines emulated in QEMU
(e.g. ``qemuarm``, ``qemux86``, and so forth) include a file named
``meta/conf/machine/include/qemu.inc`` that prepends the following
- override to ``MACHINEOVERRIDES``:
- ::
+ override to ``MACHINEOVERRIDES``::
MACHINEOVERRIDES =. "qemuall:"
This
override allows variables to be overridden for all machines emulated
in QEMU, like in the following example from the ``connman-conf``
- recipe:
- ::
+ recipe::
SRC_URI_append_qemuall = " file://wired.config \
file://wired-setup \
@@ -4734,27 +4583,23 @@ system and gives an overview of their function and contents.
recipes by using :term:`DEPENDS`, then a dependency on
"foo" will automatically get rewritten to a dependency on
"nativesdk-foo". However, dependencies like the following will not
- get rewritten automatically:
- ::
+ get rewritten automatically::
do_foo[depends] += "recipe:do_foo"
If you want such a dependency to also get transformed, you can do the
- following:
- ::
+ following::
do_foo[depends] += "${MLPREFIX}recipe:do_foo"
module_autoload
This variable has been replaced by the ``KERNEL_MODULE_AUTOLOAD``
variable. You should replace all occurrences of ``module_autoload``
- with additions to ``KERNEL_MODULE_AUTOLOAD``, for example:
- ::
+ with additions to ``KERNEL_MODULE_AUTOLOAD``, for example::
module_autoload_rfcomm = "rfcomm"
- should now be replaced with:
- ::
+ should now be replaced with::
KERNEL_MODULE_AUTOLOAD += "rfcomm"
@@ -4773,8 +4618,7 @@ system and gives an overview of their function and contents.
:term:`KERNEL_MODULE_AUTOLOAD`
variable.
- Here is the general syntax:
- ::
+ Here is the general syntax::
module_conf_module_name = "modprobe.d-syntax"
@@ -4786,8 +4630,7 @@ system and gives an overview of their function and contents.
Including ``module_conf`` causes the OpenEmbedded build system to
populate the ``/etc/modprobe.d/modname.conf`` file with
``modprobe.d`` syntax lines. Here is an example that adds the options
- ``arg1`` and ``arg2`` to a module named ``mymodule``:
- ::
+ ``arg1`` and ``arg2`` to a module named ``mymodule``::
module_conf_mymodule = "options mymodule arg1=val1 arg2=val2"
@@ -4801,15 +4644,13 @@ system and gives an overview of their function and contents.
:term:`MODULE_TARBALL_LINK_NAME`
The link name of the kernel module tarball. This variable is set in
- the ``meta/classes/kernel-artifact-names.bbclass`` file as follows:
- ::
+ the ``meta/classes/kernel-artifact-names.bbclass`` file as follows::
MODULE_TARBALL_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
The value
of the ``KERNEL_ARTIFACT_LINK_NAME`` variable, which is set in the
- same file, has the following value:
- ::
+ same file, has the following value::
KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
@@ -4817,14 +4658,12 @@ system and gives an overview of their function and contents.
:term:`MODULE_TARBALL_NAME`
The base name of the kernel module tarball. This variable is set in
- the ``meta/classes/kernel-artifact-names.bbclass`` file as follows:
- ::
+ the ``meta/classes/kernel-artifact-names.bbclass`` file as follows::
MODULE_TARBALL_NAME ?= "${KERNEL_ARTIFACT_NAME}"
The value of the :term:`KERNEL_ARTIFACT_NAME` variable,
- which is set in the same file, has the following value:
- ::
+ which is set in the same file, has the following value::
KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
@@ -4834,8 +4673,7 @@ system and gives an overview of their function and contents.
target systems to be put into different subdirectories of the same
output directory.
- The default value of this variable is:
- ::
+ The default value of this variable is::
${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}
@@ -4874,15 +4712,13 @@ system and gives an overview of their function and contents.
not exist in common licenses.
The following example shows how to add ``NO_GENERIC_LICENSE`` to a
- recipe:
- ::
+ recipe::
NO_GENERIC_LICENSE[license_name] = "license_file_in_fetched_source"
The following is an example that
uses the ``LICENSE.Abilis.txt`` file as the license from the fetched
- source:
- ::
+ source::
NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENSE.Abilis.txt"
@@ -4890,13 +4726,13 @@ system and gives an overview of their function and contents.
Prevents installation of all "recommended-only" packages.
Recommended-only packages are packages installed only through the
:term:`RRECOMMENDS` variable). Setting the
- ``NO_RECOMMENDATIONS`` variable to "1" turns this feature on: ::
+ ``NO_RECOMMENDATIONS`` variable to "1" turns this feature on::
NO_RECOMMENDATIONS = "1"
You can set this variable globally in your ``local.conf`` file or you
can attach it to a specific image recipe by using the recipe name
- override: ::
+ override::
NO_RECOMMENDATIONS_pn-target_image = "1"
@@ -4923,8 +4759,7 @@ system and gives an overview of their function and contents.
Disables auto package from splitting ``.debug`` files. If a recipe
requires ``FILES_${PN}-dbg`` to be set manually, the
``NOAUTOPACKAGEDEBUG`` can be defined allowing you to define the
- content of the debug package. For example:
- ::
+ content of the debug package. For example::
NOAUTOPACKAGEDEBUG = "1"
FILES_${PN}-dev = "${includedir}/${QT_DIR_NAME}/Qt/*"
@@ -5016,8 +4851,7 @@ system and gives an overview of their function and contents.
As an example, if the string "an-override" appears as an element in
the colon-separated list in ``OVERRIDES``, then the following
assignment will override ``FOO`` with the value "overridden" at the
- end of parsing:
- ::
+ end of parsing::
FOO_an-override = "overridden"
@@ -5032,8 +4866,7 @@ system and gives an overview of their function and contents.
:term:`DISTROOVERRIDES` variables. Another
important override included by default is ``pn-${PN}``. This override
allows variables to be set for a single recipe within configuration
- (``.conf``) files. Here is an example:
- ::
+ (``.conf``) files. Here is an example::
FOO_pn-myrecipe = "myrecipe-specific value"
@@ -5045,8 +4878,7 @@ system and gives an overview of their function and contents.
Project Development Tasks Manual for more information.
:term:`P`
- The recipe name and version. ``P`` is comprised of the following:
- ::
+ The recipe name and version. ``P`` is comprised of the following::
${PN}-${PV}
@@ -5082,8 +4914,7 @@ system and gives an overview of their function and contents.
However, if your recipe's output packages are built specific to the
target machine rather than generally for the architecture of the
machine, you should set ``PACKAGE_ARCH`` to the value of
- :term:`MACHINE_ARCH` in the recipe as follows:
- ::
+ :term:`MACHINE_ARCH` in the recipe as follows::
PACKAGE_ARCH = "${MACHINE_ARCH}"
@@ -5119,8 +4950,7 @@ system and gives an overview of their function and contents.
The build system uses only the first argument in the list as the
package manager when creating your image or SDK. However, packages
will be created using any additional packaging classes you specify.
- For example, if you use the following in your ``local.conf`` file:
- ::
+ For example, if you use the following in your ``local.conf`` file::
PACKAGE_CLASSES ?= "package_ipk"
@@ -5178,15 +5008,13 @@ system and gives an overview of their function and contents.
:term:`PACKAGE_EXCLUDE`
Lists packages that should not be installed into an image. For
- example:
- ::
+ example::
PACKAGE_EXCLUDE = "package_name package_name package_name ..."
You can set this variable globally in your ``local.conf`` file or you
can attach it to a specific image recipe by using the recipe name
- override:
- ::
+ override::
PACKAGE_EXCLUDE_pn-target_image = "package_name"
@@ -5230,8 +5058,7 @@ system and gives an overview of their function and contents.
Consider the following example where the ``PACKAGE_FEED_URIS``,
``PACKAGE_FEED_BASE_PATHS``, and ``PACKAGE_FEED_ARCHS`` variables are
- defined in your ``local.conf`` file:
- ::
+ defined in your ``local.conf`` file::
PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
https://example.com/packagerepos/updates"
@@ -5260,8 +5087,7 @@ system and gives an overview of their function and contents.
Consider the following example where the ``PACKAGE_FEED_URIS``,
``PACKAGE_FEED_BASE_PATHS``, and ``PACKAGE_FEED_ARCHS`` variables are
- defined in your ``local.conf`` file:
- ::
+ defined in your ``local.conf`` file::
PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
https://example.com/packagerepos/updates"
@@ -5290,8 +5116,7 @@ system and gives an overview of their function and contents.
Consider the following example where the ``PACKAGE_FEED_URIS``,
``PACKAGE_FEED_BASE_PATHS``, and ``PACKAGE_FEED_ARCHS`` variables are
- defined in your ``local.conf`` file:
- ::
+ defined in your ``local.conf`` file::
PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
https://example.com/packagerepos/updates"
@@ -5356,8 +5181,7 @@ system and gives an overview of their function and contents.
recipe on a per-recipe basis. ``PACKAGECONFIG`` blocks are defined in
recipes when you specify features and then arguments that define
feature behaviors. Here is the basic block structure (broken over
- multiple lines for readability):
- ::
+ multiple lines for readability)::
PACKAGECONFIG ??= "f1 f2 f3 ..."
PACKAGECONFIG[f1] = "\
@@ -5423,26 +5247,22 @@ system and gives an overview of their function and contents.
- *Append file:* Create an append file named
recipename\ ``.bbappend`` in your layer and override the value of
``PACKAGECONFIG``. You can either completely override the
- variable:
- ::
+ variable::
PACKAGECONFIG = "f4 f5"
- Or, you can just append the variable:
- ::
+ Or, you can just append the variable::
PACKAGECONFIG_append = " f4"
- *Configuration file:* This method is identical to changing the
block through an append file except you edit your ``local.conf``
or ``mydistro.conf`` file. As with append files previously
- described, you can either completely override the variable:
- ::
+ described, you can either completely override the variable::
PACKAGECONFIG_pn-recipename = "f4 f5"
- Or, you can just amend the variable:
- ::
+ Or, you can just amend the variable::
PACKAGECONFIG_append_pn-recipename = " f4"
@@ -5467,8 +5287,7 @@ system and gives an overview of their function and contents.
:term:`PACKAGES`
The list of packages the recipe creates. The default value is the
- following:
- ::
+ following::
${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}
@@ -5594,8 +5413,7 @@ system and gives an overview of their function and contents.
patched, it uses "patch".
If you wish to use an alternative patching tool, set the variable in
- the recipe using one of the following:
- ::
+ the recipe using one of the following::
PATCHTOOL = "patch"
PATCHTOOL = "quilt"
@@ -5641,8 +5459,7 @@ system and gives an overview of their function and contents.
:term:`PKGD`
Points to the destination directory for files to be packaged before
they are split into individual packages. This directory defaults to
- the following:
- ::
+ the following::
${WORKDIR}/package
@@ -5654,8 +5471,7 @@ system and gives an overview of their function and contents.
:ref:`ref-tasks-packagedata` task packages data
for each recipe and installs it into this temporary, shared area.
This directory defaults to the following, which you should not
- change:
- ::
+ change::
${STAGING_DIR_HOST}/pkgdata
@@ -5670,8 +5486,7 @@ system and gives an overview of their function and contents.
:term:`PKGDEST`
Points to the parent directory for files to be packaged after they
have been split into individual packages. This directory defaults to
- the following:
- ::
+ the following::
${WORKDIR}/packages-split
@@ -5682,8 +5497,7 @@ system and gives an overview of their function and contents.
:term:`PKGDESTWORK`
Points to a temporary work area where the
:ref:`ref-tasks-package` task saves package metadata.
- The ``PKGDESTWORK`` location defaults to the following:
- ::
+ The ``PKGDESTWORK`` location defaults to the following::
${WORKDIR}/pkgdata
@@ -5732,16 +5546,14 @@ system and gives an overview of their function and contents.
To prevent a recipe from being built, use the ``PNBLACKLIST``
variable in your ``local.conf`` file. Here is an example that
- prevents ``myrecipe`` from being built:
- ::
+ prevents ``myrecipe`` from being built::
PNBLACKLIST[myrecipe] = "Not supported by our organization."
:term:`POPULATE_SDK_POST_HOST_COMMAND`
Specifies a list of functions to call once the OpenEmbedded build
system has created the host part of the SDK. You can specify
- functions separated by semicolons:
- ::
+ functions separated by semicolons::
POPULATE_SDK_POST_HOST_COMMAND += "function; ... "
@@ -5753,8 +5565,7 @@ system and gives an overview of their function and contents.
:term:`POPULATE_SDK_POST_TARGET_COMMAND`
Specifies a list of functions to call once the OpenEmbedded build
system has created the target part of the SDK. You can specify
- functions separated by semicolons:
- ::
+ functions separated by semicolons::
POPULATE_SDK_POST_TARGET_COMMAND += "function; ... "
@@ -5804,8 +5615,7 @@ system and gives an overview of their function and contents.
preferred provider). You should always suffix this variable with the
name of the provided item. And, you should define the variable using
the preferred recipe's name (:term:`PN`). Here is a common
- example:
- ::
+ example::
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
@@ -5813,8 +5623,7 @@ system and gives an overview of their function and contents.
The ``PREFERRED_PROVIDER`` variable is set with the name (``PN``) of
the recipe you prefer to provide "virtual/kernel".
- Following are more examples:
- ::
+ Following are more examples::
PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86"
PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
@@ -5842,8 +5651,7 @@ system and gives an overview of their function and contents.
through the "``%``" character. You can use the character to match any
number of characters, which can be useful when specifying versions
that contain long revision numbers that potentially change. Here are
- two examples:
- ::
+ two examples::
PREFERRED_VERSION_python = "3.4.0"
PREFERRED_VERSION_linux-yocto = "5.0%"
@@ -5857,35 +5665,30 @@ system and gives an overview of their function and contents.
The specified version is matched against :term:`PV`, which
does not necessarily match the version part of the recipe's filename.
For example, consider two recipes ``foo_1.2.bb`` and ``foo_git.bb``
- where ``foo_git.bb`` contains the following assignment:
- ::
+ where ``foo_git.bb`` contains the following assignment::
PV = "1.1+git${SRCPV}"
In this case, the correct way to select
- ``foo_git.bb`` is by using an assignment such as the following:
- ::
+ ``foo_git.bb`` is by using an assignment such as the following::
PREFERRED_VERSION_foo = "1.1+git%"
Compare that previous example
- against the following incorrect example, which does not work:
- ::
+ against the following incorrect example, which does not work::
PREFERRED_VERSION_foo = "git"
Sometimes the ``PREFERRED_VERSION`` variable can be set by
configuration files in a way that is hard to change. You can use
:term:`OVERRIDES` to set a machine-specific
- override. Here is an example:
- ::
+ override. Here is an example::
PREFERRED_VERSION_linux-yocto_qemux86 = "5.0%"
Although not recommended, worst case, you can also use the
"forcevariable" override, which is the strongest override possible.
- Here is an example:
- ::
+ Here is an example::
PREFERRED_VERSION_linux-yocto_forcevariable = "5.0%"
@@ -5913,8 +5716,7 @@ system and gives an overview of their function and contents.
Typically, you could add a specific server for the build system to
attempt before any others by adding something like the following to
the ``local.conf`` configuration file in the
- :term:`Build Directory`:
- ::
+ :term:`Build Directory`::
PREMIRRORS_prepend = "\
git://.*/.* http://www.yoctoproject.org/sources/ \n \
@@ -5950,8 +5752,7 @@ system and gives an overview of their function and contents.
standard version of the library.
Libraries specified in this variable should be specified by their
- file name. For example, from the Firefox recipe in meta-browser:
- ::
+ file name. For example, from the Firefox recipe in meta-browser::
PRIVATE_LIBS = "libmozjs.so \
libxpcom.so \
@@ -5975,8 +5776,7 @@ system and gives an overview of their function and contents.
``DEPENDS``.
Consider the following example ``PROVIDES`` statement from the recipe
- file ``eudev_3.2.9.bb``:
- ::
+ file ``eudev_3.2.9.bb``::
PROVIDES += "udev"
@@ -6013,8 +5813,7 @@ system and gives an overview of their function and contents.
the component that manages the ``/dev`` directory.
Setting the "preferred provider" for runtime dependencies is as
- simple as using the following assignment in a configuration file:
- ::
+ simple as using the following assignment in a configuration file::
VIRTUAL-RUNTIME_dev_manager = "udev"
@@ -6024,8 +5823,7 @@ system and gives an overview of their function and contents.
The ``conf/local.conf.sample.extended`` configuration file in the
:term:`Source Directory` shows how the
- ``PRSERV_HOST`` variable is set:
- ::
+ ``PRSERV_HOST`` variable is set::
PRSERV_HOST = "localhost:0"
@@ -6086,8 +5884,7 @@ system and gives an overview of their function and contents.
OpenEmbedded build system automatically sets it for you.
The variable allows recipes to use common infrastructure such as the
- following:
- ::
+ following::
DEPENDS += "${PYTHON_PN}-native"
@@ -6102,8 +5899,7 @@ system and gives an overview of their function and contents.
will not be installed if conflicting packages are not first removed.
Like all package-controlling variables, you must always use them in
- conjunction with a package name override. Here is an example:
- ::
+ conjunction with a package name override. Here is an example::
RCONFLICTS_${PN} = "another_conflicting_package_name"
@@ -6111,8 +5907,7 @@ system and gives an overview of their function and contents.
specifying versioned dependencies. Although the syntax varies
depending on the packaging format, BitBake hides these differences
from you. Here is the general syntax to specify versions with the
- ``RCONFLICTS`` variable:
- ::
+ ``RCONFLICTS`` variable::
RCONFLICTS_${PN} = "package (operator version)"
@@ -6125,8 +5920,7 @@ system and gives an overview of their function and contents.
- >=
For example, the following sets up a dependency on version 1.2 or
- greater of the package ``foo``:
- ::
+ greater of the package ``foo``::
RCONFLICTS_${PN} = "foo (>= 1.2)"
@@ -6135,8 +5929,7 @@ system and gives an overview of their function and contents.
packages that must be installed in order for the package to function
correctly. As an example, the following assignment declares that the
package ``foo`` needs the packages ``bar`` and ``baz`` to be
- installed:
- ::
+ installed::
RDEPENDS_foo = "bar baz"
@@ -6177,8 +5970,7 @@ system and gives an overview of their function and contents.
name (remember that a single recipe can build multiple packages). For
example, suppose you are building a development package that depends
on the ``perl`` package. In this case, you would use the following
- ``RDEPENDS`` statement:
- ::
+ ``RDEPENDS`` statement::
RDEPENDS_${PN}-dev += "perl"
@@ -6207,8 +5999,7 @@ system and gives an overview of their function and contents.
specifying versioned dependencies. Although the syntax varies
depending on the packaging format, BitBake hides these differences
from you. Here is the general syntax to specify versions with the
- ``RDEPENDS`` variable:
- ::
+ ``RDEPENDS`` variable::
RDEPENDS_${PN} = "package (operator version)"
@@ -6228,8 +6019,7 @@ system and gives an overview of their function and contents.
specification.
For example, the following sets up a dependency on version 1.2 or
- greater of the package ``foo``:
- ::
+ greater of the package ``foo``::
RDEPENDS_${PN} = "foo (>= 1.2)"
@@ -6270,8 +6060,7 @@ system and gives an overview of their function and contents.
:term:`ROOT_HOME`
Defines the root home directory. By default, this directory is set as
- follows in the BitBake configuration file:
- ::
+ follows in the BitBake configuration file::
ROOT_HOME ??= "/home/root"
@@ -6284,8 +6073,7 @@ system and gives an overview of their function and contents.
You can override the default by setting the variable in any layer or
in the ``local.conf`` file. Because the default is set using a "weak"
assignment (i.e. "??="), you can use either of the following forms to
- define your override:
- ::
+ define your override::
ROOT_HOME = "/root"
ROOT_HOME ?= "/root"
@@ -6303,8 +6091,7 @@ system and gives an overview of their function and contents.
:term:`ROOTFS_POSTINSTALL_COMMAND`
Specifies a list of functions to call after the OpenEmbedded build
system has installed packages. You can specify functions separated by
- semicolons:
- ::
+ semicolons::
ROOTFS_POSTINSTALL_COMMAND += "function; ... "
@@ -6317,8 +6104,7 @@ system and gives an overview of their function and contents.
:term:`ROOTFS_POSTPROCESS_COMMAND`
Specifies a list of functions to call once the OpenEmbedded build
system has created the root filesystem. You can specify functions
- separated by semicolons:
- ::
+ separated by semicolons::
ROOTFS_POSTPROCESS_COMMAND += "function; ... "
@@ -6333,8 +6119,7 @@ system and gives an overview of their function and contents.
system has removed unnecessary packages. When runtime package
management is disabled in the image, several packages are removed
including ``base-passwd``, ``shadow``, and ``update-alternatives``.
- You can specify functions separated by semicolons:
- ::
+ You can specify functions separated by semicolons::
ROOTFS_POSTUNINSTALL_COMMAND += "function; ... "
@@ -6347,8 +6132,7 @@ system and gives an overview of their function and contents.
:term:`ROOTFS_PREPROCESS_COMMAND`
Specifies a list of functions to call before the OpenEmbedded build
system has created the root filesystem. You can specify functions
- separated by semicolons:
- ::
+ separated by semicolons::
ROOTFS_PREPROCESS_COMMAND += "function; ... "
@@ -6370,8 +6154,7 @@ system and gives an overview of their function and contents.
As with all package-controlling variables, you must always use the
variable in conjunction with a package name override. Here is an
- example:
- ::
+ example::
RPROVIDES_${PN} = "widget-abi-2"
@@ -6402,8 +6185,7 @@ system and gives an overview of their function and contents.
particular package whose usability is being extended. For example,
suppose you are building a development package that is extended to
support wireless functionality. In this case, you would use the
- following:
- ::
+ following::
RRECOMMENDS_${PN}-dev += "wireless_package_name"
@@ -6416,8 +6198,7 @@ system and gives an overview of their function and contents.
specifying versioned recommends. Although the syntax varies depending
on the packaging format, BitBake hides these differences from you.
Here is the general syntax to specify versions with the
- ``RRECOMMENDS`` variable:
- ::
+ ``RRECOMMENDS`` variable::
RRECOMMENDS_${PN} = "package (operator version)"
@@ -6430,8 +6211,7 @@ system and gives an overview of their function and contents.
- >=
For example, the following sets up a recommend on version 1.2 or
- greater of the package ``foo``:
- ::
+ greater of the package ``foo``::
RRECOMMENDS_${PN} = "foo (>= 1.2)"
@@ -6443,8 +6223,7 @@ system and gives an overview of their function and contents.
the other package to the ``RCONFLICTS`` variable.
As with all package-controlling variables, you must use this variable
- in conjunction with a package name override. Here is an example:
- ::
+ in conjunction with a package name override. Here is an example::
RREPLACES_${PN} = "other_package_being_replaced"
@@ -6452,8 +6231,7 @@ system and gives an overview of their function and contents.
specifying versioned replacements. Although the syntax varies
depending on the packaging format, BitBake hides these differences
from you. Here is the general syntax to specify versions with the
- ``RREPLACES`` variable:
- ::
+ ``RREPLACES`` variable::
RREPLACES_${PN} = "package (operator version)"
@@ -6466,8 +6244,7 @@ system and gives an overview of their function and contents.
- >=
For example, the following sets up a replacement using version 1.2
- or greater of the package ``foo``:
- ::
+ or greater of the package ``foo``::
RREPLACES_${PN} = "foo (>= 1.2)"
@@ -6478,8 +6255,7 @@ system and gives an overview of their function and contents.
As with all package-controlling variables, you must always use this
variable in conjunction with a package name override. Here is an
- example:
- ::
+ example::
RSUGGESTS_${PN} = "useful_package another_package"
@@ -6497,8 +6273,7 @@ system and gives an overview of their function and contents.
As an example, assume a :term:`Source Directory`
top-level folder named ``poky`` and a default Build Directory at
``poky/build``. In this case, the work directory the build system
- uses to keep the unpacked recipe for ``db`` is the following:
- ::
+ uses to keep the unpacked recipe for ``db`` is the following::
poky/build/tmp/work/qemux86-poky-linux/db/5.1.19-r3/db-5.1.19
@@ -6508,8 +6283,7 @@ system and gives an overview of their function and contents.
repositories are cloned to ``${WORKDIR}/git`` during
:ref:`ref-tasks-fetch`. Since this path is different
from the default value of ``S``, you must set it specifically so the
- source can be located:
- ::
+ source can be located::
SRC_URI = "git://path/to/repo.git"
S = "${WORKDIR}/git"
@@ -6544,8 +6318,7 @@ system and gives an overview of their function and contents.
The directory set up and used by the
:ref:`populate_sdk_base <ref-classes-populate-sdk>` class to which
the SDK is deployed. The ``populate_sdk_base`` class defines
- ``SDK_DEPLOY`` as follows:
- ::
+ ``SDK_DEPLOY`` as follows::
SDK_DEPLOY = "${TMPDIR}/deploy/sdk"
@@ -6553,8 +6326,7 @@ system and gives an overview of their function and contents.
The parent directory used by the OpenEmbedded build system when
creating SDK output. The
:ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class defines
- the variable as follows:
- ::
+ the variable as follows::
SDK_DIR = "${WORKDIR}/sdk"
@@ -6579,14 +6351,12 @@ system and gives an overview of their function and contents.
The manifest file for the host part of the SDK. This file lists all
the installed packages that make up the host part of the SDK. The
file contains package information on a line-per-package basis as
- follows:
- ::
+ follows::
packagename packagearch version
The :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class
- defines the manifest file as follows:
- ::
+ defines the manifest file as follows::
SDK_HOST_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"
@@ -6624,8 +6394,7 @@ system and gives an overview of their function and contents.
A list of classes to remove from the :term:`INHERIT`
value globally within the extensible SDK configuration. The
:ref:`populate-sdk-ext <ref-classes-populate-sdk-*>` class sets the
- default value:
- ::
+ default value::
SDK_INHERIT_BLACKLIST ?= "buildhistory icecc"
@@ -6688,8 +6457,7 @@ system and gives an overview of their function and contents.
:term:`DISTRO`, :term:`TCLIBC`,
:term:`SDK_ARCH`,
:term:`IMAGE_BASENAME`, and
- :term:`TUNE_PKGARCH` variables:
- ::
+ :term:`TUNE_PKGARCH` variables::
SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${IMAGE_BASENAME}-${TUNE_PKGARCH}"
@@ -6700,8 +6468,7 @@ system and gives an overview of their function and contents.
:term:`SDK_OUTPUT`
The location used by the OpenEmbedded build system when creating SDK
output. The :ref:`populate_sdk_base <ref-classes-populate-sdk-*>`
- class defines the variable as follows:
- ::
+ class defines the variable as follows::
SDK_DIR = "${WORKDIR}/sdk"
SDK_OUTPUT = "${SDK_DIR}/image"
@@ -6766,14 +6533,12 @@ system and gives an overview of their function and contents.
The manifest file for the target part of the SDK. This file lists all
the installed packages that make up the target part of the SDK. The
file contains package information on a line-per-package basis as
- follows:
- ::
+ follows::
packagename packagearch version
The :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class
- defines the manifest file as follows:
- ::
+ defines the manifest file as follows::
SDK_TARGET_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.target.manifest"
@@ -6793,8 +6558,7 @@ system and gives an overview of their function and contents.
this title is based on the :term:`DISTRO_NAME` or
:term:`DISTRO` variable and is set in the
:ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class as
- follows:
- ::
+ follows::
SDK_TITLE ??= "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} SDK"
@@ -6817,8 +6581,7 @@ system and gives an overview of their function and contents.
:term:`SDK_VERSION`
Specifies the version of the SDK. The Poky distribution configuration file
(``/meta-poky/conf/distro/poky.conf``) sets the default
- ``SDK_VERSION`` as follows:
- ::
+ ``SDK_VERSION`` as follows::
SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${METADATA_REVISION}', 'snapshot')}"
@@ -6831,8 +6594,7 @@ system and gives an overview of their function and contents.
default, this directory is based on the :term:`DISTRO`
variable and is set in the
:ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class as
- follows:
- ::
+ follows::
SDKEXTPATH ??= "~/${@d.getVar('DISTRO')}_sdk"
@@ -6846,8 +6608,7 @@ system and gives an overview of their function and contents.
:term:`SDKIMAGE_FEATURES`
Equivalent to ``IMAGE_FEATURES``. However, this variable applies to
- the SDK generated from an image using the following command:
- ::
+ the SDK generated from an image using the following command::
$ bitbake -c populate_sdk imagename
@@ -6899,8 +6660,7 @@ system and gives an overview of their function and contents.
Defines a serial console (TTY) to enable using
`getty <https://en.wikipedia.org/wiki/Getty_(Unix)>`__. Provide a
value that specifies the baud rate followed by the TTY device name
- separated by a space. You cannot specify more than one TTY device:
- ::
+ separated by a space. You cannot specify more than one TTY device::
SERIAL_CONSOLE = "115200 ttyS0"
@@ -6913,8 +6673,7 @@ system and gives an overview of their function and contents.
Defines a serial console (TTY) to enable using
`getty <https://en.wikipedia.org/wiki/Getty_(Unix)>`__. Provide a
value that specifies the baud rate followed by the TTY device name
- separated by a semicolon. Use spaces to separate multiple devices:
- ::
+ separated by a semicolon. Use spaces to separate multiple devices::
SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1"
@@ -6924,17 +6683,21 @@ system and gives an overview of their function and contents.
``/proc/console`` before enabling them using getty. This variable
allows aliasing in the format: <device>:<alias>. If a device was
listed as "sclp_line0" in ``/dev/`` and "ttyS0" was listed in
- ``/proc/console``, you would do the following: ::
+ ``/proc/console``, you would do the following::
SERIAL_CONSOLES_CHECK = "slcp_line0:ttyS0"
This variable is currently only supported with SysVinit (i.e. not
- with systemd).
+ with systemd). Note that :term:`SERIAL_CONSOLES_CHECK` also requires
+ ``/etc/inittab`` to be writable when used with SysVinit. This makes it
+ incompatible with customizations such as the following::
+
+ EXTRA_IMAGE_FEATURES += "read-only-rootfs"
:term:`SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS`
A list of recipe dependencies that should not be used to determine
signatures of tasks from one recipe when they depend on tasks from
- another recipe. For example: ::
+ another recipe. For example::
SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "intone->mplayer2"
@@ -6942,7 +6705,7 @@ system and gives an overview of their function and contents.
You can use the special token ``"*"`` on the left-hand side of the
dependency to match all recipes except the one on the right-hand
- side. Here is an example: ::
+ side. Here is an example::
SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "*->quilt-native"
@@ -7044,8 +6807,7 @@ system and gives an overview of their function and contents.
To use this variable, you must globally inherit the
:ref:`own-mirrors <ref-classes-own-mirrors>` class and then provide
- the URL to your mirrors. Here is the general syntax:
- ::
+ the URL to your mirrors. Here is the general syntax::
INHERIT += "own-mirrors"
SOURCE_MIRROR_URL = "http://example.com/my_source_mirror"
@@ -7076,8 +6838,7 @@ system and gives an overview of their function and contents.
U-Boot recipe.
The SPL file type is set to "null" by default in the ``u-boot.inc``
- file as follows:
- ::
+ file as follows::
# Some versions of u-boot build an SPL (Second Program Loader) image that
# should be packaged along with the u-boot binary as well as placed in the
@@ -7236,8 +6997,7 @@ system and gives an overview of their function and contents.
- ``name`` - Specifies a name to be used for association with
``SRC_URI`` checksums or :term:`SRCREV` when you have more than one
- file or git repository specified in ``SRC_URI``. For example:
- ::
+ file or git repository specified in ``SRC_URI``. For example::
SRC_URI = "git://example.com/foo.git;name=first \
git://example.com/bar.git;name=second \
@@ -7268,16 +7028,14 @@ system and gives an overview of their function and contents.
The ``SRCPV`` variable is defined in the ``meta/conf/bitbake.conf``
configuration file in the :term:`Source Directory` as
- follows:
- ::
+ follows::
SRCPV = "${@bb.fetch2.get_srcrev(d)}"
Recipes that need to define ``PV`` do so with the help of the
``SRCPV``. For example, the ``ofono`` recipe (``ofono_git.bb``)
located in ``meta/recipes-connectivity`` in the Source Directory
- defines ``PV`` as follows:
- ::
+ defines ``PV`` as follows::
PV = "0.12-git${SRCPV}"
@@ -7328,8 +7086,7 @@ system and gives an overview of their function and contents.
:term:`NATIVELSBSTRING` set by the
:ref:`uninative <ref-classes-uninative>` class. For example, the
following maps the local search path ``universal-4.9`` to the
- server-provided path server_url_sstate_path:
- ::
+ server-provided path server_url_sstate_path::
SSTATE_MIRRORS ?= "file://universal-4.9/(.*) http://server_url_sstate_path/universal-4.8/\1 \n"
@@ -7524,8 +7281,7 @@ system and gives an overview of their function and contents.
to an actual stamp file is constructed by evaluating this string and
then appending additional information. Currently, the default
assignment for ``STAMP`` as set in the ``meta/conf/bitbake.conf``
- file is:
- ::
+ file is::
STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
@@ -7562,8 +7318,7 @@ system and gives an overview of their function and contents.
:term:`SYSLINUX_DEFAULT_CONSOLE`
Specifies the kernel boot default console. If you want to use a
console other than the default, set this variable in your recipe as
- follows where "X" is the console number you want to use:
- ::
+ follows where "X" is the console number you want to use::
SYSLINUX_DEFAULT_CONSOLE = "console=ttyX"
@@ -7582,8 +7337,7 @@ system and gives an overview of their function and contents.
Specifies the alternate serial port or turns it off. To turn off
serial, set this variable to an empty string in your recipe. The
variable's default value is set in the
- :ref:`syslinux <ref-classes-syslinux>` class as follows:
- ::
+ :ref:`syslinux <ref-classes-syslinux>` class as follows::
SYSLINUX_SERIAL ?= "0 115200"
@@ -7592,8 +7346,7 @@ system and gives an overview of their function and contents.
:term:`SYSLINUX_SERIAL_TTY`
Specifies the alternate console=tty... kernel boot argument. The
variable's default value is set in the
- :ref:`syslinux <ref-classes-syslinux>` class as follows:
- ::
+ :ref:`syslinux <ref-classes-syslinux>` class as follows::
SYSLINUX_SERIAL_TTY ?= "console=ttyS0,115200"
@@ -7616,8 +7369,7 @@ system and gives an overview of their function and contents.
:term:`SYSROOT_DIRS`
Directories that are staged into the sysroot by the
:ref:`ref-tasks-populate_sysroot` task. By
- default, the following directories are staged:
- ::
+ default, the following directories are staged::
SYSROOT_DIRS = " \
${includedir} \
@@ -7632,8 +7384,7 @@ system and gives an overview of their function and contents.
:ref:`ref-tasks-populate_sysroot` task. You
can use this variable to exclude certain subdirectories of
directories listed in :term:`SYSROOT_DIRS` from
- staging. By default, the following directories are not staged:
- ::
+ staging. By default, the following directories are not staged::
SYSROOT_DIRS_BLACKLIST = " \
${mandir} \
@@ -7650,8 +7401,7 @@ system and gives an overview of their function and contents.
:ref:`ref-tasks-populate_sysroot` task for
``-native`` recipes, in addition to those specified in
:term:`SYSROOT_DIRS`. By default, the following
- extra directories are staged:
- ::
+ extra directories are staged::
SYSROOT_DIRS_NATIVE = " \
${bindir} \
@@ -7680,8 +7430,7 @@ system and gives an overview of their function and contents.
:term:`SYSTEMD_SERVICE` should start
automatically or not. By default, the service is enabled to
automatically start at boot time. The default setting is in the
- :ref:`systemd <ref-classes-systemd>` class as follows:
- ::
+ :ref:`systemd <ref-classes-systemd>` class as follows::
SYSTEMD_AUTO_ENABLE ??= "enable"
@@ -7692,8 +7441,7 @@ system and gives an overview of their function and contents.
"systemd-boot", the ``SYSTEMD_BOOT_CFG`` variable specifies the
configuration file that should be used. By default, the
:ref:`systemd-boot <ref-classes-systemd-boot>` class sets the
- ``SYSTEMD_BOOT_CFG`` as follows:
- ::
+ ``SYSTEMD_BOOT_CFG`` as follows::
SYSTEMD_BOOT_CFG ?= "${:term:`S`}/loader.conf"
@@ -7706,8 +7454,7 @@ system and gives an overview of their function and contents.
list of entry files (``*.conf``) to install that contain one boot
entry per file. By default, the
:ref:`systemd-boot <ref-classes-systemd-boot>` class sets the
- ``SYSTEMD_BOOT_ENTRIES`` as follows:
- ::
+ ``SYSTEMD_BOOT_ENTRIES`` as follows::
SYSTEMD_BOOT_ENTRIES ?= ""
@@ -7719,8 +7466,7 @@ system and gives an overview of their function and contents.
"systemd-boot", the ``SYSTEMD_BOOT_TIMEOUT`` variable specifies the
boot menu timeout in seconds. By default, the
:ref:`systemd-boot <ref-classes-systemd-boot>` class sets the
- ``SYSTEMD_BOOT_TIMEOUT`` as follows:
- ::
+ ``SYSTEMD_BOOT_TIMEOUT`` as follows::
SYSTEMD_BOOT_TIMEOUT ?= "10"
@@ -7732,8 +7478,7 @@ system and gives an overview of their function and contents.
this variable locates the systemd unit files when they are not found
in the main recipe's package. By default, the ``SYSTEMD_PACKAGES``
variable is set such that the systemd unit files are assumed to
- reside in the recipes main package:
- ::
+ reside in the recipes main package::
SYSTEMD_PACKAGES ?= "${PN}"
@@ -7747,8 +7492,7 @@ system and gives an overview of their function and contents.
When you specify this file in your recipe, use a package name
override to indicate the package to which the value applies. Here is
- an example from the connman recipe:
- ::
+ an example from the connman recipe::
SYSTEMD_SERVICE_${PN} = "connman.service"
@@ -7766,8 +7510,7 @@ system and gives an overview of their function and contents.
:term:`T`
This variable points to a directory were BitBake places temporary
files, which consist mostly of task logs and scripts, when building a
- particular recipe. The variable is typically set as follows:
- ::
+ particular recipe. The variable is typically set as follows::
T = "${WORKDIR}/temp"
@@ -7801,8 +7544,7 @@ system and gives an overview of their function and contents.
Specifies architecture-specific assembler flags for the target
system. ``TARGET_AS_ARCH`` is initialized from
:term:`TUNE_ASARGS` by default in the BitBake
- configuration file (``meta/conf/bitbake.conf``):
- ::
+ configuration file (``meta/conf/bitbake.conf``)::
TARGET_AS_ARCH = "${TUNE_ASARGS}"
@@ -7869,8 +7611,7 @@ system and gives an overview of their function and contents.
Specifies architecture-specific linker flags for the target system.
``TARGET_LD_ARCH`` is initialized from
:term:`TUNE_LDARGS` by default in the BitBake
- configuration file (``meta/conf/bitbake.conf``):
- ::
+ configuration file (``meta/conf/bitbake.conf``)::
TARGET_LD_ARCH = "${TUNE_LDARGS}"
@@ -8051,8 +7792,7 @@ system and gives an overview of their function and contents.
program does.
For example, to use the Picocom terminal program on serial device
- ``/dev/ttyUSB0`` at 115200bps, you would set the variable as follows:
- ::
+ ``/dev/ttyUSB0`` at 115200bps, you would set the variable as follows::
TEST_SERIALCONTROL_CMD = "picocom /dev/ttyUSB0 -b 115200"
@@ -8090,8 +7830,7 @@ system and gives an overview of their function and contents.
Tests include ``ping``, ``ssh``, ``df`` among others. You can add
your own tests to the list of tests by appending ``TEST_SUITES`` as
- follows:
- ::
+ follows::
TEST_SUITES_append = " mytest"
@@ -8110,8 +7849,7 @@ system and gives an overview of their function and contents.
another test must appear later in the list than the test on which
they depend. For example, if you append the list of tests with two
tests (``test_A`` and ``test_B``) where ``test_B`` is dependent on
- ``test_A``, then you must order the tests as follows:
- ::
+ ``test_A``, then you must order the tests as follows::
TEST_SUITES = "test_A test_B"
@@ -8121,8 +7859,7 @@ system and gives an overview of their function and contents.
:term:`TEST_TARGET`
Specifies the target controller to use when running tests against a
- test image. The default controller to use is "qemu":
- ::
+ test image. The default controller to use is "qemu"::
TEST_TARGET = "qemu"
@@ -8161,8 +7898,7 @@ system and gives an overview of their function and contents.
set to "qemu".
When you specify the IP address, you can also include a port. Here is
- an example:
- ::
+ an example::
TEST_TARGET_IP = "192.168.1.4:2201"
@@ -8211,8 +7947,7 @@ system and gives an overview of their function and contents.
If you want to establish this directory in a location other than the
default, you can uncomment and edit the following statement in the
- ``conf/local.conf`` file in the :term:`Source Directory`:
- ::
+ ``conf/local.conf`` file in the :term:`Source Directory`::
#TMPDIR = "${TOPDIR}/tmp"
@@ -8231,8 +7966,7 @@ system and gives an overview of their function and contents.
packages specified by this variable are part of the toolchain set
that runs on the :term:`SDKMACHINE`, and each
package should usually have the prefix ``nativesdk-``. For example,
- consider the following command when building an SDK:
- ::
+ consider the following command when building an SDK::
$ bitbake -c populate_sdk imagename
@@ -8253,8 +7987,7 @@ system and gives an overview of their function and contents.
:term:`TOOLCHAIN_OUTPUTNAME`
This variable defines the name used for the toolchain output. The
:ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class sets
- the ``TOOLCHAIN_OUTPUTNAME`` variable as follows:
- ::
+ the ``TOOLCHAIN_OUTPUTNAME`` variable as follows::
TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${SDK_VERSION}"
@@ -8310,8 +8043,7 @@ system and gives an overview of their function and contents.
``TUNE_ARCH`` is tied closely to
:term:`TARGET_ARCH`, which defines the target
machine's architecture. The BitBake configuration file
- (``meta/conf/bitbake.conf``) sets ``TARGET_ARCH`` as follows:
- ::
+ (``meta/conf/bitbake.conf``) sets ``TARGET_ARCH`` as follows::
TARGET_ARCH = "${TUNE_ARCH}"
@@ -8333,8 +8065,7 @@ system and gives an overview of their function and contents.
typically under ``meta/conf/machine/include/`` and are influenced
through :term:`TUNE_FEATURES`. For example, the
``meta/conf/machine/include/x86/arch-x86.inc`` file defines the flags
- for the x86 architecture as follows:
- ::
+ for the x86 architecture as follows::
TUNE_ASARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-x32", "", d)}"
@@ -8367,8 +8098,7 @@ system and gives an overview of their function and contents.
are not conflicting and that they are supported.
The BitBake configuration file (``meta/conf/bitbake.conf``) defines
- ``TUNE_FEATURES`` as follows:
- ::
+ ``TUNE_FEATURES`` as follows::
TUNE_FEATURES ??= "${TUNE_FEATURES_tune-${DEFAULTTUNE}}"
@@ -8381,8 +8111,7 @@ system and gives an overview of their function and contents.
typically under ``meta/conf/machine/include/`` and are influenced
through :term:`TUNE_FEATURES`. For example, the
``meta/conf/machine/include/x86/arch-x86.inc`` file defines the flags
- for the x86 architecture as follows:
- ::
+ for the x86 architecture as follows::
TUNE_LDARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-m elf32_x86_64", "", d)}"
@@ -8395,15 +8124,13 @@ system and gives an overview of their function and contents.
:term:`TUNE_PKGARCH`
The package architecture understood by the packaging system to define
the architecture, ABI, and tuning of output packages. The specific
- tune is defined using the "_tune" override as follows:
- ::
+ tune is defined using the "_tune" override as follows::
TUNE_PKGARCH_tune-tune = "tune"
These tune-specific package architectures are defined in the machine
include files. Here is an example of the "core2-32" tuning as used in
- the ``meta/conf/machine/include/tune-core2.inc`` file:
- ::
+ the ``meta/conf/machine/include/tune-core2.inc`` file::
TUNE_PKGARCH_tune-core2-32 = "core2-32"
@@ -8449,8 +8176,7 @@ system and gives an overview of their function and contents.
the :term:`Source Directory`. Here is an example from
the ``meta/conf/machine/include/mips/arch-mips.inc`` include file
that lists the "o32" and "n64" features as conflicting with the "n32"
- feature:
- ::
+ feature::
TUNECONFLICTS[n32] = "o32 n64"
@@ -8459,8 +8185,7 @@ system and gives an overview of their function and contents.
feature. The specified feature is stored as a flag. Valid features
are specified in the machine include files (e.g.
``meta/conf/machine/include/arm/arch-arm.inc``). Here is an example
- from that file:
- ::
+ from that file::
TUNEVALID[bigendian] = "Enable big-endian mode."
@@ -8516,8 +8241,7 @@ system and gives an overview of their function and contents.
Appends a string to the name of the local version of the U-Boot
image. For example, assuming the version of the U-Boot image built
was "2013.10", the full version string reported by U-Boot would be
- "2013.10-yocto" given the following statement:
- ::
+ "2013.10-yocto" given the following statement::
UBOOT_LOCALVERSION = "-yocto"
@@ -8691,8 +8415,7 @@ system and gives an overview of their function and contents.
OpenEmbedded build system to enable extra features (e.g.
``buildstats``, ``image-mklibs``, and so forth).
- The default list is set in your ``local.conf`` file:
- ::
+ The default list is set in your ``local.conf`` file::
USER_CLASSES ?= "buildstats image-mklibs image-prelink"
@@ -8712,8 +8435,7 @@ system and gives an overview of their function and contents.
``USERADD_ERROR_DYNAMIC`` variable is by default not set. If you plan
on using statically assigned ``gid`` and ``uid`` values, you should
set the ``USERADD_ERROR_DYNAMIC`` variable in your ``local.conf``
- file as follows:
- ::
+ file as follows::
USERADD_ERROR_DYNAMIC = "error"
@@ -8743,8 +8465,7 @@ system and gives an overview of their function and contents.
When applying static group identification (``gid``) values, the
OpenEmbedded build system looks in :term:`BBPATH` for a
``files/group`` file and then applies those ``uid`` values. Set the
- variable as follows in your ``local.conf`` file:
- ::
+ variable as follows in your ``local.conf`` file::
USERADD_GID_TABLES = "files/group"
@@ -8761,8 +8482,7 @@ system and gives an overview of their function and contents.
You must set this variable if the recipe inherits the class. For
example, the following enables adding a user for the main package in
- a recipe:
- ::
+ a recipe::
USERADD_PACKAGES = "${PN}"
@@ -8778,8 +8498,7 @@ system and gives an overview of their function and contents.
the ``useradd`` command if you add a user to the system when the
package is installed.
- Here is an example from the ``dbus`` recipe:
- ::
+ Here is an example from the ``dbus`` recipe::
USERADD_PARAM_${PN} = "--system --home ${localstatedir}/lib/dbus \
--no-create-home --shell /bin/false \
@@ -8797,8 +8516,7 @@ system and gives an overview of their function and contents.
When applying static user identification (``uid``) values, the
OpenEmbedded build system looks in :term:`BBPATH` for a
``files/passwd`` file and then applies those ``uid`` values. Set the
- variable as follows in your ``local.conf`` file:
- ::
+ variable as follows in your ``local.conf`` file::
USERADD_UID_TABLES = "files/passwd"
@@ -8869,8 +8587,7 @@ system and gives an overview of their function and contents.
With the ``WKS_FILE_DEPENDS`` variable, you have the possibility to
specify a list of additional dependencies (e.g. native tools,
bootloaders, and so forth), that are required to build Wic images.
- Following is an example:
- ::
+ Following is an example::
WKS_FILE_DEPENDS = "some-native-tool"
@@ -8884,8 +8601,7 @@ system and gives an overview of their function and contents.
:term:`TMPDIR` directory structure and is specific to
the recipe being built and the system for which it is being built.
- The ``WORKDIR`` directory is defined as follows:
- ::
+ The ``WORKDIR`` directory is defined as follows::
${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}
@@ -8904,8 +8620,7 @@ system and gives an overview of their function and contents.
``qemux86-poky-linux`` machine target system. Furthermore, suppose
your recipe is named ``foo_1.3.0-r0.bb``. In this case, the work
directory the build system uses to build the package would be as
- follows:
- ::
+ follows::
poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0
diff --git a/poky/documentation/releases.rst b/poky/documentation/releases.rst
index 6a65b9fb3..b95a6edf5 100644
--- a/poky/documentation/releases.rst
+++ b/poky/documentation/releases.rst
@@ -5,6 +5,12 @@
=========================
*******************************
+3.3 'hardknott' Release Series
+*******************************
+
+- :yocto_docs:`3.3 Documentation </3.3>`
+
+*******************************
3.2 'gatesgarth' Release Series
*******************************
@@ -24,6 +30,7 @@
- :yocto_docs:`3.1.4 Documentation </3.1.4>`
- :yocto_docs:`3.1.5 Documentation </3.1.5>`
- :yocto_docs:`3.1.6 Documentation </3.1.6>`
+- :yocto_docs:`3.1.7 Documentation </3.1.7>`
==========================
Previous Release Manuals
diff --git a/poky/documentation/sdk-manual/appendix-customizing.rst b/poky/documentation/sdk-manual/appendix-customizing.rst
index 8e7115046..fb2d78452 100644
--- a/poky/documentation/sdk-manual/appendix-customizing.rst
+++ b/poky/documentation/sdk-manual/appendix-customizing.rst
@@ -149,8 +149,7 @@ from the :term:`DISTRO` variable.
The
:ref:`populate_sdk_base <ref-classes-populate-sdk-*>`
class defines the default value of the ``SDK_TITLE`` variable as
-follows:
-::
+follows::
SDK_TITLE ??= "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} SDK"
@@ -162,8 +161,7 @@ an example, assume you have your own layer for your distribution named
does the default "poky" distribution. If so, you could update the
``SDK_TITLE`` variable in the
``~/meta-mydistro/conf/distro/mydistro.conf`` file using the following
-form:
-::
+form::
SDK_TITLE = "your_title"
@@ -194,8 +192,7 @@ the installed SDKs to update the installed SDKs by using the
3. Build the extensible SDK normally (i.e., use the
``bitbake -c populate_sdk_ext`` imagename command).
-4. Publish the SDK using the following command:
- ::
+4. Publish the SDK using the following command::
$ oe-publish-sdk some_path/sdk-installer.sh path_to_shared_http_directory
@@ -218,8 +215,7 @@ installation directory for the SDK is based on the
:term:`SDKEXTPATH` variables from
within the
:ref:`populate_sdk_base <ref-classes-populate-sdk-*>`
-class as follows:
-::
+class as follows::
SDKEXTPATH ??= "~/${@d.getVar('DISTRO')}_sdk"
@@ -236,8 +232,7 @@ assume you have your own layer for your distribution named
does the default "poky" distribution. If so, you could update the
``SDKEXTPATH`` variable in the
``~/meta-mydistro/conf/distro/mydistro.conf`` file using the following
-form:
-::
+form::
SDKEXTPATH = "some_path_for_your_installed_sdk"
@@ -272,8 +267,7 @@ source, you need to do a number of things:
3. Set the appropriate configuration so that the produced SDK knows how
to find the configuration. The variable you need to set is
- :term:`SSTATE_MIRRORS`:
- ::
+ :term:`SSTATE_MIRRORS`::
SSTATE_MIRRORS = "file://.* http://example.com/some_path/sstate-cache/PATH"
@@ -287,8 +281,7 @@ source, you need to do a number of things:
side, and its contents will not interfere with the build), then
you can set the variable in your ``local.conf`` or custom distro
configuration file. You can then "whitelist" the variable through
- to the SDK by adding the following:
- ::
+ to the SDK by adding the following::
SDK_LOCAL_CONF_WHITELIST = "SSTATE_MIRRORS"
@@ -313,8 +306,7 @@ everything needed to reconstruct the image for which the SDK was built.
This bundling can lead to an SDK installer file that is a Gigabyte or
more in size. If the size of this file causes a problem, you can build
an SDK that has just enough in it to install and provide access to the
-``devtool command`` by setting the following in your configuration:
-::
+``devtool command`` by setting the following in your configuration::
SDK_EXT_TYPE = "minimal"
@@ -336,8 +328,7 @@ information enables the ``devtool search`` command to return useful
results.
To facilitate this wider range of information, you would need to set the
-following:
-::
+following::
SDK_INCLUDE_PKGDATA = "1"
diff --git a/poky/documentation/sdk-manual/appendix-obtain.rst b/poky/documentation/sdk-manual/appendix-obtain.rst
index 3c1dc52d1..fc6b8b9d5 100644
--- a/poky/documentation/sdk-manual/appendix-obtain.rst
+++ b/poky/documentation/sdk-manual/appendix-obtain.rst
@@ -25,8 +25,7 @@ Follow these steps to locate and hand-install the toolchain:
download the installer appropriate for your build host, target
hardware, and image type.
- The installer files (``*.sh``) follow this naming convention:
- ::
+ The installer files (``*.sh``) follow this naming convention::
poky-glibc-host_system-core-image-type-arch-toolchain[-ext]-release.sh
@@ -55,15 +54,13 @@ Follow these steps to locate and hand-install the toolchain:
For example, if your build host is a 64-bit x86 system and you need
an extended SDK for a 64-bit core2 target, go into the ``x86_64``
- folder and download the following installer:
- ::
+ folder and download the following installer::
poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-&DISTRO;.sh
4. *Run the Installer:* Be sure you have execution privileges and run
the installer. Following is an example from the ``Downloads``
- directory:
- ::
+ directory::
$ ~/Downloads/poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-&DISTRO;.sh
@@ -132,8 +129,7 @@ build the SDK installer. Follow these steps:
using to build the installer. If
SDKMACHINE
is not set appropriately, the build fails and provides an error
- message similar to the following:
- ::
+ message similar to the following::
The extensible SDK can currently only be built for the same architecture as the machine being built on - SDK_ARCH is
set to i686 (likely via setting SDKMACHINE) which is different from the architecture of the build machine (x86_64).
@@ -142,10 +138,11 @@ build the SDK installer. Follow these steps:
6. *Build the SDK Installer:* To build the SDK installer for a standard
SDK and populate the SDK image, use the following command form. Be
- sure to replace image with an image (e.g. "core-image-sato"): $
- bitbake image -c populate_sdk You can do the same for the extensible
- SDK using this command form:
- ::
+ sure to replace ``image`` with an image (e.g. "core-image-sato")::
+
+ $ bitbake image -c populate_sdk
+
+ You can do the same for the extensible SDK using this command form::
$ bitbake image -c populate_sdk_ext
@@ -170,8 +167,7 @@ build the SDK installer. Follow these steps:
libc-staticdev"
7. *Run the Installer:* You can now run the SDK installer from
- ``tmp/deploy/sdk`` in the Build Directory. Following is an example:
- ::
+ ``tmp/deploy/sdk`` in the Build Directory. Following is an example::
$ cd poky/build/tmp/deploy/sdk
$ ./poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-&DISTRO;.sh
@@ -211,8 +207,7 @@ Follow these steps to extract the root filesystem:
which you can use with QEMU directly.
The pre-built root filesystem image files follow these naming
- conventions:
- ::
+ conventions::
core-image-profile-arch.tar.bz2
@@ -233,8 +228,7 @@ Follow these steps to extract the root filesystem:
For example, if you plan on using a BeagleBone device as your target
hardware and your image is a ``core-image-sato-sdk`` image, you can
- download the following file:
- ::
+ download the following file::
core-image-sato-sdk-beaglebone-yocto.tar.bz2
@@ -246,8 +240,7 @@ Follow these steps to extract the root filesystem:
installed the toolchain (e.g. ``poky_sdk``).
Following is an example based on the toolchain installed in the
- ":ref:`sdk-manual/appendix-obtain:locating pre-built sdk installers`" section:
- ::
+ ":ref:`sdk-manual/appendix-obtain:locating pre-built sdk installers`" section::
$ source poky_sdk/environment-setup-core2-64-poky-linux
@@ -258,12 +251,11 @@ Follow these steps to extract the root filesystem:
from a previously built root filesystem image that was downloaded
from the :yocto_dl:`Index of Releases </releases/yocto/yocto-&DISTRO;/machines/>`.
This command extracts the root filesystem into the ``core2-64-sato``
- directory:
- ::
+ directory::
$ runqemu-extract-sdk ~/Downloads/core-image-sato-sdk-beaglebone-yocto.tar.bz2 ~/beaglebone-sato
- You could now point to the target sysroot at ``beablebone-sato``.
+ You could now point to the target sysroot at ``beaglebone-sato``.
Installed Standard SDK Directory Structure
==========================================
diff --git a/poky/documentation/sdk-manual/extensible.rst b/poky/documentation/sdk-manual/extensible.rst
index baa432ef3..04bafaed9 100644
--- a/poky/documentation/sdk-manual/extensible.rst
+++ b/poky/documentation/sdk-manual/extensible.rst
@@ -59,8 +59,7 @@ The names of the tarball installer scripts are such that a string
representing the host system appears first in the filename and then is
immediately followed by a string representing the target architecture.
An extensible SDK has the string "-ext" as part of the name. Following
-is the general form:
-::
+is the general form::
poky-glibc-host_system-image_type-arch-toolchain-ext-release_version.sh
@@ -83,8 +82,7 @@ is the general form:
For example, the following SDK installer is for a 64-bit
development host system and a i586-tuned target architecture based off
-the SDK for ``core-image-sato`` and using the current &DISTRO; snapshot:
-::
+the SDK for ``core-image-sato`` and using the current &DISTRO; snapshot::
poky-glibc-x86_64-core-image-sato-i586-toolchain-ext-&DISTRO;.sh
@@ -150,8 +148,7 @@ begin with the string "``environment-setup``" and include as part of
their name the tuned target architecture. As an example, the following
commands set the working directory to where the SDK was installed and
then source the environment setup script. In this example, the setup
-script is for an IA-based target machine using i586 tuning:
-::
+script is for an IA-based target machine using i586 tuning::
$ cd /home/scottrif/poky_sdk
$ source environment-setup-core2-64-poky-linux
@@ -258,8 +255,7 @@ command:
to be extracted. In this situation, the source code is extracted
to the default workspace - you do not want the files in some
specific location outside of the workspace. Thus, everything you
- need will be located in the workspace:
- ::
+ need will be located in the workspace::
$ devtool add recipe fetchuri
@@ -283,8 +279,7 @@ command:
Furthermore, the first positional argument srctree in this case
identifies where the ``devtool add`` command will locate the
extracted code outside of the workspace. You need to specify an
- empty directory:
- ::
+ empty directory::
$ devtool add recipe srctree fetchuri
@@ -300,8 +295,7 @@ command:
``devtool`` workspace.
The following command provides a new recipe name and identifies
- the existing source tree location:
- ::
+ the existing source tree location::
$ devtool add recipe srctree
@@ -317,8 +311,7 @@ command:
2. *Edit the Recipe*: You can use ``devtool edit-recipe`` to open up the
editor as defined by the ``$EDITOR`` environment variable and modify
- the file:
- ::
+ the file::
$ devtool edit-recipe recipe
@@ -338,8 +331,7 @@ command:
On the other hand, if you want an image to contain the recipe's
packages from the workspace for immediate deployment onto a device
(e.g. for testing purposes), you can use the ``devtool build-image``
- command:
- ::
+ command::
$ devtool build-image image
@@ -435,8 +427,7 @@ command:
outside the workspace (i.e. ``meta-``\ layername).
The following command identifies the recipe and, by default,
- extracts the source files:
- ::
+ extracts the source files::
$ devtool modify recipe
@@ -474,8 +465,7 @@ command:
The following command tells ``devtool`` the recipe with which to
work and, in this case, identifies a local area for the extracted
source files that exists outside of the default ``devtool``
- workspace:
- ::
+ workspace::
$ devtool modify recipe srctree
@@ -508,8 +498,7 @@ command:
The following command tells ``devtool`` the recipe with which to
work, uses the "-n" option to indicate source does not need to be
extracted, and uses srctree to point to the previously extracted
- source files:
- ::
+ source files::
$ devtool modify -n recipe srctree
@@ -532,8 +521,7 @@ command:
depends on what you are going to do with the new code.
If you need to eventually move the build output to the target
- hardware, use the following ``devtool`` command:
- ::
+ hardware, use the following ``devtool`` command::
$ devtool build recipe
@@ -556,8 +544,7 @@ command:
development machine.
You can deploy your build output to that target hardware by using the
- ``devtool deploy-target`` command:
- ::
+ ``devtool deploy-target`` command::
$ devtool deploy-target recipe target
@@ -651,8 +638,7 @@ The following diagram shows the common development flow used with the
A common situation is where third-party software has undergone a
revision so that it has been upgraded. The recipe you have access to
is likely in your own layer. Thus, you need to upgrade the recipe to
- use the newer version of the software:
- ::
+ use the newer version of the software::
$ devtool upgrade -V version recipe
@@ -703,16 +689,14 @@ The following diagram shows the common development flow used with the
depends on what you are going to do with the new code.
If you need to eventually move the build output to the target
- hardware, use the following ``devtool`` command:
- ::
+ hardware, use the following ``devtool`` command::
$ devtool build recipe
On the other hand, if you want an image to contain the recipe's
packages from the workspace for immediate deployment onto a device
(e.g. for testing purposes), you can use the ``devtool build-image``
- command:
- ::
+ command::
$ devtool build-image image
@@ -828,8 +812,7 @@ name and version, just the name, or just the version as part of the
command line.
Sometimes the name or version determined from the source tree might be
-incorrect. For such a case, you must reset the recipe:
-::
+incorrect. For such a case, you must reset the recipe::
$ devtool reset -n recipename
@@ -853,8 +836,7 @@ the ``DEPENDS`` variable in the original recipe to include the new
recipe.
If you need to add runtime dependencies, you can do so by adding the
-following to your recipe:
-::
+following to your recipe::
RDEPENDS_${PN} += "dependency1 dependency2 ..."
@@ -938,8 +920,7 @@ mind:
the command line, add the variable setting to
:term:`EXTRA_OEMAKE` or
:term:`PACKAGECONFIG_CONFARGS`
- within the recipe. Here is an example using ``EXTRA_OEMAKE``:
- ::
+ within the recipe. Here is an example using ``EXTRA_OEMAKE``::
EXTRA_OEMAKE += "'CC=${CC}' 'CXX=${CXX}'"
@@ -993,8 +974,7 @@ You can use the ``devtool add`` command two different ways to add
Node.js modules: 1) Through ``npm`` and, 2) from a repository or local
source.
-Use the following form to add Node.js modules through ``npm``:
-::
+Use the following form to add Node.js modules through ``npm``::
$ devtool add "npm://registry.npmjs.org;name=forever;version=0.15.1"
@@ -1018,8 +998,7 @@ these behaviors ensure the reproducibility and integrity of the build.
As mentioned earlier, you can also add Node.js modules directly from a
repository or local source tree. To add modules this way, use
-``devtool add`` in the following form:
-::
+``devtool add`` in the following form::
$ devtool add https://github.com/diversario/node-ssdp
@@ -1196,15 +1175,13 @@ need to restore the original files that existed prior to running the
``devtool deploy-target`` command. Because the ``devtool deploy-target``
command backs up any files it overwrites, you can use the
``devtool undeploy-target`` command to restore those files and remove
-any other files the recipe deployed. Consider the following example:
-::
+any other files the recipe deployed. Consider the following example::
$ devtool undeploy-target lighttpd root@192.168.7.2
If you have deployed
multiple applications, you can remove them all using the "-a" option
-thus restoring the target device to its original state:
-::
+thus restoring the target device to its original state::
$ devtool undeploy-target -a root@192.168.7.2
@@ -1235,22 +1212,19 @@ populated on-demand. Sometimes you must explicitly install extra items
into the SDK. If you need these extra items, you can first search for
the items using the ``devtool search`` command. For example, suppose you
need to link to libGL but you are not sure which recipe provides libGL.
-You can use the following command to find out:
-::
+You can use the following command to find out::
$ devtool search libGL mesa
A free implementation of the OpenGL API Once you know the recipe
-(i.e. ``mesa`` in this example), you can install it:
-::
+(i.e. ``mesa`` in this example), you can install it::
$ devtool sdk-install mesa
By default, the ``devtool sdk-install`` command assumes
the item is available in pre-built form from your SDK provider. If the
item is not available and it is acceptable to build the item from
-source, you can add the "-s" option as follows:
-::
+source, you can add the "-s" option as follows::
$ devtool sdk-install -s mesa
@@ -1266,8 +1240,7 @@ If you are working with an installed extensible SDK that gets
occasionally updated (e.g. a third-party SDK), then you will need to
manually "pull down" the updates into the installed SDK.
-To update your installed SDK, use ``devtool`` as follows:
-::
+To update your installed SDK, use ``devtool`` as follows::
$ devtool sdk-update
diff --git a/poky/documentation/sdk-manual/using.rst b/poky/documentation/sdk-manual/using.rst
index 62967f557..fa0e8d409 100644
--- a/poky/documentation/sdk-manual/using.rst
+++ b/poky/documentation/sdk-manual/using.rst
@@ -77,8 +77,7 @@ immediately followed by a string representing the target architecture.
For example, the following SDK installer is for a 64-bit
development host system and a i586-tuned target architecture based off
-the SDK for ``core-image-sato`` and using the current DISTRO snapshot:
-::
+the SDK for ``core-image-sato`` and using the current DISTRO snapshot::
poky-glibc-x86_64-core-image-sato-i586-toolchain-DISTRO.sh
@@ -141,8 +140,7 @@ begin with the string "``environment-setup``" and include as part of
their name the tuned target architecture. As an example, the following
commands set the working directory to where the SDK was installed and
then source the environment setup script. In this example, the setup
-script is for an IA-based target machine using i586 tuning:
-::
+script is for an IA-based target machine using i586 tuning::
$ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
diff --git a/poky/documentation/sdk-manual/working-projects.rst b/poky/documentation/sdk-manual/working-projects.rst
index f880cbe0d..ad84ce2b8 100644
--- a/poky/documentation/sdk-manual/working-projects.rst
+++ b/poky/documentation/sdk-manual/working-projects.rst
@@ -45,16 +45,14 @@ project:
respectively.
Use the following command to create an empty README file, which is
- required by GNU Coding Standards:
- ::
+ required by GNU Coding Standards::
$ touch README
Create the remaining
three files as follows:
- - ``hello.c``:
- ::
+ - ``hello.c``::
#include <stdio.h>
@@ -63,8 +61,7 @@ project:
printf("Hello World!\n");
}
- - ``configure.ac``:
- ::
+ - ``configure.ac``::
AC_INIT(hello,0.1)
AM_INIT_AUTOMAKE([foreign])
@@ -72,8 +69,7 @@ project:
AC_CONFIG_FILES(Makefile)
AC_OUTPUT
- - ``Makefile.am``:
- ::
+ - ``Makefile.am``::
bin_PROGRAMS = hello
hello_SOURCES = hello.c
@@ -87,8 +83,7 @@ project:
which is followed by the string "poky-linux". For this example, the
command sources a script from the default SDK installation directory
that uses the 32-bit Intel x86 Architecture and the &DISTRO; Yocto
- Project release:
- ::
+ Project release::
$ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
@@ -113,8 +108,7 @@ project:
the cross-compiler. The
:term:`CONFIGURE_FLAGS`
environment variable provides the minimal arguments for GNU
- configure:
- ::
+ configure::
$ ./configure ${CONFIGURE_FLAGS}
@@ -127,14 +121,12 @@ project:
``armv5te-poky-linux-gnueabi``. You will notice that the name of the
script is ``environment-setup-armv5te-poky-linux-gnueabi``. Thus, the
following command works to update your project and rebuild it using
- the appropriate cross-toolchain tools:
- ::
+ the appropriate cross-toolchain tools::
$ ./configure --host=armv5te-poky-linux-gnueabi --with-libtool-sysroot=sysroot_dir
5. *Make and Install the Project:* These two commands generate and
- install the project into the destination directory:
- ::
+ install the project into the destination directory::
$ make
$ make install DESTDIR=./tmp
@@ -157,8 +149,7 @@ project:
6. *Execute Your Project:* To execute the project, you would need to run
it on your target hardware. If your target hardware happens to be
- your build host, you could run the project as follows:
- ::
+ your build host, you could run the project as follows::
$ ./tmp/usr/local/bin/hello
@@ -203,8 +194,7 @@ regarding variable behavior:
.. note::
Regardless of how you set your variables, if you use the "-e" option
- with ``make``, the variables from the SDK setup script take precedence:
- ::
+ with ``make``, the variables from the SDK setup script take precedence::
$ make -e target
@@ -226,8 +216,7 @@ Running the
SDK setup script for a 64-bit build host and an i586-tuned target
architecture for a ``core-image-sato`` image using the current &DISTRO;
Yocto Project release and then echoing that variable shows the value
-established through the script:
-::
+established through the script::
$ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
$ echo ${CC}
@@ -252,8 +241,7 @@ example:
Create the three files as follows:
- - ``main.c``:
- ::
+ - ``main.c``::
#include "module.h"
void sample_func();
@@ -263,14 +251,12 @@ example:
return 0;
}
- - ``module.h``:
- ::
+ - ``module.h``::
#include <stdio.h>
void sample_func();
- - ``module.c``:
- ::
+ - ``module.c``::
#include "module.h"
void sample_func()
@@ -288,8 +274,7 @@ example:
which is followed by the string "poky-linux". For this example, the
command sources a script from the default SDK installation directory
that uses the 32-bit Intel x86 Architecture and the &DISTRO_NAME; Yocto
- Project release:
- ::
+ Project release::
$ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
@@ -297,8 +282,7 @@ example:
two lines that can be used to set the ``CC`` variable. One line is
identical to the value that is set when you run the SDK environment
setup script, and the other line sets ``CC`` to "gcc", the default
- GNU compiler on the build host:
- ::
+ GNU compiler on the build host::
# CC=i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/2.5/sysroots/i586-poky-linux
# CC="gcc"
@@ -315,8 +299,7 @@ example:
4. *Make the Project:* Use the ``make`` command to create the binary
output file. Because variables are commented out in the Makefile, the
value used for ``CC`` is the value set when the SDK environment setup
- file was run:
- ::
+ file was run::
$ make
i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/2.5/sysroots/i586-poky-linux -I . -c main.c
@@ -351,8 +334,7 @@ example:
variable as part of the command line. Go into the Makefile and
re-insert the comment character so that running ``make`` uses the
established SDK compiler. However, when you run ``make``, use a
- command-line argument to set ``CC`` to "gcc":
- ::
+ command-line argument to set ``CC`` to "gcc"::
$ make clean
rm -rf *.o
@@ -376,8 +358,7 @@ example:
environment variable.
In this last case, edit Makefile again to use the "gcc" compiler but
- then use the "-e" option on the ``make`` command line:
- ::
+ then use the "-e" option on the ``make`` command line::
$ make clean
rm -rf *.o
@@ -402,8 +383,7 @@ example:
Makefile.
5. *Execute Your Project:* To execute the project (i.e. ``target_bin``),
- use the following command:
- ::
+ use the following command::
$ ./target_bin
Hello World!
diff --git a/poky/documentation/sphinx-static/switchers.js b/poky/documentation/sphinx-static/switchers.js
index 7a4edc9e7..3f62e29b9 100644
--- a/poky/documentation/sphinx-static/switchers.js
+++ b/poky/documentation/sphinx-static/switchers.js
@@ -2,9 +2,10 @@
'use strict';
var all_versions = {
- 'dev': 'dev (3.3)',
+ 'dev': 'dev (3.4)',
+ '3.3': '3.3',
'3.2.3': '3.2.3',
- '3.1.6': '3.1.6',
+ '3.1.7': '3.1.7',
'3.0.4': '3.0.4',
'2.7.4': '2.7.4',
};
diff --git a/poky/meta-poky/conf/distro/poky.conf b/poky/meta-poky/conf/distro/poky.conf
index c098b3026..522cc92f7 100644
--- a/poky/meta-poky/conf/distro/poky.conf
+++ b/poky/meta-poky/conf/distro/poky.conf
@@ -1,7 +1,7 @@
DISTRO = "poky"
DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
-DISTRO_VERSION = "3.3"
-DISTRO_CODENAME = "hardknott"
+DISTRO_VERSION = "3.3+snapshot-${METADATA_REVISION}"
+DISTRO_CODENAME = "master"
SDK_VENDOR = "-pokysdk"
SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${METADATA_REVISION}', 'snapshot')}"
SDK_VERSION[vardepvalue] = "${SDK_VERSION}"
diff --git a/poky/meta-selftest/conf/layer.conf b/poky/meta-selftest/conf/layer.conf
index 5604f8269..fae8c5a65 100644
--- a/poky/meta-selftest/conf/layer.conf
+++ b/poky/meta-selftest/conf/layer.conf
@@ -9,4 +9,4 @@ BBFILE_COLLECTIONS += "selftest"
BBFILE_PATTERN_selftest = "^${LAYERDIR}/"
BBFILE_PRIORITY_selftest = "5"
-LAYERSERIES_COMPAT_selftest = "hardknott"
+LAYERSERIES_COMPAT_selftest = "honister"
diff --git a/poky/meta-skeleton/conf/layer.conf b/poky/meta-skeleton/conf/layer.conf
index ba301742e..1cb0ca1f3 100644
--- a/poky/meta-skeleton/conf/layer.conf
+++ b/poky/meta-skeleton/conf/layer.conf
@@ -14,4 +14,4 @@ LAYERVERSION_skeleton = "1"
LAYERDEPENDS_skeleton = "core"
-LAYERSERIES_COMPAT_skeleton = "hardknott"
+LAYERSERIES_COMPAT_skeleton = "honister"
diff --git a/poky/meta-skeleton/recipes-multilib/images/core-image-multilib-example.bb b/poky/meta-skeleton/recipes-multilib/images/core-image-multilib-example.bb
index e7d50aefd..1290968b9 100644
--- a/poky/meta-skeleton/recipes-multilib/images/core-image-multilib-example.bb
+++ b/poky/meta-skeleton/recipes-multilib/images/core-image-multilib-example.bb
@@ -6,7 +6,7 @@ SUMMARY = "An example of a multilib image"
#
# First include a base image to base things off
-require recipes-sato/images/core-image-sato.bb
+require recipes-graphics/images/core-image-weston.bb
# Now add the multilib packages we want to install
IMAGE_INSTALL += "lib32-bash"
diff --git a/poky/meta/classes/archiver.bbclass b/poky/meta/classes/archiver.bbclass
index 858507b34..a3962306b 100644
--- a/poky/meta/classes/archiver.bbclass
+++ b/poky/meta/classes/archiver.bbclass
@@ -118,7 +118,7 @@ python () {
d.appendVarFlag('do_deploy_archives', 'depends', ' %s:do_ar_patched' % pn)
elif ar_src == "configured":
# We can't use "addtask do_ar_configured after do_configure" since it
- # will cause the deptask of do_populate_sysroot to run not matter what
+ # will cause the deptask of do_populate_sysroot to run no matter what
# archives we need, so we add the depends here.
# There is a corner case with "gcc-source-${PV}" recipes, they don't have
@@ -163,7 +163,7 @@ python () {
d.appendVarFlag('do_package_write_rpm', 'depends', ' %s:do_ar_configured' % pn)
}
-# Take all the sources for a recipe and puts them in WORKDIR/archiver-work/.
+# Take all the sources for a recipe and put them in WORKDIR/archiver-work/.
# Files in SRC_URI are copied directly, anything that's a directory
# (e.g. git repositories) is "unpacked" and then put into a tarball.
python do_ar_original() {
@@ -463,7 +463,7 @@ python do_unpack_and_patch() {
ar_sysroot_native = d.getVar('STAGING_DIR_NATIVE')
pn = d.getVar('PN')
- # The kernel class functions require it to be on work-shared, so we dont change WORKDIR
+ # The kernel class functions require it to be on work-shared, so we don't change WORKDIR
if not is_work_shared(d):
# Change the WORKDIR to make do_unpack do_patch run in another dir.
d.setVar('WORKDIR', ar_workdir)
@@ -505,7 +505,7 @@ python do_unpack_and_patch() {
# of the output file ensures that we create it each time the recipe
# gets rebuilt, at least as long as a PR server is used. We also rely
# on that mechanism to catch changes in the file content, because the
-# file content is not part of of the task signature either.
+# file content is not part of the task signature either.
do_ar_recipe[vardepsexclude] += "BBINCLUDED"
python do_ar_recipe () {
"""
diff --git a/poky/meta/classes/buildhistory.bbclass b/poky/meta/classes/buildhistory.bbclass
index 49af61c9c..059de36a5 100644
--- a/poky/meta/classes/buildhistory.bbclass
+++ b/poky/meta/classes/buildhistory.bbclass
@@ -875,7 +875,7 @@ python buildhistory_eventhandler() {
entries = [ x for x in os.listdir(rootdir) if not x.startswith('.') ]
bb.utils.mkdirhier(olddir)
for entry in entries:
- os.rename(os.path.join(rootdir, entry),
+ bb.utils.rename(os.path.join(rootdir, entry),
os.path.join(olddir, entry))
elif isinstance(e, bb.event.BuildCompleted):
if reset:
diff --git a/poky/meta/classes/buildstats.bbclass b/poky/meta/classes/buildstats.bbclass
index 8e03039ae..8a1466d3f 100644
--- a/poky/meta/classes/buildstats.bbclass
+++ b/poky/meta/classes/buildstats.bbclass
@@ -104,7 +104,7 @@ def write_task_data(status, logfile, e, d):
f.write("Status: FAILED \n")
f.write("Ended: %0.2f \n" % e.time)
-def write_host_data(logfile, e, d):
+def write_host_data(logfile, e, d, type):
import subprocess, os, datetime
# minimum time allowed for each command to run, in seconds
time_threshold = 0.5
@@ -112,15 +112,22 @@ def write_host_data(logfile, e, d):
num_cmds = 0
# interval at which data will be logged
interval = int(d.getVar("BB_HEARTBEAT_EVENT", False))
- # the commands to be run at each interval
- cmds = d.getVar('BB_LOG_HOST_STAT_CMDS')
- # if no commands are passed, issue a warning and return
- if cmds is None:
- d.setVar("BB_LOG_HOST_STAT_ON_INTERVAL", "0")
- d.setVar("BB_LOG_HOST_STAT_ON_FAILURE", "0")
- bb.warn("buildstats: Collecting host data failed. Set BB_LOG_HOST_STAT_CMDS=\"command1 ; command2 ; ... \" in conf/local.conf\n")
- return
- # find the total commands
+ msg = ""
+ if type == "interval":
+ cmds = d.getVar('BB_LOG_HOST_STAT_CMDS_INTERVAL')
+ msg = "Host Stats: Collecting data at interval.\n"
+ if cmds is None:
+ d.setVar("BB_LOG_HOST_STAT_ON_INTERVAL", "0")
+ bb.warn("buildstats: Collecting host data at intervals failed. Set BB_LOG_HOST_STAT_CMDS_INTERVAL=\"command1 ; command2 ; ... \" in conf/local.conf\n")
+ return
+ if type == "failure":
+ cmds = d.getVar('BB_LOG_HOST_STAT_CMDS_FAILURE')
+ msg = "Host Stats: Collecting data on failure.\n"
+ msg += "Failed at task " + e.task + "\n"
+ if cmds is None:
+ d.setVar("BB_LOG_HOST_STAT_ON_FAILURE", "0")
+ bb.warn("buildstats: Collecting host data on failure failed. Set BB_LOG_HOST_STAT_CMDS_FAILURE=\"command1 ; command2 ; ... \" in conf/local.conf\n")
+ return
c_san = []
for cmd in cmds.split(";"):
if len(cmd) == 0:
@@ -147,6 +154,7 @@ def write_host_data(logfile, e, d):
os.environ['PATH'] = path + ":" + opath + ":" + ospath
with open(logfile, "a") as f:
f.write("Event Time: %f\nDate: %s\n" % (e.time, datetime.datetime.now()))
+ f.write("%s" % msg)
for c in c_san:
try:
output = subprocess.check_output(c.split(), stderr=subprocess.STDOUT, timeout=limit).decode('utf-8')
@@ -171,7 +179,7 @@ python run_buildstats () {
taskdir = os.path.join(bsdir, d.getVar('PF'))
if isinstance(e, bb.event.HeartbeatEvent) and bb.utils.to_boolean(d.getVar("BB_LOG_HOST_STAT_ON_INTERVAL")):
bb.utils.mkdirhier(bsdir)
- write_host_data(os.path.join(bsdir, "host_stats"), e, d)
+ write_host_data(os.path.join(bsdir, "host_stats"), e, d, "interval")
if isinstance(e, bb.event.BuildStarted):
########################################################################
@@ -247,7 +255,7 @@ python run_buildstats () {
with open(build_status, "a") as f:
f.write(d.expand("Failed at: ${PF} at task: %s \n" % e.task))
if bb.utils.to_boolean(d.getVar("BB_LOG_HOST_STAT_ON_FAILURE")):
- write_host_data(build_status, e, d)
+ write_host_data(os.path.join(bsdir, "host_stats"), e, d, "failure")
}
addhandler run_buildstats
diff --git a/poky/meta/classes/cmake.bbclass b/poky/meta/classes/cmake.bbclass
index 8876ce5aa..f01db7480 100644
--- a/poky/meta/classes/cmake.bbclass
+++ b/poky/meta/classes/cmake.bbclass
@@ -149,16 +149,14 @@ addtask generate_toolchain_file after do_patch before do_configure
CONFIGURE_FILES = "CMakeLists.txt"
+do_configure[cleandirs] = "${@d.getVar('B') if d.getVar('S') != d.getVar('B') else ''}"
+
cmake_do_configure() {
if [ "${OECMAKE_BUILDPATH}" ]; then
bbnote "cmake.bbclass no longer uses OECMAKE_BUILDPATH. The default behaviour is now out-of-tree builds with B=WORKDIR/build."
fi
- if [ "${S}" != "${B}" ]; then
- rm -rf ${B}
- mkdir -p ${B}
- cd ${B}
- else
+ if [ "${S}" = "${B}" ]; then
find ${B} -name CMakeFiles -or -name Makefile -or -name cmake_install.cmake -or -name CMakeCache.txt -delete
fi
diff --git a/poky/meta/classes/cml1.bbclass b/poky/meta/classes/cml1.bbclass
index d319d66ab..1c3d70b48 100644
--- a/poky/meta/classes/cml1.bbclass
+++ b/poky/meta/classes/cml1.bbclass
@@ -6,7 +6,7 @@ def find_cfgs(d):
if s.endswith('.cfg'):
sources_list.append(s)
- return sources_list
+ return sorted(sources_list)
cml1_do_configure() {
set -e
diff --git a/poky/meta/classes/cpan-base.bbclass b/poky/meta/classes/cpan-base.bbclass
index 867edf870..1fc3f0bcb 100644
--- a/poky/meta/classes/cpan-base.bbclass
+++ b/poky/meta/classes/cpan-base.bbclass
@@ -16,3 +16,12 @@ def is_target(d):
PERLLIBDIRS = "${libdir}/perl5"
PERLLIBDIRS_class-native = "${libdir}/perl5"
+
+def cpan_upstream_check_pattern(d):
+ for x in (d.getVar('SRC_URI') or '').split(' '):
+ if x.startswith("https://cpan.metacpan.org"):
+ _pattern = x.split('/')[-1].replace(d.getVar('PV'), '(?P<pver>\d+.\d+)')
+ return _pattern
+ return ''
+
+UPSTREAM_CHECK_REGEX ?= "${@cpan_upstream_check_pattern(d)}"
diff --git a/poky/meta/classes/cross-canadian.bbclass b/poky/meta/classes/cross-canadian.bbclass
index f5c9f6159..1e5403508 100644
--- a/poky/meta/classes/cross-canadian.bbclass
+++ b/poky/meta/classes/cross-canadian.bbclass
@@ -36,7 +36,7 @@ python () {
return
tos = d.getVar("TARGET_OS")
- whitelist = []
+ whitelist = ["mingw32"]
extralibcs = [""]
if "musl" in d.getVar("BASECANADIANEXTRAOS"):
extralibcs.append("musl")
diff --git a/poky/meta/classes/externalsrc.bbclass b/poky/meta/classes/externalsrc.bbclass
index 54cc7edba..3d6b80bee 100644
--- a/poky/meta/classes/externalsrc.bbclass
+++ b/poky/meta/classes/externalsrc.bbclass
@@ -217,11 +217,10 @@ def srctree_hash_files(d, srcdir=None):
env['GIT_INDEX_FILE'] = tmp_index.name
subprocess.check_output(['git', 'add', '-A', '.'], cwd=s_dir, env=env)
git_sha1 = subprocess.check_output(['git', 'write-tree'], cwd=s_dir, env=env).decode("utf-8")
- submodule_helper = subprocess.check_output(['git', 'submodule', 'status'], cwd=s_dir, env=env).decode("utf-8")
+ submodule_helper = subprocess.check_output(['git', 'submodule--helper', 'list'], cwd=s_dir, env=env).decode("utf-8")
for line in submodule_helper.splitlines():
- module_relpath = line.split()[1]
- if not module_relpath.split('/')[0] == '..':
- module_dir = os.path.join(s_dir, module_relpath)
+ module_dir = os.path.join(s_dir, line.rsplit(maxsplit=1)[1])
+ if os.path.isdir(module_dir):
proc = subprocess.Popen(['git', 'add', '-A', '.'], cwd=module_dir, env=env, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
proc.communicate()
proc = subprocess.Popen(['git', 'write-tree'], cwd=module_dir, env=env, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL)
diff --git a/poky/meta/classes/image.bbclass b/poky/meta/classes/image.bbclass
index 013455f49..353cc6717 100644
--- a/poky/meta/classes/image.bbclass
+++ b/poky/meta/classes/image.bbclass
@@ -657,7 +657,7 @@ reproducible_final_image_task () {
fi
# Set mtime of all files to a reproducible value
bbnote "reproducible_final_image_task: mtime set to $REPRODUCIBLE_TIMESTAMP_ROOTFS"
- find ${IMAGE_ROOTFS} -exec touch -h --date=@$REPRODUCIBLE_TIMESTAMP_ROOTFS {} \;
+ find ${IMAGE_ROOTFS} -print0 | xargs -0 touch -h --date=@$REPRODUCIBLE_TIMESTAMP_ROOTFS
fi
}
diff --git a/poky/meta/classes/insane.bbclass b/poky/meta/classes/insane.bbclass
index fa05fc055..763d5f1da 100644
--- a/poky/meta/classes/insane.bbclass
+++ b/poky/meta/classes/insane.bbclass
@@ -176,7 +176,7 @@ def package_qa_check_useless_rpaths(file, name, d, elf, messages):
if rpath_eq(rpath, libdir) or rpath_eq(rpath, base_libdir):
# The dynamic linker searches both these places anyway. There is no point in
# looking there again.
- package_qa_add_message(messages, "useless-rpaths", "%s: %s contains probably-redundant RPATH %s" % (name, package_qa_clean_path(file, d), rpath))
+ package_qa_add_message(messages, "useless-rpaths", "%s: %s contains probably-redundant RPATH %s" % (name, package_qa_clean_path(file, d, name), rpath))
QAPATHTEST[dev-so] = "package_qa_check_dev"
def package_qa_check_dev(path, name, d, elf, messages):
@@ -185,8 +185,8 @@ def package_qa_check_dev(path, name, d, elf, messages):
"""
if not name.endswith("-dev") and not name.endswith("-dbg") and not name.endswith("-ptest") and not name.startswith("nativesdk-") and path.endswith(".so") and os.path.islink(path):
- package_qa_add_message(messages, "dev-so", "non -dev/-dbg/nativesdk- package contains symlink .so: %s path '%s'" % \
- (name, package_qa_clean_path(path,d)))
+ package_qa_add_message(messages, "dev-so", "non -dev/-dbg/nativesdk- package %s contains symlink .so '%s'" % \
+ (name, package_qa_clean_path(path, d, name)))
QAPATHTEST[dev-elf] = "package_qa_check_dev_elf"
def package_qa_check_dev_elf(path, name, d, elf, messages):
@@ -196,8 +196,8 @@ def package_qa_check_dev_elf(path, name, d, elf, messages):
install link-time .so files that are linker scripts.
"""
if name.endswith("-dev") and path.endswith(".so") and not os.path.islink(path) and elf:
- package_qa_add_message(messages, "dev-elf", "-dev package contains non-symlink .so: %s path '%s'" % \
- (name, package_qa_clean_path(path,d)))
+ package_qa_add_message(messages, "dev-elf", "-dev package %s contains non-symlink .so '%s'" % \
+ (name, package_qa_clean_path(path, d, name)))
QAPATHTEST[staticdev] = "package_qa_check_staticdev"
def package_qa_check_staticdev(path, name, d, elf, messages):
@@ -210,7 +210,7 @@ def package_qa_check_staticdev(path, name, d, elf, messages):
if not name.endswith("-pic") and not name.endswith("-staticdev") and not name.endswith("-ptest") and path.endswith(".a") and not path.endswith("_nonshared.a") and not '/usr/lib/debug-static/' in path and not '/.debug-static/' in path:
package_qa_add_message(messages, "staticdev", "non -staticdev package contains static .a library: %s path '%s'" % \
- (name, package_qa_clean_path(path,d)))
+ (name, package_qa_clean_path(path,d, name)))
QAPATHTEST[mime] = "package_qa_check_mime"
def package_qa_check_mime(path, name, d, elf, messages):
diff --git a/poky/meta/classes/kernel-yocto.bbclass b/poky/meta/classes/kernel-yocto.bbclass
index 15c8dbb81..30f07de4c 100644
--- a/poky/meta/classes/kernel-yocto.bbclass
+++ b/poky/meta/classes/kernel-yocto.bbclass
@@ -378,7 +378,7 @@ do_kernel_checkout() {
# checkout and clobber any unimportant files
git checkout -f ${machine_branch}
}
-do_kernel_checkout[dirs] = "${S}"
+do_kernel_checkout[dirs] = "${S} ${WORKDIR}"
addtask kernel_checkout before do_kernel_metadata after do_symlink_kernsrc
addtask kernel_metadata after do_validate_branches do_unpack before do_patch
diff --git a/poky/meta/classes/license_image.bbclass b/poky/meta/classes/license_image.bbclass
index c96b032eb..73cebb4d5 100644
--- a/poky/meta/classes/license_image.bbclass
+++ b/poky/meta/classes/license_image.bbclass
@@ -1,3 +1,5 @@
+ROOTFS_LICENSE_DIR = "${IMAGE_ROOTFS}/usr/share/common-licenses"
+
python write_package_manifest() {
# Get list of installed packages
license_image_dir = d.expand('${LICENSE_DIRECTORY}/${IMAGE_NAME}')
@@ -104,8 +106,7 @@ def write_license_files(d, license_manifest, pkg_dic, rootfs=True):
copy_lic_manifest = d.getVar('COPY_LIC_MANIFEST')
copy_lic_dirs = d.getVar('COPY_LIC_DIRS')
if rootfs and copy_lic_manifest == "1":
- rootfs_license_dir = os.path.join(d.getVar('IMAGE_ROOTFS'),
- 'usr', 'share', 'common-licenses')
+ rootfs_license_dir = d.getVar('ROOTFS_LICENSE_DIR')
bb.utils.mkdirhier(rootfs_license_dir)
rootfs_license_manifest = os.path.join(rootfs_license_dir,
os.path.split(license_manifest)[1])
@@ -143,12 +144,13 @@ def write_license_files(d, license_manifest, pkg_dic, rootfs=True):
continue
# Make sure we use only canonical name for the license file
- rootfs_license = os.path.join(rootfs_license_dir, "generic_%s" % generic_lic)
+ generic_lic_file = "generic_%s" % generic_lic
+ rootfs_license = os.path.join(rootfs_license_dir, generic_lic_file)
if not os.path.exists(rootfs_license):
oe.path.copyhardlink(pkg_license, rootfs_license)
if not os.path.exists(pkg_rootfs_license):
- os.symlink(os.path.join('..', lic), pkg_rootfs_license)
+ os.symlink(os.path.join('..', generic_lic_file), pkg_rootfs_license)
else:
if (oe.license.license_ok(canonical_license(d,
lic), bad_licenses) == False or
@@ -267,3 +269,13 @@ python do_populate_lic_deploy() {
addtask populate_lic_deploy before do_build after do_image_complete
do_populate_lic_deploy[recrdeptask] += "do_populate_lic do_deploy"
+python license_qa_dead_symlink() {
+ import os
+
+ for root, dirs, files in os.walk(d.getVar('ROOTFS_LICENSE_DIR')):
+ for file in files:
+ full_path = root + "/" + file
+ if os.path.islink(full_path) and not os.path.exists(full_path):
+ bb.error("broken symlink: " + full_path)
+}
+IMAGE_QA_COMMANDS += "license_qa_dead_symlink"
diff --git a/poky/meta/classes/package.bbclass b/poky/meta/classes/package.bbclass
index e3f0a7060..cf30f33f3 100644
--- a/poky/meta/classes/package.bbclass
+++ b/poky/meta/classes/package.bbclass
@@ -1049,7 +1049,7 @@ python fixup_perms () {
# Create path to move directory to, move it, and then setup the symlink
bb.utils.mkdirhier(os.path.dirname(target))
#bb.note("Fixup Perms: Rename %s -> %s" % (dir, ptarget))
- os.rename(origin, target)
+ bb.utils.rename(origin, target)
#bb.note("Fixup Perms: Link %s -> %s" % (dir, link))
os.symlink(link, origin)
@@ -1967,7 +1967,7 @@ python package_do_shlibs() {
for (old, new) in renames:
bb.note("Renaming %s to %s" % (old, new))
- os.rename(old, new)
+ bb.utils.rename(old, new)
pkgfiles[pkg].remove(old)
shlibs_file = os.path.join(shlibswork_dir, pkg + ".list")
diff --git a/poky/meta/classes/populate_sdk_ext.bbclass b/poky/meta/classes/populate_sdk_ext.bbclass
index 84232ed9f..fe840d9cf 100644
--- a/poky/meta/classes/populate_sdk_ext.bbclass
+++ b/poky/meta/classes/populate_sdk_ext.bbclass
@@ -165,7 +165,7 @@ def create_filtered_tasklist(d, sdkbasepath, tasklistfile, conf_initpath):
shutil.rmtree(temp_sdkbasepath)
except FileNotFoundError:
pass
- os.rename(sdkbasepath, temp_sdkbasepath)
+ bb.utils.rename(sdkbasepath, temp_sdkbasepath)
cmdprefix = '. %s .; ' % conf_initpath
logfile = d.getVar('WORKDIR') + '/tasklist_bb_log.txt'
try:
@@ -175,7 +175,7 @@ def create_filtered_tasklist(d, sdkbasepath, tasklistfile, conf_initpath):
if 'attempted to execute unexpectedly and should have been setscened' in e.stdout:
msg += '\n----------\n\nNOTE: "attempted to execute unexpectedly and should have been setscened" errors indicate this may be caused by missing sstate artifacts that were likely produced in earlier builds, but have been subsequently deleted for some reason.\n'
bb.fatal(msg)
- os.rename(temp_sdkbasepath, sdkbasepath)
+ bb.utils.rename(temp_sdkbasepath, sdkbasepath)
# Clean out residue of running bitbake, which check_sstate_task_list()
# will effectively do
clean_esdk_builddir(d, sdkbasepath)
diff --git a/poky/meta/classes/reproducible_build.bbclass b/poky/meta/classes/reproducible_build.bbclass
index f06e00d70..ea643f286 100644
--- a/poky/meta/classes/reproducible_build.bbclass
+++ b/poky/meta/classes/reproducible_build.bbclass
@@ -41,6 +41,9 @@ SDE_DIR = "${WORKDIR}/source-date-epoch"
SDE_FILE = "${SDE_DIR}/__source_date_epoch.txt"
SDE_DEPLOYDIR = "${WORKDIR}/deploy-source-date-epoch"
+# Enable compiler warning when the __TIME__, __DATE__ and __TIMESTAMP__ macros are used.
+TARGET_CC_ARCH_append_class-target = " -Wdate-time"
+
# A SOURCE_DATE_EPOCH of '0' might be misinterpreted as no SDE
export SOURCE_DATE_EPOCH_FALLBACK ??= "1302044400"
@@ -63,7 +66,7 @@ python do_deploy_source_date_epoch_setscene () {
if os.path.exists(sde_file):
target = d.getVar('SDE_FILE')
bb.debug(1, "Moving setscene SDE file %s -> %s" % (sde_file, target))
- os.rename(sde_file, target)
+ bb.utils.rename(sde_file, target)
else:
bb.debug(1, "%s not found!" % sde_file)
}
diff --git a/poky/meta/classes/sanity.bbclass b/poky/meta/classes/sanity.bbclass
index 894f0e310..e907a3566 100644
--- a/poky/meta/classes/sanity.bbclass
+++ b/poky/meta/classes/sanity.bbclass
@@ -392,9 +392,12 @@ def check_connectivity(d):
msg = data.getVar('CONNECTIVITY_CHECK_MSG') or ""
if len(msg) == 0:
msg = "%s.\n" % err
- msg += " Please ensure your host's network is configured correctly,\n"
- msg += " or set BB_NO_NETWORK = \"1\" to disable network access if\n"
- msg += " all required sources are on local disk.\n"
+ msg += " Please ensure your host's network is configured correctly.\n"
+ msg += " If your ISP or network is blocking the above URL,\n"
+ msg += " try with another domain name, for example by setting:\n"
+ msg += " CONNECTIVITY_CHECK_URIS = \"https://www.yoctoproject.org/\""
+ msg += " You could also set BB_NO_NETWORK = \"1\" to disable network\n"
+ msg += " access if all required sources are on local disk.\n"
retval = msg
return retval
@@ -882,13 +885,18 @@ def check_sanity_everybuild(status, d):
except:
pass
- oeroot = d.getVar('COREBASE')
- if oeroot.find('+') != -1:
- status.addresult("Error, you have an invalid character (+) in your COREBASE directory path. Please move the installation to a directory which doesn't include any + characters.")
- if oeroot.find('@') != -1:
- status.addresult("Error, you have an invalid character (@) in your COREBASE directory path. Please move the installation to a directory which doesn't include any @ characters.")
- if oeroot.find(' ') != -1:
- status.addresult("Error, you have a space in your COREBASE directory path. Please move the installation to a directory which doesn't include a space since autotools doesn't support this.")
+ for checkdir in ['COREBASE', 'TMPDIR']:
+ val = d.getVar(checkdir)
+ if val.find('..') != -1:
+ status.addresult("Error, you have '..' in your %s directory path. Please ensure the variable contains an absolute path as this can break some recipe builds in obtuse ways." % checkdir)
+ if val.find('+') != -1:
+ status.addresult("Error, you have an invalid character (+) in your %s directory path. Please move the installation to a directory which doesn't include any + characters." % checkdir)
+ if val.find('@') != -1:
+ status.addresult("Error, you have an invalid character (@) in your %s directory path. Please move the installation to a directory which doesn't include any @ characters." % checkdir)
+ if val.find(' ') != -1:
+ status.addresult("Error, you have a space in your %s directory path. Please move the installation to a directory which doesn't include a space since autotools doesn't support this." % checkdir)
+ if val.find('%') != -1:
+ status.addresult("Error, you have an invalid character (%) in your %s directory path which causes problems with python string formatting. Please move the installation to a directory which doesn't include any % characters." % checkdir)
# Check the format of MIRRORS, PREMIRRORS and SSTATE_MIRRORS
import re
diff --git a/poky/meta/classes/sstate.bbclass b/poky/meta/classes/sstate.bbclass
index 8e8efd18d..b1c608dcb 100644
--- a/poky/meta/classes/sstate.bbclass
+++ b/poky/meta/classes/sstate.bbclass
@@ -401,7 +401,7 @@ def sstate_installpkgdir(ss, d):
for state in ss['dirs']:
prepdir(state[1])
- os.rename(sstateinst + state[0], state[1])
+ bb.utils.rename(sstateinst + state[0], state[1])
sstate_install(ss, d)
for plain in ss['plaindirs']:
@@ -413,7 +413,7 @@ def sstate_installpkgdir(ss, d):
dest = plain
bb.utils.mkdirhier(src)
prepdir(dest)
- os.rename(src, dest)
+ bb.utils.rename(src, dest)
return True
@@ -664,7 +664,7 @@ def sstate_package(ss, d):
continue
bb.error("sstate found an absolute path symlink %s pointing at %s. Please replace this with a relative link." % (srcpath, link))
bb.debug(2, "Preparing tree %s for packaging at %s" % (state[1], sstatebuild + state[0]))
- os.rename(state[1], sstatebuild + state[0])
+ bb.utils.rename(state[1], sstatebuild + state[0])
workdir = d.getVar('WORKDIR')
sharedworkdir = os.path.join(d.getVar('TMPDIR'), "work-shared")
@@ -674,7 +674,7 @@ def sstate_package(ss, d):
pdir = plain.replace(sharedworkdir, sstatebuild)
bb.utils.mkdirhier(plain)
bb.utils.mkdirhier(pdir)
- os.rename(plain, pdir)
+ bb.utils.rename(plain, pdir)
d.setVar('SSTATE_BUILDDIR', sstatebuild)
d.setVar('SSTATE_INSTDIR', sstatebuild)
diff --git a/poky/meta/classes/testimage.bbclass b/poky/meta/classes/testimage.bbclass
index e61375950..43de9d4d7 100644
--- a/poky/meta/classes/testimage.bbclass
+++ b/poky/meta/classes/testimage.bbclass
@@ -127,6 +127,11 @@ testimage_dump_host () {
netstat -an
}
+testimage_dump_monitor () {
+ query-status
+ query-block
+}
+
python do_testimage() {
testimage_main(d)
}
@@ -320,6 +325,7 @@ def testimage_main(d):
target_kwargs['powercontrol_extra_args'] = d.getVar("TEST_POWERCONTROL_EXTRA_ARGS") or ""
target_kwargs['serialcontrol_cmd'] = d.getVar("TEST_SERIALCONTROL_CMD") or None
target_kwargs['serialcontrol_extra_args'] = d.getVar("TEST_SERIALCONTROL_EXTRA_ARGS") or ""
+ target_kwargs['testimage_dump_monitor'] = d.getVar("testimage_dump_monitor") or ""
target_kwargs['testimage_dump_target'] = d.getVar("testimage_dump_target") or ""
def export_ssh_agent(d):
diff --git a/poky/meta/classes/update-alternatives.bbclass b/poky/meta/classes/update-alternatives.bbclass
index 8c2b66e7f..000e4d566 100644
--- a/poky/meta/classes/update-alternatives.bbclass
+++ b/poky/meta/classes/update-alternatives.bbclass
@@ -184,7 +184,7 @@ python apply_update_alternative_renames () {
link_rename.append((alt_target, alt_target_rename))
else:
bb.note('%s: Rename %s -> %s' % (pn, alt_target, alt_target_rename))
- os.rename(src, dest)
+ bb.utils.rename(src, dest)
update_files(alt_target, alt_target_rename, pkg, d)
else:
bb.warn("%s: alternative target (%s or %s) does not exist, skipping..." % (pn, alt_target, alt_target_rename))
@@ -201,7 +201,7 @@ python apply_update_alternative_renames () {
if os.path.lexists(link_target):
# Ok, the link_target exists, we can rename
bb.note('%s: Rename (link) %s -> %s' % (pn, alt_target, alt_target_rename))
- os.rename(src, dest)
+ bb.utils.rename(src, dest)
else:
# Try to resolve the broken link to link.${BPN}
link_maybe = '%s.%s' % (os.readlink(src), pn)
diff --git a/poky/meta/conf/bitbake.conf b/poky/meta/conf/bitbake.conf
index 385fc7dd5..4fa47d88e 100644
--- a/poky/meta/conf/bitbake.conf
+++ b/poky/meta/conf/bitbake.conf
@@ -527,7 +527,7 @@ export STRIP = "${HOST_PREFIX}strip"
export OBJCOPY = "${HOST_PREFIX}objcopy"
export OBJDUMP = "${HOST_PREFIX}objdump"
export STRINGS = "${HOST_PREFIX}strings"
-export NM = "${HOST_PREFIX}nm"
+export NM = "${HOST_PREFIX}gcc-nm"
export READELF = "${HOST_PREFIX}readelf"
PYTHON = "${@sys.executable}"
@@ -635,6 +635,7 @@ BBLAYERS_FETCH_DIR ??= "${COREBASE}"
##################################################################
APACHE_MIRROR = "https://archive.apache.org/dist"
+CPAN_MIRROR = "https://search.cpan.org/CPAN"
DEBIAN_MIRROR = "http://ftp.debian.org/debian/pool"
GENTOO_MIRROR = "http://distfiles.gentoo.org/distfiles"
GNOME_GIT = "git://gitlab.gnome.org/GNOME"
@@ -643,12 +644,12 @@ GNU_MIRROR = "https://ftp.gnu.org/gnu"
GNUPG_MIRROR = "https://www.gnupg.org/ftp/gcrypt"
GPE_MIRROR = "http://gpe.linuxtogo.org/download/source"
KERNELORG_MIRROR = "https://cdn.kernel.org/pub"
+SAMBA_MIRROR = "http://samba.org/samba/ftp"
+SAVANNAH_GNU_MIRROR = "https://download.savannah.gnu.org/releases"
+SAVANNAH_NONGNU_MIRROR = "https://download.savannah.nongnu.org/releases"
SOURCEFORGE_MIRROR = "https://downloads.sourceforge.net"
XLIBS_MIRROR = "https://xlibs.freedesktop.org/release"
XORG_MIRROR = "https://www.x.org/releases/"
-SAVANNAH_GNU_MIRROR = "https://download.savannah.gnu.org/releases"
-SAVANNAH_NONGNU_MIRROR = "https://download.savannah.nongnu.org/releases"
-CPAN_MIRROR = "https://search.cpan.org/CPAN"
SRC_URI[vardepsexclude] += "\
APACHE_MIRROR \
@@ -661,6 +662,7 @@ SRC_URI[vardepsexclude] += "\
GNUPG_MIRROR \
GPE_MIRROR \
KERNELORG_MIRROR \
+ SAMBA_MIRROR \
SAVANNAH_GNU_MIRROR \
SAVANNAH_NONGNU_MIRROR \
SOURCEFORGE_MIRROR \
diff --git a/poky/meta/conf/distro/include/default-distrovars.inc b/poky/meta/conf/distro/include/default-distrovars.inc
index 433d4b665..ac1024576 100644
--- a/poky/meta/conf/distro/include/default-distrovars.inc
+++ b/poky/meta/conf/distro/include/default-distrovars.inc
@@ -10,7 +10,10 @@ LOCALE_UTF8_ONLY ?= "0"
LOCALE_UTF8_IS_DEFAULT ?= "1"
LOCALE_UTF8_IS_DEFAULT_class-nativesdk = "0"
-DISTRO_FEATURES_DEFAULT ?= "acl alsa argp bluetooth ext2 ipv4 ipv6 largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11 vfat"
+# seccomp is not yet ported to rv32
+DISTRO_FEATURES_DEFAULT_remove_riscv32 = "seccomp"
+
+DISTRO_FEATURES_DEFAULT ?= "acl alsa argp bluetooth debuginfod ext2 ipv4 ipv6 largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11 vfat seccomp"
DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT}"
IMAGE_FEATURES ?= ""
diff --git a/poky/meta/conf/distro/include/maintainers.inc b/poky/meta/conf/distro/include/maintainers.inc
index 627633185..140f7b490 100644
--- a/poky/meta/conf/distro/include/maintainers.inc
+++ b/poky/meta/conf/distro/include/maintainers.inc
@@ -78,7 +78,7 @@ RECIPE_MAINTAINER_pn-boost = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-boost-build-native = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-bootchart2 = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-bsd-headers = "Khem Raj <raj.khem@gmail.com>"
-RECIPE_MAINTAINER_pn-btrfs-tools = "Wang Mingyu <wangmy@cn.fujitsu.com>"
+RECIPE_MAINTAINER_pn-btrfs-tools = "Wang Mingyu <wangmy@fujitsu.com>"
RECIPE_MAINTAINER_pn-build-appliance-image = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-build-sysroots = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-builder = "Richard Purdie <richard.purdie@linuxfoundation.org>"
@@ -117,6 +117,9 @@ RECIPE_MAINTAINER_pn-core-image-testmaster-initramfs = "Richard Purdie <richard.
RECIPE_MAINTAINER_pn-core-image-testmaster = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-core-image-clutter = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-core-image-weston = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-core-image-weston-ptest-all = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-core-image-weston-ptest-fast = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-core-image-weston-sdk = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-core-image-x11 = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-core-image-sato-dev = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-core-image-sato-ptest-fast = "Richard Purdie <richard.purdie@linuxfoundation.org>"
@@ -157,14 +160,14 @@ RECIPE_MAINTAINER_pn-dos2unix = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-dosfstools = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-dpkg = "Aníbal Limón <limon.anibal@gmail.com>"
RECIPE_MAINTAINER_pn-dropbear = "Yi Zhao <yi.zhao@windriver.com>"
-RECIPE_MAINTAINER_pn-dtc = "Wang Mingyu <wangmy@cn.fujitsu.com>"
+RECIPE_MAINTAINER_pn-dtc = "Wang Mingyu <wangmy@fujitsu.com>"
RECIPE_MAINTAINER_pn-dwarfsrcfiles = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-e2fsprogs = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-ed = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-efivar = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-efibootmgr = "Ross Burton <ross.burton@arm.com>"
-RECIPE_MAINTAINER_pn-elfutils = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
-RECIPE_MAINTAINER_pn-ell = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
+RECIPE_MAINTAINER_pn-elfutils = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
+RECIPE_MAINTAINER_pn-ell = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
RECIPE_MAINTAINER_pn-enchant2 = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-encodings = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-epiphany = "Alexander Kanavin <alex.kanavin@gmail.com>"
@@ -191,7 +194,7 @@ RECIPE_MAINTAINER_pn-gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "Khem Raj <r
RECIPE_MAINTAINER_pn-gcc-crosssdk-${SDK_SYS} = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-gcc-runtime = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-gcc-sanitizers = "Khem Raj <raj.khem@gmail.com>"
-RECIPE_MAINTAINER_pn-gcc-source-10.2.0 = "Khem Raj <raj.khem@gmail.com>"
+RECIPE_MAINTAINER_pn-gcc-source-11.1.0 = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-gconf = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-gcr = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-gdb = "Khem Raj <raj.khem@gmail.com>"
@@ -279,7 +282,7 @@ RECIPE_MAINTAINER_pn-intltool = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-iproute2 = "Changhyeok Bae <changhyeok.bae@gmail.com>"
RECIPE_MAINTAINER_pn-iptables = "Changhyeok Bae <changhyeok.bae@gmail.com>"
RECIPE_MAINTAINER_pn-iputils = "Changhyeok Bae <changhyeok.bae@gmail.com>"
-RECIPE_MAINTAINER_pn-iso-codes = "Wang Mingyu <wangmy@cn.fujitsu.com>"
+RECIPE_MAINTAINER_pn-iso-codes = "Wang Mingyu <wangmy@cn.ujitsu.com>"
RECIPE_MAINTAINER_pn-itstool = "Andreas Müller <schnitzeltony@gmail.com>"
RECIPE_MAINTAINER_pn-iw = "Changhyeok Bae <changhyeok.bae@gmail.com>"
RECIPE_MAINTAINER_pn-libjpeg-turbo = "Anuj Mittal <anuj.mittal@intel.com>"
@@ -350,6 +353,7 @@ RECIPE_MAINTAINER_pn-libjitterentropy = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-libksba = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libmatchbox = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-libmd = "Alexander Kanavin <alex.kanavin@gmail.com>"
+RECIPE_MAINTAINER_pn-libmicrohttpd = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libmnl = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-libmpc = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-libmodule-build-perl = "Tim Orling <timothy.t.orling@linux.intel.com>"
@@ -364,19 +368,20 @@ RECIPE_MAINTAINER_pn-libogg = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libomxil = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libpam = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libpcap = "Anuj Mittal <anuj.mittal@intel.com>"
-RECIPE_MAINTAINER_pn-libpciaccess = "Wang Mingyu <wangmy@cn.fujitsu.com>"
+RECIPE_MAINTAINER_pn-libpciaccess = "Wang Mingyu <wangmy@fujitsu.com>"
RECIPE_MAINTAINER_pn-libpcre = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-libpcre2 = "Armin Kuster <akuster808@gmail.com>"
-RECIPE_MAINTAINER_pn-libpipeline = "Wang Mingyu <wangmy@cn.fujitsu.com>"
+RECIPE_MAINTAINER_pn-libpipeline = "Wang Mingyu <wangmy@fujitsu.com>"
RECIPE_MAINTAINER_pn-libpng = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libportal = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libproxy = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libpthread-stubs = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libpsl = "Anuj Mittal <anuj.mittal@intel.com>"
-RECIPE_MAINTAINER_pn-librepo = "Wang Mingyu <wangmy@cn.fujitsu.com>"
+RECIPE_MAINTAINER_pn-librepo = "Wang Mingyu <wangmy@fujitsu.com>"
RECIPE_MAINTAINER_pn-librsvg = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libsamplerate0 = "Unassigned <unassigned@yoctoproject.org>"
RECIPE_MAINTAINER_pn-libsdl2 = "Yi Zhao <yi.zhao@windriver.com>"
+RECIPE_MAINTAINER_pn-libseccomp = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libsecret = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libsm = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libsndfile1 = "Unassigned <unassigned@yoctoproject.org>"
@@ -395,7 +400,7 @@ RECIPE_MAINTAINER_pn-libtool-native = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-libucontext = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-libunistring = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libunwind = "Bruce Ashfield <bruce.ashfield@gmail.com>"
-RECIPE_MAINTAINER_pn-liburcu = "Wang Mingyu <wangmy@cn.fujitsu.com>"
+RECIPE_MAINTAINER_pn-liburcu = "Wang Mingyu <wangmy@fujitsu.com>"
RECIPE_MAINTAINER_pn-liburi-perl = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-libusb1 = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libubootenv = "Stefano Babic <sbabic@denx.de>"
@@ -403,7 +408,7 @@ RECIPE_MAINTAINER_pn-libuv = "Armin Kuster <akuster@mvista.com>"
RECIPE_MAINTAINER_pn-libva = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libva-initial = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libva-utils = "Anuj Mittal <anuj.mittal@intel.com>"
-RECIPE_MAINTAINER_pn-libvorbis = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
+RECIPE_MAINTAINER_pn-libvorbis = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
RECIPE_MAINTAINER_pn-libwebp = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libwpe = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libx11 = "Armin Kuster <akuster808@gmail.com>"
@@ -444,7 +449,7 @@ RECIPE_MAINTAINER_pn-libxtst = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libxv = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libxvmc = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libxxf86vm = "Armin Kuster <akuster808@gmail.com>"
-RECIPE_MAINTAINER_pn-libyaml = "Wang Mingyu <wangmy@cn.fujitsu.com>"
+RECIPE_MAINTAINER_pn-libyaml = "Wang Mingyu <wangmy@fujitsu.com>"
RECIPE_MAINTAINER_pn-lighttpd = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-linux-dummy = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-linux-firmware = "Otavio Salvador <otavio.salvador@ossystems.com.br>"
@@ -509,7 +514,7 @@ RECIPE_MAINTAINER_pn-modutils-initscripts = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-mpeg2dec = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-mpfr = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-mpg123 = "Alexander Kanavin <alex.kanavin@gmail.com>"
-RECIPE_MAINTAINER_pn-msmtp = "Wang Mingyu <wangmy@cn.fujitsu.com>"
+RECIPE_MAINTAINER_pn-msmtp = "Wang Mingyu <wangmy@fujitsu.com>"
RECIPE_MAINTAINER_pn-mtd-utils = "Denys Dmytriyenko <denis@denix.org>"
RECIPE_MAINTAINER_pn-mtdev = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-mtools = "Anuj Mittal <anuj.mittal@intel.com>"
@@ -587,7 +592,7 @@ RECIPE_MAINTAINER_pn-python3-async = "Oleksandr Kravchuk <open.source@oleksandr-
RECIPE_MAINTAINER_pn-python3-atomicwrites = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-attrs = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-cython = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
-RECIPE_MAINTAINER_pn-python3-dbus = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
+RECIPE_MAINTAINER_pn-python3-dbus = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
RECIPE_MAINTAINER_pn-python3-dbusmock = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
RECIPE_MAINTAINER_pn-python3-docutils = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
RECIPE_MAINTAINER_pn-python3-pycryptodome = "Joshua Watt <JPEWhacker@gmail.com>"
@@ -609,21 +614,22 @@ RECIPE_MAINTAINER_pn-python3-nose = "Oleksandr Kravchuk <open.source@oleksandr-k
RECIPE_MAINTAINER_pn-python3-numpy = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
RECIPE_MAINTAINER_pn-python3-packaging = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-pathlib2 = "Tim Orling <timothy.t.orling@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python3-pbr = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
-RECIPE_MAINTAINER_pn-python3-pip = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
+RECIPE_MAINTAINER_pn-python3-pbr = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
+RECIPE_MAINTAINER_pn-python3-pip = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
RECIPE_MAINTAINER_pn-python3-pluggy = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-py = "Tim Orling <timothy.t.orling@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python3-pycairo = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
+RECIPE_MAINTAINER_pn-python3-pyyaml = "Tim Orling <timothy.t.orling@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python3-pycairo = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
RECIPE_MAINTAINER_pn-python3-pyelftools = "Joshua Watt <JPEWhacker@gmail.com>"
RECIPE_MAINTAINER_pn-python3-pygments = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
-RECIPE_MAINTAINER_pn-python3-pygobject = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
+RECIPE_MAINTAINER_pn-python3-pygobject = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
RECIPE_MAINTAINER_pn-python3-pyparsing = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
RECIPE_MAINTAINER_pn-python3-pytest = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-scons = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-scons-native = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-setuptools = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
RECIPE_MAINTAINER_pn-python3-setuptools-scm = "Tim Orling <timothy.t.orling@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python3-six = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
+RECIPE_MAINTAINER_pn-python3-six = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
RECIPE_MAINTAINER_pn-python3-smmap = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
RECIPE_MAINTAINER_pn-python3-sortedcontainers = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-subunit = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
@@ -797,6 +803,7 @@ RECIPE_MAINTAINER_pn-xset = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xtrans = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xuser-account = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xvinfo = "Armin Kuster <akuster808@gmail.com>"
+RECIPE_MAINTAINER_pn-xwayland = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xwininfo = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xxhash = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-xz = "Denys Dmytriyenko <denis@denix.org>"
diff --git a/poky/meta/conf/distro/include/tcmode-default.inc b/poky/meta/conf/distro/include/tcmode-default.inc
index 76ada982f..a0c35eed0 100644
--- a/poky/meta/conf/distro/include/tcmode-default.inc
+++ b/poky/meta/conf/distro/include/tcmode-default.inc
@@ -16,7 +16,7 @@ PREFERRED_PROVIDER_virtual/${SDK_PREFIX}compilerlibs = "nativesdk-gcc-runtime"
# Default libc config
PREFERRED_PROVIDER_virtual/gettext ??= "gettext"
-GCCVERSION ?= "10.%"
+GCCVERSION ?= "11.%"
SDKGCCVERSION ?= "${GCCVERSION}"
BINUVERSION ?= "2.36%"
GDBVERSION ?= "10.%"
@@ -26,7 +26,7 @@ QEMUVERSION ?= "5.2%"
GOVERSION ?= "1.16%"
# This can not use wildcards like 8.0.% since it is also used in mesa to denote
# llvm version being used, so always bump it with llvm recipe version bump
-LLVMVERSION ?= "11.1.0"
+LLVMVERSION ?= "12.0.0"
PREFERRED_VERSION_gcc ?= "${GCCVERSION}"
PREFERRED_VERSION_gcc-cross-${TARGET_ARCH} ?= "${GCCVERSION}"
diff --git a/poky/meta/conf/distro/include/yocto-uninative.inc b/poky/meta/conf/distro/include/yocto-uninative.inc
index a2a2dd18e..05b79d14c 100644
--- a/poky/meta/conf/distro/include/yocto-uninative.inc
+++ b/poky/meta/conf/distro/include/yocto-uninative.inc
@@ -8,7 +8,7 @@
UNINATIVE_MAXGLIBCVERSION = "2.33"
-UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/3.0/"
-UNINATIVE_CHECKSUM[aarch64] ?= "1c668909098c5b56132067adc69a249cb771f4560428e5822de903a12d97bf33"
-UNINATIVE_CHECKSUM[i686] ?= "e6cc2fc056234cffa6a2ff084cce27d544ea3f487a62b5e253351cefd4421900"
-UNINATIVE_CHECKSUM[x86_64] ?= "5ec5a9276046e7eceeac749a18b175667384e1f445cd4526300a41404d985a5b"
+UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/3.1/"
+UNINATIVE_CHECKSUM[aarch64] ?= "7fa12b9fe7a95934cc09beb0e8a25ff97179ef3105116015d32548eadd27b024"
+UNINATIVE_CHECKSUM[i686] ?= "bbfcdd48336800b5af97e294918c6586a0a8fa903f127f813b0bd5110de8c55c"
+UNINATIVE_CHECKSUM[x86_64] ?= "5d0611df544edff6428cef7d871257a91aa6ba1bd92f5365a2df8deb54b6b31e"
diff --git a/poky/meta/conf/layer.conf b/poky/meta/conf/layer.conf
index 5210fd461..5892c80ae 100644
--- a/poky/meta/conf/layer.conf
+++ b/poky/meta/conf/layer.conf
@@ -7,12 +7,12 @@ BBFILE_COLLECTIONS += "core"
BBFILE_PATTERN_core = "^${LAYERDIR}/"
BBFILE_PRIORITY_core = "5"
-LAYERSERIES_CORENAMES = "hardknott"
+LAYERSERIES_CORENAMES = "hardknott honister"
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
LAYERVERSION_core = "12"
-LAYERSERIES_COMPAT_core = "hardknott"
+LAYERSERIES_COMPAT_core = "honister"
BBLAYERS_LAYERINDEX_NAME_core = "openembedded-core"
diff --git a/poky/meta/conf/machine/include/arm/arch-armv6m.inc b/poky/meta/conf/machine/include/arm/arch-armv6m.inc
index 739550d00..739550d00 100755..100644
--- a/poky/meta/conf/machine/include/arm/arch-armv6m.inc
+++ b/poky/meta/conf/machine/include/arm/arch-armv6m.inc
diff --git a/poky/meta/conf/sanity.conf b/poky/meta/conf/sanity.conf
index ef7cee6b6..68d4523af 100644
--- a/poky/meta/conf/sanity.conf
+++ b/poky/meta/conf/sanity.conf
@@ -3,7 +3,7 @@
# See sanity.bbclass
#
# Expert users can confirm their sanity with "touch conf/sanity.conf"
-BB_MIN_VERSION = "1.49.2"
+BB_MIN_VERSION = "1.51.0"
SANITY_ABIFILE = "${TMPDIR}/abi_version"
diff --git a/poky/meta/lib/oe/package_manager/__init__.py b/poky/meta/lib/oe/package_manager/__init__.py
index 8e7128b19..4d22bc029 100644
--- a/poky/meta/lib/oe/package_manager/__init__.py
+++ b/poky/meta/lib/oe/package_manager/__init__.py
@@ -189,7 +189,7 @@ class PackageManager(object, metaclass=ABCMeta):
bb.utils.remove(self.intercepts_dir, True)
bb.utils.mkdirhier(self.intercepts_dir)
for intercept in postinst_intercepts:
- bb.utils.copyfile(intercept, os.path.join(self.intercepts_dir, os.path.basename(intercept)))
+ shutil.copy(intercept, os.path.join(self.intercepts_dir, os.path.basename(intercept)))
@abstractmethod
def _handle_intercept_failure(self, failed_script):
diff --git a/poky/meta/lib/oe/package_manager/deb/__init__.py b/poky/meta/lib/oe/package_manager/deb/__init__.py
index 2ee68fefb..a4b6b6f64 100644
--- a/poky/meta/lib/oe/package_manager/deb/__init__.py
+++ b/poky/meta/lib/oe/package_manager/deb/__init__.py
@@ -214,7 +214,7 @@ class DpkgPM(OpkgDpkgPM):
tmp_sf.write(status)
- os.rename(status_file + ".tmp", status_file)
+ bb.utils.rename(status_file + ".tmp", status_file)
def run_pre_post_installs(self, package_name=None):
"""
@@ -299,13 +299,13 @@ class DpkgPM(OpkgDpkgPM):
for dir in dirs:
new_dir = re.sub(r"\.dpkg-new", "", dir)
if dir != new_dir:
- os.rename(os.path.join(root, dir),
+ bb.utils.rename(os.path.join(root, dir),
os.path.join(root, new_dir))
for file in files:
new_file = re.sub(r"\.dpkg-new", "", file)
if file != new_file:
- os.rename(os.path.join(root, file),
+ bb.utils.rename(os.path.join(root, file),
os.path.join(root, new_file))
diff --git a/poky/meta/lib/oe/package_manager/deb/sdk.py b/poky/meta/lib/oe/package_manager/deb/sdk.py
index 9859d8f32..f4b0b6510 100644
--- a/poky/meta/lib/oe/package_manager/deb/sdk.py
+++ b/poky/meta/lib/oe/package_manager/deb/sdk.py
@@ -65,6 +65,8 @@ class PkgSdk(Sdk):
self.target_pm.install_complementary(self.d.getVar('SDKIMAGE_INSTALL_COMPLEMENTARY'))
+ self.target_pm.run_pre_post_installs()
+
self.target_pm.run_intercepts(populate_sdk='target')
execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_TARGET_COMMAND"))
@@ -78,6 +80,8 @@ class PkgSdk(Sdk):
self._populate_sysroot(self.host_pm, self.host_manifest)
self.install_locales(self.host_pm)
+ self.host_pm.run_pre_post_installs()
+
self.host_pm.run_intercepts(populate_sdk='host')
execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_HOST_COMMAND"))
diff --git a/poky/meta/lib/oe/package_manager/ipk/__init__.py b/poky/meta/lib/oe/package_manager/ipk/__init__.py
index da488c1c7..4cd396311 100644
--- a/poky/meta/lib/oe/package_manager/ipk/__init__.py
+++ b/poky/meta/lib/oe/package_manager/ipk/__init__.py
@@ -213,7 +213,7 @@ class OpkgPM(OpkgDpkgPM):
tmp_sf.write(status)
- os.rename(status_file + ".tmp", status_file)
+ bb.utils.rename(status_file + ".tmp", status_file)
def _create_custom_config(self):
bb.note("Building from feeds activated!")
diff --git a/poky/meta/lib/oe/prservice.py b/poky/meta/lib/oe/prservice.py
index fcdbe66c1..15ce060ff 100644
--- a/poky/meta/lib/oe/prservice.py
+++ b/poky/meta/lib/oe/prservice.py
@@ -7,7 +7,7 @@ def prserv_make_conn(d, check = False):
host_params = list([_f for _f in (d.getVar("PRSERV_HOST") or '').split(':') if _f])
try:
conn = None
- conn = prserv.serv.PRServerConnection(host_params[0], int(host_params[1]))
+ conn = prserv.serv.connect(host_params[0], int(host_params[1]))
if check:
if not conn.ping():
raise Exception('service not available')
diff --git a/poky/meta/lib/oe/rootfs.py b/poky/meta/lib/oe/rootfs.py
index 5f8102304..4b48cdbb6 100644
--- a/poky/meta/lib/oe/rootfs.py
+++ b/poky/meta/lib/oe/rootfs.py
@@ -114,7 +114,7 @@ class Rootfs(object, metaclass=ABCMeta):
shutil.rmtree(self.image_rootfs + '-orig')
except:
pass
- os.rename(self.image_rootfs, self.image_rootfs + '-orig')
+ bb.utils.rename(self.image_rootfs, self.image_rootfs + '-orig')
bb.note(" Creating debug rootfs...")
bb.utils.mkdirhier(self.image_rootfs)
@@ -165,10 +165,10 @@ class Rootfs(object, metaclass=ABCMeta):
shutil.rmtree(self.image_rootfs + '-dbg')
except:
pass
- os.rename(self.image_rootfs, self.image_rootfs + '-dbg')
+ bb.utils.rename(self.image_rootfs, self.image_rootfs + '-dbg')
bb.note(" Restoreing original rootfs...")
- os.rename(self.image_rootfs + '-orig', self.image_rootfs)
+ bb.utils.rename(self.image_rootfs + '-orig', self.image_rootfs)
def _exec_shell_cmd(self, cmd):
fakerootcmd = self.d.getVar('FAKEROOT')
@@ -305,7 +305,7 @@ class Rootfs(object, metaclass=ABCMeta):
def _check_for_kernel_modules(self, modules_dir):
for root, dirs, files in os.walk(modules_dir, topdown=True):
for name in files:
- found_ko = name.endswith(".ko")
+ found_ko = name.endswith((".ko", ".ko.gz", ".ko.xz"))
if found_ko:
return found_ko
return False
diff --git a/poky/meta/lib/oe/terminal.py b/poky/meta/lib/oe/terminal.py
index 61c2687ef..59aa80de6 100644
--- a/poky/meta/lib/oe/terminal.py
+++ b/poky/meta/lib/oe/terminal.py
@@ -163,7 +163,12 @@ class Tmux(Terminal):
# devshells, if it's already there, add a new window to it.
window_name = 'devshell-%i' % os.getpid()
- self.command = 'tmux new -c "{{cwd}}" -d -s {0} -n {0} "{{command}}"'.format(window_name)
+ self.command = 'tmux new -c "{{cwd}}" -d -s {0} -n {0} "{{command}}"'
+ if not check_tmux_version('1.9'):
+ # `tmux new-session -c` was added in 1.9;
+ # older versions fail with that flag
+ self.command = 'tmux new -d -s {0} -n {0} "{{command}}"'
+ self.command = self.command.format(window_name)
Terminal.__init__(self, sh_cmd, title, env, d)
attach_cmd = 'tmux att -t {0}'.format(window_name)
@@ -253,13 +258,18 @@ def spawn(name, sh_cmd, title=None, env=None, d=None):
except OSError:
return
+def check_tmux_version(desired):
+ vernum = check_terminal_version("tmux")
+ if vernum and LooseVersion(vernum) < desired:
+ return False
+ return vernum
+
def check_tmux_pane_size(tmux):
import subprocess as sub
# On older tmux versions (<1.9), return false. The reason
# is that there is no easy way to get the height of the active panel
# on current window without nested formats (available from version 1.9)
- vernum = check_terminal_version("tmux")
- if vernum and LooseVersion(vernum) < '1.9':
+ if not check_tmux_version('1.9'):
return False
try:
p = sub.Popen('%s list-panes -F "#{?pane_active,#{pane_height},}"' % tmux,
diff --git a/poky/meta/lib/oeqa/core/case.py b/poky/meta/lib/oeqa/core/case.py
index aae451fef..bc4446a93 100644
--- a/poky/meta/lib/oeqa/core/case.py
+++ b/poky/meta/lib/oeqa/core/case.py
@@ -43,8 +43,13 @@ class OETestCase(unittest.TestCase):
clss.tearDownClassMethod()
def _oeSetUp(self):
- for d in self.decorators:
- d.setUpDecorator()
+ try:
+ for d in self.decorators:
+ d.setUpDecorator()
+ except:
+ for d in self.decorators:
+ d.tearDownDecorator()
+ raise
self.setUpMethod()
def _oeTearDown(self):
diff --git a/poky/meta/lib/oeqa/core/decorator/oetimeout.py b/poky/meta/lib/oeqa/core/decorator/oetimeout.py
index df90d1c79..5e6873ad4 100644
--- a/poky/meta/lib/oeqa/core/decorator/oetimeout.py
+++ b/poky/meta/lib/oeqa/core/decorator/oetimeout.py
@@ -24,5 +24,6 @@ class OETimeout(OETestDecorator):
def tearDownDecorator(self):
signal.alarm(0)
- signal.signal(signal.SIGALRM, self.alarmSignal)
- self.logger.debug("Removed SIGALRM handler")
+ if hasattr(self, 'alarmSignal'):
+ signal.signal(signal.SIGALRM, self.alarmSignal)
+ self.logger.debug("Removed SIGALRM handler")
diff --git a/poky/meta/lib/oeqa/core/target/qemu.py b/poky/meta/lib/oeqa/core/target/qemu.py
index 792efca1f..4a5df4a9a 100644
--- a/poky/meta/lib/oeqa/core/target/qemu.py
+++ b/poky/meta/lib/oeqa/core/target/qemu.py
@@ -12,6 +12,7 @@ from collections import defaultdict
from .ssh import OESSHTarget
from oeqa.utils.qemurunner import QemuRunner
+from oeqa.utils.dump import MonitorDumper
from oeqa.utils.dump import TargetDumper
supported_fstypes = ['ext3', 'ext4', 'cpio.gz', 'wic']
@@ -43,6 +44,11 @@ class OEQemuTarget(OESSHTarget):
dump_host_cmds=dump_host_cmds, logger=logger,
serial_ports=serial_ports, boot_patterns = boot_patterns,
use_ovmf=ovmf, tmpfsdir=tmpfsdir)
+ dump_monitor_cmds = kwargs.get("testimage_dump_monitor")
+ self.monitor_dumper = MonitorDumper(dump_monitor_cmds, dump_dir, self.runner)
+ if self.monitor_dumper:
+ self.monitor_dumper.create_dir("qmp")
+
dump_target_cmds = kwargs.get("testimage_dump_target")
self.target_dumper = TargetDumper(dump_target_cmds, dump_dir, self.runner)
self.target_dumper.create_dir("qemu")
diff --git a/poky/meta/lib/oeqa/core/target/ssh.py b/poky/meta/lib/oeqa/core/target/ssh.py
index 461448dbc..923a223b2 100644
--- a/poky/meta/lib/oeqa/core/target/ssh.py
+++ b/poky/meta/lib/oeqa/core/target/ssh.py
@@ -43,6 +43,7 @@ class OESSHTarget(OETarget):
if port:
self.ssh = self.ssh + [ '-p', port ]
self.scp = self.scp + [ '-P', port ]
+ self._monitor_dumper = None
def start(self, **kwargs):
pass
@@ -50,6 +51,15 @@ class OESSHTarget(OETarget):
def stop(self, **kwargs):
pass
+ @property
+ def monitor_dumper(self):
+ return self._monitor_dumper
+
+ @monitor_dumper.setter
+ def monitor_dumper(self, dumper):
+ self._monitor_dumper = dumper
+ self.monitor_dumper.dump_monitor()
+
def _run(self, command, timeout=None, ignore_status=True):
"""
Runs command in target using SSHProcess.
@@ -87,9 +97,14 @@ class OESSHTarget(OETarget):
processTimeout = self.timeout
status, output = self._run(sshCmd, processTimeout, True)
- self.logger.debug('Command: %s\nOutput: %s\n' % (command, output))
+ self.logger.debug('Command: %s\nStatus: %d Output: %s\n' % (command, status, output))
if (status == 255) and (('No route to host') in output):
+ if self.monitor_dumper:
+ self.monitor_dumper.dump_monitor()
+ if status == 255:
self.target_dumper.dump_target()
+ if self.monitor_dumper:
+ self.monitor_dumper.dump_monitor()
return (status, output)
def copyTo(self, localSrc, remoteDst):
diff --git a/poky/meta/lib/oeqa/core/tests/cases/timeout.py b/poky/meta/lib/oeqa/core/tests/cases/timeout.py
index 5dfecc7b7..69cf969a6 100644
--- a/poky/meta/lib/oeqa/core/tests/cases/timeout.py
+++ b/poky/meta/lib/oeqa/core/tests/cases/timeout.py
@@ -8,6 +8,7 @@ from time import sleep
from oeqa.core.case import OETestCase
from oeqa.core.decorator.oetimeout import OETimeout
+from oeqa.core.decorator.depends import OETestDepends
class TimeoutTest(OETestCase):
@@ -19,3 +20,15 @@ class TimeoutTest(OETestCase):
def testTimeoutFail(self):
sleep(2)
self.assertTrue(True, msg='How is this possible?')
+
+
+ def testTimeoutSkip(self):
+ self.skipTest("This test needs to be skipped, so that testTimeoutDepends()'s OETestDepends kicks in")
+
+ @OETestDepends(["timeout.TimeoutTest.testTimeoutSkip"])
+ @OETimeout(3)
+ def testTimeoutDepends(self):
+ self.assertTrue(False, msg='How is this possible?')
+
+ def testTimeoutUnrelated(self):
+ sleep(6)
diff --git a/poky/meta/lib/oeqa/core/tests/test_data.py b/poky/meta/lib/oeqa/core/tests/test_data.py
index ac74098b7..acd726f3a 100755
--- a/poky/meta/lib/oeqa/core/tests/test_data.py
+++ b/poky/meta/lib/oeqa/core/tests/test_data.py
@@ -33,7 +33,7 @@ class TestData(TestBase):
def test_data_fail_wrong_variable(self):
expectedError = 'AssertionError'
- d = {'IMAGE' : 'core-image-sato', 'ARCH' : 'arm'}
+ d = {'IMAGE' : 'core-image-weston', 'ARCH' : 'arm'}
tc = self._testLoader(d=d, modules=self.modules)
results = tc.runTests()
diff --git a/poky/meta/lib/oeqa/core/tests/test_decorators.py b/poky/meta/lib/oeqa/core/tests/test_decorators.py
index b798bf7d3..5095f3994 100755
--- a/poky/meta/lib/oeqa/core/tests/test_decorators.py
+++ b/poky/meta/lib/oeqa/core/tests/test_decorators.py
@@ -133,5 +133,11 @@ class TestTimeoutDecorator(TestBase):
msg = "OETestTimeout didn't restore SIGALRM"
self.assertIs(alarm_signal, signal.getsignal(signal.SIGALRM), msg=msg)
+ def test_timeout_cancel(self):
+ tests = ['timeout.TimeoutTest.testTimeoutSkip', 'timeout.TimeoutTest.testTimeoutDepends', 'timeout.TimeoutTest.testTimeoutUnrelated']
+ msg = 'Unrelated test failed to complete'
+ tc = self._testLoader(modules=self.modules, tests=tests)
+ self.assertTrue(tc.runTests().wasSuccessful(), msg=msg)
+
if __name__ == '__main__':
unittest.main()
diff --git a/poky/meta/lib/oeqa/manual/bsp-hw.json b/poky/meta/lib/oeqa/manual/bsp-hw.json
index 75b89758c..ca91987e3 100644
--- a/poky/meta/lib/oeqa/manual/bsp-hw.json
+++ b/poky/meta/lib/oeqa/manual/bsp-hw.json
@@ -61,70 +61,6 @@
},
{
"test": {
- "@alias": "bsps-hw.bsps-hw.boot_from_runlevel_3",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Boot into system and edit /etc/inittab to make sure that system enter at the run level 3 by default, this is done by changing the line \n\n\nid:5:initdefault \n\nto \n\nid:3:initdefault \n\n",
- "expected_results": ""
- },
- "2": {
- "action": "Reboot system, and press \"Tab\" to enter \"grub\"",
- "expected_results": ""
- },
- "3": {
- "action": "Get into the \"kernel\" line with the edit option \"e\" and add \"psplash=false text\" at the end line.",
- "expected_results": ""
- },
- "4": {
- "action": "Press \"F10\" or \"ctrl+x\" to boot system",
- "expected_results": ""
- },
- "5": {
- "action": "If system ask you for a login type \"root\"",
- "expected_results": "System should boot to run level 3, showing the command prompt."
- }
- },
- "summary": "boot_from_runlevel_3"
- }
- },
- {
- "test": {
- "@alias": "bsps-hw.bsps-hw.boot_from_runlevel_5",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Boot into system and edit /etc/inittab to make sure that system enter at the run level 5 by default, this is done by changing the line \n\nid:3:initdefault \n\nto \n\nid:5:initdefault \n\n",
- "expected_results": ""
- },
- "2": {
- "action": "Reboot system, and press \"Tab\" to enter \"grub\"",
- "expected_results": ""
- },
- "3": {
- "action": "Get into the \"kernel\" line with the edit option \"e\" and add \"psplash=false text\" at the end line.",
- "expected_results": ""
- },
- "4": {
- "action": "Press \"F10\" or \"ctrl+x\" to boot system \nNote: The test is only for sato image.",
- "expected_results": "System should boot to runlevel 5 ."
- }
- },
- "summary": "boot_from_runlevel_5"
- }
- },
- {
- "test": {
"@alias": "bsps-hw.bsps-hw.switch_among_multi_applications_and_desktop",
"author": [
{
@@ -155,70 +91,6 @@
},
{
"test": {
- "@alias": "bsps-hw.bsps-hw.ethernet_static_ip_set_in_connman",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Boot the system and check internet connection is on . ",
- "expected_results": ""
- },
- "2": {
- "action": "Launch connmand-properties (up-right corner on desktop)",
- "expected_results": ""
- },
- "3": {
- "action": "Choose Ethernet device and set a valid static ip address for it. \nFor example, in our internal network, we can set as following: \nip address: 10.239.48.xxx \nMask: 255.255.255.0 \nGateway (Broadcast): 10.239.48.255",
- "expected_results": ""
- },
- "4": {
- "action": "Check the Network configuration with \"ifconfig\"",
- "expected_results": "Static IP was set successfully \n"
- },
- "5": {
- "action": "ping to another IP adress",
- "expected_results": "Ping works correclty\n"
- }
- },
- "summary": "ethernet_static_ip_set_in_connman"
- }
- },
- {
- "test": {
- "@alias": "bsps-hw.bsps-hw.ethernet_get_IP_in_connman_via_DHCP",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Launch connmand-properties (up-right corner on your desktop). ",
- "expected_results": ""
- },
- "2": {
- "action": "Check if Ethernet device can work properly with static IP, doing \"ping XXX.XXX.XXX.XXX\", once this is set.",
- "expected_results": "Ping executed successfully . \n\n"
- },
- "3": {
- "action": "Then choose DHCP method for Ethernet device in connmand-properties.",
- "expected_results": ""
- },
- "4": {
- "action": "Check with 'ifconfig\" and \"ping\" if Ethernet device get IP address via DHCP.",
- "expected_results": "Ethernet device can get dynamic IP address via DHCP in connmand ."
- }
- },
- "summary": "ethernet_get_IP_in_connman_via_DHCP"
- }
- },
- {
- "test": {
"@alias": "bsps-hw.bsps-hw.connman_offline_mode_in_connman-gnome",
"author": [
{
@@ -241,40 +113,6 @@
},
{
"test": {
- "@alias": "bsps-hw.bsps-hw.standby",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "boot system and launch terminal; check output of \"date\" and launch script \"continue.sh\"",
- "expected_results": ""
- },
- "2": {
- "action": "echo \"mem\" > /sys/power/state",
- "expected_results": ""
- },
- "3": {
- "action": "After system go into S3 mode, move mouse or press any key to make it resume (on NUC press power button)",
- "expected_results": ""
- },
- "4": {
- "action": "Check \"date\" and script \"continue.sh\"",
- "expected_results": ""
- },
- "5": {
- "action": "Check if application can work as normal \ncontinue.sh as below: \n \n#!/bin/sh \n \ni=1 \nwhile [ 0 ] \ndo \n echo $i \n sleep 1 \n i=$((i+1)) \ndone ",
- "expected_results": "Screen should resume back and script can run continuously incrementing the i's value from where it was before going to standby state. Date should be the same with the corresponding time increment."
- }
- },
- "summary": "standby"
- }
- },
- {
- "test": {
"@alias": "bsps-hw.bsps-hw.check_CPU_utilization_after_standby",
"author": [
{
@@ -305,88 +143,6 @@
},
{
"test": {
- "@alias": "bsps-hw.bsps-hw.Test_if_LAN_device_works_well_after_resume_from_suspend_state",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "boot system and launch terminal",
- "expected_results": ""
- },
- "2": {
- "action": "echo \"mem\" > /sys/power/state",
- "expected_results": ""
- },
- "3": {
- "action": "After system go into S3 mode, move mouse or press any key to make it resume",
- "expected_results": ""
- },
- "4": {
- "action": "check ping status \n\nNote: This TC apply only for core-image-full-cmd.",
- "expected_results": "ping should always work before/after standby"
- }
- },
- "summary": "Test_if_LAN_device_works_well_after_resume_from_suspend_state"
- }
- },
- {
- "test": {
- "@alias": "bsps-hw.bsps-hw.Test_if_usb_hid_device_works_well_after_resume_from_suspend_state",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "boot system and launch terminal",
- "expected_results": ""
- },
- "2": {
- "action": "echo \"mem\" > /sys/power/state",
- "expected_results": ""
- },
- "3": {
- "action": "After system go into S3 mode, resume the device by pressing the power button or using HID devices",
- "expected_results": "Devices resumes "
- },
- "4": {
- "action": "check usb mouse and keyboard",
- "expected_results": "Usb mouse and keyboard should work"
- }
- },
- "summary": "Test_if_usb_hid_device_works_well_after_resume_from_suspend_state"
- }
- },
- {
- "test": {
- "@alias": "bsps-hw.bsps-hw.click_terminal_icon_on_X_desktop",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "After system launch and X start up, click terminal icon on desktop",
- "expected_results": ""
- },
- "2": {
- "action": "Check if only one terminal window launched and no other problem met",
- "expected_results": "There should be no problem after launching terminal . "
- }
- },
- "summary": "click_terminal_icon_on_X_desktop"
- }
- },
- {
- "test": {
"@alias": "bsps-hw.bsps-hw.Add_multiple_files_in_media_player",
"author": [
{
@@ -839,40 +595,6 @@
},
{
"test": {
- "@alias": "bsps-hw.bsps-hw.Check_if_RTC_(Real_Time_Clock)_can_work_correctly",
- "author": [
- {
- "email": "yi.zhao@windriver.com",
- "name": "yi.zhao@windriver.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Read time from RTC registers. root@localhost:/root> hwclock -r Sun Mar 22 04:05:47 1970 -0.001948 seconds ",
- "expected_results": "Can read and set the time from RTC.\n"
- },
- "2": {
- "action": "Set system current time root@localhost:/root> date 062309452008 ",
- "expected_results": ""
- },
- "3": {
- "action": "Synchronize the system current time to RTC registers root@localhost:/root> hwclock -w ",
- "expected_results": ""
- },
- "4": {
- "action": "Read time from RTC registers root@localhost:/root> hwclock -r ",
- "expected_results": ""
- },
- "5": {
- "action": "Reboot target and read time from RTC again\n",
- "expected_results": ""
- }
- },
- "summary": "Check_if_RTC_(Real_Time_Clock)_can_work_correctly"
- }
- },
- {
- "test": {
"@alias": "bsps-hw.bsps-hw.System_can_boot_up_via_NFS",
"author": [
{
diff --git a/poky/meta/lib/oeqa/runtime/cases/date.py b/poky/meta/lib/oeqa/runtime/cases/date.py
index fdd2a6ae5..e14322911 100644
--- a/poky/meta/lib/oeqa/runtime/cases/date.py
+++ b/poky/meta/lib/oeqa/runtime/cases/date.py
@@ -13,12 +13,12 @@ class DateTest(OERuntimeTestCase):
def setUp(self):
if self.tc.td.get('VIRTUAL-RUNTIME_init_manager') == 'systemd':
self.logger.debug('Stopping systemd-timesyncd daemon')
- self.target.run('systemctl disable --now systemd-timesyncd')
+ self.target.run('systemctl disable --now --runtime systemd-timesyncd')
def tearDown(self):
if self.tc.td.get('VIRTUAL-RUNTIME_init_manager') == 'systemd':
self.logger.debug('Starting systemd-timesyncd daemon')
- self.target.run('systemctl enable --now systemd-timesyncd')
+ self.target.run('systemctl enable --now --runtime systemd-timesyncd')
@OETestDepends(['ssh.SSHTest.test_ssh'])
@OEHasPackage(['coreutils', 'busybox'])
diff --git a/poky/meta/lib/oeqa/runtime/cases/parselogs.py b/poky/meta/lib/oeqa/runtime/cases/parselogs.py
index 4714741af..1bb042552 100644
--- a/poky/meta/lib/oeqa/runtime/cases/parselogs.py
+++ b/poky/meta/lib/oeqa/runtime/cases/parselogs.py
@@ -88,6 +88,8 @@ qemux86_common = [
'tsc: HPET/PMTIMER calibration failed',
"modeset(0): Failed to initialize the DRI2 extension",
"glamor initialization failed",
+ "blk_update_request: I/O error, dev fd0, sector 0 op 0x0:(READ)",
+ "floppy: error",
] + common_errors
ignore_errors = {
diff --git a/poky/meta/lib/oeqa/runtime/cases/rtc.py b/poky/meta/lib/oeqa/runtime/cases/rtc.py
index a34c101a9..c4e668132 100644
--- a/poky/meta/lib/oeqa/runtime/cases/rtc.py
+++ b/poky/meta/lib/oeqa/runtime/cases/rtc.py
@@ -9,12 +9,12 @@ class RTCTest(OERuntimeTestCase):
def setUp(self):
if self.tc.td.get('VIRTUAL-RUNTIME_init_manager') == 'systemd':
self.logger.debug('Stopping systemd-timesyncd daemon')
- self.target.run('systemctl disable --now systemd-timesyncd')
+ self.target.run('systemctl disable --now --runtime systemd-timesyncd')
def tearDown(self):
if self.tc.td.get('VIRTUAL-RUNTIME_init_manager') == 'systemd':
self.logger.debug('Starting systemd-timesyncd daemon')
- self.target.run('systemctl enable --now systemd-timesyncd')
+ self.target.run('systemctl enable --now --runtime systemd-timesyncd')
@OETestDepends(['ssh.SSHTest.test_ssh'])
@OEHasPackage(['coreutils', 'busybox'])
diff --git a/poky/meta/lib/oeqa/runtime/decorator/package.py b/poky/meta/lib/oeqa/runtime/decorator/package.py
index 57178655c..2d7e174db 100644
--- a/poky/meta/lib/oeqa/runtime/decorator/package.py
+++ b/poky/meta/lib/oeqa/runtime/decorator/package.py
@@ -45,14 +45,14 @@ class OEHasPackage(OETestDecorator):
msg = 'Checking if %s is not installed' % ', '.join(unneed_pkgs)
self.logger.debug(msg)
if not self.case.tc.image_packages.isdisjoint(unneed_pkgs):
- msg = "Test can't run with %s installed" % ', or'.join(unneed_pkgs)
+ msg = "Test can't run with %s installed" % ', or '.join(unneed_pkgs)
self._decorator_fail(msg)
if need_pkgs:
msg = 'Checking if at least one of %s is installed' % ', '.join(need_pkgs)
self.logger.debug(msg)
if self.case.tc.image_packages.isdisjoint(need_pkgs):
- msg = "Test requires %s to be installed" % ', or'.join(need_pkgs)
+ msg = "Test requires %s to be installed" % ', or '.join(need_pkgs)
self._decorator_fail(msg)
def _decorator_fail(self, msg):
diff --git a/poky/meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py b/poky/meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py
index f7c356ad0..7ac03f0ce 100644
--- a/poky/meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py
+++ b/poky/meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py
@@ -90,7 +90,7 @@ class RebuildFromSState(SStateBase):
self.assertFalse(failed_cleansstate, msg="The following recipes have failed cleansstate(all others have passed both cleansstate and rebuild from sstate tests): %s" % ' '.join(map(str, failed_cleansstate)))
def test_sstate_relocation(self):
- self.run_test_sstate_rebuild(['core-image-sato-sdk'], relocate=True, rebuild_dependencies=True)
+ self.run_test_sstate_rebuild(['core-image-weston-sdk'], relocate=True, rebuild_dependencies=True)
def test_sstate_rebuild(self):
- self.run_test_sstate_rebuild(['core-image-sato-sdk'], relocate=False, rebuild_dependencies=True)
+ self.run_test_sstate_rebuild(['core-image-weston-sdk'], relocate=False, rebuild_dependencies=True)
diff --git a/poky/meta/lib/oeqa/selftest/cases/bblayers.py b/poky/meta/lib/oeqa/selftest/cases/bblayers.py
index f131d9856..7d74833f6 100644
--- a/poky/meta/lib/oeqa/selftest/cases/bblayers.py
+++ b/poky/meta/lib/oeqa/selftest/cases/bblayers.py
@@ -12,6 +12,11 @@ from oeqa.selftest.case import OESelftestTestCase
class BitbakeLayers(OESelftestTestCase):
+ def test_bitbakelayers_layerindexshowdepends(self):
+ result = runCmd('bitbake-layers layerindex-show-depends meta-poky')
+ find_in_contents = re.search("openembedded-core", result.output)
+ self.assertTrue(find_in_contents, msg = "openembedded-core should have been listed at this step. bitbake-layers layerindex-show-depends meta-poky output: %s" % result.output)
+
def test_bitbakelayers_showcrossdepends(self):
result = runCmd('bitbake-layers show-cross-depends')
self.assertIn('aspell', result.output)
diff --git a/poky/meta/lib/oeqa/selftest/cases/buildoptions.py b/poky/meta/lib/oeqa/selftest/cases/buildoptions.py
index 20fe8ed8f..754b77def 100644
--- a/poky/meta/lib/oeqa/selftest/cases/buildoptions.py
+++ b/poky/meta/lib/oeqa/selftest/cases/buildoptions.py
@@ -50,23 +50,23 @@ class ImageOptionsTests(OESelftestTestCase):
def test_read_only_image(self):
distro_features = get_bb_var('DISTRO_FEATURES')
if not ('x11' in distro_features and 'opengl' in distro_features):
- self.skipTest('core-image-sato requires x11 and opengl in distro features')
+ self.skipTest('core-image-sato/weston requires x11 and opengl in distro features')
self.write_config('IMAGE_FEATURES += "read-only-rootfs"')
- bitbake("core-image-sato")
+ bitbake("core-image-sato core-image-weston")
# do_image will fail if there are any pending postinsts
class DiskMonTest(OESelftestTestCase):
def test_stoptask_behavior(self):
- self.write_config('BB_DISKMON_DIRS = "STOPTASKS,${TMPDIR},100000G,100K"')
+ self.write_config('BB_DISKMON_DIRS = "STOPTASKS,${TMPDIR},100000G,100K"\nBB_HEARTBEAT_EVENT = "1"')
res = bitbake("delay -c delay", ignore_status = True)
self.assertTrue('ERROR: No new tasks can be executed since the disk space monitor action is "STOPTASKS"!' in res.output, msg = "Tasks should have stopped. Disk monitor is set to STOPTASK: %s" % res.output)
self.assertEqual(res.status, 1, msg = "bitbake reported exit code %s. It should have been 1. Bitbake output: %s" % (str(res.status), res.output))
- self.write_config('BB_DISKMON_DIRS = "ABORT,${TMPDIR},100000G,100K"')
+ self.write_config('BB_DISKMON_DIRS = "ABORT,${TMPDIR},100000G,100K"\nBB_HEARTBEAT_EVENT = "1"')
res = bitbake("delay -c delay", ignore_status = True)
self.assertTrue('ERROR: Immediately abort since the disk space monitor action is "ABORT"!' in res.output, "Tasks should have been aborted immediatelly. Disk monitor is set to ABORT: %s" % res.output)
self.assertEqual(res.status, 1, msg = "bitbake reported exit code %s. It should have been 1. Bitbake output: %s" % (str(res.status), res.output))
- self.write_config('BB_DISKMON_DIRS = "WARN,${TMPDIR},100000G,100K"')
+ self.write_config('BB_DISKMON_DIRS = "WARN,${TMPDIR},100000G,100K"\nBB_HEARTBEAT_EVENT = "1"')
res = bitbake("delay -c delay")
self.assertTrue('WARNING: The free space' in res.output, msg = "A warning should have been displayed for disk monitor is set to WARN: %s" %res.output)
diff --git a/poky/meta/lib/oeqa/selftest/cases/distrodata.py b/poky/meta/lib/oeqa/selftest/cases/distrodata.py
index fbc0c2a98..0ad6e1ef9 100644
--- a/poky/meta/lib/oeqa/selftest/cases/distrodata.py
+++ b/poky/meta/lib/oeqa/selftest/cases/distrodata.py
@@ -99,7 +99,7 @@ The following recipes do not have a DESCRIPTION. Please add an entry for DESCRIP
return True
return False
- feature = 'require conf/distro/include/maintainers.inc\nLICENSE_FLAGS_WHITELIST += " commercial"\nPARSE_ALL_RECIPES = "1"\n'
+ feature = 'require conf/distro/include/maintainers.inc\nLICENSE_FLAGS_WHITELIST += " commercial"\nPARSE_ALL_RECIPES = "1"\nPACKAGE_CLASSES = "package_ipk package_deb package_rpm"\n'
self.write_config(feature)
with bb.tinfoil.Tinfoil() as tinfoil:
diff --git a/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py b/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
index 6723a8198..5d4330b48 100644
--- a/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
+++ b/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
@@ -240,8 +240,8 @@ USERADD_GID_TABLES += "files/static-group"
def test_no_busybox_base_utils(self):
config = """
-# Enable x11
-DISTRO_FEATURES_append += "x11"
+# Enable wayland
+DISTRO_FEATURES_append += "pam opengl wayland"
# Switch to systemd
DISTRO_FEATURES += "systemd"
@@ -262,7 +262,7 @@ PNBLACKLIST[busybox] = "Don't build this"
"""
self.write_config(config)
- bitbake("--graphviz core-image-sato")
+ bitbake("--graphviz core-image-weston")
def test_image_gen_debugfs(self):
"""
diff --git a/poky/meta/lib/oeqa/selftest/cases/runqemu.py b/poky/meta/lib/oeqa/selftest/cases/runqemu.py
index 7e676bcb4..da22f77b2 100644
--- a/poky/meta/lib/oeqa/selftest/cases/runqemu.py
+++ b/poky/meta/lib/oeqa/selftest/cases/runqemu.py
@@ -163,12 +163,11 @@ class QemuTest(OESelftestTestCase):
bitbake(cls.recipe)
def _start_qemu_shutdown_check_if_shutdown_succeeded(self, qemu, timeout):
+ # Allow the runner's LoggingThread instance to exit without errors
+ # (such as the exception "Console connection closed unexpectedly")
+ # as qemu will disappear when we shut it down
+ qemu.runner.allowexit()
qemu.run_serial("shutdown -h now")
- # Stop thread will stop the LoggingThread instance used for logging
- # qemu through serial console, stop thread will prevent this code
- # from facing exception (Console connection closed unexpectedly)
- # when qemu was shutdown by the above shutdown command
- qemu.runner.stop_thread()
time_track = 0
try:
while True:
diff --git a/poky/meta/lib/oeqa/selftest/cases/runtime_test.py b/poky/meta/lib/oeqa/selftest/cases/runtime_test.py
index b20c5b427..84c2cb77e 100644
--- a/poky/meta/lib/oeqa/selftest/cases/runtime_test.py
+++ b/poky/meta/lib/oeqa/selftest/cases/runtime_test.py
@@ -128,7 +128,6 @@ class TestImage(OESelftestTestCase):
features += 'TEST_SUITES = "ping ssh selftest"\n'
self.write_config(features)
- # Build core-image-sato and testimage
bitbake('core-image-full-cmdline socat')
bitbake('-c testimage core-image-full-cmdline')
@@ -164,7 +163,6 @@ class TestImage(OESelftestTestCase):
features += 'PSEUDO_IGNORE_PATHS .= ",%s"\n' % self.gpg_home
self.write_config(features)
- # Build core-image-sato and testimage
bitbake('core-image-full-cmdline socat')
bitbake('-c testimage core-image-full-cmdline')
diff --git a/poky/meta/lib/oeqa/selftest/cases/sstatetests.py b/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
index c46e8ba48..9db2a0bb4 100644
--- a/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
+++ b/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
@@ -261,7 +261,7 @@ PACKAGE_CLASSES = "package_rpm package_ipk package_deb"
BB_SIGNATURE_HANDLER = "OEBasicHash"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash")
- bitbake("core-image-sato -S none")
+ bitbake("core-image-weston -S none")
self.write_config("""
MACHINE = "qemux86"
TMPDIR = "${TOPDIR}/tmp-sstatesamehash2"
@@ -273,12 +273,12 @@ PACKAGE_CLASSES = "package_rpm package_ipk package_deb"
BB_SIGNATURE_HANDLER = "OEBasicHash"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2")
- bitbake("core-image-sato -S none")
+ bitbake("core-image-weston -S none")
def get_files(d):
f = []
for root, dirs, files in os.walk(d):
- if "core-image-sato" in root:
+ if "core-image-weston" in root:
# SDKMACHINE changing will change
# do_rootfs/do_testimage/do_build stamps of images which
# is safe to ignore.
@@ -306,7 +306,7 @@ NATIVELSBSTRING = \"DistroA\"
BB_SIGNATURE_HANDLER = "OEBasicHash"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash")
- bitbake("core-image-sato -S none")
+ bitbake("core-image-weston -S none")
self.write_config("""
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\"
TCLIBCAPPEND = \"\"
@@ -314,7 +314,7 @@ NATIVELSBSTRING = \"DistroB\"
BB_SIGNATURE_HANDLER = "OEBasicHash"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2")
- bitbake("core-image-sato -S none")
+ bitbake("core-image-weston -S none")
def get_files(d):
f = []
diff --git a/poky/meta/lib/oeqa/selftest/cases/wic.py b/poky/meta/lib/oeqa/selftest/cases/wic.py
index fa81584a8..a11e2d078 100644
--- a/poky/meta/lib/oeqa/selftest/cases/wic.py
+++ b/poky/meta/lib/oeqa/selftest/cases/wic.py
@@ -1306,8 +1306,8 @@ class Wic2(WicTestCase):
result = runCmd("%s/usr/sbin/sfdisk -F %s" % (sysroot, new_image_path))
self.assertTrue("0 B, 0 bytes, 0 sectors" in result.output)
- os.rename(image_path, image_path + '.bak')
- os.rename(new_image_path, image_path)
+ bb.utils.rename(image_path, image_path + '.bak')
+ bb.utils.rename(new_image_path, image_path)
# Check if it boots in qemu
with runqemu('core-image-minimal', ssh=False) as qemu:
@@ -1318,7 +1318,7 @@ class Wic2(WicTestCase):
if os.path.exists(new_image_path):
os.unlink(new_image_path)
if os.path.exists(image_path + '.bak'):
- os.rename(image_path + '.bak', image_path)
+ bb.utils.rename(image_path + '.bak', image_path)
def test_wic_ls_ext(self):
"""Test listing content of the ext partition using 'wic ls'"""
diff --git a/poky/meta/lib/oeqa/targetcontrol.py b/poky/meta/lib/oeqa/targetcontrol.py
index 12057f855..005ebaa7f 100644
--- a/poky/meta/lib/oeqa/targetcontrol.py
+++ b/poky/meta/lib/oeqa/targetcontrol.py
@@ -17,6 +17,7 @@ from oeqa.utils.sshcontrol import SSHControl
from oeqa.utils.qemurunner import QemuRunner
from oeqa.utils.qemutinyrunner import QemuTinyRunner
from oeqa.utils.dump import TargetDumper
+from oeqa.utils.dump import MonitorDumper
from oeqa.controllers.testtargetloader import TestTargetLoader
from abc import ABCMeta, abstractmethod
@@ -108,6 +109,7 @@ class QemuTarget(BaseTarget):
self.qemulog = os.path.join(self.testdir, "qemu_boot_log.%s" % self.datetime)
dump_target_cmds = d.getVar("testimage_dump_target")
dump_host_cmds = d.getVar("testimage_dump_host")
+ dump_monitor_cmds = d.getVar("testimage_dump_monitor")
dump_dir = d.getVar("TESTIMAGE_DUMP_DIR")
if not dump_dir:
dump_dir = os.path.join(d.getVar('LOG_DIR'), 'runtime-hostdump')
@@ -149,6 +151,7 @@ class QemuTarget(BaseTarget):
serial_ports = len(d.getVar("SERIAL_CONSOLES").split()))
self.target_dumper = TargetDumper(dump_target_cmds, dump_dir, self.runner)
+ self.monitor_dumper = MonitorDumper(dump_monitor_cmds, dump_dir, self.runner)
def deploy(self):
bb.utils.mkdirhier(self.testdir)
diff --git a/poky/meta/lib/oeqa/utils/commands.py b/poky/meta/lib/oeqa/utils/commands.py
index a71c16ab1..024261410 100644
--- a/poky/meta/lib/oeqa/utils/commands.py
+++ b/poky/meta/lib/oeqa/utils/commands.py
@@ -174,11 +174,8 @@ def runCmd(command, ignore_status=False, timeout=None, assert_error=True, sync=T
if native_sysroot:
extra_paths = "%s/sbin:%s/usr/sbin:%s/usr/bin" % \
(native_sysroot, native_sysroot, native_sysroot)
- extra_libpaths = "%s/lib:%s/usr/lib" % \
- (native_sysroot, native_sysroot)
nenv = dict(options.get('env', os.environ))
nenv['PATH'] = extra_paths + ':' + nenv.get('PATH', '')
- nenv['LD_LIBRARY_PATH'] = extra_libpaths + ':' + nenv.get('LD_LIBRARY_PATH', '')
options['env'] = nenv
cmd = Command(command, timeout=timeout, output_log=output_log, **options)
diff --git a/poky/meta/lib/oeqa/utils/dump.py b/poky/meta/lib/oeqa/utils/dump.py
index 09a44329e..843e19fe8 100644
--- a/poky/meta/lib/oeqa/utils/dump.py
+++ b/poky/meta/lib/oeqa/utils/dump.py
@@ -4,6 +4,7 @@
import os
import sys
+import json
import errno
import datetime
import itertools
@@ -51,6 +52,8 @@ class BaseDumper(object):
prefix = "host"
elif isinstance(self, TargetDumper):
prefix = "target"
+ elif isinstance(self, MonitorDumper):
+ prefix = "qmp"
else:
prefix = "unknown"
for i in itertools.count():
@@ -58,9 +61,12 @@ class BaseDumper(object):
fullname = os.path.join(self.dump_dir, filename)
if not os.path.exists(fullname):
break
- with open(fullname, 'w') as dump_file:
- dump_file.write(output)
-
+ if isinstance(self, MonitorDumper):
+ with open(fullname, 'w') as json_file:
+ json.dump(output, json_file, indent=4)
+ else:
+ with open(fullname, 'w') as dump_file:
+ dump_file.write(output)
class HostDumper(BaseDumper):
""" Class to get dumps from the host running the tests """
@@ -96,3 +102,23 @@ class TargetDumper(BaseDumper):
except:
print("Tried to dump info from target but "
"serial console failed")
+ print("Failed CMD: %s" % (cmd))
+
+class MonitorDumper(BaseDumper):
+ """ Class to get dumps via the Qemu Monitor, it only works with QemuRunner """
+
+ def __init__(self, cmds, parent_dir, runner):
+ super(MonitorDumper, self).__init__(cmds, parent_dir)
+ self.runner = runner
+
+ def dump_monitor(self, dump_dir=""):
+ if self.runner is None:
+ return
+ if dump_dir:
+ self.dump_dir = dump_dir
+ for cmd in self.cmds:
+ try:
+ output = self.runner.run_monitor(cmd)
+ self._write_dump(cmd, output)
+ except:
+ print("Failed to dump QMP CMD: %s" % (cmd))
diff --git a/poky/meta/lib/oeqa/utils/qemurunner.py b/poky/meta/lib/oeqa/utils/qemurunner.py
index 278904ba0..69fee2751 100644
--- a/poky/meta/lib/oeqa/utils/qemurunner.py
+++ b/poky/meta/lib/oeqa/utils/qemurunner.py
@@ -20,8 +20,10 @@ import string
import threading
import codecs
import logging
+import tempfile
from oeqa.utils.dump import HostDumper
from collections import defaultdict
+import importlib
# Get Unicode non printable control chars
control_range = list(range(0,32))+list(range(127,160))
@@ -172,6 +174,23 @@ class QemuRunner:
return self.launch(launch_cmd, qemuparams=qemuparams, get_ip=get_ip, extra_bootparams=extra_bootparams, env=env)
def launch(self, launch_cmd, get_ip = True, qemuparams = None, extra_bootparams = None, env = None):
+ # use logfile to determine the recipe-sysroot-native path and
+ # then add in the site-packages path components and add that
+ # to the python sys.path so qmp.py can be found.
+ python_path = os.path.dirname(os.path.dirname(self.logfile))
+ python_path += "/recipe-sysroot-native/usr/lib/python3.9/site-packages"
+ sys.path.append(python_path)
+ importlib.invalidate_caches()
+ try:
+ qmp = importlib.import_module("qmp")
+ except:
+ self.logger.error("qemurunner: qmp.py missing, please ensure it's installed")
+ return False
+ # Path relative to tmpdir used as cwd for qemu below to avoid unix socket path length issues
+ qmp_file = "." + next(tempfile._get_candidate_names())
+ qmp_param = ' -S -qmp unix:./%s,server,wait' % (qmp_file)
+ qmp_port = self.tmpdir + "/" + qmp_file
+
try:
if self.serial_ports >= 2:
self.threadsock, threadport = self.create_socket()
@@ -188,7 +207,8 @@ class QemuRunner:
# and analyze descendents in order to determine it.
if os.path.exists(self.qemu_pidfile):
os.remove(self.qemu_pidfile)
- self.qemuparams = 'bootparams="{0}" qemuparams="-pidfile {1}"'.format(bootparams, self.qemu_pidfile)
+ self.qemuparams = 'bootparams="{0}" qemuparams="-pidfile {1} {2}"'.format(bootparams, self.qemu_pidfile, qmp_param)
+
if qemuparams:
self.qemuparams = self.qemuparams[:-1] + " " + qemuparams + " " + '\"'
@@ -206,7 +226,7 @@ class QemuRunner:
# blocking at the end of the runqemu script when using this within
# oe-selftest (this makes stty error out immediately). There ought
# to be a proper fix but this will suffice for now.
- self.runqemu = subprocess.Popen(launch_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, stdin=subprocess.PIPE, preexec_fn=os.setpgrp, env=env)
+ self.runqemu = subprocess.Popen(launch_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, stdin=subprocess.PIPE, preexec_fn=os.setpgrp, env=env, cwd=self.tmpdir)
output = self.runqemu.stdout
#
@@ -242,6 +262,7 @@ class QemuRunner:
while not self.is_alive() and time.time() < endtime:
if self.runqemu.poll():
if self.runqemu_exited:
+ self.logger.warning("runqemu during is_alive() test")
return False
if self.runqemu.returncode:
# No point waiting any longer
@@ -253,9 +274,57 @@ class QemuRunner:
time.sleep(0.5)
if self.runqemu_exited:
+ self.logger.warning("runqemu after timeout")
+ return False
+
+ if self.runqemu.returncode:
+ self.logger.warning('runqemu exited with code %d' % self.runqemu.returncode)
return False
if not self.is_alive():
+ self.logger.warning('is_alive() failed later')
+ return False
+
+ # Create the client socket for the QEMU Monitor Control Socket
+ # This will allow us to read status from Qemu if the the process
+ # is still alive
+ self.logger.debug("QMP Initializing to %s" % (qmp_port))
+ # chdir dance for path length issues with unix sockets
+ origpath = os.getcwd()
+ try:
+ os.chdir(os.path.dirname(qmp_port))
+ try:
+ self.qmp = qmp.QEMUMonitorProtocol(os.path.basename(qmp_port))
+ except OSError as msg:
+ self.logger.warning("Failed to initialize qemu monitor socket: %s File: %s" % (msg, msg.filename))
+ return False
+
+ self.logger.debug("QMP Connecting to %s" % (qmp_port))
+ if not os.path.exists(qmp_port) and self.is_alive():
+ self.logger.debug("QMP Port does not exist waiting for it to be created")
+ endtime = time.time() + self.runqemutime
+ while not os.path.exists(qmp_port) and self.is_alive() and time.time() < endtime:
+ self.logger.info("QMP port does not exist yet!")
+ time.sleep(0.5)
+ if not os.path.exists(qmp_port) and self.is_alive():
+ self.logger.warning("QMP Port still does not exist but QEMU is alive")
+ return False
+
+ try:
+ self.qmp.connect()
+ except OSError as msg:
+ self.logger.warning("Failed to connect qemu monitor socket: %s File: %s" % (msg, msg.filename))
+ return False
+ except qmp.QMPConnectError as msg:
+ self.logger.warning("Failed to communicate with qemu monitor: %s" % (msg))
+ return False
+ finally:
+ os.chdir(origpath)
+
+ # Release the qemu porcess to continue running
+ self.run_monitor('cont')
+
+ if not self.is_alive():
self.logger.error("Qemu pid didn't appear in %s seconds (%s)" %
(self.runqemutime, time.strftime("%D %H:%M:%S")))
@@ -380,7 +449,6 @@ class QemuRunner:
sock.close()
stopread = True
-
if not reachedlogin:
if time.time() >= endtime:
self.logger.warning("Target didn't reach login banner in %d seconds (%s)" %
@@ -441,6 +509,9 @@ class QemuRunner:
self.runqemu.stdout.close()
self.runqemu_exited = True
+ if hasattr(self, 'qmp') and self.qmp:
+ self.qmp.close()
+ self.qmp = None
if hasattr(self, 'server_socket') and self.server_socket:
self.server_socket.close()
self.server_socket = None
@@ -471,6 +542,10 @@ class QemuRunner:
self.thread.stop()
self.thread.join()
+ def allowexit(self):
+ if self.thread:
+ self.thread.allowexit()
+
def restart(self, qemuparams = None):
self.logger.warning("Restarting qemu process")
if self.runqemu.poll() is None:
@@ -499,6 +574,9 @@ class QemuRunner:
return True
return False
+ def run_monitor(self, command, timeout=60):
+ return self.qmp.cmd(command)
+
def run_serial(self, command, raw=False, timeout=60):
# We assume target system have echo to get command status
if not raw:
@@ -564,6 +642,7 @@ class LoggingThread(threading.Thread):
self.logger = logger
self.readsock = None
self.running = False
+ self.canexit = False
self.errorevents = select.POLLERR | select.POLLHUP | select.POLLNVAL
self.readevents = select.POLLIN | select.POLLPRI
@@ -597,6 +676,9 @@ class LoggingThread(threading.Thread):
self.close_ignore_error(self.writepipe)
self.running = False
+ def allowexit(self):
+ self.canexit = True
+
def eventloop(self):
poll = select.poll()
event_read_mask = self.errorevents | self.readevents
@@ -653,7 +735,9 @@ class LoggingThread(threading.Thread):
# happened. But for this code it counts as an
# error since the connection shouldn't go away
# until qemu exits.
- raise Exception("Console connection closed unexpectedly")
+ if not self.canexit:
+ raise Exception("Console connection closed unexpectedly")
+ return ''
return data
diff --git a/poky/meta/recipes-bsp/u-boot/libubootenv_0.3.1.bb b/poky/meta/recipes-bsp/u-boot/libubootenv_0.3.2.bb
index 613e3161f..2cf87c794 100644
--- a/poky/meta/recipes-bsp/u-boot/libubootenv_0.3.1.bb
+++ b/poky/meta/recipes-bsp/u-boot/libubootenv_0.3.2.bb
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://Licenses/lgpl-2.1.txt;md5=4fbd65380cdd255951079008b36
SECTION = "libs"
SRC_URI = "git://github.com/sbabic/libubootenv;protocol=https"
-SRCREV = "824551ac77bab1d0f7ae34d7a7c77b155240e754"
+SRCREV = "ba7564f5006d09bec51058cf4f5ac90d4dc18b3c"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-connectivity/bluez5/bluez5.inc b/poky/meta/recipes-connectivity/bluez5/bluez5.inc
index a7b628ce1..74b59e406 100644
--- a/poky/meta/recipes-connectivity/bluez5/bluez5.inc
+++ b/poky/meta/recipes-connectivity/bluez5/bluez5.inc
@@ -52,6 +52,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/bluez-${PV}.tar.xz \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', 'file://0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch', d)} \
file://0001-tests-add-a-target-for-building-tests-without-runnin.patch \
file://0001-test-gatt-Fix-hung-issue.patch \
+ file://0001-audio-Rename-pause-funciton-to-avoid-shadowing-glibc.patch \
"
S = "${WORKDIR}/bluez-${PV}"
diff --git a/poky/meta/recipes-connectivity/bluez5/bluez5/0001-audio-Rename-pause-funciton-to-avoid-shadowing-glibc.patch b/poky/meta/recipes-connectivity/bluez5/bluez5/0001-audio-Rename-pause-funciton-to-avoid-shadowing-glibc.patch
new file mode 100644
index 000000000..d9067df02
--- /dev/null
+++ b/poky/meta/recipes-connectivity/bluez5/bluez5/0001-audio-Rename-pause-funciton-to-avoid-shadowing-glibc.patch
@@ -0,0 +1,48 @@
+From 8adab7f1e04948e78854953f9373cac741445a0f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 30 Apr 2021 21:09:33 -0700
+Subject: [PATCH] audio: Rename pause funciton to avoid shadowing glibc
+ defintions
+
+Fixes
+profiles/audio/media.c:1284:13: error: static declaration of 'pause' follows non-static declaration
+static bool pause(void *user_data)
+ ^
+/mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux/bluez5/5.56-r0/recipe-sysroot/usr/include/unistd.h:478:12: note: previous declaration is here
+extern int pause (void);
+ ^
+../bluez-5.56/profiles/audio/media.c:1334:11: warning: incompatible function pointer types initializing 'bool (*)(void *)' with an expression of type 'int (void)' [-Wincompatible-function-pointer-types]
+ .pause = pause,
+ ^~~~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ profiles/audio/media.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/profiles/audio/media.c b/profiles/audio/media.c
+index c84bbe2..7110089 100644
+--- a/profiles/audio/media.c
++++ b/profiles/audio/media.c
+@@ -1281,7 +1281,7 @@ static bool stop(void *user_data)
+ return media_player_send(mp, "Stop");
+ }
+
+-static bool pause(void *user_data)
++static bool apause(void *user_data)
+ {
+ struct media_player *mp = user_data;
+
+@@ -1331,7 +1331,7 @@ static struct avrcp_player_cb player_cb = {
+ .set_volume = set_volume,
+ .play = play,
+ .stop = stop,
+- .pause = pause,
++ .pause = apause,
+ .next = next,
+ .previous = previous,
+ };
+--
+2.31.1
+
diff --git a/poky/meta/recipes-connectivity/ofono/ofono/0002-mbim-Fix-build-with-ell-0.39-by-restoring-unlikely-m.patch b/poky/meta/recipes-connectivity/ofono/ofono/0002-mbim-Fix-build-with-ell-0.39-by-restoring-unlikely-m.patch
new file mode 100644
index 000000000..3655b3fd6
--- /dev/null
+++ b/poky/meta/recipes-connectivity/ofono/ofono/0002-mbim-Fix-build-with-ell-0.39-by-restoring-unlikely-m.patch
@@ -0,0 +1,28 @@
+From 76e4054801350ebd4a44057379431a33d460ad0f Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Wed, 21 Apr 2021 11:01:34 +0000
+Subject: [PATCH] mbim: Fix build with ell-0.39 by restoring unlikely macro
+ from ell/util.h
+
+Upstream-Status: Pending
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ drivers/mbimmodem/mbim-private.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/drivers/mbimmodem/mbim-private.h b/drivers/mbimmodem/mbim-private.h
+index 51693eae..d917312c 100644
+--- a/drivers/mbimmodem/mbim-private.h
++++ b/drivers/mbimmodem/mbim-private.h
+@@ -30,6 +30,10 @@
+ __result; })
+ #endif
+
++/* used to be part of ell/util.h before 0.39:
++ https://git.kernel.org/pub/scm/libs/ell/ell.git/commit/?id=2a682421b06e41c45098217a686157f576847021 */
++#define unlikely(x) __builtin_expect(!!(x), 0)
++
+ enum mbim_control_message {
+ MBIM_OPEN_MSG = 0x1,
+ MBIM_CLOSE_MSG = 0x2,
diff --git a/poky/meta/recipes-connectivity/ofono/ofono_1.31.bb b/poky/meta/recipes-connectivity/ofono/ofono_1.31.bb
index 7d0976ad7..2425ef76a 100644
--- a/poky/meta/recipes-connectivity/ofono/ofono_1.31.bb
+++ b/poky/meta/recipes-connectivity/ofono/ofono_1.31.bb
@@ -11,6 +11,7 @@ SRC_URI = "\
${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \
file://ofono \
file://0001-mbim-add-an-optional-TEMP_FAILURE_RETRY-macro-copy.patch \
+ file://0002-mbim-Fix-build-with-ell-0.39-by-restoring-unlikely-m.patch \
"
SRC_URI[md5sum] = "1c26340e3c6ed132cc812595081bb3dc"
SRC_URI[sha256sum] = "a15c5d28096c10eb30e47a68b6dc2e7c4a5a99d7f4cfedf0b69624f33d859e9b"
@@ -30,9 +31,14 @@ PACKAGECONFIG[bluez] = "--enable-bluetooth, --disable-bluetooth, bluez5"
EXTRA_OECONF += "--enable-test --enable-external-ell"
+do_configure_prepend() {
+ bbnote "Removing bundled ell from ${S}/ell to prevent including it"
+ rm -rf ${S}/ell
+}
+
do_install_append() {
- install -d ${D}${sysconfdir}/init.d/
- install -m 0755 ${WORKDIR}/ofono ${D}${sysconfdir}/init.d/ofono
+ install -d ${D}${sysconfdir}/init.d/
+ install -m 0755 ${WORKDIR}/ofono ${D}${sysconfdir}/init.d/ofono
}
PACKAGES =+ "${PN}-tests"
diff --git a/poky/meta/recipes-connectivity/openssh/openssh_8.5p1.bb b/poky/meta/recipes-connectivity/openssh/openssh_8.6p1.bb
index 6a49cf71c..be56fe43b 100644
--- a/poky/meta/recipes-connectivity/openssh/openssh_8.5p1.bb
+++ b/poky/meta/recipes-connectivity/openssh/openssh_8.6p1.bb
@@ -25,7 +25,7 @@ SRC_URI = "http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.tar
file://sshd_check_keys \
file://add-test-support-for-busybox.patch \
"
-SRC_URI[sha256sum] = "f52f3f41d429aa9918e38cf200af225ccdd8e66f052da572870c89737646ec25"
+SRC_URI[sha256sum] = "c3e6e4da1621762c850d03b47eed1e48dff4cc9608ddeb547202a234df8ed7ae"
# This CVE is specific to OpenSSH server, as used in Fedora and Red Hat Enterprise Linux 7
# and when running in a Kerberos environment. As such it is not relevant to OpenEmbedded
diff --git a/poky/meta/recipes-connectivity/openssl/openssl/0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch b/poky/meta/recipes-connectivity/openssl/openssl/0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch
index 949c78834..003cfbc8d 100644
--- a/poky/meta/recipes-connectivity/openssl/openssl/0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch
+++ b/poky/meta/recipes-connectivity/openssl/openssl/0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch
@@ -25,16 +25,19 @@ Signed-off-by: Martin Hundebøll <martin@geanix.com>
Update to fix buildpaths qa issue for '-fmacro-prefix-map'.
Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+Update to fix buildpaths qa issue for '-ffile-prefix-map'.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
Configurations/unix-Makefile.tmpl | 10 +++++++++-
crypto/build.info | 2 +-
2 files changed, 10 insertions(+), 2 deletions(-)
-diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl
-index 16af4d2087..54c162784c 100644
--- a/Configurations/unix-Makefile.tmpl
+++ b/Configurations/unix-Makefile.tmpl
-@@ -317,13 +317,22 @@ BIN_LDFLAGS={- join(' ', $target{bin_lflags} || (),
+@@ -420,13 +420,23 @@ BIN_LDFLAGS={- join(' ', $target{bin_lfl
'$(CNF_LDFLAGS)', '$(LDFLAGS)') -}
BIN_EX_LIBS=$(CNF_EX_LIBS) $(EX_LIBS)
@@ -49,6 +52,7 @@ index 16af4d2087..54c162784c 100644
+CFLAGS_Q={- for (@{$config{CFLAGS}}) {
+ s|-fdebug-prefix-map=[^ ]+|-fdebug-prefix-map=|g;
+ s|-fmacro-prefix-map=[^ ]+|-fmacro-prefix-map=|g;
++ s|-ffile-prefix-map=[^ ]+|-ffile-prefix-map=|g;
+ }
+ join(' ', @{$config{CFLAGS}}) -}
+
@@ -58,11 +62,9 @@ index 16af4d2087..54c162784c 100644
PERLASM_SCHEME= {- $target{perlasm_scheme} -}
# For x86 assembler: Set PROCESSOR to 386 if you want to support
-diff --git a/crypto/build.info b/crypto/build.info
-index b515b7318e..8c9cee2a09 100644
--- a/crypto/build.info
+++ b/crypto/build.info
-@@ -10,7 +10,7 @@ EXTRA= ../ms/uplink-x86.pl ../ms/uplink.c ../ms/applink.c \
+@@ -10,7 +10,7 @@ EXTRA= ../ms/uplink-x86.pl ../ms/uplink
ppccpuid.pl pariscid.pl alphacpuid.pl arm64cpuid.pl armv4cpuid.pl
DEPEND[cversion.o]=buildinf.h
@@ -71,6 +73,3 @@ index b515b7318e..8c9cee2a09 100644
DEPEND[buildinf.h]=../configdata.pm
GENERATE[uplink-x86.s]=../ms/uplink-x86.pl $(PERLASM_SCHEME)
---
-2.19.1
-
diff --git a/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/CVE-2021-30004.patch b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/CVE-2021-30004.patch
new file mode 100644
index 000000000..e2540fc26
--- /dev/null
+++ b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/CVE-2021-30004.patch
@@ -0,0 +1,123 @@
+From a0541334a6394f8237a4393b7372693cd7e96f15 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Sat, 13 Mar 2021 18:19:31 +0200
+Subject: [PATCH] ASN.1: Validate DigestAlgorithmIdentifier parameters
+
+The supported hash algorithms do not use AlgorithmIdentifier parameters.
+However, there are implementations that include NULL parameters in
+addition to ones that omit the parameters. Previous implementation did
+not check the parameters value at all which supported both these cases,
+but did not reject any other unexpected information.
+
+Use strict validation of digest algorithm parameters and reject any
+unexpected value when validating a signature. This is needed to prevent
+potential forging attacks.
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+
+Upstream-Status: Backport
+CVE: CVE-2021-30004
+
+Reference to upstream patch:
+[https://w1.fi/cgit/hostap/commit/?id=a0541334a6394f8237a4393b7372693cd7e96f15]
+
+Signed-off-by: Stefan Ghinea <stefan.ghinea@windriver.com>
+---
+ src/tls/pkcs1.c | 21 +++++++++++++++++++++
+ src/tls/x509v3.c | 20 ++++++++++++++++++++
+ 2 files changed, 41 insertions(+)
+
+diff --git a/src/tls/pkcs1.c b/src/tls/pkcs1.c
+index 141ac50..e09db07 100644
+--- a/src/tls/pkcs1.c
++++ b/src/tls/pkcs1.c
+@@ -240,6 +240,8 @@ int pkcs1_v15_sig_ver(struct crypto_public_key *pk,
+ os_free(decrypted);
+ return -1;
+ }
++ wpa_hexdump(MSG_MSGDUMP, "PKCS #1: DigestInfo",
++ hdr.payload, hdr.length);
+
+ pos = hdr.payload;
+ end = pos + hdr.length;
+@@ -261,6 +263,8 @@ int pkcs1_v15_sig_ver(struct crypto_public_key *pk,
+ os_free(decrypted);
+ return -1;
+ }
++ wpa_hexdump(MSG_MSGDUMP, "PKCS #1: DigestAlgorithmIdentifier",
++ hdr.payload, hdr.length);
+ da_end = hdr.payload + hdr.length;
+
+ if (asn1_get_oid(hdr.payload, hdr.length, &oid, &next)) {
+@@ -269,6 +273,23 @@ int pkcs1_v15_sig_ver(struct crypto_public_key *pk,
+ os_free(decrypted);
+ return -1;
+ }
++ wpa_hexdump(MSG_MSGDUMP, "PKCS #1: Digest algorithm parameters",
++ next, da_end - next);
++
++ /*
++ * RFC 5754: The correct encoding for the SHA2 algorithms would be to
++ * omit the parameters, but there are implementation that encode these
++ * as a NULL element. Allow these two cases and reject anything else.
++ */
++ if (da_end > next &&
++ (asn1_get_next(next, da_end - next, &hdr) < 0 ||
++ !asn1_is_null(&hdr) ||
++ hdr.payload + hdr.length != da_end)) {
++ wpa_printf(MSG_DEBUG,
++ "PKCS #1: Unexpected digest algorithm parameters");
++ os_free(decrypted);
++ return -1;
++ }
+
+ if (!asn1_oid_equal(&oid, hash_alg)) {
+ char txt[100], txt2[100];
+diff --git a/src/tls/x509v3.c b/src/tls/x509v3.c
+index 1bd5aa0..bf2289f 100644
+--- a/src/tls/x509v3.c
++++ b/src/tls/x509v3.c
+@@ -1834,6 +1834,7 @@ int x509_check_signature(struct x509_certificate *issuer,
+ os_free(data);
+ return -1;
+ }
++ wpa_hexdump(MSG_MSGDUMP, "X509: DigestInfo", hdr.payload, hdr.length);
+
+ pos = hdr.payload;
+ end = pos + hdr.length;
+@@ -1855,6 +1856,8 @@ int x509_check_signature(struct x509_certificate *issuer,
+ os_free(data);
+ return -1;
+ }
++ wpa_hexdump(MSG_MSGDUMP, "X509: DigestAlgorithmIdentifier",
++ hdr.payload, hdr.length);
+ da_end = hdr.payload + hdr.length;
+
+ if (asn1_get_oid(hdr.payload, hdr.length, &oid, &next)) {
+@@ -1862,6 +1865,23 @@ int x509_check_signature(struct x509_certificate *issuer,
+ os_free(data);
+ return -1;
+ }
++ wpa_hexdump(MSG_MSGDUMP, "X509: Digest algorithm parameters",
++ next, da_end - next);
++
++ /*
++ * RFC 5754: The correct encoding for the SHA2 algorithms would be to
++ * omit the parameters, but there are implementation that encode these
++ * as a NULL element. Allow these two cases and reject anything else.
++ */
++ if (da_end > next &&
++ (asn1_get_next(next, da_end - next, &hdr) < 0 ||
++ !asn1_is_null(&hdr) ||
++ hdr.payload + hdr.length != da_end)) {
++ wpa_printf(MSG_DEBUG,
++ "X509: Unexpected digest algorithm parameters");
++ os_free(data);
++ return -1;
++ }
+
+ if (x509_sha1_oid(&oid)) {
+ if (signature->oid.oid[6] != 5 /* sha-1WithRSAEncryption */) {
+--
+2.17.1
+
diff --git a/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb
index 357c28634..16c591852 100644
--- a/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb
+++ b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb
@@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=279b4f5abb9c153c285221855ddb78cc \
DEPENDS = "dbus libnl"
RRECOMMENDS_${PN} = "wpa-supplicant-passphrase wpa-supplicant-cli"
-PACKAGECONFIG ??= "gnutls"
+PACKAGECONFIG ??= "openssl"
PACKAGECONFIG[gnutls] = ",,gnutls libgcrypt"
PACKAGECONFIG[openssl] = ",,openssl"
@@ -32,6 +32,7 @@ SRC_URI = "http://w1.fi/releases/wpa_supplicant-${PV}.tar.gz \
file://0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch \
file://CVE-2021-0326.patch \
file://CVE-2021-27803.patch \
+ file://CVE-2021-30004.patch \
"
SRC_URI[md5sum] = "2d2958c782576dc9901092fbfecb4190"
SRC_URI[sha256sum] = "fcbdee7b4a64bea8177973299c8c824419c413ec2e3a95db63dd6a5dc3541f17"
diff --git a/poky/meta/recipes-core/busybox/busybox-inittab_1.33.0.bb b/poky/meta/recipes-core/busybox/busybox-inittab_1.33.0.bb
index 0021e4551..3804f4f7b 100644
--- a/poky/meta/recipes-core/busybox/busybox-inittab_1.33.0.bb
+++ b/poky/meta/recipes-core/busybox/busybox-inittab_1.33.0.bb
@@ -44,9 +44,6 @@ EOF
fi
}
-do_install_append_qemuppc64 () {
- echo "9:12345:respawn:${base_sbindir}/getty 38400 hvc0" >> ${D}${sysconfdir}/inittab
-}
pkg_postinst_${PN} () {
# run this on host and on target
diff --git a/poky/meta/recipes-core/busybox/busybox/0001-decompress_gunzip-Fix-DoS-if-gzip-is-corrupt.patch b/poky/meta/recipes-core/busybox/busybox/0001-decompress_gunzip-Fix-DoS-if-gzip-is-corrupt.patch
new file mode 100644
index 000000000..67c9f189c
--- /dev/null
+++ b/poky/meta/recipes-core/busybox/busybox/0001-decompress_gunzip-Fix-DoS-if-gzip-is-corrupt.patch
@@ -0,0 +1,58 @@
+From fe791386ebc270219ca00406c9fdadc5130b64ee Mon Sep 17 00:00:00 2001
+From: Samuel Sapalski <samuel.sapalski@nokia.com>
+Date: Wed, 3 Mar 2021 16:31:22 +0100
+Subject: [PATCH] decompress_gunzip: Fix DoS if gzip is corrupt
+
+On certain corrupt gzip files, huft_build will set the error bit on
+the result pointer. If afterwards abort_unzip is called huft_free
+might run into a segmentation fault or an invalid pointer to
+free(p).
+
+In order to mitigate this, we check in huft_free if the error bit
+is set and clear it before the linked list is freed.
+
+Signed-off-by: Samuel Sapalski <samuel.sapalski@nokia.com>
+Signed-off-by: Peter Kaestle <peter.kaestle@nokia.com>
+Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
+
+Upstream-Status: Backport
+CVE: CVE-2021-28831
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ archival/libarchive/decompress_gunzip.c | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/archival/libarchive/decompress_gunzip.c b/archival/libarchive/decompress_gunzip.c
+index eb3b64930..e93cd5005 100644
+--- a/archival/libarchive/decompress_gunzip.c
++++ b/archival/libarchive/decompress_gunzip.c
+@@ -220,10 +220,20 @@ static const uint8_t border[] ALIGN1 = {
+ * each table.
+ * t: table to free
+ */
++#define BAD_HUFT(p) ((uintptr_t)(p) & 1)
++#define ERR_RET ((huft_t*)(uintptr_t)1)
+ static void huft_free(huft_t *p)
+ {
+ huft_t *q;
+
++ /*
++ * If 'p' has the error bit set we have to clear it, otherwise we might run
++ * into a segmentation fault or an invalid pointer to free(p)
++ */
++ if (BAD_HUFT(p)) {
++ p = (huft_t*)((uintptr_t)(p) ^ (uintptr_t)(ERR_RET));
++ }
++
+ /* Go through linked list, freeing from the malloced (t[-1]) address. */
+ while (p) {
+ q = (--p)->v.t;
+@@ -289,8 +299,6 @@ static unsigned fill_bitbuffer(STATE_PARAM unsigned bitbuffer, unsigned *current
+ * or a valid pointer to a Huffman table, ORed with 0x1 if incompete table
+ * is given: "fixed inflate" decoder feeds us such data.
+ */
+-#define BAD_HUFT(p) ((uintptr_t)(p) & 1)
+-#define ERR_RET ((huft_t*)(uintptr_t)1)
+ static huft_t* huft_build(const unsigned *b, const unsigned n,
+ const unsigned s, const struct cp_ext *cp_ext,
+ unsigned *m)
diff --git a/poky/meta/recipes-core/busybox/busybox/0001-gen_build_files-Use-C-locale-when-calling-sed-on-glo.patch b/poky/meta/recipes-core/busybox/busybox/0001-gen_build_files-Use-C-locale-when-calling-sed-on-glo.patch
new file mode 100644
index 000000000..e0a22c5bb
--- /dev/null
+++ b/poky/meta/recipes-core/busybox/busybox/0001-gen_build_files-Use-C-locale-when-calling-sed-on-glo.patch
@@ -0,0 +1,28 @@
+From bff7f16f7f41de8df67beb03722f235828ef2249 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 3 May 2021 15:48:19 -0700
+Subject: [PATCH] gen_build_files: Use C locale when calling sed on globbed files
+
+sort order is different based on chosen locale and also default shell
+being bash or dash
+
+This sets the environment variable LC_ALL to the value C, which will
+enforce bytewise sorting, irrespective of the shell
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ scripts/gen_build_files.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/scripts/gen_build_files.sh
++++ b/scripts/gen_build_files.sh
+@@ -4,6 +4,8 @@
+ # but users complain that many sed implementations
+ # are misinterpreting --.
+
++export LC_ALL=C
++
+ test $# -ge 2 || { echo "Syntax: $0 SRCTREE OBJTREE"; exit 1; }
+
+ # cd to objtree
diff --git a/poky/meta/recipes-core/busybox/busybox/longopts.cfg b/poky/meta/recipes-core/busybox/busybox/longopts.cfg
new file mode 100644
index 000000000..dcfab9991
--- /dev/null
+++ b/poky/meta/recipes-core/busybox/busybox/longopts.cfg
@@ -0,0 +1,15 @@
+CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y
+CONFIG_FEATURE_GZIP_LONG_OPTIONS=y
+CONFIG_FEATURE_TAR_LONG_OPTIONS=y
+CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y
+CONFIG_FEATURE_CP_LONG_OPTIONS=y
+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
+CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y
+CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
+CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
+CONFIG_FEATURE_DIFF_LONG_OPTIONS=y
+CONFIG_FEATURE_BC_LONG_OPTIONS=y
+CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y
+CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y
+CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS=y
+CONFIG_FEATURE_WGET_LONG_OPTIONS=y
diff --git a/poky/meta/recipes-core/busybox/busybox_1.33.0.bb b/poky/meta/recipes-core/busybox/busybox_1.33.0.bb
index 1a3f218bc..c334c4200 100644
--- a/poky/meta/recipes-core/busybox/busybox_1.33.0.bb
+++ b/poky/meta/recipes-core/busybox/busybox_1.33.0.bb
@@ -31,6 +31,7 @@ SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
file://sha1sum.cfg \
file://sha256sum.cfg \
file://getopts.cfg \
+ file://longopts.cfg \
file://resize.cfg \
${@["", "file://init.cfg"][(d.getVar('VIRTUAL-RUNTIME_init_manager') == 'busybox')]} \
${@["", "file://rcS.default"][(d.getVar('VIRTUAL-RUNTIME_init_manager') == 'busybox')]} \
@@ -46,7 +47,9 @@ SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
file://0001-sysctl-ignore-EIO-of-stable_secret-below-proc-sys-ne.patch \
file://rev.cfg \
file://pgrep.cfg \
-"
+ file://0001-decompress_gunzip-Fix-DoS-if-gzip-is-corrupt.patch \
+ file://0001-gen_build_files-Use-C-locale-when-calling-sed-on-glo.patch \
+ "
SRC_URI_append_libc-musl = " file://musl.cfg "
SRC_URI[tarball.sha256sum] = "d568681c91a85edc6710770cebc1e80e042ad74d305b5c2e6d57a5f3de3b8fbd"
diff --git a/poky/meta/recipes-core/dbus/dbus-glib_0.110.bb b/poky/meta/recipes-core/dbus/dbus-glib_0.112.bb
index 0b45805cf..003c3accc 100644
--- a/poky/meta/recipes-core/dbus/dbus-glib_0.110.bb
+++ b/poky/meta/recipes-core/dbus/dbus-glib_0.112.bb
@@ -3,8 +3,8 @@ DESCRIPTION = "GLib bindings for the D-Bus message bus that integrate \
the D-Bus library with the GLib thread abstraction and main loop."
HOMEPAGE = "https://www.freedesktop.org/Software/dbus"
LICENSE = "AFL-2.1 | GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=cf5b3a2f7083750d504333114e738656 \
- file://dbus/dbus-glib.h;beginline=7;endline=21;md5=7755c9d7abccd5dbd25a6a974538bb3c"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c31c73c1d8f5d06784b2ccd22e42d641 \
+ file://dbus/dbus-glib.h;beginline=7;endline=21;md5=c374833bd817988323f3a8fda0dc7f48"
SECTION = "base"
DEPENDS = "expat glib-2.0 virtual/libintl dbus-glib-native dbus"
@@ -14,8 +14,8 @@ SRC_URI = "https://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-${PV}.tar.g
file://no-examples.patch \
file://test-install-makefile.patch \
"
-SRC_URI[md5sum] = "d7cebf1d69445cbd28b4983392145192"
-SRC_URI[sha256sum] = "7ce4760cf66c69148f6bd6c92feaabb8812dee30846b24cd0f7395c436d7e825"
+SRC_URI[md5sum] = "021e6c8a288df02c227e4aafbf7e7527"
+SRC_URI[sha256sum] = "7d550dccdfcd286e33895501829ed971eeb65c614e73aadb4a08aeef719b143a"
inherit autotools pkgconfig gettext bash-completion gtk-doc
diff --git a/poky/meta/recipes-core/ell/ell_0.38.bb b/poky/meta/recipes-core/ell/ell_0.39.bb
index 7d3a33997..68ec4cb4a 100644
--- a/poky/meta/recipes-core/ell/ell_0.38.bb
+++ b/poky/meta/recipes-core/ell/ell_0.39.bb
@@ -17,7 +17,7 @@ inherit autotools pkgconfig
SRC_URI = "https://mirrors.edge.kernel.org/pub/linux/libs/${BPN}/${BPN}-${PV}.tar.xz \
file://0001-pem.c-do-not-use-rawmemchr.patch \
"
-SRC_URI[sha256sum] = "c1b7ae5676eec310f08757b3d8652b8e818776be1897fb5deb59e55f02a012a7"
+SRC_URI[sha256sum] = "653e2e139e23ed31e03c56c05f15321a9e818e2dca00a315c18d2c7b72f15d08"
do_configure_prepend () {
mkdir -p ${S}/build-aux
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
index d6765b163..8a6d46df7 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
@@ -17,16 +17,16 @@ diff --git a/gio/tests/meson.build b/gio/tests/meson.build
index 3a19c82..b762835 100644
--- a/gio/tests/meson.build
+++ b/gio/tests/meson.build
-@@ -12,7 +12,7 @@ test_c_args = [
- '-UG_DISABLE_ASSERT',
- ]
+@@ -27,7 +27,7 @@ test_c_args = [
+ endif # libutil.length() > 0
+ endif # build_machine.system() == 'linux'
-if host_machine.system() == 'windows'
+if host_system == 'windows'
common_gio_tests_deps += [iphlpapi_dep, winsock2, cc.find_library ('secur32')]
endif
-@@ -133,7 +133,7 @@ else
+@@ -148,7 +148,7 @@ else
endif
# Test programs buildable on UNIX only
@@ -35,7 +35,7 @@ index 3a19c82..b762835 100644
gio_tests += {
'file' : {},
'gdbus-peer' : {
-@@ -385,7 +385,7 @@ if host_machine.system() != 'windows'
+@@ -402,7 +402,7 @@ if host_machine.system() != 'windows'
endif # unix
# Test programs buildable on Windows only
@@ -44,7 +44,7 @@ index 3a19c82..b762835 100644
gio_tests += {'win32-streams' : {}}
endif
-@@ -455,7 +455,7 @@ if cc.get_id() != 'msvc' and cc.get_id() != 'clang-cl'
+@@ -472,7 +472,7 @@ if cc.get_id() != 'msvc' and cc.get_id() != 'clang-cl'
}
endif
@@ -57,7 +57,7 @@ diff --git a/glib/tests/meson.build b/glib/tests/meson.build
index 6eb23e8..36eb919 100644
--- a/glib/tests/meson.build
+++ b/glib/tests/meson.build
-@@ -137,7 +137,7 @@ if glib_conf.has('HAVE_EVENTFD')
+@@ -142,7 +142,7 @@ if glib_conf.has('HAVE_EVENTFD')
}
endif
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-codegen.py-bump-timeout-to-100-seconds.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-codegen.py-bump-timeout-to-100-seconds.patch
index 508c8c3ba..fbdd4c266 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-codegen.py-bump-timeout-to-100-seconds.patch
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-codegen.py-bump-timeout-to-100-seconds.patch
@@ -15,8 +15,8 @@ diff --git a/gio/tests/codegen.py b/gio/tests/codegen.py
index 51de0ed..ca98c9d 100644
--- a/gio/tests/codegen.py
+++ b/gio/tests/codegen.py
-@@ -51,7 +51,7 @@ class TestCodegen(unittest.TestCase):
- cwd = ''
+@@ -55,7 +55,7 @@ class TestCodegen(unittest.TestCase):
+ cwd = ""
def setUp(self):
- self.timeout_seconds = 10 # seconds per test
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gobject-Drop-use-of-volatile-from-get_type-macros.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gobject-Drop-use-of-volatile-from-get_type-macros.patch
deleted file mode 100644
index 485218652..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gobject-Drop-use-of-volatile-from-get_type-macros.patch
+++ /dev/null
@@ -1,403 +0,0 @@
-From fab561f8d05794329184cd81f9ab9d9d77dcc22a Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Wed, 11 Nov 2020 18:12:22 +0000
-Subject: [PATCH 01/29] gobject: Drop use of volatile from get_type() macros
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-http://isvolatileusefulwiththreads.in/c/
-
-It’s possible that the variables here are only marked as volatile
-because they’re arguments to `g_once_*()`. Those arguments will be
-modified in a subsequent commit.
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- docs/reference/gobject/glib-mkenums.xml | 8 ++---
- docs/reference/gobject/tut_gtype.xml | 2 +-
- gio/gioenumtypes.c.template | 8 ++---
- gio/tests/gsettings.c | 4 +--
- gobject/gbinding.c | 8 ++---
- gobject/gboxed.c | 8 ++---
- gobject/glib-enumtypes.c.template | 8 ++---
- gobject/gsourceclosure.c | 2 +-
- gobject/gtype.h | 48 ++++++++++++-------------
- gobject/tests/signals.c | 16 ++++-----
- 10 files changed, 56 insertions(+), 56 deletions(-)
-
-diff --git a/docs/reference/gobject/glib-mkenums.xml b/docs/reference/gobject/glib-mkenums.xml
-index 2200328ed..ce250a3ff 100644
---- a/docs/reference/gobject/glib-mkenums.xml
-+++ b/docs/reference/gobject/glib-mkenums.xml
-@@ -480,9 +480,9 @@ A C source template file will typically look like this:
- GType
- @enum_name@_get_type (void)
- {
-- static volatile gsize g_@type@_type_id__volatile;
-+ static gsize static_g_@type@_type_id;
-
-- if (g_once_init_enter (&amp;g_define_type_id__volatile))
-+ if (g_once_init_enter (&amp;static_g_@type@_type_id))
- {
- static const G@Type@Value values[] = {
- /*** END value-header ***/
-@@ -498,9 +498,9 @@ GType
- GType g_@type@_type_id =
- g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
-
-- g_once_init_leave (&amp;g_@type@_type_id__volatile, g_@type@_type_id);
-+ g_once_init_leave (&amp;static_g_@type@_type_id, g_@type@_type_id);
- }
-- return g_@type@_type_id__volatile;
-+ return static_g_@type@_type_id;
- }
-
- /*** END value-tail ***/
-diff --git a/docs/reference/gobject/tut_gtype.xml b/docs/reference/gobject/tut_gtype.xml
-index 25e37dc48..ee042889d 100644
---- a/docs/reference/gobject/tut_gtype.xml
-+++ b/docs/reference/gobject/tut_gtype.xml
-@@ -852,7 +852,7 @@ viewer_editable_default_init (ViewerEditableInterface *iface)
- GType
- viewer_editable_get_type (void)
- {
-- static volatile gsize type_id = 0;
-+ static gsize type_id = 0;
- if (g_once_init_enter (&amp;type_id)) {
- const GTypeInfo info = {
- sizeof (ViewerEditableInterface),
-diff --git a/gio/gioenumtypes.c.template b/gio/gioenumtypes.c.template
-index e9adc4a38..948a01201 100644
---- a/gio/gioenumtypes.c.template
-+++ b/gio/gioenumtypes.c.template
-@@ -13,9 +13,9 @@
- GType
- @enum_name@_get_type (void)
- {
-- static volatile gsize g_define_type_id__volatile = 0;
-+ static gsize static_g_define_type_id = 0;
-
-- if (g_once_init_enter (&g_define_type_id__volatile))
-+ if (g_once_init_enter (&static_g_define_type_id))
- {
- static const G@Type@Value values[] = {
- /*** END value-header ***/
-@@ -29,10 +29,10 @@ GType
- };
- GType g_define_type_id =
- g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
-- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
-+ g_once_init_leave (&static_g_define_type_id, g_define_type_id);
- }
-
-- return g_define_type_id__volatile;
-+ return static_g_define_type_id;
- }
-
- /*** END value-tail ***/
-diff --git a/gio/tests/gsettings.c b/gio/tests/gsettings.c
-index 2f81ae6c3..179d0fd2f 100644
---- a/gio/tests/gsettings.c
-+++ b/gio/tests/gsettings.c
-@@ -1060,7 +1060,7 @@ test_object_set_property (GObject *object,
- static GType
- test_enum_get_type (void)
- {
-- static volatile gsize define_type_id = 0;
-+ static gsize define_type_id = 0;
-
- if (g_once_init_enter (&define_type_id))
- {
-@@ -1082,7 +1082,7 @@ test_enum_get_type (void)
- static GType
- test_flags_get_type (void)
- {
-- static volatile gsize define_type_id = 0;
-+ static gsize define_type_id = 0;
-
- if (g_once_init_enter (&define_type_id))
- {
-diff --git a/gobject/gbinding.c b/gobject/gbinding.c
-index 78a883075..662d76b3c 100644
---- a/gobject/gbinding.c
-+++ b/gobject/gbinding.c
-@@ -120,9 +120,9 @@
- GType
- g_binding_flags_get_type (void)
- {
-- static volatile gsize g_define_type_id__volatile = 0;
-+ static gsize static_g_define_type_id = 0;
-
-- if (g_once_init_enter (&g_define_type_id__volatile))
-+ if (g_once_init_enter (&static_g_define_type_id))
- {
- static const GFlagsValue values[] = {
- { G_BINDING_DEFAULT, "G_BINDING_DEFAULT", "default" },
-@@ -133,10 +133,10 @@ g_binding_flags_get_type (void)
- };
- GType g_define_type_id =
- g_flags_register_static (g_intern_static_string ("GBindingFlags"), values);
-- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
-+ g_once_init_leave (&static_g_define_type_id, g_define_type_id);
- }
-
-- return g_define_type_id__volatile;
-+ return static_g_define_type_id;
- }
-
- #define G_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), G_TYPE_BINDING, GBindingClass))
-diff --git a/gobject/gboxed.c b/gobject/gboxed.c
-index 30ba4e775..194251383 100644
---- a/gobject/gboxed.c
-+++ b/gobject/gboxed.c
-@@ -180,19 +180,19 @@ G_DEFINE_BOXED_TYPE (GOptionGroup, g_option_group, g_option_group_ref, g_option_
- GType
- g_strv_get_type (void)
- {
-- static volatile gsize g_define_type_id__volatile = 0;
-+ static gsize static_g_define_type_id = 0;
-
-- if (g_once_init_enter (&g_define_type_id__volatile))
-+ if (g_once_init_enter (&static_g_define_type_id))
- {
- GType g_define_type_id =
- g_boxed_type_register_static (g_intern_static_string ("GStrv"),
- (GBoxedCopyFunc) g_strdupv,
- (GBoxedFreeFunc) g_strfreev);
-
-- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
-+ g_once_init_leave (&static_g_define_type_id, g_define_type_id);
- }
-
-- return g_define_type_id__volatile;
-+ return static_g_define_type_id;
- }
-
- GType
-diff --git a/gobject/glib-enumtypes.c.template b/gobject/glib-enumtypes.c.template
-index b7d36728f..1800ca8af 100644
---- a/gobject/glib-enumtypes.c.template
-+++ b/gobject/glib-enumtypes.c.template
-@@ -13,9 +13,9 @@
- GType
- @enum_name@_get_type (void)
- {
-- static volatile gsize g_define_type_id__volatile = 0;
-+ static gsize static_g_define_type_id = 0;
-
-- if (g_once_init_enter (&g_define_type_id__volatile))
-+ if (g_once_init_enter (&static_g_define_type_id))
- {
- static const G@Type@Value values[] = {
- /*** END value-header ***/
-@@ -29,10 +29,10 @@ GType
- };
- GType g_define_type_id =
- g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
-- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
-+ g_once_init_leave (&static_g_define_type_id, g_define_type_id);
- }
-
-- return g_define_type_id__volatile;
-+ return static_g_define_type_id;
- }
-
- /*** END value-tail ***/
-diff --git a/gobject/gsourceclosure.c b/gobject/gsourceclosure.c
-index 0d0d2e87c..d1b1ee4b3 100644
---- a/gobject/gsourceclosure.c
-+++ b/gobject/gsourceclosure.c
-@@ -32,7 +32,7 @@ G_DEFINE_BOXED_TYPE (GIOChannel, g_io_channel, g_io_channel_ref, g_io_channel_un
- GType
- g_io_condition_get_type (void)
- {
-- static volatile GType etype = 0;
-+ static GType etype = 0;
-
- if (g_once_init_enter (&etype))
- {
-diff --git a/gobject/gtype.h b/gobject/gtype.h
-index 9de46ac60..666fadb0c 100644
---- a/gobject/gtype.h
-+++ b/gobject/gtype.h
-@@ -1727,8 +1727,8 @@ guint g_type_get_type_registration_serial (void);
- * GType
- * gtk_gadget_get_type (void)
- * {
-- * static volatile gsize g_define_type_id__volatile = 0;
-- * if (g_once_init_enter (&g_define_type_id__volatile))
-+ * static gsize static_g_define_type_id = 0;
-+ * if (g_once_init_enter (&static_g_define_type_id))
- * {
- * GType g_define_type_id =
- * g_type_register_static_simple (GTK_TYPE_WIDGET,
-@@ -1748,9 +1748,9 @@ guint g_type_get_type_registration_serial (void);
- * };
- * g_type_add_interface_static (g_define_type_id, TYPE_GIZMO, &g_implement_interface_info);
- * }
-- * g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
-+ * g_once_init_leave (&static_g_define_type_id, g_define_type_id);
- * }
-- * return g_define_type_id__volatile;
-+ * return static_g_define_type_id;
- * }
- * ]|
- * The only pieces which have to be manually provided are the definitions of
-@@ -1995,17 +1995,17 @@ type_name##_get_instance_private (TypeName *self) \
- GType \
- type_name##_get_type (void) \
- { \
-- static volatile gsize g_define_type_id__volatile = 0;
-+ static gsize static_g_define_type_id = 0;
- /* Prelude goes here */
-
- /* Added for _G_DEFINE_TYPE_EXTENDED_WITH_PRELUDE */
- #define _G_DEFINE_TYPE_EXTENDED_BEGIN_REGISTER(TypeName, type_name, TYPE_PARENT, flags) \
-- if (g_once_init_enter (&g_define_type_id__volatile)) \
-+ if (g_once_init_enter (&static_g_define_type_id)) \
- { \
- GType g_define_type_id = type_name##_get_type_once (); \
-- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); \
-+ g_once_init_leave (&static_g_define_type_id, g_define_type_id); \
- } \
-- return g_define_type_id__volatile; \
-+ return static_g_define_type_id; \
- } /* closes type_name##_get_type() */ \
- \
- G_GNUC_NO_INLINE \
-@@ -2041,8 +2041,8 @@ static void type_name##_default_init (TypeName##Interface *klass); \
- GType \
- type_name##_get_type (void) \
- { \
-- static volatile gsize g_define_type_id__volatile = 0; \
-- if (g_once_init_enter (&g_define_type_id__volatile)) \
-+ static gsize static_g_define_type_id = 0; \
-+ if (g_once_init_enter (&static_g_define_type_id)) \
- { \
- GType g_define_type_id = \
- g_type_register_static_simple (G_TYPE_INTERFACE, \
-@@ -2058,9 +2058,9 @@ type_name##_get_type (void) \
- #define _G_DEFINE_INTERFACE_EXTENDED_END() \
- /* following custom code */ \
- } \
-- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); \
-+ g_once_init_leave (&static_g_define_type_id, g_define_type_id); \
- } \
-- return g_define_type_id__volatile; \
-+ return static_g_define_type_id; \
- } /* closes type_name##_get_type() */
-
- /**
-@@ -2115,13 +2115,13 @@ static GType type_name##_get_type_once (void); \
- GType \
- type_name##_get_type (void) \
- { \
-- static volatile gsize g_define_type_id__volatile = 0; \
-- if (g_once_init_enter (&g_define_type_id__volatile)) \
-+ static gsize static_g_define_type_id = 0; \
-+ if (g_once_init_enter (&static_g_define_type_id)) \
- { \
- GType g_define_type_id = type_name##_get_type_once (); \
-- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); \
-+ g_once_init_leave (&static_g_define_type_id, g_define_type_id); \
- } \
-- return g_define_type_id__volatile; \
-+ return static_g_define_type_id; \
- } \
- \
- G_GNUC_NO_INLINE \
-@@ -2152,13 +2152,13 @@ static GType type_name##_get_type_once (void); \
- GType \
- type_name##_get_type (void) \
- { \
-- static volatile gsize g_define_type_id__volatile = 0; \
-- if (g_once_init_enter (&g_define_type_id__volatile)) \
-+ static gsize static_g_define_type_id = 0; \
-+ if (g_once_init_enter (&static_g_define_type_id)) \
- { \
- GType g_define_type_id = type_name##_get_type_once (); \
-- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); \
-+ g_once_init_leave (&static_g_define_type_id, g_define_type_id); \
- } \
-- return g_define_type_id__volatile; \
-+ return static_g_define_type_id; \
- } \
- \
- G_GNUC_NO_INLINE \
-@@ -2205,13 +2205,13 @@ static GType type_name##_get_type_once (void); \
- GType \
- type_name##_get_type (void) \
- { \
-- static volatile gsize g_define_type_id__volatile = 0; \
-- if (g_once_init_enter (&g_define_type_id__volatile)) \
-+ static gsize static_g_define_type_id = 0; \
-+ if (g_once_init_enter (&static_g_define_type_id)) \
- { \
- GType g_define_type_id = type_name##_get_type_once (); \
-- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); \
-+ g_once_init_leave (&static_g_define_type_id, g_define_type_id); \
- } \
-- return g_define_type_id__volatile; \
-+ return static_g_define_type_id; \
- } \
- \
- G_GNUC_NO_INLINE \
-diff --git a/gobject/tests/signals.c b/gobject/tests/signals.c
-index 120f90b5c..ac0ce5102 100644
---- a/gobject/tests/signals.c
-+++ b/gobject/tests/signals.c
-@@ -66,9 +66,9 @@ custom_marshal_VOID__INVOCATIONHINT (GClosure *closure,
- static GType
- test_enum_get_type (void)
- {
-- static volatile gsize g_define_type_id__volatile = 0;
-+ static gsize static_g_define_type_id = 0;
-
-- if (g_once_init_enter (&g_define_type_id__volatile))
-+ if (g_once_init_enter (&static_g_define_type_id))
- {
- static const GEnumValue values[] = {
- { TEST_ENUM_NEGATIVE, "TEST_ENUM_NEGATIVE", "negative" },
-@@ -79,18 +79,18 @@ test_enum_get_type (void)
- };
- GType g_define_type_id =
- g_enum_register_static (g_intern_static_string ("TestEnum"), values);
-- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
-+ g_once_init_leave (&static_g_define_type_id, g_define_type_id);
- }
-
-- return g_define_type_id__volatile;
-+ return static_g_define_type_id;
- }
-
- static GType
- test_unsigned_enum_get_type (void)
- {
-- static volatile gsize g_define_type_id__volatile = 0;
-+ static gsize static_g_define_type_id = 0;
-
-- if (g_once_init_enter (&g_define_type_id__volatile))
-+ if (g_once_init_enter (&static_g_define_type_id))
- {
- static const GEnumValue values[] = {
- { TEST_UNSIGNED_ENUM_FOO, "TEST_UNSIGNED_ENUM_FOO", "foo" },
-@@ -99,10 +99,10 @@ test_unsigned_enum_get_type (void)
- };
- GType g_define_type_id =
- g_enum_register_static (g_intern_static_string ("TestUnsignedEnum"), values);
-- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
-+ g_once_init_leave (&static_g_define_type_id, g_define_type_id);
- }
-
-- return g_define_type_id__volatile;
-+ return static_g_define_type_id;
- }
-
- typedef enum {
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-tests-codegen.py-removing-unecessary-print-statement.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-tests-codegen.py-removing-unecessary-print-statement.patch
deleted file mode 100644
index 40427e0e6..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-tests-codegen.py-removing-unecessary-print-statement.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 6178df5658045a6253ef806e018fe80d99a8f5fb Mon Sep 17 00:00:00 2001
-From: Yi Fan Yu <yifan.yu@windriver.com>
-Date: Mon, 1 Feb 2021 16:10:28 -0500
-Subject: [PATCH] tests/codegen.py: removing unecessary print statement
-
-A huge amount of output(boiler-plate code) is
-printed to the console screen.
-This is not critical to the test results.
-
-This causes intermittent test failure when another process
-has to parse its output.
-
-Root cause is in ptest-runner, This is a workaround
-
-Uptream-Status: Inappropriate [other]
-
-
-
-Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
----
- gio/tests/codegen.py | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/gio/tests/codegen.py b/gio/tests/codegen.py
-index 51de0ede4..cfa4db42e 100644
---- a/gio/tests/codegen.py
-+++ b/gio/tests/codegen.py
-@@ -250,7 +250,6 @@ class TestCodegen(unittest.TestCase):
-
- result = Result(info, out, err, subs)
-
-- print('Output:', result.out)
- return result
-
- def runCodegenWithInterface(self, interface_contents, *args):
---
-2.29.2
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0002-tests-Fix-non-atomic-access-to-a-shared-variable.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0002-tests-Fix-non-atomic-access-to-a-shared-variable.patch
deleted file mode 100644
index fada7cc38..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0002-tests-Fix-non-atomic-access-to-a-shared-variable.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From a6ce0e742a5c75c53a7c702ebb1af1084065160a Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Wed, 11 Nov 2020 18:14:29 +0000
-Subject: [PATCH 02/29] tests: Fix non-atomic access to a shared variable
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-And drop the `volatile` qualifier from the variable, as that doesn’t
-help with thread safety.
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- glib/tests/642026.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/glib/tests/642026.c b/glib/tests/642026.c
-index ef54f14bb..26ab2ed06 100644
---- a/glib/tests/642026.c
-+++ b/glib/tests/642026.c
-@@ -25,7 +25,7 @@ static GMutex *mutex;
- static GCond *cond;
- static guint i;
-
--static volatile gint freed = 0;
-+static gint freed = 0; /* (atomic) */
-
- static void
- notify (gpointer p)
-@@ -63,7 +63,7 @@ testcase (void)
- GThread *t1;
-
- g_static_private_init (&sp);
-- freed = 0;
-+ g_atomic_int_set (&freed, 0);
-
- t1 = g_thread_create (thread_func, NULL, TRUE, NULL);
- g_assert (t1 != NULL);
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0003-tests-Fix-non-atomic-access-to-a-shared-variable.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0003-tests-Fix-non-atomic-access-to-a-shared-variable.patch
deleted file mode 100644
index 8bc71a698..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0003-tests-Fix-non-atomic-access-to-a-shared-variable.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From ea746c79faf554d980c21b0e4381753e003d2dc6 Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Wed, 11 Nov 2020 18:17:23 +0000
-Subject: [PATCH 03/29] tests: Fix non-atomic access to a shared variable
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-And drop the `volatile` qualifier from the variable, as that doesn’t
-help with thread safety.
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- glib/tests/mainloop.c | 20 ++++++++++----------
- 1 file changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/glib/tests/mainloop.c b/glib/tests/mainloop.c
-index 16763a0ea..563a951de 100644
---- a/glib/tests/mainloop.c
-+++ b/glib/tests/mainloop.c
-@@ -918,7 +918,7 @@ test_mainloop_overflow (void)
- g_main_context_unref (ctx);
- }
-
--static volatile gint ready_time_dispatched;
-+static gint ready_time_dispatched; /* (atomic) */
-
- static gboolean
- ready_time_dispatch (GSource *source,
-@@ -964,7 +964,7 @@ test_ready_time (void)
- /* A source with no ready time set should not fire */
- g_assert_cmpint (g_source_get_ready_time (source), ==, -1);
- while (g_main_context_iteration (NULL, FALSE));
-- g_assert_false (ready_time_dispatched);
-+ g_assert_false (g_atomic_int_get (&ready_time_dispatched));
-
- /* The ready time should not have been changed */
- g_assert_cmpint (g_source_get_ready_time (source), ==, -1);
-@@ -978,37 +978,37 @@ test_ready_time (void)
- */
- g_source_set_ready_time (source, g_get_monotonic_time () + G_TIME_SPAN_DAY);
- while (g_main_context_iteration (NULL, FALSE));
-- g_assert_false (ready_time_dispatched);
-+ g_assert_false (g_atomic_int_get (&ready_time_dispatched));
- /* Make sure it didn't get reset */
- g_assert_cmpint (g_source_get_ready_time (source), !=, -1);
-
- /* Ready time of -1 -> don't fire */
- g_source_set_ready_time (source, -1);
- while (g_main_context_iteration (NULL, FALSE));
-- g_assert_false (ready_time_dispatched);
-+ g_assert_false (g_atomic_int_get (&ready_time_dispatched));
- /* Not reset, but should still be -1 from above */
- g_assert_cmpint (g_source_get_ready_time (source), ==, -1);
-
- /* A ready time of the current time should fire immediately */
- g_source_set_ready_time (source, g_get_monotonic_time ());
- while (g_main_context_iteration (NULL, FALSE));
-- g_assert_true (ready_time_dispatched);
-- ready_time_dispatched = FALSE;
-+ g_assert_true (g_atomic_int_get (&ready_time_dispatched));
-+ g_atomic_int_set (&ready_time_dispatched, FALSE);
- /* Should have gotten reset by the handler function */
- g_assert_cmpint (g_source_get_ready_time (source), ==, -1);
-
- /* As well as one in the recent past... */
- g_source_set_ready_time (source, g_get_monotonic_time () - G_TIME_SPAN_SECOND);
- while (g_main_context_iteration (NULL, FALSE));
-- g_assert_true (ready_time_dispatched);
-- ready_time_dispatched = FALSE;
-+ g_assert_true (g_atomic_int_get (&ready_time_dispatched));
-+ g_atomic_int_set (&ready_time_dispatched, FALSE);
- g_assert_cmpint (g_source_get_ready_time (source), ==, -1);
-
- /* Zero is the 'official' way to get a source to fire immediately */
- g_source_set_ready_time (source, 0);
- while (g_main_context_iteration (NULL, FALSE));
-- g_assert_true (ready_time_dispatched);
-- ready_time_dispatched = FALSE;
-+ g_assert_true (g_atomic_int_get (&ready_time_dispatched));
-+ g_atomic_int_set (&ready_time_dispatched, FALSE);
- g_assert_cmpint (g_source_get_ready_time (source), ==, -1);
-
- /* Now do some tests of cross-thread wakeups.
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0004-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0004-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch
deleted file mode 100644
index 4b7b6f463..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0004-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From 3dda662bebb81666d009635df1055ba5c1e17b52 Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Wed, 11 Nov 2020 18:16:17 +0000
-Subject: [PATCH 04/29] tests: Drop unnecessary volatile qualifiers from tests
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-These variables were already (correctly) accessed atomically. The
-`volatile` qualifier doesn’t help with that.
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- glib/tests/atomic.c | 4 ++--
- glib/tests/cond.c | 2 +-
- glib/tests/gwakeuptest.c | 2 +-
- glib/tests/hash.c | 2 +-
- glib/tests/slice.c | 2 +-
- 5 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/glib/tests/atomic.c b/glib/tests/atomic.c
-index 6b6cc7f3e..7d2459f3a 100644
---- a/glib/tests/atomic.c
-+++ b/glib/tests/atomic.c
-@@ -248,8 +248,8 @@ G_GNUC_END_IGNORE_DEPRECATIONS
- #define THREADS 10
- #define ROUNDS 10000
-
--volatile gint bucket[THREADS];
--volatile gint atomic;
-+gint bucket[THREADS]; /* never contested by threads, not accessed atomically */
-+gint atomic; /* (atomic) */
-
- static gpointer
- thread_func (gpointer data)
-diff --git a/glib/tests/cond.c b/glib/tests/cond.c
-index 0f0b3d249..ed338cce3 100644
---- a/glib/tests/cond.c
-+++ b/glib/tests/cond.c
-@@ -29,7 +29,7 @@
-
- static GCond cond;
- static GMutex mutex;
--static volatile gint next;
-+static gint next; /* locked by @mutex */
-
- static void
- push_value (gint value)
-diff --git a/glib/tests/gwakeuptest.c b/glib/tests/gwakeuptest.c
-index 461a7d3de..b37fb43fc 100644
---- a/glib/tests/gwakeuptest.c
-+++ b/glib/tests/gwakeuptest.c
-@@ -92,7 +92,7 @@ struct context
- static struct context contexts[NUM_THREADS];
- static GThread *threads[NUM_THREADS];
- static GWakeup *last_token_wakeup;
--static volatile gint tokens_alive;
-+static gint tokens_alive; /* (atomic) */
-
- static void
- context_init (struct context *ctx)
-diff --git a/glib/tests/hash.c b/glib/tests/hash.c
-index 4623d18d1..f4ff55ce1 100644
---- a/glib/tests/hash.c
-+++ b/glib/tests/hash.c
-@@ -1362,7 +1362,7 @@ struct _GHashTable
-
- GHashFunc hash_func;
- GEqualFunc key_equal_func;
-- volatile gint ref_count;
-+ gint ref_count; /* (atomic) */
-
- #ifndef G_DISABLE_ASSERT
- int version;
-diff --git a/glib/tests/slice.c b/glib/tests/slice.c
-index f37826f3a..a566280db 100644
---- a/glib/tests/slice.c
-+++ b/glib/tests/slice.c
-@@ -107,7 +107,7 @@ thread_allocate (gpointer data)
- gint b;
- gint size;
- gpointer p;
-- volatile gpointer *loc;
-+ gpointer *loc; /* (atomic) */
-
- for (i = 0; i < 10000; i++)
- {
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0005-tests-Fix-non-atomic-access-to-some-shared-variables.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0005-tests-Fix-non-atomic-access-to-some-shared-variables.patch
deleted file mode 100644
index 3aecf4582..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0005-tests-Fix-non-atomic-access-to-some-shared-variables.patch
+++ /dev/null
@@ -1,702 +0,0 @@
-From 7f905ff1faf0acbe0d2ce69937e031fcacce9294 Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Wed, 11 Nov 2020 18:21:00 +0000
-Subject: [PATCH 05/29] tests: Fix non-atomic access to some shared variables
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-And drop the `volatile` qualifier from the variables, as that doesn’t
-help with thread safety.
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- gio/tests/gdbus-connection-flush.c | 6 +-
- gio/tests/gdbus-connection.c | 40 ++++----
- gio/tests/gdbus-overflow.c | 20 ++--
- gio/tests/socket-service.c | 6 +-
- gio/tests/task.c | 150 ++++++++++++++---------------
- 5 files changed, 111 insertions(+), 111 deletions(-)
-
---- a/gio/tests/gdbus-connection-flush.c
-+++ b/gio/tests/gdbus-connection-flush.c
-@@ -43,9 +43,9 @@ G_LOCK_DEFINE_STATIC (write);
- typedef struct {
- GFilterOutputStream parent;
-
-- volatile gint started;
-- volatile gint finished;
-- volatile gint flushed;
-+ gint started; /* (atomic) */
-+ gint finished; /* (atomic) */
-+ gint flushed; /* (atomic) */
-
- GOutputStream *real_output;
- } MyOutputStream;
---- a/gio/tests/gdbus-connection.c
-+++ b/gio/tests/gdbus-connection.c
-@@ -61,9 +61,9 @@ _log (const gchar *format, ...)
- static gboolean
- test_connection_quit_mainloop (gpointer user_data)
- {
-- volatile gboolean *quit_mainloop_fired = user_data;
-+ gboolean *quit_mainloop_fired = user_data; /* (atomic) */
- _log ("quit_mainloop_fired");
-- *quit_mainloop_fired = TRUE;
-+ g_atomic_int_set (quit_mainloop_fired, TRUE);
- g_main_loop_quit (loop);
- return TRUE;
- }
-@@ -113,8 +113,8 @@ on_name_owner_changed (GDBusConnection *
- static void
- a_gdestroynotify_that_sets_a_gboolean_to_true_and_quits_loop (gpointer user_data)
- {
-- volatile gboolean *val = user_data;
-- *val = TRUE;
-+ gboolean *val = user_data; /* (atomic) */
-+ g_atomic_int_set (val, TRUE);
- _log ("destroynotify fired for %p", val);
- g_main_loop_quit (loop);
- }
-@@ -143,10 +143,10 @@ test_connection_life_cycle (void)
- GDBusConnection *c;
- GDBusConnection *c2;
- GError *error;
-- volatile gboolean on_signal_registration_freed_called;
-- volatile gboolean on_filter_freed_called;
-- volatile gboolean on_register_object_freed_called;
-- volatile gboolean quit_mainloop_fired;
-+ gboolean on_signal_registration_freed_called; /* (atomic) */
-+ gboolean on_filter_freed_called; /* (atomic) */
-+ gboolean on_register_object_freed_called; /* (atomic) */
-+ gboolean quit_mainloop_fired; /* (atomic) */
- guint quit_mainloop_id;
- guint registration_id;
-
-@@ -208,7 +208,7 @@ test_connection_life_cycle (void)
- g_assert_no_error (error);
- g_assert_nonnull (c2);
- /* signal registration */
-- on_signal_registration_freed_called = FALSE;
-+ g_atomic_int_set (&on_signal_registration_freed_called, FALSE);
- g_dbus_connection_signal_subscribe (c2,
- "org.freedesktop.DBus", /* bus name */
- "org.freedesktop.DBus", /* interface */
-@@ -220,13 +220,13 @@ test_connection_life_cycle (void)
- (gpointer) &on_signal_registration_freed_called,
- a_gdestroynotify_that_sets_a_gboolean_to_true_and_quits_loop);
- /* filter func */
-- on_filter_freed_called = FALSE;
-+ g_atomic_int_set (&on_filter_freed_called, FALSE);
- g_dbus_connection_add_filter (c2,
- some_filter_func,
- (gpointer) &on_filter_freed_called,
- a_gdestroynotify_that_sets_a_gboolean_to_true_and_quits_loop);
- /* object registration */
-- on_register_object_freed_called = FALSE;
-+ g_atomic_int_set (&on_register_object_freed_called, FALSE);
- error = NULL;
- registration_id = g_dbus_connection_register_object (c2,
- "/foo",
-@@ -239,7 +239,7 @@ test_connection_life_cycle (void)
- g_assert_cmpuint (registration_id, >, 0);
- /* ok, finalize the connection and check that all the GDestroyNotify functions are invoked as expected */
- g_object_unref (c2);
-- quit_mainloop_fired = FALSE;
-+ g_atomic_int_set (&quit_mainloop_fired, FALSE);
- quit_mainloop_id = g_timeout_add (30000, test_connection_quit_mainloop, (gpointer) &quit_mainloop_fired);
- _log ("destroynotifies for\n"
- " register_object %p\n"
-@@ -250,21 +250,21 @@ test_connection_life_cycle (void)
- &on_signal_registration_freed_called);
- while (TRUE)
- {
-- if (on_signal_registration_freed_called &&
-- on_filter_freed_called &&
-- on_register_object_freed_called)
-+ if (g_atomic_int_get (&on_signal_registration_freed_called) &&
-+ g_atomic_int_get (&on_filter_freed_called) &&
-+ g_atomic_int_get (&on_register_object_freed_called))
- break;
-- if (quit_mainloop_fired)
-+ if (g_atomic_int_get (&quit_mainloop_fired))
- break;
- _log ("entering loop");
- g_main_loop_run (loop);
- _log ("exiting loop");
- }
- g_source_remove (quit_mainloop_id);
-- g_assert_true (on_signal_registration_freed_called);
-- g_assert_true (on_filter_freed_called);
-- g_assert_true (on_register_object_freed_called);
-- g_assert_false (quit_mainloop_fired);
-+ g_assert_true (g_atomic_int_get (&on_signal_registration_freed_called));
-+ g_assert_true (g_atomic_int_get (&on_filter_freed_called));
-+ g_assert_true (g_atomic_int_get (&on_register_object_freed_called));
-+ g_assert_false (g_atomic_int_get (&quit_mainloop_fired));
-
- /*
- * Check for correct behavior when the bus goes away
---- a/gio/tests/gdbus-overflow.c
-+++ b/gio/tests/gdbus-overflow.c
-@@ -86,8 +86,8 @@ overflow_filter_func (GDBusConnection *c
- gboolean incoming,
- gpointer user_data)
- {
-- volatile gint *counter = user_data;
-- *counter += 1;
-+ gint *counter = user_data; /* (atomic) */
-+ g_atomic_int_inc (counter);
- return message;
- }
-
-@@ -108,8 +108,8 @@ test_overflow (void)
- GDBusConnection *producer, *consumer;
- GError *error;
- GTimer *timer;
-- volatile gint n_messages_received;
-- volatile gint n_messages_sent;
-+ gint n_messages_received; /* (atomic) */
-+ gint n_messages_sent; /* (atomic) */
-
- g_assert_cmpint (socketpair (AF_UNIX, SOCK_STREAM, 0, sv), ==, 0);
-
-@@ -129,7 +129,7 @@ test_overflow (void)
- g_dbus_connection_set_exit_on_close (producer, TRUE);
- g_assert_no_error (error);
- g_object_unref (socket_connection);
-- n_messages_sent = 0;
-+ g_atomic_int_set (&n_messages_sent, 0);
- g_dbus_connection_add_filter (producer, overflow_filter_func, (gpointer) &n_messages_sent, NULL);
-
- /* send enough data that we get an EAGAIN */
-@@ -155,7 +155,7 @@ test_overflow (void)
- */
- g_timeout_add (500, overflow_on_500ms_later_func, NULL);
- g_main_loop_run (loop);
-- g_assert_cmpint (n_messages_sent, <, OVERFLOW_NUM_SIGNALS);
-+ g_assert_cmpint (g_atomic_int_get (&n_messages_sent), <, OVERFLOW_NUM_SIGNALS);
-
- /* now suck it all out as a client, and add it up */
- socket = g_socket_new_from_fd (sv[1], &error);
-@@ -171,18 +171,18 @@ test_overflow (void)
- &error);
- g_assert_no_error (error);
- g_object_unref (socket_connection);
-- n_messages_received = 0;
-+ g_atomic_int_set (&n_messages_received, 0);
- g_dbus_connection_add_filter (consumer, overflow_filter_func, (gpointer) &n_messages_received, NULL);
- g_dbus_connection_start_message_processing (consumer);
-
- timer = g_timer_new ();
- g_timer_start (timer);
-
-- while (n_messages_received < OVERFLOW_NUM_SIGNALS && g_timer_elapsed (timer, NULL) < OVERFLOW_TIMEOUT_SEC)
-+ while (g_atomic_int_get (&n_messages_received) < OVERFLOW_NUM_SIGNALS && g_timer_elapsed (timer, NULL) < OVERFLOW_TIMEOUT_SEC)
- g_main_context_iteration (NULL, FALSE);
-
-- g_assert_cmpint (n_messages_sent, ==, OVERFLOW_NUM_SIGNALS);
-- g_assert_cmpint (n_messages_received, ==, OVERFLOW_NUM_SIGNALS);
-+ g_assert_cmpint (g_atomic_int_get (&n_messages_sent), ==, OVERFLOW_NUM_SIGNALS);
-+ g_assert_cmpint (g_atomic_int_get (&n_messages_received), ==, OVERFLOW_NUM_SIGNALS);
-
- g_timer_destroy (timer);
- g_object_unref (consumer);
---- a/gio/tests/socket-service.c
-+++ b/gio/tests/socket-service.c
-@@ -99,7 +99,7 @@ test_start_stop (void)
-
- GMutex mutex_712570;
- GCond cond_712570;
--volatile gboolean finalized;
-+gboolean finalized; /* (atomic) */
-
- GType test_threaded_socket_service_get_type (void);
- typedef GThreadedSocketService TestThreadedSocketService;
-@@ -120,7 +120,7 @@ test_threaded_socket_service_finalize (G
- /* Signal the main thread that finalization completed successfully
- * rather than hanging.
- */
-- finalized = TRUE;
-+ g_atomic_int_set (&finalized, TRUE);
- g_cond_signal (&cond_712570);
- g_mutex_unlock (&mutex_712570);
- }
-@@ -235,7 +235,7 @@ test_threaded_712570 (void)
- */
- g_object_unref (service);
-
-- while (!finalized)
-+ while (!g_atomic_int_get (&finalized))
- g_cond_wait (&cond_712570, &mutex_712570);
- g_mutex_unlock (&mutex_712570);
- }
---- a/gio/tests/task.c
-+++ b/gio/tests/task.c
-@@ -957,7 +957,7 @@ task_weak_notify (gpointer user_data,
- gboolean *weak_notify_ran = user_data;
-
- g_mutex_lock (&run_in_thread_mutex);
-- *weak_notify_ran = TRUE;
-+ g_atomic_int_set (weak_notify_ran, TRUE);
- g_cond_signal (&run_in_thread_cond);
- g_mutex_unlock (&run_in_thread_mutex);
- }
-@@ -1007,7 +1007,7 @@ run_in_thread_thread (GTask *task
- g_assert (g_thread_self () != main_thread);
-
- g_mutex_lock (&run_in_thread_mutex);
-- *thread_ran = TRUE;
-+ g_atomic_int_set (thread_ran, TRUE);
- g_cond_signal (&run_in_thread_cond);
- g_mutex_unlock (&run_in_thread_mutex);
-
-@@ -1018,8 +1018,8 @@ static void
- test_run_in_thread (void)
- {
- GTask *task;
-- volatile gboolean thread_ran = FALSE;
-- volatile gboolean weak_notify_ran = FALSE;
-+ gboolean thread_ran = FALSE; /* (atomic) */
-+ gboolean weak_notify_ran = FALSE; /* (atomic) */
- gboolean notification_emitted = FALSE;
- gboolean done = FALSE;
-
-@@ -1033,12 +1033,12 @@ test_run_in_thread (void)
- g_task_run_in_thread (task, run_in_thread_thread);
-
- g_mutex_lock (&run_in_thread_mutex);
-- while (!thread_ran)
-+ while (!g_atomic_int_get (&thread_ran))
- g_cond_wait (&run_in_thread_cond, &run_in_thread_mutex);
- g_mutex_unlock (&run_in_thread_mutex);
-
- g_assert (done == FALSE);
-- g_assert (weak_notify_ran == FALSE);
-+ g_assert_false (g_atomic_int_get (&weak_notify_ran));
-
- g_main_loop_run (loop);
-
-@@ -1050,7 +1050,7 @@ test_run_in_thread (void)
- g_object_unref (task);
-
- g_mutex_lock (&run_in_thread_mutex);
-- while (!weak_notify_ran)
-+ while (!g_atomic_int_get (&weak_notify_ran))
- g_cond_wait (&run_in_thread_cond, &run_in_thread_mutex);
- g_mutex_unlock (&run_in_thread_mutex);
- }
-@@ -1081,7 +1081,7 @@ run_in_thread_sync_thread (GTask
-
- g_assert (g_thread_self () != main_thread);
-
-- *thread_ran = TRUE;
-+ g_atomic_int_set (thread_ran, TRUE);
- g_task_return_int (task, magic);
- }
-
-@@ -1102,7 +1102,7 @@ test_run_in_thread_sync (void)
- g_task_set_task_data (task, &thread_ran, NULL);
- g_task_run_in_thread_sync (task, run_in_thread_sync_thread);
-
-- g_assert (thread_ran == TRUE);
-+ g_assert_true (g_atomic_int_get (&thread_ran));
- g_assert (task != NULL);
- g_assert (!g_task_had_error (task));
- g_assert_true (g_task_get_completed (task));
-@@ -1487,8 +1487,8 @@ test_return_on_cancel (void)
- {
- GTask *task;
- GCancellable *cancellable;
-- volatile ThreadState thread_state;
-- volatile gboolean weak_notify_ran = FALSE;
-+ ThreadState thread_state; /* (atomic) */
-+ gboolean weak_notify_ran = FALSE; /* (atomic) */
- gboolean callback_ran;
- gboolean notification_emitted = FALSE;
-
-@@ -1498,7 +1498,7 @@ test_return_on_cancel (void)
- * early.
- */
- callback_ran = FALSE;
-- thread_state = THREAD_STARTING;
-+ g_atomic_int_set (&thread_state, THREAD_STARTING);
- task = g_task_new (NULL, cancellable, return_on_cancel_callback, &callback_ran);
- g_signal_connect (task, "notify::completed",
- (GCallback) completed_cb, &notification_emitted);
-@@ -1509,18 +1509,18 @@ test_return_on_cancel (void)
- g_task_run_in_thread (task, return_on_cancel_thread);
- g_object_unref (task);
-
-- while (thread_state == THREAD_STARTING)
-+ while (g_atomic_int_get (&thread_state) == THREAD_STARTING)
- g_cond_wait (&roc_init_cond, &roc_init_mutex);
- g_mutex_unlock (&roc_init_mutex);
-
-- g_assert (thread_state == THREAD_RUNNING);
-+ g_assert_cmpint (g_atomic_int_get (&thread_state), ==, THREAD_RUNNING);
- g_assert (callback_ran == FALSE);
-
- g_cancellable_cancel (cancellable);
- g_mutex_unlock (&roc_finish_mutex);
- g_main_loop_run (loop);
-
-- g_assert (thread_state == THREAD_COMPLETED);
-+ g_assert_cmpint (g_atomic_int_get (&thread_state), ==, THREAD_COMPLETED);
- g_assert (callback_ran == TRUE);
- g_assert_true (notification_emitted);
-
-@@ -1529,7 +1529,7 @@ test_return_on_cancel (void)
- /* If return-on-cancel is TRUE, it does return early */
- callback_ran = FALSE;
- notification_emitted = FALSE;
-- thread_state = THREAD_STARTING;
-+ g_atomic_int_set (&thread_state, THREAD_STARTING);
- task = g_task_new (NULL, cancellable, return_on_cancel_callback, &callback_ran);
- g_object_weak_ref (G_OBJECT (task), task_weak_notify, (gpointer)&weak_notify_ran);
- g_signal_connect (task, "notify::completed",
-@@ -1542,27 +1542,27 @@ test_return_on_cancel (void)
- g_task_run_in_thread (task, return_on_cancel_thread);
- g_object_unref (task);
-
-- while (thread_state == THREAD_STARTING)
-+ while (g_atomic_int_get (&thread_state) == THREAD_STARTING)
- g_cond_wait (&roc_init_cond, &roc_init_mutex);
- g_mutex_unlock (&roc_init_mutex);
-
-- g_assert (thread_state == THREAD_RUNNING);
-+ g_assert_cmpint (g_atomic_int_get (&thread_state), ==, THREAD_RUNNING);
- g_assert (callback_ran == FALSE);
-
- g_cancellable_cancel (cancellable);
- g_main_loop_run (loop);
-- g_assert (thread_state == THREAD_RUNNING);
-+ g_assert_cmpint (g_atomic_int_get (&thread_state), ==, THREAD_RUNNING);
- g_assert (callback_ran == TRUE);
-
-- g_assert (weak_notify_ran == FALSE);
-+ g_assert_false (g_atomic_int_get (&weak_notify_ran));
-
-- while (thread_state == THREAD_RUNNING)
-+ while (g_atomic_int_get (&thread_state) == THREAD_RUNNING)
- g_cond_wait (&roc_finish_cond, &roc_finish_mutex);
- g_mutex_unlock (&roc_finish_mutex);
-
-- g_assert (thread_state == THREAD_CANCELLED);
-+ g_assert_cmpint (g_atomic_int_get (&thread_state), ==, THREAD_CANCELLED);
- g_mutex_lock (&run_in_thread_mutex);
-- while (!weak_notify_ran)
-+ while (!g_atomic_int_get (&weak_notify_ran))
- g_cond_wait (&run_in_thread_cond, &run_in_thread_mutex);
- g_mutex_unlock (&run_in_thread_mutex);
-
-@@ -1574,7 +1574,7 @@ test_return_on_cancel (void)
- */
- callback_ran = FALSE;
- notification_emitted = FALSE;
-- thread_state = THREAD_STARTING;
-+ g_atomic_int_set (&thread_state, THREAD_STARTING);
- task = g_task_new (NULL, cancellable, return_on_cancel_callback, &callback_ran);
- g_signal_connect (task, "notify::completed",
- (GCallback) completed_cb, &notification_emitted);
-@@ -1591,17 +1591,17 @@ test_return_on_cancel (void)
- g_main_loop_run (loop);
- g_assert (callback_ran == TRUE);
-
-- while (thread_state == THREAD_STARTING)
-+ while (g_atomic_int_get (&thread_state) == THREAD_STARTING)
- g_cond_wait (&roc_init_cond, &roc_init_mutex);
- g_mutex_unlock (&roc_init_mutex);
-
-- g_assert (thread_state == THREAD_RUNNING);
-+ g_assert_cmpint (g_atomic_int_get (&thread_state), ==, THREAD_RUNNING);
-
-- while (thread_state == THREAD_RUNNING)
-+ while (g_atomic_int_get (&thread_state) == THREAD_RUNNING)
- g_cond_wait (&roc_finish_cond, &roc_finish_mutex);
- g_mutex_unlock (&roc_finish_mutex);
-
-- g_assert (thread_state == THREAD_CANCELLED);
-+ g_assert_cmpint (g_atomic_int_get (&thread_state), ==, THREAD_CANCELLED);
- g_assert_true (notification_emitted);
-
- g_object_unref (cancellable);
-@@ -1621,7 +1621,7 @@ test_return_on_cancel_sync (void)
- {
- GTask *task;
- GCancellable *cancellable;
-- volatile ThreadState thread_state;
-+ ThreadState thread_state; /* (atomic) */
- GThread *runner_thread;
- gssize ret;
- GError *error = NULL;
-@@ -1630,7 +1630,7 @@ test_return_on_cancel_sync (void)
-
- /* If return-on-cancel is FALSE, the task does not return early.
- */
-- thread_state = THREAD_STARTING;
-+ g_atomic_int_set (&thread_state, THREAD_STARTING);
- task = g_task_new (NULL, cancellable, run_in_thread_sync_callback, NULL);
-
- g_task_set_task_data (task, (gpointer)&thread_state, NULL);
-@@ -1639,16 +1639,16 @@ test_return_on_cancel_sync (void)
- runner_thread = g_thread_new ("return-on-cancel-sync runner thread",
- cancel_sync_runner_thread, task);
-
-- while (thread_state == THREAD_STARTING)
-+ while (g_atomic_int_get (&thread_state) == THREAD_STARTING)
- g_cond_wait (&roc_init_cond, &roc_init_mutex);
- g_mutex_unlock (&roc_init_mutex);
-
-- g_assert (thread_state == THREAD_RUNNING);
-+ g_assert_cmpint (g_atomic_int_get (&thread_state), ==, THREAD_RUNNING);
-
- g_cancellable_cancel (cancellable);
- g_mutex_unlock (&roc_finish_mutex);
- g_thread_join (runner_thread);
-- g_assert (thread_state == THREAD_COMPLETED);
-+ g_assert_cmpint (g_atomic_int_get (&thread_state), ==, THREAD_COMPLETED);
-
- ret = g_task_propagate_int (task, &error);
- g_assert_error (error, G_IO_ERROR, G_IO_ERROR_CANCELLED);
-@@ -1660,7 +1660,7 @@ test_return_on_cancel_sync (void)
- g_cancellable_reset (cancellable);
-
- /* If return-on-cancel is TRUE, it does return early */
-- thread_state = THREAD_STARTING;
-+ g_atomic_int_set (&thread_state, THREAD_STARTING);
- task = g_task_new (NULL, cancellable, run_in_thread_sync_callback, NULL);
- g_task_set_return_on_cancel (task, TRUE);
-
-@@ -1670,15 +1670,15 @@ test_return_on_cancel_sync (void)
- runner_thread = g_thread_new ("return-on-cancel-sync runner thread",
- cancel_sync_runner_thread, task);
-
-- while (thread_state == THREAD_STARTING)
-+ while (g_atomic_int_get (&thread_state) == THREAD_STARTING)
- g_cond_wait (&roc_init_cond, &roc_init_mutex);
- g_mutex_unlock (&roc_init_mutex);
-
-- g_assert (thread_state == THREAD_RUNNING);
-+ g_assert_cmpint (g_atomic_int_get (&thread_state), ==, THREAD_RUNNING);
-
- g_cancellable_cancel (cancellable);
- g_thread_join (runner_thread);
-- g_assert (thread_state == THREAD_RUNNING);
-+ g_assert_cmpint (g_atomic_int_get (&thread_state), ==, THREAD_RUNNING);
-
- ret = g_task_propagate_int (task, &error);
- g_assert_error (error, G_IO_ERROR, G_IO_ERROR_CANCELLED);
-@@ -1687,18 +1687,18 @@ test_return_on_cancel_sync (void)
-
- g_object_unref (task);
-
-- while (thread_state == THREAD_RUNNING)
-+ while (g_atomic_int_get (&thread_state) == THREAD_RUNNING)
- g_cond_wait (&roc_finish_cond, &roc_finish_mutex);
- g_mutex_unlock (&roc_finish_mutex);
-
-- g_assert (thread_state == THREAD_CANCELLED);
-+ g_assert_cmpint (g_atomic_int_get (&thread_state), ==, THREAD_CANCELLED);
-
- g_cancellable_reset (cancellable);
-
- /* If the task is already cancelled before it starts, it returns
- * immediately, but the thread func still runs.
- */
-- thread_state = THREAD_STARTING;
-+ g_atomic_int_set (&thread_state, THREAD_STARTING);
- task = g_task_new (NULL, cancellable, run_in_thread_sync_callback, NULL);
- g_task_set_return_on_cancel (task, TRUE);
-
-@@ -1711,7 +1711,7 @@ test_return_on_cancel_sync (void)
- cancel_sync_runner_thread, task);
-
- g_thread_join (runner_thread);
-- g_assert (thread_state == THREAD_STARTING);
-+ g_assert_cmpint (g_atomic_int_get (&thread_state), ==, THREAD_STARTING);
-
- ret = g_task_propagate_int (task, &error);
- g_assert_error (error, G_IO_ERROR, G_IO_ERROR_CANCELLED);
-@@ -1720,17 +1720,17 @@ test_return_on_cancel_sync (void)
-
- g_object_unref (task);
-
-- while (thread_state == THREAD_STARTING)
-+ while (g_atomic_int_get (&thread_state) == THREAD_STARTING)
- g_cond_wait (&roc_init_cond, &roc_init_mutex);
- g_mutex_unlock (&roc_init_mutex);
-
-- g_assert (thread_state == THREAD_RUNNING);
-+ g_assert_cmpint (g_atomic_int_get (&thread_state), ==, THREAD_RUNNING);
-
-- while (thread_state == THREAD_RUNNING)
-+ while (g_atomic_int_get (&thread_state) == THREAD_RUNNING)
- g_cond_wait (&roc_finish_cond, &roc_finish_mutex);
- g_mutex_unlock (&roc_finish_mutex);
-
-- g_assert (thread_state == THREAD_CANCELLED);
-+ g_assert_cmpint (g_atomic_int_get (&thread_state), ==, THREAD_CANCELLED);
-
- g_object_unref (cancellable);
- }
-@@ -1776,7 +1776,7 @@ return_on_cancel_atomic_thread (GTask
- gpointer task_data,
- GCancellable *cancellable)
- {
-- gint *state = task_data;
-+ gint *state = task_data; /* (atomic) */
-
- g_assert (source_object == g_task_get_source_object (task));
- g_assert (task_data == g_task_get_task_data (task));
-@@ -1784,34 +1784,34 @@ return_on_cancel_atomic_thread (GTask
- g_assert_false (g_task_get_completed (task));
-
- g_assert (g_thread_self () != main_thread);
-- g_assert_cmpint (*state, ==, 0);
-+ g_assert_cmpint (g_atomic_int_get (state), ==, 0);
-
- g_mutex_lock (&roca_mutex_1);
-- *state = 1;
-+ g_atomic_int_set (state, 1);
- g_cond_signal (&roca_cond_1);
- g_mutex_unlock (&roca_mutex_1);
-
- g_mutex_lock (&roca_mutex_2);
- if (g_task_set_return_on_cancel (task, FALSE))
-- *state = 2;
-+ g_atomic_int_set (state, 2);
- else
-- *state = 3;
-+ g_atomic_int_set (state, 3);
- g_cond_signal (&roca_cond_2);
- g_mutex_unlock (&roca_mutex_2);
-
- g_mutex_lock (&roca_mutex_1);
- if (g_task_set_return_on_cancel (task, TRUE))
-- *state = 4;
-+ g_atomic_int_set (state, 4);
- else
-- *state = 5;
-+ g_atomic_int_set (state, 5);
- g_cond_signal (&roca_cond_1);
- g_mutex_unlock (&roca_mutex_1);
-
- g_mutex_lock (&roca_mutex_2);
- if (g_task_set_return_on_cancel (task, TRUE))
-- *state = 6;
-+ g_atomic_int_set (state, 6);
- else
-- *state = 7;
-+ g_atomic_int_set (state, 7);
- g_cond_signal (&roca_cond_2);
- g_mutex_unlock (&roca_mutex_2);
-
-@@ -1823,7 +1823,7 @@ test_return_on_cancel_atomic (void)
- {
- GTask *task;
- GCancellable *cancellable;
-- volatile gint state;
-+ gint state; /* (atomic) */
- gboolean notification_emitted = FALSE;
- gboolean callback_ran;
-
-@@ -1832,7 +1832,7 @@ test_return_on_cancel_atomic (void)
- g_mutex_lock (&roca_mutex_2);
-
- /* If we don't cancel it, each set_return_on_cancel() call will succeed */
-- state = 0;
-+ g_atomic_int_set (&state, 0);
- callback_ran = FALSE;
- task = g_task_new (NULL, cancellable, return_on_cancel_atomic_callback, &callback_ran);
- g_task_set_return_on_cancel (task, TRUE);
-@@ -1843,23 +1843,23 @@ test_return_on_cancel_atomic (void)
- g_task_run_in_thread (task, return_on_cancel_atomic_thread);
- g_object_unref (task);
-
-- g_assert_cmpint (state, ==, 0);
-+ g_assert_cmpint (g_atomic_int_get (&state), ==, 0);
-
-- while (state == 0)
-+ while (g_atomic_int_get (&state) == 0)
- g_cond_wait (&roca_cond_1, &roca_mutex_1);
-- g_assert (state == 1);
-+ g_assert_cmpint (g_atomic_int_get (&state), ==, 1);
-
-- while (state == 1)
-+ while (g_atomic_int_get (&state) == 1)
- g_cond_wait (&roca_cond_2, &roca_mutex_2);
-- g_assert (state == 2);
-+ g_assert_cmpint (g_atomic_int_get (&state), ==, 2);
-
-- while (state == 2)
-+ while (g_atomic_int_get (&state) == 2)
- g_cond_wait (&roca_cond_1, &roca_mutex_1);
-- g_assert (state == 4);
-+ g_assert_cmpint (g_atomic_int_get (&state), ==, 4);
-
-- while (state == 4)
-+ while (g_atomic_int_get (&state) == 4)
- g_cond_wait (&roca_cond_2, &roca_mutex_2);
-- g_assert (state == 6);
-+ g_assert_cmpint (g_atomic_int_get (&state), ==, 6);
-
- /* callback assumes there'll be a cancelled error */
- g_cancellable_cancel (cancellable);
-@@ -1876,7 +1876,7 @@ test_return_on_cancel_atomic (void)
- * task won't complete right away, and further
- * g_task_set_return_on_cancel() calls will return FALSE.
- */
-- state = 0;
-+ g_atomic_int_set (&state, 0);
- callback_ran = FALSE;
- notification_emitted = FALSE;
- task = g_task_new (NULL, cancellable, return_on_cancel_atomic_callback, &callback_ran);
-@@ -1887,16 +1887,16 @@ test_return_on_cancel_atomic (void)
- g_task_set_task_data (task, (gpointer)&state, NULL);
- g_task_run_in_thread (task, return_on_cancel_atomic_thread);
-
-- g_assert_cmpint (state, ==, 0);
-+ g_assert_cmpint (g_atomic_int_get (&state), ==, 0);
-
-- while (state == 0)
-+ while (g_atomic_int_get (&state) == 0)
- g_cond_wait (&roca_cond_1, &roca_mutex_1);
-- g_assert (state == 1);
-+ g_assert_cmpint (g_atomic_int_get (&state), ==, 1);
- g_assert (g_task_get_return_on_cancel (task));
-
-- while (state == 1)
-+ while (g_atomic_int_get (&state) == 1)
- g_cond_wait (&roca_cond_2, &roca_mutex_2);
-- g_assert (state == 2);
-+ g_assert_cmpint (g_atomic_int_get (&state), ==, 2);
- g_assert (!g_task_get_return_on_cancel (task));
-
- g_cancellable_cancel (cancellable);
-@@ -1904,18 +1904,18 @@ test_return_on_cancel_atomic (void)
- g_main_loop_run (loop);
- g_assert (callback_ran == FALSE);
-
-- while (state == 2)
-+ while (g_atomic_int_get (&state) == 2)
- g_cond_wait (&roca_cond_1, &roca_mutex_1);
-- g_assert (state == 5);
-+ g_assert_cmpint (g_atomic_int_get (&state), ==, 5);
- g_assert (!g_task_get_return_on_cancel (task));
-
- g_main_loop_run (loop);
- g_assert (callback_ran == TRUE);
- g_assert_true (notification_emitted);
-
-- while (state == 5)
-+ while (g_atomic_int_get (&state) == 5)
- g_cond_wait (&roca_cond_2, &roca_mutex_2);
-- g_assert (state == 7);
-+ g_assert_cmpint (g_atomic_int_get (&state), ==, 7);
-
- g_object_unref (cancellable);
- g_mutex_unlock (&roca_mutex_1);
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0006-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0006-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch
deleted file mode 100644
index 7f22b4d46..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0006-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From f4607def1695efb50eb49e0586eed0f5557935f2 Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Wed, 11 Nov 2020 18:20:37 +0000
-Subject: [PATCH 06/29] tests: Drop unnecessary volatile qualifiers from tests
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-These variables were already (correctly) accessed atomically. The
-`volatile` qualifier doesn’t help with that.
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- gio/tests/g-file-info.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gio/tests/g-file-info.c b/gio/tests/g-file-info.c
-index 809b0ec79..1a02b5e0e 100644
---- a/gio/tests/g-file-info.c
-+++ b/gio/tests/g-file-info.c
-@@ -221,7 +221,7 @@ test_internal_enhanced_stdio (void)
- guint64 size_p0, alsize_p0, size_ps, alsize_ps;
- const gchar *id_p0;
- const gchar *id_p1;
-- volatile guint64 time_p0;
-+ guint64 time_p0;
- gchar *tmp_dir;
- wchar_t *programdata_dir_w;
- wchar_t *users_dir_w;
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0007-gdbusconnection-Drop-unnecessary-volatile-qualifiers.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0007-gdbusconnection-Drop-unnecessary-volatile-qualifiers.patch
deleted file mode 100644
index 78753f821..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0007-gdbusconnection-Drop-unnecessary-volatile-qualifiers.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-From 33612404397f87f0cd45da90d3aa9ab60df895ee Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Wed, 11 Nov 2020 18:24:28 +0000
-Subject: [PATCH 07/29] gdbusconnection: Drop unnecessary volatile qualifiers
- from variables
-
-This should introduce no API changes; there are public functions
-exported by `GDBusConnection` which still have some (incorrectly)
-`volatile` arguments, but dropping those qualifiers would be an API
-break.
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- gio/gdbusconnection.c | 22 +++++++++++-----------
- 1 file changed, 11 insertions(+), 11 deletions(-)
-
-diff --git a/gio/gdbusconnection.c b/gio/gdbusconnection.c
-index ed8cf6219..91c365e80 100644
---- a/gio/gdbusconnection.c
-+++ b/gio/gdbusconnection.c
-@@ -393,7 +393,7 @@ struct _GDBusConnection
- * FLAG_CLOSED is the closed property. It may be read at any time, but
- * may only be written while holding @lock.
- */
-- volatile gint atomic_flags;
-+ gint atomic_flags; /* (atomic) */
-
- /* If the connection could not be established during initable_init(),
- * this GError will be set.
-@@ -1596,7 +1596,7 @@ static gboolean
- g_dbus_connection_send_message_unlocked (GDBusConnection *connection,
- GDBusMessage *message,
- GDBusSendMessageFlags flags,
-- volatile guint32 *out_serial,
-+ guint32 *out_serial,
- GError **error)
- {
- guchar *blob;
-@@ -1741,7 +1741,7 @@ g_dbus_connection_send_message (GDBusConnection *connection,
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
-
- CONNECTION_LOCK (connection);
-- ret = g_dbus_connection_send_message_unlocked (connection, message, flags, out_serial, error);
-+ ret = g_dbus_connection_send_message_unlocked (connection, message, flags, (guint32 *) out_serial, error);
- CONNECTION_UNLOCK (connection);
- return ret;
- }
-@@ -1901,7 +1901,7 @@ g_dbus_connection_send_message_with_reply_unlocked (GDBusConnection *connect
- GDBusMessage *message,
- GDBusSendMessageFlags flags,
- gint timeout_msec,
-- volatile guint32 *out_serial,
-+ guint32 *out_serial,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-@@ -1909,7 +1909,7 @@ g_dbus_connection_send_message_with_reply_unlocked (GDBusConnection *connect
- GTask *task;
- SendMessageData *data;
- GError *error = NULL;
-- volatile guint32 serial;
-+ guint32 serial;
-
- if (out_serial == NULL)
- out_serial = &serial;
-@@ -2022,7 +2022,7 @@ g_dbus_connection_send_message_with_reply (GDBusConnection *connection,
- message,
- flags,
- timeout_msec,
-- out_serial,
-+ (guint32 *) out_serial,
- cancellable,
- callback,
- user_data);
-@@ -3082,7 +3082,7 @@ g_dbus_connection_get_peer_credentials (GDBusConnection *connection)
-
- /* ---------------------------------------------------------------------------------------------------- */
-
--static volatile guint _global_filter_id = 1;
-+static guint _global_filter_id = 1; /* (atomic) */
-
- /**
- * g_dbus_connection_add_filter:
-@@ -3327,9 +3327,9 @@ args_to_rule (const gchar *sender,
- return g_string_free (rule, FALSE);
- }
-
--static volatile guint _global_subscriber_id = 1;
--static volatile guint _global_registration_id = 1;
--static volatile guint _global_subtree_registration_id = 1;
-+static guint _global_subscriber_id = 1; /* (atomic) */
-+static guint _global_registration_id = 1; /* (atomic) */
-+static guint _global_subtree_registration_id = 1; /* (atomic) */
-
- /* ---------------------------------------------------------------------------------------------------- */
-
-@@ -5992,7 +5992,7 @@ g_dbus_connection_call_sync_internal (GDBusConnection *connection,
- message,
- send_flags,
- timeout_msec,
-- NULL, /* volatile guint32 *out_serial */
-+ NULL, /* guint32 *out_serial */
- cancellable,
- &local_error);
-
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0008-gdbuserror-Drop-unnecessary-volatile-qualifiers-from.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0008-gdbuserror-Drop-unnecessary-volatile-qualifiers-from.patch
deleted file mode 100644
index e947a264c..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0008-gdbuserror-Drop-unnecessary-volatile-qualifiers-from.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From 7c7623c4a31fb0f2a7176c43acc728093818b58c Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Wed, 11 Nov 2020 18:26:19 +0000
-Subject: [PATCH 08/29] gdbuserror: Drop unnecessary volatile qualifiers from
- variables
-
-This should introduce no API changes. The
-`g_dbus_error_register_error_domain()` function still (incorrectly) has
-a `volatile` argument, but dropping that qualifier would be an API
-break.
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- gio/gdbuserror.c | 28 +++++++++++++++++-----------
- 1 file changed, 17 insertions(+), 11 deletions(-)
-
-diff --git a/gio/gdbuserror.c b/gio/gdbuserror.c
-index 682677354..b03a33f27 100644
---- a/gio/gdbuserror.c
-+++ b/gio/gdbuserror.c
-@@ -84,12 +84,12 @@
- * GQuark
- * foo_bar_error_quark (void)
- * {
-- * static volatile gsize quark_volatile = 0;
-+ * static gsize quark = 0;
- * g_dbus_error_register_error_domain ("foo-bar-error-quark",
-- * &quark_volatile,
-+ * &quark,
- * foo_bar_error_entries,
- * G_N_ELEMENTS (foo_bar_error_entries));
-- * return (GQuark) quark_volatile;
-+ * return (GQuark) quark;
- * }
- * ]|
- * With this setup, a D-Bus peer can transparently pass e.g. %FOO_BAR_ERROR_ANOTHER_ERROR and
-@@ -160,12 +160,12 @@ GQuark
- g_dbus_error_quark (void)
- {
- G_STATIC_ASSERT (G_N_ELEMENTS (g_dbus_error_entries) - 1 == G_DBUS_ERROR_PROPERTY_READ_ONLY);
-- static volatile gsize quark_volatile = 0;
-+ static gsize quark = 0;
- g_dbus_error_register_error_domain ("g-dbus-error-quark",
-- &quark_volatile,
-+ &quark,
- g_dbus_error_entries,
- G_N_ELEMENTS (g_dbus_error_entries));
-- return (GQuark) quark_volatile;
-+ return (GQuark) quark;
- }
-
- /**
-@@ -185,25 +185,31 @@ g_dbus_error_register_error_domain (const gchar *error_domain_quark_na
- const GDBusErrorEntry *entries,
- guint num_entries)
- {
-+ gsize *quark;
-+
- g_return_if_fail (error_domain_quark_name != NULL);
- g_return_if_fail (quark_volatile != NULL);
- g_return_if_fail (entries != NULL);
- g_return_if_fail (num_entries > 0);
-
-- if (g_once_init_enter (quark_volatile))
-+ /* Drop the volatile qualifier, which should never have been on the argument
-+ * in the first place. */
-+ quark = (gsize *) quark_volatile;
-+
-+ if (g_once_init_enter (quark))
- {
- guint n;
-- GQuark quark;
-+ GQuark new_quark;
-
-- quark = g_quark_from_static_string (error_domain_quark_name);
-+ new_quark = g_quark_from_static_string (error_domain_quark_name);
-
- for (n = 0; n < num_entries; n++)
- {
-- g_warn_if_fail (g_dbus_error_register_error (quark,
-+ g_warn_if_fail (g_dbus_error_register_error (new_quark,
- entries[n].error_code,
- entries[n].dbus_error_name));
- }
-- g_once_init_leave (quark_volatile, quark);
-+ g_once_init_leave (quark, new_quark);
- }
- }
-
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0009-gio-Drop-unnecessary-volatile-qualifiers-from-intern.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0009-gio-Drop-unnecessary-volatile-qualifiers-from-intern.patch
deleted file mode 100644
index 7897d43bb..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0009-gio-Drop-unnecessary-volatile-qualifiers-from-intern.patch
+++ /dev/null
@@ -1,207 +0,0 @@
-From 74250cd9c9dfd3ad428e445c095ceac88ba18691 Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Wed, 11 Nov 2020 18:28:23 +0000
-Subject: [PATCH 09/29] gio: Drop unnecessary volatile qualifiers from internal
- variables
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-These variables were already (correctly) accessed atomically. The
-`volatile` qualifier doesn’t help with that.
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- gio/gdbusinterfaceskeleton.c | 2 +-
- gio/gdbusintrospection.h | 14 +++++++-------
- gio/gdbusnameowning.c | 4 ++--
- gio/gdbusnamewatching.c | 4 ++--
- gio/gdbusprivate.c | 10 +++++-----
- gio/gnetworking.c | 2 +-
- 6 files changed, 18 insertions(+), 18 deletions(-)
-
-diff --git a/gio/gdbusinterfaceskeleton.c b/gio/gdbusinterfaceskeleton.c
-index 243b4a0a4..76398df36 100644
---- a/gio/gdbusinterfaceskeleton.c
-+++ b/gio/gdbusinterfaceskeleton.c
-@@ -458,7 +458,7 @@ dbus_interface_interface_init (GDBusInterfaceIface *iface)
-
- typedef struct
- {
-- volatile gint ref_count;
-+ gint ref_count; /* (atomic) */
- GDBusInterfaceSkeleton *interface;
- GDBusInterfaceMethodCallFunc method_call_func;
- GDBusMethodInvocation *invocation;
-diff --git a/gio/gdbusintrospection.h b/gio/gdbusintrospection.h
-index 14b171055..f2e291787 100644
---- a/gio/gdbusintrospection.h
-+++ b/gio/gdbusintrospection.h
-@@ -43,7 +43,7 @@ G_BEGIN_DECLS
- struct _GDBusAnnotationInfo
- {
- /*< public >*/
-- volatile gint ref_count;
-+ gint ref_count; /* (atomic) */
- gchar *key;
- gchar *value;
- GDBusAnnotationInfo **annotations;
-@@ -63,7 +63,7 @@ struct _GDBusAnnotationInfo
- struct _GDBusArgInfo
- {
- /*< public >*/
-- volatile gint ref_count;
-+ gint ref_count; /* (atomic) */
- gchar *name;
- gchar *signature;
- GDBusAnnotationInfo **annotations;
-@@ -84,7 +84,7 @@ struct _GDBusArgInfo
- struct _GDBusMethodInfo
- {
- /*< public >*/
-- volatile gint ref_count;
-+ gint ref_count; /* (atomic) */
- gchar *name;
- GDBusArgInfo **in_args;
- GDBusArgInfo **out_args;
-@@ -105,7 +105,7 @@ struct _GDBusMethodInfo
- struct _GDBusSignalInfo
- {
- /*< public >*/
-- volatile gint ref_count;
-+ gint ref_count; /* (atomic) */
- gchar *name;
- GDBusArgInfo **args;
- GDBusAnnotationInfo **annotations;
-@@ -126,7 +126,7 @@ struct _GDBusSignalInfo
- struct _GDBusPropertyInfo
- {
- /*< public >*/
-- volatile gint ref_count;
-+ gint ref_count; /* (atomic) */
- gchar *name;
- gchar *signature;
- GDBusPropertyInfoFlags flags;
-@@ -149,7 +149,7 @@ struct _GDBusPropertyInfo
- struct _GDBusInterfaceInfo
- {
- /*< public >*/
-- volatile gint ref_count;
-+ gint ref_count; /* (atomic) */
- gchar *name;
- GDBusMethodInfo **methods;
- GDBusSignalInfo **signals;
-@@ -172,7 +172,7 @@ struct _GDBusInterfaceInfo
- struct _GDBusNodeInfo
- {
- /*< public >*/
-- volatile gint ref_count;
-+ gint ref_count; /* (atomic) */
- gchar *path;
- GDBusInterfaceInfo **interfaces;
- GDBusNodeInfo **nodes;
-diff --git a/gio/gdbusnameowning.c b/gio/gdbusnameowning.c
-index d20e6ffed..1130d6789 100644
---- a/gio/gdbusnameowning.c
-+++ b/gio/gdbusnameowning.c
-@@ -55,7 +55,7 @@ typedef enum
-
- typedef struct
- {
-- volatile gint ref_count;
-+ gint ref_count; /* (atomic) */
- guint id;
- GBusNameOwnerFlags flags;
- gchar *name;
-@@ -73,7 +73,7 @@ typedef struct
- guint name_acquired_subscription_id;
- guint name_lost_subscription_id;
-
-- volatile gboolean cancelled; /* must hold lock when reading or modifying */
-+ gboolean cancelled; /* must hold lock when reading or modifying */
-
- gboolean needs_release;
- } Client;
-diff --git a/gio/gdbusnamewatching.c b/gio/gdbusnamewatching.c
-index bc2a9119e..8d24700c5 100644
---- a/gio/gdbusnamewatching.c
-+++ b/gio/gdbusnamewatching.c
-@@ -56,7 +56,7 @@ typedef enum
-
- typedef struct
- {
-- volatile gint ref_count;
-+ gint ref_count; /* (atomic) */
- guint id;
- gchar *name;
- GBusNameWatcherFlags flags;
-@@ -78,7 +78,7 @@ typedef struct
- } Client;
-
- /* Must be accessed atomically. */
--static volatile guint next_global_id = 1;
-+static guint next_global_id = 1; /* (atomic) */
-
- /* Must be accessed with @lock held. */
- static GHashTable *map_id_to_client = NULL;
-diff --git a/gio/gdbusprivate.c b/gio/gdbusprivate.c
-index 2551e4791..99b37f3eb 100644
---- a/gio/gdbusprivate.c
-+++ b/gio/gdbusprivate.c
-@@ -265,7 +265,7 @@ ensure_required_types (void)
-
- typedef struct
- {
-- volatile gint refcount;
-+ gint refcount; /* (atomic) */
- GThread *thread;
- GMainContext *context;
- GMainLoop *loop;
-@@ -341,12 +341,12 @@ typedef enum {
-
- struct GDBusWorker
- {
-- volatile gint ref_count;
-+ gint ref_count; /* (atomic) */
-
- SharedThreadData *shared_thread_data;
-
- /* really a boolean, but GLib 2.28 lacks atomic boolean ops */
-- volatile gint stopped;
-+ gint stopped; /* (atomic) */
-
- /* TODO: frozen (e.g. G_DBUS_CONNECTION_FLAGS_DELAY_MESSAGE_PROCESSING) currently
- * only affects messages received from the other peer (since GDBusServer is the
-@@ -1941,11 +1941,11 @@ _g_dbus_debug_print_unlock (void)
- void
- _g_dbus_initialize (void)
- {
-- static volatile gsize initialized = 0;
-+ static gsize initialized = 0;
-
- if (g_once_init_enter (&initialized))
- {
-- volatile GQuark g_dbus_error_domain;
-+ GQuark g_dbus_error_domain;
- const gchar *debug;
-
- g_dbus_error_domain = G_DBUS_ERROR;
-diff --git a/gio/gnetworking.c b/gio/gnetworking.c
-index 05507fe70..7bc6d73c4 100644
---- a/gio/gnetworking.c
-+++ b/gio/gnetworking.c
-@@ -61,7 +61,7 @@ void
- g_networking_init (void)
- {
- #ifdef G_OS_WIN32
-- static volatile gsize inited = 0;
-+ static gsize inited = 0;
-
- if (g_once_init_enter (&inited))
- {
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0010-kqueue-Fix-unlocked-access-to-shared-variable.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0010-kqueue-Fix-unlocked-access-to-shared-variable.patch
deleted file mode 100644
index e52b70942..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0010-kqueue-Fix-unlocked-access-to-shared-variable.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From e4e88688a0722237effc56cc21438d0c8e82de88 Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Wed, 11 Nov 2020 18:29:26 +0000
-Subject: [PATCH 10/29] kqueue: Fix unlocked access to shared variable
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-And drop the `volatile` qualifier because it doesn’t help.
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- gio/kqueue/kqueue-missing.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/gio/kqueue/kqueue-missing.c b/gio/kqueue/kqueue-missing.c
-index 37af82e5b..d1ffdf4bd 100644
---- a/gio/kqueue/kqueue-missing.c
-+++ b/gio/kqueue/kqueue-missing.c
-@@ -34,7 +34,7 @@ static gboolean km_debug_enabled = FALSE;
- static GSList *missing_subs_list = NULL;
- G_LOCK_DEFINE_STATIC (missing_lock);
-
--static volatile gboolean scan_missing_running = FALSE;
-+static gboolean scan_missing_running = FALSE; /* must be accessed under @missing_lock */
-
-
- static gboolean
-@@ -62,7 +62,6 @@ _km_add_missing (kqueue_sub *sub)
-
- KM_W ("adding %s to missing list\n", sub->filename);
- missing_subs_list = g_slist_prepend (missing_subs_list, sub);
-- G_UNLOCK (missing_lock);
-
- if (!scan_missing_running)
- {
-@@ -73,6 +72,8 @@ _km_add_missing (kqueue_sub *sub)
- g_source_attach (source, GLIB_PRIVATE_CALL (g_get_worker_context) ());
- g_source_unref (source);
- }
-+
-+ G_UNLOCK (missing_lock);
- }
-
- /**
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0011-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0011-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch
deleted file mode 100644
index ea3fd9f6e..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0011-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-From 7cdb68713c1863a27ad82d801756ec74097e8e87 Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Wed, 11 Nov 2020 18:30:36 +0000
-Subject: [PATCH 11/29] tests: Drop unnecessary volatile qualifiers from tests
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-These variables were already (correctly) accessed atomically. The
-`volatile` qualifier doesn’t help with that.
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- tests/gobject/performance-threaded.c | 2 +-
- tests/gobject/performance.c | 4 ++--
- tests/onceinit.c | 16 ++++++++--------
- 3 files changed, 11 insertions(+), 11 deletions(-)
-
-diff --git a/tests/gobject/performance-threaded.c b/tests/gobject/performance-threaded.c
-index 30ea5bd80..c98541d66 100644
---- a/tests/gobject/performance-threaded.c
-+++ b/tests/gobject/performance-threaded.c
-@@ -52,7 +52,7 @@ static GType liststore_interfaces[6];
- static gpointer
- register_types (void)
- {
-- static volatile gsize inited = 0;
-+ static gsize inited = 0;
- if (g_once_init_enter (&inited))
- {
- liststore_interfaces[0] = simple_register_class ("GtkBuildable", G_TYPE_INTERFACE, 0);
-diff --git a/tests/gobject/performance.c b/tests/gobject/performance.c
-index 236ffaed0..163be58b4 100644
---- a/tests/gobject/performance.c
-+++ b/tests/gobject/performance.c
-@@ -575,8 +575,8 @@ test_type_check_run (PerformanceTest *test,
- gpointer _data)
- {
- struct TypeCheckTest *data = _data;
-- volatile GObject *object = data->object;
-- volatile GType type, types[5];
-+ GObject *object = data->object;
-+ GType type, types[5];
- int i, j;
-
- types[0] = test_iface1_get_type ();
-diff --git a/tests/onceinit.c b/tests/onceinit.c
-index 89ba6a136..9788efcbd 100644
---- a/tests/onceinit.c
-+++ b/tests/onceinit.c
-@@ -25,13 +25,13 @@
-
- static GMutex tmutex;
- static GCond tcond;
--static volatile int thread_call_count = 0;
-+static int thread_call_count = 0; /* (atomic) */
- static char dummy_value = 'x';
-
- static void
- assert_singleton_execution1 (void)
- {
-- static volatile int seen_execution = 0;
-+ static int seen_execution = 0; /* (atomic) */
- int old_seen_execution = g_atomic_int_add (&seen_execution, 1);
- if (old_seen_execution != 0)
- g_error ("%s: function executed more than once", G_STRFUNC);
-@@ -40,7 +40,7 @@ assert_singleton_execution1 (void)
- static void
- assert_singleton_execution2 (void)
- {
-- static volatile int seen_execution = 0;
-+ static int seen_execution = 0; /* (atomic) */
- int old_seen_execution = g_atomic_int_add (&seen_execution, 1);
- if (old_seen_execution != 0)
- g_error ("%s: function executed more than once", G_STRFUNC);
-@@ -49,7 +49,7 @@ assert_singleton_execution2 (void)
- static void
- assert_singleton_execution3 (void)
- {
-- static volatile int seen_execution = 0;
-+ static int seen_execution = 0; /* (atomic) */
- int old_seen_execution = g_atomic_int_add (&seen_execution, 1);
- if (old_seen_execution != 0)
- g_error ("%s: function executed more than once", G_STRFUNC);
-@@ -58,7 +58,7 @@ assert_singleton_execution3 (void)
- static void
- initializer1 (void)
- {
-- static volatile gsize initialized = 0;
-+ static gsize initialized = 0;
- if (g_once_init_enter (&initialized))
- {
- gsize initval = 42;
-@@ -70,7 +70,7 @@ initializer1 (void)
- static gpointer
- initializer2 (void)
- {
-- static volatile gsize initialized = 0;
-+ static gsize initialized = 0;
- if (g_once_init_enter (&initialized))
- {
- void *pointer_value = &dummy_value;
-@@ -83,7 +83,7 @@ initializer2 (void)
- static void
- initializer3 (void)
- {
-- static volatile gsize initialized = 0;
-+ static gsize initialized = 0;
- if (g_once_init_enter (&initialized))
- {
- gsize initval = 42;
-@@ -163,7 +163,7 @@ main (int argc,
- static void \
- test_initializer_##N (void) \
- { \
-- static volatile gsize initialized = 0; \
-+ static gsize initialized = 0; \
- if (g_once_init_enter (&initialized)) \
- { \
- g_free (g_strdup_printf ("cpuhog%5d", 1)); \
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0012-tests-Fix-non-atomic-access-to-some-shared-variables.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0012-tests-Fix-non-atomic-access-to-some-shared-variables.patch
deleted file mode 100644
index be7fcba8c..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0012-tests-Fix-non-atomic-access-to-some-shared-variables.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 1a7f0002a052725fb646e136fadd5dad66222d7f Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Wed, 11 Nov 2020 18:31:01 +0000
-Subject: [PATCH 12/29] tests: Fix non-atomic access to some shared variables
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-And drop the `volatile` qualifier from the variables, as that doesn’t
-help with thread safety.
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- tests/refcount/objects.c | 8 ++++----
- tests/refcount/properties3.c | 8 ++++----
- 2 files changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/tests/refcount/objects.c b/tests/refcount/objects.c
-index 963766d00..0c471a42b 100644
---- a/tests/refcount/objects.c
-+++ b/tests/refcount/objects.c
-@@ -26,7 +26,7 @@ struct _GTestClass
- };
-
- static GType my_test_get_type (void);
--static volatile gboolean stopping;
-+static gint stopping; /* (atomic) */
-
- static void my_test_class_init (GTestClass * klass);
- static void my_test_init (GTest * test);
-@@ -101,7 +101,7 @@ run_thread (GTest * test)
- {
- gint i = 1;
-
-- while (!stopping) {
-+ while (!g_atomic_int_get (&stopping)) {
- my_test_do_refcount (test);
- if ((i++ % 10000) == 0) {
- g_print (".");
-@@ -128,7 +128,7 @@ main (int argc, char **argv)
-
- test_threads = g_array_new (FALSE, FALSE, sizeof (GThread *));
-
-- stopping = FALSE;
-+ g_atomic_int_set (&stopping, 0);
-
- for (i = 0; i < n_threads; i++) {
- GThread *thread;
-@@ -141,7 +141,7 @@ main (int argc, char **argv)
- }
- g_usleep (5000000);
-
-- stopping = TRUE;
-+ g_atomic_int_set (&stopping, 1);
-
- g_print ("\nstopping\n");
-
-diff --git a/tests/refcount/properties3.c b/tests/refcount/properties3.c
-index bc8820661..31f26a46e 100644
---- a/tests/refcount/properties3.c
-+++ b/tests/refcount/properties3.c
-@@ -34,7 +34,7 @@ struct _GTestClass
- static GType my_test_get_type (void);
- G_DEFINE_TYPE (GTest, my_test, G_TYPE_OBJECT)
-
--static volatile gboolean stopping;
-+static gint stopping; /* (atomic) */
-
- static void my_test_get_property (GObject *object,
- guint prop_id,
-@@ -140,7 +140,7 @@ run_thread (GTest * test)
- {
- gint i = 1;
-
-- while (!stopping) {
-+ while (!g_atomic_int_get (&stopping)) {
- my_test_do_property (test);
- if ((i++ % 10000) == 0)
- {
-@@ -170,7 +170,7 @@ main (int argc, char **argv)
-
- test_threads = g_array_new (FALSE, FALSE, sizeof (GThread *));
-
-- stopping = FALSE;
-+ g_atomic_int_set (&stopping, 0);
-
- for (i = 0; i < n_threads; i++) {
- GThread *thread;
-@@ -180,7 +180,7 @@ main (int argc, char **argv)
- }
- g_usleep (30000000);
-
-- stopping = TRUE;
-+ g_atomic_int_set (&stopping, 1);
- g_print ("\nstopping\n");
-
- /* join all threads */
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0013-gatomic-Drop-unnecessary-volatile-qualifiers-from-in.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0013-gatomic-Drop-unnecessary-volatile-qualifiers-from-in.patch
deleted file mode 100644
index efc6817bd..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0013-gatomic-Drop-unnecessary-volatile-qualifiers-from-in.patch
+++ /dev/null
@@ -1,180 +0,0 @@
-From 3c648457c284b4ba313b8591008d2e18ae4335eb Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Wed, 11 Nov 2020 18:36:37 +0000
-Subject: [PATCH 13/29] gatomic: Drop unnecessary volatile qualifiers from
- internal variables
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-It’s not necessary and provides no thread safety guarantees.
-
-The `volatile` qualifiers on the function arguments have to be kept, as
-they are (unfortunately) part of the API.
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- glib/gatomic.c | 34 +++++++++++++++++-----------------
- 1 file changed, 17 insertions(+), 17 deletions(-)
-
-diff --git a/glib/gatomic.c b/glib/gatomic.c
-index 8b8c6453d..67f5ba6b4 100644
---- a/glib/gatomic.c
-+++ b/glib/gatomic.c
-@@ -316,7 +316,7 @@ guint
- gpointer
- (g_atomic_pointer_get) (const volatile void *atomic)
- {
-- return g_atomic_pointer_get ((const volatile gpointer *) atomic);
-+ return g_atomic_pointer_get ((gpointer *) atomic);
- }
-
- /**
-@@ -335,7 +335,7 @@ void
- (g_atomic_pointer_set) (volatile void *atomic,
- gpointer newval)
- {
-- g_atomic_pointer_set ((volatile gpointer *) atomic, newval);
-+ g_atomic_pointer_set ((gpointer *) atomic, newval);
- }
-
- /**
-@@ -363,7 +363,7 @@ gboolean
- gpointer oldval,
- gpointer newval)
- {
-- return g_atomic_pointer_compare_and_exchange ((volatile gpointer *) atomic,
-+ return g_atomic_pointer_compare_and_exchange ((gpointer *) atomic,
- oldval, newval);
- }
-
-@@ -387,7 +387,7 @@ gssize
- (g_atomic_pointer_add) (volatile void *atomic,
- gssize val)
- {
-- return g_atomic_pointer_add ((volatile gpointer *) atomic, val);
-+ return g_atomic_pointer_add ((gpointer *) atomic, val);
- }
-
- /**
-@@ -411,7 +411,7 @@ gsize
- (g_atomic_pointer_and) (volatile void *atomic,
- gsize val)
- {
-- return g_atomic_pointer_and ((volatile gpointer *) atomic, val);
-+ return g_atomic_pointer_and ((gpointer *) atomic, val);
- }
-
- /**
-@@ -435,7 +435,7 @@ gsize
- (g_atomic_pointer_or) (volatile void *atomic,
- gsize val)
- {
-- return g_atomic_pointer_or ((volatile gpointer *) atomic, val);
-+ return g_atomic_pointer_or ((gpointer *) atomic, val);
- }
-
- /**
-@@ -459,7 +459,7 @@ gsize
- (g_atomic_pointer_xor) (volatile void *atomic,
- gsize val)
- {
-- return g_atomic_pointer_xor ((volatile gpointer *) atomic, val);
-+ return g_atomic_pointer_xor ((gpointer *) atomic, val);
- }
-
- #elif defined (G_PLATFORM_WIN32)
-@@ -591,7 +591,7 @@ guint
- gpointer
- (g_atomic_pointer_get) (const volatile void *atomic)
- {
-- const volatile gpointer *ptr = atomic;
-+ const gpointer *ptr = atomic;
-
- MemoryBarrier ();
- return *ptr;
-@@ -601,7 +601,7 @@ void
- (g_atomic_pointer_set) (volatile void *atomic,
- gpointer newval)
- {
-- volatile gpointer *ptr = atomic;
-+ gpointer *ptr = atomic;
-
- *ptr = newval;
- MemoryBarrier ();
-@@ -797,7 +797,7 @@ guint
- gpointer
- (g_atomic_pointer_get) (const volatile void *atomic)
- {
-- const volatile gpointer *ptr = atomic;
-+ const gpointer *ptr = atomic;
- gpointer value;
-
- pthread_mutex_lock (&g_atomic_lock);
-@@ -811,7 +811,7 @@ void
- (g_atomic_pointer_set) (volatile void *atomic,
- gpointer newval)
- {
-- volatile gpointer *ptr = atomic;
-+ gpointer *ptr = atomic;
-
- pthread_mutex_lock (&g_atomic_lock);
- *ptr = newval;
-@@ -823,7 +823,7 @@ gboolean
- gpointer oldval,
- gpointer newval)
- {
-- volatile gpointer *ptr = atomic;
-+ gpointer *ptr = atomic;
- gboolean success;
-
- pthread_mutex_lock (&g_atomic_lock);
-@@ -840,7 +840,7 @@ gssize
- (g_atomic_pointer_add) (volatile void *atomic,
- gssize val)
- {
-- volatile gssize *ptr = atomic;
-+ gssize *ptr = atomic;
- gssize oldval;
-
- pthread_mutex_lock (&g_atomic_lock);
-@@ -855,7 +855,7 @@ gsize
- (g_atomic_pointer_and) (volatile void *atomic,
- gsize val)
- {
-- volatile gsize *ptr = atomic;
-+ gsize *ptr = atomic;
- gsize oldval;
-
- pthread_mutex_lock (&g_atomic_lock);
-@@ -870,7 +870,7 @@ gsize
- (g_atomic_pointer_or) (volatile void *atomic,
- gsize val)
- {
-- volatile gsize *ptr = atomic;
-+ gsize *ptr = atomic;
- gsize oldval;
-
- pthread_mutex_lock (&g_atomic_lock);
-@@ -885,7 +885,7 @@ gsize
- (g_atomic_pointer_xor) (volatile void *atomic,
- gsize val)
- {
-- volatile gsize *ptr = atomic;
-+ gsize *ptr = atomic;
- gsize oldval;
-
- pthread_mutex_lock (&g_atomic_lock);
-@@ -915,5 +915,5 @@ gint
- g_atomic_int_exchange_and_add (volatile gint *atomic,
- gint val)
- {
-- return (g_atomic_int_add) (atomic, val);
-+ return (g_atomic_int_add) ((gint *) atomic, val);
- }
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0014-gatomic-Drop-unnecessary-volatile-qualifiers-from-ma.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0014-gatomic-Drop-unnecessary-volatile-qualifiers-from-ma.patch
deleted file mode 100644
index bcc06e05c..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0014-gatomic-Drop-unnecessary-volatile-qualifiers-from-ma.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 9474655eb21d64519b293e780bb686976cbdb790 Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Wed, 11 Nov 2020 18:38:36 +0000
-Subject: [PATCH 14/29] gatomic: Drop unnecessary volatile qualifiers from
- macro variables
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-It’s not necessary and provides no thread safety guarantees.
-
-The `volatile` qualifiers on the function arguments have to be kept, as
-they are (unfortunately) part of the API.
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- glib/gatomic.h | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/glib/gatomic.h b/glib/gatomic.h
-index bb1435c70..e6eccfada 100644
---- a/glib/gatomic.h
-+++ b/glib/gatomic.h
-@@ -211,7 +211,7 @@ G_END_DECLS
- }))
- #define g_atomic_pointer_and(atomic, val) \
- (G_GNUC_EXTENSION ({ \
-- volatile gsize *gapa_atomic = (volatile gsize *) (atomic); \
-+ gsize *gapa_atomic = (gsize *) (atomic); \
- G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
- G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gsize)); \
- (void) (0 ? (gpointer) *(atomic) : NULL); \
-@@ -220,7 +220,7 @@ G_END_DECLS
- }))
- #define g_atomic_pointer_or(atomic, val) \
- (G_GNUC_EXTENSION ({ \
-- volatile gsize *gapo_atomic = (volatile gsize *) (atomic); \
-+ gsize *gapo_atomic = (gsize *) (atomic); \
- G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
- G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gsize)); \
- (void) (0 ? (gpointer) *(atomic) : NULL); \
-@@ -229,7 +229,7 @@ G_END_DECLS
- }))
- #define g_atomic_pointer_xor(atomic, val) \
- (G_GNUC_EXTENSION ({ \
-- volatile gsize *gapx_atomic = (volatile gsize *) (atomic); \
-+ gsize *gapx_atomic = (gsize *) (atomic); \
- G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
- G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gsize)); \
- (void) (0 ? (gpointer) *(atomic) : NULL); \
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0015-glib-Drop-unnecessary-volatile-qualifiers-from-inter.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0015-glib-Drop-unnecessary-volatile-qualifiers-from-inter.patch
deleted file mode 100644
index 9468548e3..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0015-glib-Drop-unnecessary-volatile-qualifiers-from-inter.patch
+++ /dev/null
@@ -1,169 +0,0 @@
-From 1314ff93fc4d3379483c33da6a7deff27f71ed95 Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Wed, 11 Nov 2020 18:40:56 +0000
-Subject: [PATCH 15/29] glib: Drop unnecessary volatile qualifiers from
- internal variables
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-These variables were already (correctly) accessed atomically. The
-`volatile` qualifier doesn’t help with that.
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- glib/gdatetime.c | 2 +-
- glib/gkeyfile.c | 2 +-
- glib/gmain.c | 8 ++++----
- glib/gmarkup.c | 2 +-
- glib/gregex.c | 6 +++---
- glib/gthread.c | 6 +++---
- 6 files changed, 13 insertions(+), 13 deletions(-)
-
-diff --git a/glib/gdatetime.c b/glib/gdatetime.c
-index 1755257be..453077f6d 100644
---- a/glib/gdatetime.c
-+++ b/glib/gdatetime.c
-@@ -126,7 +126,7 @@ struct _GDateTime
- /* 1 is 0001-01-01 in Proleptic Gregorian */
- gint32 days;
-
-- volatile gint ref_count;
-+ gint ref_count; /* (atomic) */
- };
-
- /* Time conversion {{{1 */
-diff --git a/glib/gkeyfile.c b/glib/gkeyfile.c
-index 9d0215331..bbe638b74 100644
---- a/glib/gkeyfile.c
-+++ b/glib/gkeyfile.c
-@@ -512,7 +512,7 @@ struct _GKeyFile
-
- gchar **locales;
-
-- volatile gint ref_count;
-+ gint ref_count; /* (atomic) */
- };
-
- typedef struct _GKeyFileKeyValuePair GKeyFileKeyValuePair;
-diff --git a/glib/gmain.c b/glib/gmain.c
-index 772b8ecfc..9c5f0ef1e 100644
---- a/glib/gmain.c
-+++ b/glib/gmain.c
-@@ -272,7 +272,7 @@ struct _GMainContext
- guint owner_count;
- GSList *waiters;
-
-- volatile gint ref_count;
-+ gint ref_count; /* (atomic) */
-
- GHashTable *sources; /* guint -> GSource */
-
-@@ -303,7 +303,7 @@ struct _GMainContext
-
- struct _GSourceCallback
- {
-- volatile gint ref_count;
-+ gint ref_count; /* (atomic) */
- GSourceFunc func;
- gpointer data;
- GDestroyNotify notify;
-@@ -313,7 +313,7 @@ struct _GMainLoop
- {
- GMainContext *context;
- gboolean is_running; /* (atomic) */
-- volatile gint ref_count;
-+ gint ref_count; /* (atomic) */
- };
-
- struct _GTimeoutSource
-@@ -4749,7 +4749,7 @@ g_main_context_get_poll_func (GMainContext *context)
- *
- * |[<!-- language="C" -->
- * #define NUM_TASKS 10
-- * static volatile gint tasks_remaining = NUM_TASKS;
-+ * static gint tasks_remaining = NUM_TASKS; // (atomic)
- * ...
- *
- * while (g_atomic_int_get (&tasks_remaining) != 0)
-diff --git a/glib/gmarkup.c b/glib/gmarkup.c
-index ba4dfd2e4..b8327fb6d 100644
---- a/glib/gmarkup.c
-+++ b/glib/gmarkup.c
-@@ -119,7 +119,7 @@ struct _GMarkupParseContext
- {
- const GMarkupParser *parser;
-
-- volatile gint ref_count;
-+ gint ref_count; /* (atomic) */
-
- GMarkupParseFlags flags;
-
-diff --git a/glib/gregex.c b/glib/gregex.c
-index 52416bbb9..5e6ddfb46 100644
---- a/glib/gregex.c
-+++ b/glib/gregex.c
-@@ -203,7 +203,7 @@ G_STATIC_ASSERT (G_REGEX_RAW == PCRE_UTF8);
-
- struct _GMatchInfo
- {
-- volatile gint ref_count; /* the ref count */
-+ gint ref_count; /* the ref count (atomic) */
- GRegex *regex; /* the regex */
- GRegexMatchFlags match_opts; /* options used at match time on the regex */
- gint matches; /* number of matching sub patterns */
-@@ -218,7 +218,7 @@ struct _GMatchInfo
-
- struct _GRegex
- {
-- volatile gint ref_count; /* the ref count for the immutable part */
-+ gint ref_count; /* the ref count for the immutable part (atomic) */
- gchar *pattern; /* the pattern */
- pcre *pcre_re; /* compiled form of the pattern */
- GRegexCompileFlags compile_opts; /* options used at compile time on the pattern */
-@@ -1300,7 +1300,7 @@ g_regex_new (const gchar *pattern,
- pcre *re;
- const gchar *errmsg;
- gboolean optimize = FALSE;
-- static volatile gsize initialised = 0;
-+ static gsize initialised = 0;
-
- g_return_val_if_fail (pattern != NULL, NULL);
- g_return_val_if_fail (error == NULL || *error == NULL, NULL);
-diff --git a/glib/gthread.c b/glib/gthread.c
-index 53f3a0848..612a9739f 100644
---- a/glib/gthread.c
-+++ b/glib/gthread.c
-@@ -513,7 +513,7 @@ static GMutex g_once_mutex;
- static GCond g_once_cond;
- static GSList *g_once_init_list = NULL;
-
--static volatile guint g_thread_n_created_counter = 0;
-+static guint g_thread_n_created_counter = 0; /* (atomic) */
-
- static void g_thread_cleanup (gpointer data);
- static GPrivate g_thread_specific_private = G_PRIVATE_INIT (g_thread_cleanup);
-@@ -694,7 +694,7 @@ g_once_impl (GOnce *once,
- gboolean
- (g_once_init_enter) (volatile void *location)
- {
-- volatile gsize *value_location = location;
-+ gsize *value_location = (gsize *) location;
- gboolean need_init = FALSE;
- g_mutex_lock (&g_once_mutex);
- if (g_atomic_pointer_get (value_location) == 0)
-@@ -731,7 +731,7 @@ void
- (g_once_init_leave) (volatile void *location,
- gsize result)
- {
-- volatile gsize *value_location = location;
-+ gsize *value_location = (gsize *) location;
-
- g_return_if_fail (g_atomic_pointer_get (value_location) == 0);
- g_return_if_fail (result != 0);
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0016-gobject-Drop-unnecessary-volatile-qualifiers-from-in.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0016-gobject-Drop-unnecessary-volatile-qualifiers-from-in.patch
deleted file mode 100644
index 8111b3b51..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0016-gobject-Drop-unnecessary-volatile-qualifiers-from-in.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-From 08d04d0428cc26935a2d42083f1710432465c98a Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Wed, 11 Nov 2020 18:42:43 +0000
-Subject: [PATCH 16/29] gobject: Drop unnecessary volatile qualifiers from
- internal variables
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-These variables were already (correctly) accessed atomically. The
-`volatile` qualifier doesn’t help with that.
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- gobject/gclosure.c | 2 +-
- gobject/gclosure.h | 20 ++++++++++----------
- gobject/gobject.c | 4 ++--
- gobject/gtype.c | 10 +++++-----
- 4 files changed, 18 insertions(+), 18 deletions(-)
-
-diff --git a/gobject/gclosure.c b/gobject/gclosure.c
-index 1d1f2f48a..6d41e6d8a 100644
---- a/gobject/gclosure.c
-+++ b/gobject/gclosure.c
-@@ -98,7 +98,7 @@
-
- typedef union {
- GClosure closure;
-- volatile gint vint;
-+ gint vint;
- } ClosureInt;
-
- #define CHANGE_FIELD(_closure, _field, _OP, _value, _must_set, _SET_OLD, _SET_NEW) \
-diff --git a/gobject/gclosure.h b/gobject/gclosure.h
-index a0f91f538..884e403a8 100644
---- a/gobject/gclosure.h
-+++ b/gobject/gclosure.h
-@@ -175,20 +175,20 @@ struct _GClosureNotifyData
- struct _GClosure
- {
- /*< private >*/
-- volatile guint ref_count : 15;
-+ guint ref_count : 15; /* (atomic) */
- /* meta_marshal is not used anymore but must be zero for historical reasons
- as it was exposed in the G_CLOSURE_N_NOTIFIERS macro */
-- volatile guint meta_marshal_nouse : 1;
-- volatile guint n_guards : 1;
-- volatile guint n_fnotifiers : 2; /* finalization notifiers */
-- volatile guint n_inotifiers : 8; /* invalidation notifiers */
-- volatile guint in_inotify : 1;
-- volatile guint floating : 1;
-+ guint meta_marshal_nouse : 1; /* (atomic) */
-+ guint n_guards : 1; /* (atomic) */
-+ guint n_fnotifiers : 2; /* finalization notifiers (atomic) */
-+ guint n_inotifiers : 8; /* invalidation notifiers (atomic) */
-+ guint in_inotify : 1; /* (atomic) */
-+ guint floating : 1; /* (atomic) */
- /*< protected >*/
-- volatile guint derivative_flag : 1;
-+ guint derivative_flag : 1; /* (atomic) */
- /*< public >*/
-- volatile guint in_marshal : 1;
-- volatile guint is_invalid : 1;
-+ guint in_marshal : 1; /* (atomic) */
-+ guint is_invalid : 1; /* (atomic) */
-
- /*< private >*/ void (*marshal) (GClosure *closure,
- GValue /*out*/ *return_value,
-diff --git a/gobject/gobject.c b/gobject/gobject.c
-index 6e9c44a1e..a3a32be9f 100644
---- a/gobject/gobject.c
-+++ b/gobject/gobject.c
-@@ -174,9 +174,9 @@ typedef struct
- GTypeInstance g_type_instance;
-
- /*< private >*/
-- volatile guint ref_count;
-+ guint ref_count; /* (atomic) */
- #ifdef HAVE_OPTIONAL_FLAGS
-- volatile guint optional_flags;
-+ guint optional_flags; /* (atomic) */
- #endif
- GData *qdata;
- } GObjectReal;
-diff --git a/gobject/gtype.c b/gobject/gtype.c
-index 51dad7690..be5989a3e 100644
---- a/gobject/gtype.c
-+++ b/gobject/gtype.c
-@@ -221,9 +221,9 @@ typedef enum
- /* --- structures --- */
- struct _TypeNode
- {
-- guint volatile ref_count;
-+ guint ref_count; /* (atomic) */
- #ifdef G_ENABLE_DEBUG
-- guint volatile instance_count;
-+ guint instance_count; /* (atomic) */
- #endif
- GTypePlugin *plugin;
- guint n_children; /* writable with lock */
-@@ -233,7 +233,7 @@ struct _TypeNode
- guint is_instantiatable : 1;
- guint mutatable_check_cache : 1; /* combines some common path checks */
- GType *children; /* writable with lock */
-- TypeData * volatile data;
-+ TypeData *data;
- GQuark qname;
- GData *global_gdata;
- union {
-@@ -569,8 +569,8 @@ type_node_new_W (TypeNode *pnode,
- }
-
- static inline IFaceEntry*
--lookup_iface_entry_I (volatile IFaceEntries *entries,
-- TypeNode *iface_node)
-+lookup_iface_entry_I (IFaceEntries *entries,
-+ TypeNode *iface_node)
- {
- guint8 *offsets;
- guint offset_index;
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0017-gmessages-Drop-unnecessary-volatile-qualifiers-from-.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0017-gmessages-Drop-unnecessary-volatile-qualifiers-from-.patch
deleted file mode 100644
index 02816a887..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0017-gmessages-Drop-unnecessary-volatile-qualifiers-from-.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From eee7e3c6688f2f1ee9beed5d6d209973c1df387e Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Wed, 11 Nov 2020 19:14:25 +0000
-Subject: [PATCH 17/29] gmessages: Drop unnecessary volatile qualifiers from
- macro variables
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-It’s not necessary and provides no thread safety guarantees.
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- glib/gmessages.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/glib/gmessages.h b/glib/gmessages.h
-index 6a28443b4..2e3650baf 100644
---- a/glib/gmessages.h
-+++ b/glib/gmessages.h
-@@ -478,7 +478,7 @@ g_debug (const gchar *format,
- #if defined(G_HAVE_ISO_VARARGS) && !G_ANALYZER_ANALYZING
- #define g_warning_once(...) \
- G_STMT_START { \
-- static volatile int G_PASTE (_GWarningOnceBoolean, __LINE__) = 0; \
-+ static int G_PASTE (_GWarningOnceBoolean, __LINE__) = 0; /* (atomic) */ \
- if (g_atomic_int_compare_and_exchange (&G_PASTE (_GWarningOnceBoolean, __LINE__), \
- 0, 1)) \
- g_warning (__VA_ARGS__); \
-@@ -487,7 +487,7 @@ g_debug (const gchar *format,
- #elif defined(G_HAVE_GNUC_VARARGS) && !G_ANALYZER_ANALYZING
- #define g_warning_once(format...) \
- G_STMT_START { \
-- static volatile int G_PASTE (_GWarningOnceBoolean, __LINE__) = 0; \
-+ static int G_PASTE (_GWarningOnceBoolean, __LINE__) = 0; /* (atomic) */ \
- if (g_atomic_int_compare_and_exchange (&G_PASTE (_GWarningOnceBoolean, __LINE__), \
- 0, 1)) \
- g_warning (format); \
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0018-gtypes-Drop-volatile-qualifier-from-gatomicrefcount.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0018-gtypes-Drop-volatile-qualifier-from-gatomicrefcount.patch
deleted file mode 100644
index 50cb3c470..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0018-gtypes-Drop-volatile-qualifier-from-gatomicrefcount.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 8a87069ff42a0631dce153701cb2ec5e343a958c Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Wed, 11 Nov 2020 19:16:30 +0000
-Subject: [PATCH 18/29] gtypes: Drop volatile qualifier from gatomicrefcount
-
-This is technically an API break, but since the type is meant to be
-opaque (third party code is not meant to treat it like an integer) it
-should not cause problems.
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- glib/gtypes.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/glib/gtypes.h b/glib/gtypes.h
-index 23c5a1295..2c4825582 100644
---- a/glib/gtypes.h
-+++ b/glib/gtypes.h
-@@ -550,8 +550,8 @@ struct _GTimeVal
- glong tv_usec;
- } GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
-
--typedef gint grefcount;
--typedef volatile gint gatomicrefcount;
-+typedef gint grefcount;
-+typedef gint gatomicrefcount; /* should be accessed only using atomics */
-
- G_END_DECLS
-
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0019-gatomicarray-Drop-volatile-qualifier-from-GAtomicArr.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0019-gatomicarray-Drop-volatile-qualifier-from-GAtomicArr.patch
deleted file mode 100644
index be3211664..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0019-gatomicarray-Drop-volatile-qualifier-from-GAtomicArr.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 46bae4f18dfec8fedda82648091752d270b2dff8 Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Wed, 11 Nov 2020 19:19:20 +0000
-Subject: [PATCH 19/29] gatomicarray: Drop volatile qualifier from GAtomicArray
- API
-
-This is an API break, but it should not affect third party code since
-that code should not be interacting with the `data` member in a way that
-invokes its `volatile` qualifier (such as copying to an intermediate
-variable).
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- gobject/gatomicarray.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/gobject/gatomicarray.h b/gobject/gatomicarray.h
-index 9550fa396..89043c5e4 100644
---- a/gobject/gatomicarray.h
-+++ b/gobject/gatomicarray.h
-@@ -29,7 +29,7 @@ G_BEGIN_DECLS
-
- typedef struct _GAtomicArray GAtomicArray;
- struct _GAtomicArray {
-- volatile gpointer data; /* elements - atomic */
-+ gpointer data; /* elements - atomic */
- };
-
- void _g_atomic_array_init (GAtomicArray *array);
-@@ -42,7 +42,7 @@ void _g_atomic_array_update (GAtomicArray *array,
- #define G_ATOMIC_ARRAY_GET_LOCKED(_array, _type) ((_type *)((_array)->data))
-
- #define G_ATOMIC_ARRAY_DO_TRANSACTION(_array, _type, _C_) G_STMT_START { \
-- volatile gpointer *_datap = &(_array)->data; \
-+ gpointer *_datap = &(_array)->data; \
- _type *transaction_data, *__check; \
- \
- __check = g_atomic_pointer_get (_datap); \
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0020-gobject-Drop-volatile-qualifier-from-GObject.ref_cou.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0020-gobject-Drop-volatile-qualifier-from-GObject.ref_cou.patch
deleted file mode 100644
index ae024a9af..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0020-gobject-Drop-volatile-qualifier-from-GObject.ref_cou.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 334f6953364680ddc6c0d3da13fda1d92bf5379d Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Wed, 11 Nov 2020 19:21:07 +0000
-Subject: [PATCH 20/29] gobject: Drop volatile qualifier from GObject.ref_count
-
-This is an API break, but no third party code should be touching
-`GObject.ref_count`, let alone in a way which would be changed by the
-removal of the `volatile` qualifier.
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- gobject/gobject.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gobject/gobject.h b/gobject/gobject.h
-index 7f55e1976..a84c183f8 100644
---- a/gobject/gobject.h
-+++ b/gobject/gobject.h
-@@ -247,7 +247,7 @@ struct _GObject
- GTypeInstance g_type_instance;
-
- /*< private >*/
-- volatile guint ref_count;
-+ guint ref_count; /* (atomic) */
- GData *qdata;
- };
- /**
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0021-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0021-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch
deleted file mode 100644
index b8ed99ce1..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0021-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 8a112c3c6e5fe6838ee29eec7caa62ba32d9bc40 Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Wed, 11 Nov 2020 19:22:49 +0000
-Subject: [PATCH 21/29] tests: Drop unnecessary volatile qualifiers from tests
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-These variables were already (correctly) accessed atomically. The
-`volatile` qualifier doesn’t help with that.
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- gobject/tests/qdata.c | 2 +-
- gobject/tests/threadtests.c | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/gobject/tests/qdata.c b/gobject/tests/qdata.c
-index 528bdc68e..7d46efb15 100644
---- a/gobject/tests/qdata.c
-+++ b/gobject/tests/qdata.c
-@@ -17,7 +17,7 @@ gboolean fail;
- #define ROUNDS 10000
-
- GObject *object;
--volatile gint bucket[THREADS];
-+gint bucket[THREADS]; /* accessed from multiple threads, but should never be contested due to the sequence of thread operations */
-
- static gpointer
- thread_func (gpointer data)
-diff --git a/gobject/tests/threadtests.c b/gobject/tests/threadtests.c
-index e341a9d67..b6f9e17fa 100644
---- a/gobject/tests/threadtests.c
-+++ b/gobject/tests/threadtests.c
-@@ -27,8 +27,8 @@
- #include <glib.h>
- #include <glib-object.h>
-
--static volatile int mtsafe_call_counter = 0; /* multi thread safe call counter */
--static int unsafe_call_counter = 0; /* single-threaded call counter */
-+static int mtsafe_call_counter = 0; /* multi thread safe call counter, must be accessed atomically */
-+static int unsafe_call_counter = 0; /* single-threaded call counter */
- static GCond sync_cond;
- static GMutex sync_mutex;
-
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0022-build-Drop-unnecessary-volatile-qualifiers-from-conf.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0022-build-Drop-unnecessary-volatile-qualifiers-from-conf.patch
deleted file mode 100644
index 5da509d17..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0022-build-Drop-unnecessary-volatile-qualifiers-from-conf.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From daf90bfa99fc02a253d538c65fbaa12f2e6c1c45 Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Wed, 11 Nov 2020 19:23:18 +0000
-Subject: [PATCH 22/29] build: Drop unnecessary volatile qualifiers from
- configure tests
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- meson.build | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index e0b308a25..ad7f887fb 100644
---- a/meson.build
-+++ b/meson.build
-@@ -1773,7 +1773,7 @@ endforeach
- # that then to silently fall back on emulated atomic ops just because
- # the user had the wrong build environment.
- atomictest = '''int main() {
-- volatile int atomic = 2;
-+ int atomic = 2;
- __sync_bool_compare_and_swap (&atomic, 2, 3);
- return 0;
- }
-@@ -1883,6 +1883,7 @@ endif
-
- # FIXME: we should make it print the result and always return 0, so that
- # the output in meson shows up as green
-+# volatile is needed here to avoid optimisations in the test
- stack_grows_check_prog = '''
- volatile int *a = 0, *b = 0;
- void f (int i) {
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0023-gdbusprivate-Avoid-a-warning-about-a-statement-with-.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0023-gdbusprivate-Avoid-a-warning-about-a-statement-with-.patch
deleted file mode 100644
index 012f9ca87..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0023-gdbusprivate-Avoid-a-warning-about-a-statement-with-.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 0604f5858259c32744e6fc912ed4feb308651a3a Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Mon, 16 Nov 2020 14:47:23 +0000
-Subject: [PATCH 23/29] gdbusprivate: Avoid a warning about a statement with no
- effect
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- gio/gdbusprivate.c | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/gio/gdbusprivate.c b/gio/gdbusprivate.c
-index 99b37f3eb..4e42c1a4d 100644
---- a/gio/gdbusprivate.c
-+++ b/gio/gdbusprivate.c
-@@ -1945,11 +1945,10 @@ _g_dbus_initialize (void)
-
- if (g_once_init_enter (&initialized))
- {
-- GQuark g_dbus_error_domain;
- const gchar *debug;
-
-- g_dbus_error_domain = G_DBUS_ERROR;
-- (g_dbus_error_domain); /* To avoid -Wunused-but-set-variable */
-+ /* Ensure the domain is registered. */
-+ g_dbus_error_quark ();
-
- debug = g_getenv ("G_DBUS_DEBUG");
- if (debug != NULL)
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0024-tests-Add-comment-to-volatile-atomic-tests.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0024-tests-Add-comment-to-volatile-atomic-tests.patch
deleted file mode 100644
index 7350803c6..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0024-tests-Add-comment-to-volatile-atomic-tests.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 2d03f99ae4de394cac0690717d96c2d884ccdae2 Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Mon, 16 Nov 2020 14:47:47 +0000
-Subject: [PATCH 24/29] tests: Add comment to volatile atomic tests
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-`volatile` should not be used to indicate atomic variables, and we
-shouldn’t encourage its use. Keep the tests, since they check that we
-don’t emit warnings when built against incorrect old code which uses
-`volatile`. But add a comment to stop copy/paste use of `volatile`
-in the future.
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- glib/tests/atomic.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/glib/tests/atomic.c b/glib/tests/atomic.c
-index 7d2459f3a..14e6e454e 100644
---- a/glib/tests/atomic.c
-+++ b/glib/tests/atomic.c
-@@ -94,6 +94,9 @@ test_types (void)
- res = g_atomic_pointer_compare_and_exchange (&vp_str, NULL, str);
- g_assert_true (res);
-
-+ /* Note that atomic variables should almost certainly not be marked as
-+ * `volatile` — see http://isvolatileusefulwiththreads.in/c/. This test exists
-+ * to make sure that we don’t warn when built against older third party code. */
- g_atomic_pointer_set (&vp_str_vol, NULL);
- res = g_atomic_pointer_compare_and_exchange (&vp_str_vol, NULL, str);
- g_assert_true (res);
-@@ -210,6 +213,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS
- res = g_atomic_pointer_compare_and_exchange (&vp_str, NULL, (char *) str);
- g_assert_true (res);
-
-+ /* Note that atomic variables should almost certainly not be marked as
-+ * `volatile` — see http://isvolatileusefulwiththreads.in/c/. This test exists
-+ * to make sure that we don’t warn when built against older third party code. */
- g_atomic_pointer_set (&vp_str_vol, NULL);
- res = g_atomic_pointer_compare_and_exchange (&vp_str_vol, NULL, (char *) str);
- g_assert_true (res);
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0025-gthread-Use-g_atomic-primitives-correctly-in-destruc.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0025-gthread-Use-g_atomic-primitives-correctly-in-destruc.patch
deleted file mode 100644
index c15a3b8a5..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0025-gthread-Use-g_atomic-primitives-correctly-in-destruc.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 6bd0a4b29753570a2c20b61b5ad2c0068567b7b6 Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Mon, 16 Nov 2020 16:44:29 +0000
-Subject: [PATCH 25/29] gthread: Use g_atomic() primitives correctly in
- destructor list
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-In the Windows destructor list, consistently access
-`g_private_destructors` using atomic primitives.
-
-`g_atomic_pointer_compare_and_exchange()` should be equivalent to
-`InterlockedCompareExchangePointer()`, but is a bit more understandable
-in a general GLib context, and pairs with `g_atomic_pointer_get()`. (I
-can’t find a Windows API equivalent for that.)
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- glib/gthread-win32.c | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/glib/gthread-win32.c b/glib/gthread-win32.c
-index 0c37dc6c1..20aca6fa1 100644
---- a/glib/gthread-win32.c
-+++ b/glib/gthread-win32.c
-@@ -301,7 +301,7 @@ struct _GPrivateDestructor
- GPrivateDestructor *next;
- };
-
--static GPrivateDestructor * volatile g_private_destructors;
-+static GPrivateDestructor *g_private_destructors; /* (atomic) prepend-only */
- static CRITICAL_SECTION g_private_lock;
-
- static DWORD
-@@ -329,7 +329,7 @@ g_private_get_impl (GPrivate *key)
- g_thread_abort (errno, "malloc");
- destructor->index = impl;
- destructor->notify = key->notify;
-- destructor->next = g_private_destructors;
-+ destructor->next = g_atomic_pointer_get (&g_private_destructors);
-
- /* We need to do an atomic store due to the unlocked
- * access to the destructor list from the thread exit
-@@ -337,13 +337,14 @@ g_private_get_impl (GPrivate *key)
- *
- * It can double as a sanity check...
- */
-- if (InterlockedCompareExchangePointer (&g_private_destructors, destructor,
-- destructor->next) != destructor->next)
-+ if (!g_atomic_pointer_compare_and_exchange (&g_private_destructors,
-+ destructor->next,
-+ destructor))
- g_thread_abort (0, "g_private_get_impl(1)");
- }
-
- /* Ditto, due to the unlocked access on the fast path */
-- if (InterlockedCompareExchangePointer (&key->p, impl, NULL) != NULL)
-+ if (!g_atomic_pointer_compare_and_exchange (&key->p, NULL, impl))
- g_thread_abort (0, "g_private_get_impl(2)");
- }
- LeaveCriticalSection (&g_private_lock);
-@@ -635,7 +636,7 @@ g_thread_win32_thread_detach (void)
- */
- dtors_called = FALSE;
-
-- for (dtor = g_private_destructors; dtor; dtor = dtor->next)
-+ for (dtor = g_atomic_pointer_get (&g_private_destructors); dtor; dtor = dtor->next)
- {
- gpointer value;
-
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0026-gtype-Fix-some-typos-in-comments.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0026-gtype-Fix-some-typos-in-comments.patch
deleted file mode 100644
index 7090a12a8..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0026-gtype-Fix-some-typos-in-comments.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 041dd8b70bd14b041d6a495492eb7a5fc7568bb7 Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Mon, 16 Nov 2020 16:47:54 +0000
-Subject: [PATCH 26/29] gtype: Fix some typos in comments
-
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
----
- gobject/gtype.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/gobject/gtype.c b/gobject/gtype.c
-index be5989a3e..ae1af8a05 100644
---- a/gobject/gtype.c
-+++ b/gobject/gtype.c
-@@ -2290,7 +2290,7 @@ type_class_init_Wm (TypeNode *node,
- * inherited interfaces are already init_state == INITIALIZED, because
- * they either got setup in the above base_init loop, or during
- * class_init from within type_add_interface_Wm() for this or
-- * an anchestor type.
-+ * an ancestor type.
- */
- i = 0;
- while ((entries = CLASSED_NODE_IFACES_ENTRIES_LOCKED (node)) != NULL)
-@@ -3462,7 +3462,7 @@ g_type_depth (GType type)
- * be used to determine the types and order in which the leaf type is
- * descended from the root type.
- *
-- * Returns: immediate child of @root_type and anchestor of @leaf_type
-+ * Returns: immediate child of @root_type and ancestor of @leaf_type
- */
- GType
- g_type_next_base (GType type,
-@@ -3549,8 +3549,8 @@ type_node_conforms_to_U (TypeNode *node,
-
- /**
- * g_type_is_a:
-- * @type: type to check anchestry for
-- * @is_a_type: possible anchestor of @type or interface that @type
-+ * @type: type to check ancestry for
-+ * @is_a_type: possible ancestor of @type or interface that @type
- * could conform to
- *
- * If @is_a_type is a derivable type, check whether @type is a
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0027-gtype-Add-some-missing-atomic-accesses-to-init_state.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0027-gtype-Add-some-missing-atomic-accesses-to-init_state.patch
deleted file mode 100644
index 9c4e45ff4..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0027-gtype-Add-some-missing-atomic-accesses-to-init_state.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 47da8ec5d9a284e07f77c7d59fc8eacf3ebf188a Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Mon, 16 Nov 2020 16:57:22 +0000
-Subject: [PATCH 27/29] gtype: Add some missing atomic accesses to init_state
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Half of the references to `init_state` in `gtype.c` already correctly
-accessed it atomically, but a couple didn’t. Drop the `volatile`
-qualifier from its declaration, as that’s not necessary for atomic
-access.
-
-Note that this is the `init_state` in `TypeData`, *not* the `init_state`
-in `IFaceEntry`.
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Helps: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- gobject/gtype.c | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/gobject/gtype.c b/gobject/gtype.c
-index ae1af8a05..909faf138 100644
---- a/gobject/gtype.c
-+++ b/gobject/gtype.c
-@@ -322,7 +322,7 @@ struct _ClassData
- CommonData common;
- guint16 class_size;
- guint16 class_private_size;
-- int volatile init_state; /* atomic - g_type_class_ref reads it unlocked */
-+ int init_state; /* (atomic) - g_type_class_ref reads it unlocked */
- GBaseInitFunc class_init_base;
- GBaseFinalizeFunc class_finalize_base;
- GClassInitFunc class_init;
-@@ -336,7 +336,7 @@ struct _InstanceData
- CommonData common;
- guint16 class_size;
- guint16 class_private_size;
-- int volatile init_state; /* atomic - g_type_class_ref reads it unlocked */
-+ int init_state; /* (atomic) - g_type_class_ref reads it unlocked */
- GBaseInitFunc class_init_base;
- GBaseFinalizeFunc class_finalize_base;
- GClassInitFunc class_init;
-@@ -1415,7 +1415,7 @@ type_node_add_iface_entry_W (TypeNode *node,
-
- if (parent_entry)
- {
-- if (node->data && node->data->class.init_state >= BASE_IFACE_INIT)
-+ if (node->data && g_atomic_int_get (&node->data->class.init_state) >= BASE_IFACE_INIT)
- {
- entries->entry[i].init_state = INITIALIZED;
- entries->entry[i].vtable = parent_entry->vtable;
-@@ -1481,7 +1481,7 @@ type_add_interface_Wm (TypeNode *node,
- */
- if (node->data)
- {
-- InitState class_state = node->data->class.init_state;
-+ InitState class_state = g_atomic_int_get (&node->data->class.init_state);
-
- if (class_state >= BASE_IFACE_INIT)
- type_iface_vtable_base_init_Wm (iface, node);
-@@ -2175,7 +2175,7 @@ type_class_init_Wm (TypeNode *node,
- g_assert (node->is_classed && node->data &&
- node->data->class.class_size &&
- !node->data->class.class &&
-- node->data->class.init_state == UNINITIALIZED);
-+ g_atomic_int_get (&node->data->class.init_state) == UNINITIALIZED);
- if (node->data->class.class_private_size)
- class = g_malloc0 (ALIGN_STRUCT (node->data->class.class_size) + node->data->class.class_private_size);
- else
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0028-gresource-Fix-a-pointer-mismatch-with-an-atomic-load.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0028-gresource-Fix-a-pointer-mismatch-with-an-atomic-load.patch
deleted file mode 100644
index e03fac19f..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0028-gresource-Fix-a-pointer-mismatch-with-an-atomic-load.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 7d417f8406b8fa32a25659120738d22be6a1b482 Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Mon, 16 Nov 2020 17:17:21 +0000
-Subject: [PATCH 28/29] gresource: Fix a pointer mismatch with an atomic load
-
-This squashes a warning when compiling with Clang.
-
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
----
- gio/gresource.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gio/gresource.c b/gio/gresource.c
-index 79a49d33d..b495d12ac 100644
---- a/gio/gresource.c
-+++ b/gio/gresource.c
-@@ -1398,7 +1398,7 @@ register_lazy_static_resources (void)
- void
- g_static_resource_init (GStaticResource *static_resource)
- {
-- gpointer next;
-+ GStaticResource *next;
-
- do
- {
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0029-docs-Document-not-to-use-volatile-qualifiers.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0029-docs-Document-not-to-use-volatile-qualifiers.patch
deleted file mode 100644
index 3311ad65d..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0029-docs-Document-not-to-use-volatile-qualifiers.patch
+++ /dev/null
@@ -1,258 +0,0 @@
-From 83e48d8ac1fee98059e2305d8909dca26190bddc Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Tue, 17 Nov 2020 10:15:15 +0000
-Subject: [PATCH 29/29] docs: Document not to use `volatile` qualifiers
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-
-Fixes: #600
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
----
- gio/gdbusconnection.c | 12 ++++++++---
- gio/gdbuserror.c | 3 +++
- glib/gatomic.c | 48 +++++++++++++++++++++++++++++++++++++++++++
- glib/gthread.c | 6 ++++++
- 4 files changed, 66 insertions(+), 3 deletions(-)
-
-diff --git a/gio/gdbusconnection.c b/gio/gdbusconnection.c
-index 91c365e80..65939a4d2 100644
---- a/gio/gdbusconnection.c
-+++ b/gio/gdbusconnection.c
-@@ -1708,7 +1708,9 @@ g_dbus_connection_send_message_unlocked (GDBusConnection *connection,
- * will be assigned by @connection and set on @message via
- * g_dbus_message_set_serial(). If @out_serial is not %NULL, then the
- * serial number used will be written to this location prior to
-- * submitting the message to the underlying transport.
-+ * submitting the message to the underlying transport. While it has a `volatile`
-+ * qualifier, this is a historical artifact and the argument passed to it should
-+ * not be `volatile`.
- *
- * If @connection is closed then the operation will fail with
- * %G_IO_ERROR_CLOSED. If @message is not well-formed,
-@@ -1979,7 +1981,9 @@ g_dbus_connection_send_message_with_reply_unlocked (GDBusConnection *connect
- * will be assigned by @connection and set on @message via
- * g_dbus_message_set_serial(). If @out_serial is not %NULL, then the
- * serial number used will be written to this location prior to
-- * submitting the message to the underlying transport.
-+ * submitting the message to the underlying transport. While it has a `volatile`
-+ * qualifier, this is a historical artifact and the argument passed to it should
-+ * not be `volatile`.
- *
- * If @connection is closed then the operation will fail with
- * %G_IO_ERROR_CLOSED. If @cancellable is canceled, the operation will
-@@ -2105,7 +2109,9 @@ send_message_with_reply_sync_cb (GDBusConnection *connection,
- * will be assigned by @connection and set on @message via
- * g_dbus_message_set_serial(). If @out_serial is not %NULL, then the
- * serial number used will be written to this location prior to
-- * submitting the message to the underlying transport.
-+ * submitting the message to the underlying transport. While it has a `volatile`
-+ * qualifier, this is a historical artifact and the argument passed to it should
-+ * not be `volatile`.
- *
- * If @connection is closed then the operation will fail with
- * %G_IO_ERROR_CLOSED. If @cancellable is canceled, the operation will
-diff --git a/gio/gdbuserror.c b/gio/gdbuserror.c
-index b03a33f27..4ad97bb6e 100644
---- a/gio/gdbuserror.c
-+++ b/gio/gdbuserror.c
-@@ -177,6 +177,9 @@ g_dbus_error_quark (void)
- *
- * Helper function for associating a #GError error domain with D-Bus error names.
- *
-+ * While @quark_volatile has a `volatile` qualifier, this is a historical
-+ * artifact and the argument passed to it should not be `volatile`.
-+ *
- * Since: 2.26
- */
- void
-diff --git a/glib/gatomic.c b/glib/gatomic.c
-index 67f5ba6b4..0bc67aa35 100644
---- a/glib/gatomic.c
-+++ b/glib/gatomic.c
-@@ -105,6 +105,9 @@
- * This call acts as a full compiler and hardware
- * memory barrier (before the get).
- *
-+ * While @atomic has a `volatile` qualifier, this is a historical artifact and
-+ * the pointer passed to it should not be `volatile`.
-+ *
- * Returns: the value of the integer
- *
- * Since: 2.4
-@@ -125,6 +128,9 @@ gint
- * This call acts as a full compiler and hardware
- * memory barrier (after the set).
- *
-+ * While @atomic has a `volatile` qualifier, this is a historical artifact and
-+ * the pointer passed to it should not be `volatile`.
-+ *
- * Since: 2.4
- */
- void
-@@ -144,6 +150,9 @@ void
- *
- * This call acts as a full compiler and hardware memory barrier.
- *
-+ * While @atomic has a `volatile` qualifier, this is a historical artifact and
-+ * the pointer passed to it should not be `volatile`.
-+ *
- * Since: 2.4
- **/
- void
-@@ -163,6 +172,9 @@ void
- *
- * This call acts as a full compiler and hardware memory barrier.
- *
-+ * While @atomic has a `volatile` qualifier, this is a historical artifact and
-+ * the pointer passed to it should not be `volatile`.
-+ *
- * Returns: %TRUE if the resultant value is zero
- *
- * Since: 2.4
-@@ -189,6 +201,9 @@ gboolean
- *
- * This call acts as a full compiler and hardware memory barrier.
- *
-+ * While @atomic has a `volatile` qualifier, this is a historical artifact and
-+ * the pointer passed to it should not be `volatile`.
-+ *
- * Returns: %TRUE if the exchange took place
- *
- * Since: 2.4
-@@ -216,6 +231,9 @@ gboolean
- * Before version 2.30, this function did not return a value
- * (but g_atomic_int_exchange_and_add() did, and had the same meaning).
- *
-+ * While @atomic has a `volatile` qualifier, this is a historical artifact and
-+ * the pointer passed to it should not be `volatile`.
-+ *
- * Returns: the value of @atomic before the add, signed
- *
- * Since: 2.4
-@@ -240,6 +258,9 @@ gint
- * Think of this operation as an atomic version of
- * `{ tmp = *atomic; *atomic &= val; return tmp; }`.
- *
-+ * While @atomic has a `volatile` qualifier, this is a historical artifact and
-+ * the pointer passed to it should not be `volatile`.
-+ *
- * Returns: the value of @atomic before the operation, unsigned
- *
- * Since: 2.30
-@@ -264,6 +285,9 @@ guint
- *
- * This call acts as a full compiler and hardware memory barrier.
- *
-+ * While @atomic has a `volatile` qualifier, this is a historical artifact and
-+ * the pointer passed to it should not be `volatile`.
-+ *
- * Returns: the value of @atomic before the operation, unsigned
- *
- * Since: 2.30
-@@ -288,6 +312,9 @@ guint
- *
- * This call acts as a full compiler and hardware memory barrier.
- *
-+ * While @atomic has a `volatile` qualifier, this is a historical artifact and
-+ * the pointer passed to it should not be `volatile`.
-+ *
- * Returns: the value of @atomic before the operation, unsigned
- *
- * Since: 2.30
-@@ -309,6 +336,9 @@ guint
- * This call acts as a full compiler and hardware
- * memory barrier (before the get).
- *
-+ * While @atomic has a `volatile` qualifier, this is a historical artifact and
-+ * the pointer passed to it should not be `volatile`.
-+ *
- * Returns: the value of the pointer
- *
- * Since: 2.4
-@@ -329,6 +359,9 @@ gpointer
- * This call acts as a full compiler and hardware
- * memory barrier (after the set).
- *
-+ * While @atomic has a `volatile` qualifier, this is a historical artifact and
-+ * the pointer passed to it should not be `volatile`.
-+ *
- * Since: 2.4
- **/
- void
-@@ -354,6 +387,9 @@ void
- *
- * This call acts as a full compiler and hardware memory barrier.
- *
-+ * While @atomic has a `volatile` qualifier, this is a historical artifact and
-+ * the pointer passed to it should not be `volatile`.
-+ *
- * Returns: %TRUE if the exchange took place
- *
- * Since: 2.4
-@@ -379,6 +415,9 @@ gboolean
- *
- * This call acts as a full compiler and hardware memory barrier.
- *
-+ * While @atomic has a `volatile` qualifier, this is a historical artifact and
-+ * the pointer passed to it should not be `volatile`.
-+ *
- * Returns: the value of @atomic before the add, signed
- *
- * Since: 2.30
-@@ -403,6 +442,9 @@ gssize
- *
- * This call acts as a full compiler and hardware memory barrier.
- *
-+ * While @atomic has a `volatile` qualifier, this is a historical artifact and
-+ * the pointer passed to it should not be `volatile`.
-+ *
- * Returns: the value of @atomic before the operation, unsigned
- *
- * Since: 2.30
-@@ -427,6 +469,9 @@ gsize
- *
- * This call acts as a full compiler and hardware memory barrier.
- *
-+ * While @atomic has a `volatile` qualifier, this is a historical artifact and
-+ * the pointer passed to it should not be `volatile`.
-+ *
- * Returns: the value of @atomic before the operation, unsigned
- *
- * Since: 2.30
-@@ -451,6 +496,9 @@ gsize
- *
- * This call acts as a full compiler and hardware memory barrier.
- *
-+ * While @atomic has a `volatile` qualifier, this is a historical artifact and
-+ * the pointer passed to it should not be `volatile`.
-+ *
- * Returns: the value of @atomic before the operation, unsigned
- *
- * Since: 2.30
-diff --git a/glib/gthread.c b/glib/gthread.c
-index 612a9739f..29216d7fd 100644
---- a/glib/gthread.c
-+++ b/glib/gthread.c
-@@ -686,6 +686,9 @@ g_once_impl (GOnce *once,
- * // use initialization_value here
- * ]|
- *
-+ * While @location has a `volatile` qualifier, this is a historical artifact and
-+ * the pointer passed to it should not be `volatile`.
-+ *
- * Returns: %TRUE if the initialization section should be entered,
- * %FALSE and blocks otherwise
- *
-@@ -725,6 +728,9 @@ gboolean
- * releases concurrent threads blocking in g_once_init_enter() on this
- * initialization variable.
- *
-+ * While @location has a `volatile` qualifier, this is a historical artifact and
-+ * the pointer passed to it should not be `volatile`.
-+ *
- * Since: 2.14
- */
- void
---
-2.30.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
index 4cbcc29a5..7cf89c871 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
@@ -1,4 +1,4 @@
-From 011c9f024b6475d31e7d5432a38d00fb67eaea40 Mon Sep 17 00:00:00 2001
+From ff790dd7086e28896f8e7630135f756cc6f06c80 Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
Date: Fri, 11 Mar 2016 15:35:55 +0000
Subject: [PATCH] glib-2.0: relocate the GIO module directory for native builds
@@ -19,19 +19,19 @@ Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/gio/giomodule.c b/gio/giomodule.c
-index dc4d6d3..da46906 100644
+index ca1daf2..954a250 100644
--- a/gio/giomodule.c
+++ b/gio/giomodule.c
-@@ -49,6 +49,8 @@
- #include "gmemorymonitordbus.h"
+@@ -51,6 +51,8 @@
#ifdef G_OS_WIN32
#include "gregistrysettingsbackend.h"
+ #include "giowin32-priv.h"
+#else
+#include <dlfcn.h>
#endif
#include <glib/gstdio.h>
-@@ -1163,7 +1165,15 @@ get_gio_module_dir (void)
+@@ -1212,7 +1214,15 @@ get_gio_module_dir (void)
NULL);
g_free (install_dir);
#else
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.66.7.bb b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.66.7.bb
deleted file mode 100644
index 3909b76dd..000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.66.7.bb
+++ /dev/null
@@ -1,86 +0,0 @@
-require glib.inc
-
-PE = "1"
-
-SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
-
-SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
- file://run-ptest \
- file://0001-Fix-DATADIRNAME-on-uclibc-Linux.patch \
- file://Enable-more-tests-while-cross-compiling.patch \
- file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \
- file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \
- file://0001-Do-not-ignore-return-value-of-write.patch \
- file://0010-Do-not-hardcode-python-path-into-various-tools.patch \
- file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \
- file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
- file://0001-meson-Run-atomics-test-on-clang-as-well.patch \
- file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
- file://0001-gio-tests-codegen.py-bump-timeout-to-100-seconds.patch \
- file://0001-tests-codegen.py-removing-unecessary-print-statement.patch \
- "
-SRC_URI += "\
- file://0001-gobject-Drop-use-of-volatile-from-get_type-macros.patch \
- file://0002-tests-Fix-non-atomic-access-to-a-shared-variable.patch \
- file://0003-tests-Fix-non-atomic-access-to-a-shared-variable.patch \
- file://0004-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch \
- file://0005-tests-Fix-non-atomic-access-to-some-shared-variables.patch \
- file://0006-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch \
- file://0007-gdbusconnection-Drop-unnecessary-volatile-qualifiers.patch \
- file://0008-gdbuserror-Drop-unnecessary-volatile-qualifiers-from.patch \
- file://0009-gio-Drop-unnecessary-volatile-qualifiers-from-intern.patch \
- file://0010-kqueue-Fix-unlocked-access-to-shared-variable.patch \
- file://0011-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch \
- file://0012-tests-Fix-non-atomic-access-to-some-shared-variables.patch \
- file://0013-gatomic-Drop-unnecessary-volatile-qualifiers-from-in.patch \
- file://0014-gatomic-Drop-unnecessary-volatile-qualifiers-from-ma.patch \
- file://0015-glib-Drop-unnecessary-volatile-qualifiers-from-inter.patch \
- file://0016-gobject-Drop-unnecessary-volatile-qualifiers-from-in.patch \
- file://0017-gmessages-Drop-unnecessary-volatile-qualifiers-from-.patch \
- file://0018-gtypes-Drop-volatile-qualifier-from-gatomicrefcount.patch \
- file://0019-gatomicarray-Drop-volatile-qualifier-from-GAtomicArr.patch \
- file://0020-gobject-Drop-volatile-qualifier-from-GObject.ref_cou.patch \
- file://0021-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch \
- file://0022-build-Drop-unnecessary-volatile-qualifiers-from-conf.patch \
- file://0023-gdbusprivate-Avoid-a-warning-about-a-statement-with-.patch \
- file://0024-tests-Add-comment-to-volatile-atomic-tests.patch \
- file://0025-gthread-Use-g_atomic-primitives-correctly-in-destruc.patch \
- file://0026-gtype-Fix-some-typos-in-comments.patch \
- file://0027-gtype-Add-some-missing-atomic-accesses-to-init_state.patch \
- file://0028-gresource-Fix-a-pointer-mismatch-with-an-atomic-load.patch \
- file://0029-docs-Document-not-to-use-volatile-qualifiers.patch \
-"
-SRC_URI_append_class-native = " file://relocate-modules.patch"
-
-SRC_URI[sha256sum] = "09f158769f6f26b31074e15b1ac80ec39b13b53102dfae66cfe826fb2cc65502"
-
-# Find any meson cross files in FILESPATH that are relevant for the current
-# build (using siteinfo) and add them to EXTRA_OEMESON.
-inherit siteinfo
-def find_meson_cross_files(d):
- if bb.data.inherits_class('native', d):
- return ""
-
- thisdir = os.path.normpath(d.getVar("THISDIR"))
- import collections
- sitedata = siteinfo_data(d)
- # filename -> found
- files = collections.OrderedDict()
- for path in d.getVar("FILESPATH").split(":"):
- for element in sitedata:
- filename = os.path.normpath(os.path.join(path, "meson.cross.d", element))
- sanitized_path = filename.replace(thisdir, "${THISDIR}")
- if sanitized_path == filename:
- if os.path.exists(filename):
- bb.error("Cannot add '%s' to --cross-file, because it's not relative to THISDIR '%s' and sstate signature would contain this full path" % (filename, thisdir))
- continue
- files[filename.replace(thisdir, "${THISDIR}")] = os.path.exists(filename)
-
- items = ["--cross-file=" + k for k,v in files.items() if v]
- d.appendVar("EXTRA_OEMESON", " " + " ".join(items))
- items = ["%s:%s" % (k, "True" if v else "False") for k,v in files.items()]
- d.appendVarFlag("do_configure", "file-checksums", " " + " ".join(items))
-
-python () {
- find_meson_cross_files(d)
-}
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.68.1.bb b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.68.1.bb
new file mode 100644
index 000000000..accc2cada
--- /dev/null
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.68.1.bb
@@ -0,0 +1,54 @@
+require glib.inc
+
+PE = "1"
+
+SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
+
+SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
+ file://run-ptest \
+ file://0001-Fix-DATADIRNAME-on-uclibc-Linux.patch \
+ file://Enable-more-tests-while-cross-compiling.patch \
+ file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \
+ file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \
+ file://0001-Do-not-ignore-return-value-of-write.patch \
+ file://0010-Do-not-hardcode-python-path-into-various-tools.patch \
+ file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \
+ file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
+ file://0001-meson-Run-atomics-test-on-clang-as-well.patch \
+ file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
+ file://0001-gio-tests-codegen.py-bump-timeout-to-100-seconds.patch \
+ "
+SRC_URI_append_class-native = " file://relocate-modules.patch"
+
+SRC_URI[sha256sum] = "241654b96bd36b88aaa12814efc4843b578e55d47440103727959ac346944333"
+
+# Find any meson cross files in FILESPATH that are relevant for the current
+# build (using siteinfo) and add them to EXTRA_OEMESON.
+inherit siteinfo
+def find_meson_cross_files(d):
+ if bb.data.inherits_class('native', d):
+ return ""
+
+ thisdir = os.path.normpath(d.getVar("THISDIR"))
+ import collections
+ sitedata = siteinfo_data(d)
+ # filename -> found
+ files = collections.OrderedDict()
+ for path in d.getVar("FILESPATH").split(":"):
+ for element in sitedata:
+ filename = os.path.normpath(os.path.join(path, "meson.cross.d", element))
+ sanitized_path = filename.replace(thisdir, "${THISDIR}")
+ if sanitized_path == filename:
+ if os.path.exists(filename):
+ bb.error("Cannot add '%s' to --cross-file, because it's not relative to THISDIR '%s' and sstate signature would contain this full path" % (filename, thisdir))
+ continue
+ files[filename.replace(thisdir, "${THISDIR}")] = os.path.exists(filename)
+
+ items = ["--cross-file=" + k for k,v in files.items() if v]
+ d.appendVar("EXTRA_OEMESON", " " + " ".join(items))
+ items = ["%s:%s" % (k, "True" if v else "False") for k,v in files.items()]
+ d.appendVarFlag("do_configure", "file-checksums", " " + " ".join(items))
+
+python () {
+ find_meson_cross_files(d)
+}
diff --git a/poky/meta/recipes-core/glib-networking/glib-networking_2.66.0.bb b/poky/meta/recipes-core/glib-networking/glib-networking_2.68.1.bb
index 230932daf..fac04087d 100644
--- a/poky/meta/recipes-core/glib-networking/glib-networking_2.66.0.bb
+++ b/poky/meta/recipes-core/glib-networking/glib-networking_2.68.1.bb
@@ -9,9 +9,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
SECTION = "libs"
DEPENDS = "glib-2.0"
-SRC_URI[archive.sha256sum] = "c5d7be2437fdd196eebfb70c4517b96d3ba7ec13bd496318b8f02dea383e0099"
+SRC_URI[archive.sha256sum] = "d05d8bd124a9f53fc2b93b18f2386d512e4f48bc5a80470a7967224f3bf53b30"
-PACKAGECONFIG ??= "gnutls ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
+PACKAGECONFIG ??= "openssl ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
PACKAGECONFIG[gnutls] = "-Dgnutls=enabled,-Dgnutls=disabled,gnutls"
PACKAGECONFIG[openssl] = "-Dopenssl=enabled,-Dopenssl=disabled,openssl"
@@ -33,4 +33,6 @@ FILES_${PN} += "\
FILES_${PN}-dev += "${libdir}/gio/modules/libgio*.la"
FILES_${PN}-staticdev += "${libdir}/gio/modules/libgio*.a"
+RDEPENDS_${PN}-ptest += "bash"
+
BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-core/glibc/glibc-package.inc b/poky/meta/recipes-core/glibc/glibc-package.inc
index 8d0cc8047..c3d0d9152 100644
--- a/poky/meta/recipes-core/glibc/glibc-package.inc
+++ b/poky/meta/recipes-core/glibc/glibc-package.inc
@@ -1,6 +1,6 @@
INHIBIT_SYSROOT_STRIP = "1"
-PACKAGES = "${PN}-dbg catchsegv sln nscd ldconfig ldd tzcode glibc-thread-db ${PN}-pic libcidn libmemusage libnss-db libsegfault ${PN}-pcprofile libsotruss ${PN} ${PN}-utils glibc-extra-nss ${PN}-dev ${PN}-staticdev ${PN}-doc"
+PACKAGES = "${PN}-dbg catchsegv sln nscd ldconfig ldd tzcode glibc-thread-db ${PN}-pic libcidn libmemusage libnss-db libsegfault ${PN}-pcprofile libsotruss ${PN} ${PN}-utils glibc-extra-nss ${PN}-dev ${PN}-staticdev ${PN}-doc ${PN}-src"
# The ld.so in this glibc supports the GNU_HASH
RPROVIDES_${PN} = "eglibc rtld(GNU_HASH)"
diff --git a/poky/meta/recipes-core/libxcrypt/files/0001-configure.ac-do-not-use-compute-symver-floor.patch b/poky/meta/recipes-core/libxcrypt/files/0001-configure.ac-do-not-use-compute-symver-floor.patch
deleted file mode 100644
index 4e6b42710..000000000
--- a/poky/meta/recipes-core/libxcrypt/files/0001-configure.ac-do-not-use-compute-symver-floor.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From b28bb856ccebe8fded51d11362bf5920699eed59 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 18 Mar 2021 10:52:13 +0000
-Subject: [PATCH] configure.ac: do not use compute-symver-floor
-
-This script (newly introduced in 4.4.18) sporadically fails, without
-failing configure(), which has been reported at
-https://github.com/besser82/libxcrypt/issues/123
-
-Upstream-Status: Inappropriate
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- configure.ac | 6 +-----
- 1 file changed, 1 insertion(+), 5 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 45b91b4..f3ba945 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -426,11 +426,7 @@ if test x$enable_shared != xyes; then enable_obsolete_api=0; fi
- # need to be binary backward compatible with.
- if test $enable_obsolete_api = 1; then
- AC_MSG_CHECKING([minimum symbol version to use for compatibility symbols])
-- SYMVER_FLOOR=$(
-- $PERL ${srcdir}/build-aux/compute-symver-floor \
-- ${srcdir}/lib/libcrypt.minver $host_os $host_cpu \
-- 2>&AS_MESSAGE_LOG_FD
-- )
-+ SYMVER_FLOOR=GLIBC_2.0
- AC_MSG_RESULT([$SYMVER_FLOOR])
- case "$SYMVER_FLOOR" in
- ERROR)
diff --git a/poky/meta/recipes-core/libxcrypt/files/fix_cflags_handling.patch b/poky/meta/recipes-core/libxcrypt/files/fix_cflags_handling.patch
new file mode 100644
index 000000000..5448fe0fa
--- /dev/null
+++ b/poky/meta/recipes-core/libxcrypt/files/fix_cflags_handling.patch
@@ -0,0 +1,24 @@
+If you pass CFLAGS with a leading space, " " gets passed to popen and convinces
+gcc to try and open a file called " ". This results in a confusing error message
+like:
+
+x86_64-pokysdk-linux-gcc: error: : No such file or directory
+
+Avoid this by stripping empty elements out of CFLAGS.
+
+Upstream-Status: Submitted [https://github.com/besser82/libxcrypt/pull/126]
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: a/build-aux/compute-symver-floor
+===================================================================
+--- a/build-aux/compute-symver-floor
++++ b/build-aux/compute-symver-floor
+@@ -36,6 +36,8 @@ sub preprocessor_check {
+ die "C compiler not available\n" unless @CC;
+
+ @CFLAGS = sh_split($ENV{CFLAGS} // q{});
++ # Remove empty elements, particularly leading ones which cause issues with popen below
++ @CFLAGS = grep {$_} @CFLAGS;
+
+ # We call ensure_C_locale here, not from the main section,
+ # because this sub might not get called at all, in which
diff --git a/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.18.bb b/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.19.bb
index ba74eb1f9..ba74eb1f9 100644
--- a/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.18.bb
+++ b/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.19.bb
diff --git a/poky/meta/recipes-core/libxcrypt/libxcrypt.inc b/poky/meta/recipes-core/libxcrypt/libxcrypt.inc
index b5ca863d5..694e55546 100644
--- a/poky/meta/recipes-core/libxcrypt/libxcrypt.inc
+++ b/poky/meta/recipes-core/libxcrypt/libxcrypt.inc
@@ -3,18 +3,18 @@ DESCRIPTION = "Forked code from glibc libary to extract only crypto part."
HOMEPAGE = "https://github.com/besser82/libxcrypt"
SECTION = "libs"
LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://LICENSING;md5=bd5d9777dfe7076c4f2928f12fed226a \
+LIC_FILES_CHKSUM = "file://LICENSING;md5=afed27a72ae2a8075978299eebaa1f5d \
file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
"
inherit autotools pkgconfig
-SRC_URI = "git://github.com/besser82/libxcrypt.git;branch=${SRCBRANCH} \
- file://0001-configure.ac-do-not-use-compute-symver-floor.patch \
- "
-SRCREV = "94d84f92ca123d851586016c4678eb1f21c19029"
+SRC_URI = "git://github.com/besser82/libxcrypt.git;branch=${SRCBRANCH}"
+SRCREV = "c79119414d7e30017d7b49566e7e4ea35112bdc8"
SRCBRANCH ?= "develop"
+SRC_URI += "file://fix_cflags_handling.patch"
+
PROVIDES = "virtual/crypt"
FILES_${PN} = "${libdir}/libcrypt*.so.* \
diff --git a/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.18.bb b/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.19.bb
index 79dba2f6d..79dba2f6d 100644
--- a/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.18.bb
+++ b/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.19.bb
diff --git a/poky/meta/recipes-core/meta/cve-update-db-native.bb b/poky/meta/recipes-core/meta/cve-update-db-native.bb
index 25ec6bac7..e5822cee5 100644
--- a/poky/meta/recipes-core/meta/cve-update-db-native.bb
+++ b/poky/meta/recipes-core/meta/cve-update-db-native.bb
@@ -139,7 +139,12 @@ def parse_node_and_insert(c, node, cveId):
for cpe in node.get('cpe_match', ()):
if not cpe['vulnerable']:
return
- cpe23 = cpe['cpe23Uri'].split(':')
+ cpe23 = cpe.get('cpe23Uri')
+ if not cpe23:
+ return
+ cpe23 = cpe23.split(':')
+ if len(cpe23) < 6:
+ return
vendor = cpe23[3]
product = cpe23[4]
version = cpe23[5]
diff --git a/poky/meta/recipes-core/musl/musl_git.bb b/poky/meta/recipes-core/musl/musl_git.bb
index e6f9e2441..ef8bc2eec 100644
--- a/poky/meta/recipes-core/musl/musl_git.bb
+++ b/poky/meta/recipes-core/musl/musl_git.bb
@@ -4,7 +4,7 @@
require musl.inc
inherit linuxloader
-SRCREV = "e5d2823631bbfebacf48e1a34ed28f28d7cb2570"
+SRCREV = "aad50fcd791e009961621ddfbe3d4c245fd689a3"
BASEVER = "1.2.2"
diff --git a/poky/meta/recipes-core/netbase/netbase_6.2.bb b/poky/meta/recipes-core/netbase/netbase_6.3.bb
index a54d2e776..0a7a9d71e 100644
--- a/poky/meta/recipes-core/netbase/netbase_6.2.bb
+++ b/poky/meta/recipes-core/netbase/netbase_6.3.bb
@@ -10,7 +10,7 @@ SRC_URI = "${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}.tar.xz"
inherit allarch
-SRC_URI[sha256sum] = "309a24146a06347d654b261e9e07a82fab844b173674a42e223803dd8258541e"
+SRC_URI[sha256sum] = "7c42a6a1cafa0c64103c71cab6431fc8613179b2449a1a00e55e3584e860d81c"
UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/n/netbase/"
diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb b/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
index b8e2c718e..194dca76d 100644
--- a/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
+++ b/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
@@ -57,6 +57,7 @@ VALGRIND_armv6 = ""
VALGRIND_armeb = ""
VALGRIND_aarch64 = ""
VALGRIND_riscv64 = ""
+VALGRIND_riscv32 = ""
VALGRIND_powerpc = "${@bb.utils.contains('TARGET_FPU', 'soft', '', 'valgrind', d)}"
VALGRIND_linux-gnux32 = ""
VALGRIND_linux-gnun32 = ""
diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb b/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
index a5fc15285..015810cb6 100644
--- a/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
+++ b/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
@@ -16,6 +16,7 @@ KEXECTOOLS_e5500-64b ?= ""
KEXECTOOLS_microblaze ?= ""
KEXECTOOLS_nios2 ?= ""
KEXECTOOLS_riscv64 ?= ""
+KEXECTOOLS_riscv32 ?= ""
GSTEXAMPLES ?= "gst-examples"
GSTEXAMPLES_riscv64 = ""
diff --git a/poky/meta/recipes-core/systemd/systemd-boot_247.4.bb b/poky/meta/recipes-core/systemd/systemd-boot_247.6.bb
index 249e620f4..249e620f4 100644
--- a/poky/meta/recipes-core/systemd/systemd-boot_247.4.bb
+++ b/poky/meta/recipes-core/systemd/systemd-boot_247.6.bb
diff --git a/poky/meta/recipes-core/systemd/systemd-conf_247.3.bb b/poky/meta/recipes-core/systemd/systemd-conf_247.6.bb
index ea35e83f4..ea35e83f4 100644
--- a/poky/meta/recipes-core/systemd/systemd-conf_247.3.bb
+++ b/poky/meta/recipes-core/systemd/systemd-conf_247.6.bb
diff --git a/poky/meta/recipes-core/systemd/systemd.inc b/poky/meta/recipes-core/systemd/systemd.inc
index 098bca98f..7d3b3064b 100644
--- a/poky/meta/recipes-core/systemd/systemd.inc
+++ b/poky/meta/recipes-core/systemd/systemd.inc
@@ -14,7 +14,7 @@ LICENSE = "GPLv2 & LGPLv2.1"
LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
-SRCREV = "069525e84a67375e27429cb490e8d28af78e673a"
+SRCREV = "17472dca0160cbe7b807ca648475fd70d0d62fe5"
SRCBRANCH = "v247-stable"
SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=git;branch=${SRCBRANCH}"
diff --git a/poky/meta/recipes-core/systemd/systemd/0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch b/poky/meta/recipes-core/systemd/systemd/0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
new file mode 100644
index 000000000..bbee6e6b2
--- /dev/null
+++ b/poky/meta/recipes-core/systemd/systemd/0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
@@ -0,0 +1,36 @@
+From 7b32582c066549fea0f7180a6c575e7fa37a867f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 12 Apr 2021 23:44:53 -0700
+Subject: [PATCH] missing_syscall.h: Define MIPS ABI defines for musl
+
+musl does not define _MIPS_SIM_ABI32, _MIPS_SIM_NABI32, _MIPS_SIM_ABI64
+unlike glibc where these are provided by libc headers, therefore define
+them here in case they are undefined
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/basic/missing_syscall.h | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/basic/missing_syscall.h b/src/basic/missing_syscall.h
+index 0594a1b930..495d161334 100644
+--- a/src/basic/missing_syscall.h
++++ b/src/basic/missing_syscall.h
+@@ -15,6 +15,12 @@
+ #include <asm/sgidefs.h>
+ #endif
+
++#ifndef _MIPS_SIM_ABI32
++#define _MIPS_SIM_ABI32 1
++#define _MIPS_SIM_NABI32 2
++#define _MIPS_SIM_ABI64 3
++#endif
++
+ #if defined(__x86_64__) && defined(__ILP32__)
+ # define systemd_SC_arch_bias(x) ((x) | /* __X32_SYSCALL_BIT */ 0x40000000)
+ #elif defined(__ia64__)
+--
+2.31.1
+
diff --git a/poky/meta/recipes-core/systemd/systemd_247.4.bb b/poky/meta/recipes-core/systemd/systemd_247.6.bb
index cd67e65ab..ce6ac7eba 100644
--- a/poky/meta/recipes-core/systemd/systemd_247.4.bb
+++ b/poky/meta/recipes-core/systemd/systemd_247.6.bb
@@ -55,6 +55,7 @@ SRC_URI_MUSL = "\
file://0022-do-not-disable-buffer-in-writing-files.patch \
file://0025-Handle-__cpu_mask-usage.patch \
file://0026-Handle-missing-gshadow.patch \
+ file://0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch \
"
PAM_PLUGINS = " \
@@ -64,7 +65,7 @@ PAM_PLUGINS = " \
"
PACKAGECONFIG ??= " \
- ${@bb.utils.filter('DISTRO_FEATURES', 'acl audit efi ldconfig pam selinux smack usrmerge polkit', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'acl audit efi ldconfig pam selinux smack usrmerge polkit seccomp', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'rfkill', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xkbcommon', '', d)} \
backlight \
@@ -176,7 +177,6 @@ PACKAGECONFIG[quotacheck] = "-Dquotacheck=true,-Dquotacheck=false"
PACKAGECONFIG[randomseed] = "-Drandomseed=true,-Drandomseed=false"
PACKAGECONFIG[resolved] = "-Dresolve=true,-Dresolve=false"
PACKAGECONFIG[rfkill] = "-Drfkill=true,-Drfkill=false"
-# libseccomp is found in meta-security
PACKAGECONFIG[seccomp] = "-Dseccomp=true,-Dseccomp=false,libseccomp"
PACKAGECONFIG[selinux] = "-Dselinux=true,-Dselinux=false,libselinux,initscripts-sushell"
PACKAGECONFIG[smack] = "-Dsmack=true,-Dsmack=false"
diff --git a/poky/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty b/poky/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty
index dfa799ada..699a1ead1 100644
--- a/poky/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty
+++ b/poky/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty
@@ -1,17 +1,4 @@
#!/bin/sh
-###############################################################################
-# This script is used to automatically set up the serial console(s) on startup.
-# The variable SERIAL_CONSOLES can be set in meta/conf/machine/*.conf.
-# Script enhancement has been done based on Bug YOCTO #10844.
-# Most of the information is retrieved from /proc virtual filesystem containing
-# all the runtime system information (eg. system memory, device mount, etc).
-###############################################################################
-
-# Get active serial filename.
-active_serial=$(grep "serial" /proc/tty/drivers | cut -d/ -f1 | sed "s/ *$//")
-
-# Rephrase input parameter from ttyS target index (ttyS1, ttyS2, ttyAMA0, etc).
-runtime_tty=$(echo $2 | grep -oh '[0-9]\+')
# busybox' getty does this itself, util-linux' agetty needs extra help
getty="/sbin/getty"
@@ -25,31 +12,6 @@ case $(readlink -f "${getty}") in
;;
esac
-# Backup $IFS.
-DEFAULT_IFS=$IFS
-# Customize Internal Field Separator.
-IFS="$(printf '\n\t')"
-
-for line in $active_serial; do
- # Check we have the file containing current active serial target index.
- if [ -e "/proc/tty/driver/$line" ]
- then
- # Remove all unknown entries and discard the first line (desc).
- activetty=$(grep -v "unknown" "/proc/tty/driver/$line" \
- | tail -n +2 | grep -oh "^\s*\S*[0-9]\+")
- for active in $activetty; do
- # If indexes do match then enable the serial console.
- if [ $active -eq $runtime_tty ]
- then
- if [ -c /dev/$2 ]
- then
- ${setsid:-} ${getty} -L $1 $2 $3
- fi
- break
- fi
- done
- fi
-done
-
-# Restore $IFS.
-IFS=$DEFAULT_IFS
+if [ -e /sys/class/tty/$2 -a -c /dev/$2 ]; then
+ ${setsid:-} ${getty} -L $1 $2 $3
+fi
diff --git a/poky/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb b/poky/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
index 0af116f35..d95d1a63f 100644
--- a/poky/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
+++ b/poky/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
@@ -53,10 +53,6 @@ EOF
fi
}
-do_install_append_qemuppc64 () {
- echo "9:12345:respawn:${base_sbindir}/getty 38400 hvc0" >> ${D}${sysconfdir}/inittab
-}
-
pkg_postinst_${PN} () {
# run this on host and on target
if [ "${SERIAL_CONSOLES_CHECK}" = "" ]; then
diff --git a/poky/meta/recipes-devtools/apt/apt/0001-Hide-fstatat64-and-prlimit64-defines-on-musl.patch b/poky/meta/recipes-devtools/apt/apt/0001-Hide-fstatat64-and-prlimit64-defines-on-musl.patch
new file mode 100644
index 000000000..f1816836b
--- /dev/null
+++ b/poky/meta/recipes-devtools/apt/apt/0001-Hide-fstatat64-and-prlimit64-defines-on-musl.patch
@@ -0,0 +1,48 @@
+From e849b161ce1d87ab369b921438abcf5b3a03e186 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 25 Apr 2021 08:57:03 -0700
+Subject: [PATCH] Hide fstatat64 and prlimit64 defines on musl
+
+musl defines fstatat64 and prlimit64 as macros which confuses the
+seccomp sysall rewiring since there are syscalls with same names
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ methods/aptmethod.h | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/methods/aptmethod.h b/methods/aptmethod.h
+index bd50e80..3085aed 100644
+--- a/methods/aptmethod.h
++++ b/methods/aptmethod.h
+@@ -121,6 +121,12 @@ protected:
+ if (ctx == NULL)
+ return _error->FatalE("HttpMethod::Configuration", "Cannot init seccomp");
+
++#ifndef __GLIBC__
++#pragma push_macro("fstatat64")
++#pragma push_macro("prlimit64")
++#undef fstatat64
++#undef prlimit64
++#endif
+ #define ALLOW(what) \
+ if ((rc = seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(what), 0))) \
+ return _error->FatalE("HttpMethod::Configuration", "Cannot allow %s: %s", #what, strerror(-rc));
+@@ -320,9 +326,11 @@ protected:
+ if ((rc = seccomp_rule_add(ctx, SCMP_ACT_ALLOW, seccomp_syscall_resolve_name(custom.c_str()), 0)))
+ return _error->FatalE("aptMethod::Configuration", "Cannot allow %s: %s", custom.c_str(), strerror(-rc));
+ }
+-
+ #undef ALLOW
+-
++#ifndef __GLIBC__
++#pragma pop_macro("fstatat64")
++#pragma pop_macro("prlimit64")
++#endif
+ rc = seccomp_load(ctx);
+ if (rc == -EINVAL)
+ {
+--
+2.31.1
+
diff --git a/poky/meta/recipes-devtools/apt/apt_2.2.2.bb b/poky/meta/recipes-devtools/apt/apt_2.2.2.bb
index 7d1bce558..192aec46b 100644
--- a/poky/meta/recipes-devtools/apt/apt_2.2.2.bb
+++ b/poky/meta/recipes-devtools/apt/apt_2.2.2.bb
@@ -12,6 +12,7 @@ SRC_URI = "${DEBIAN_MIRROR}/main/a/apt/${BPN}_${PV}.tar.xz \
file://0001-CMakeLists.txt-avoid-changing-install-paths-based-on.patch \
file://0001-srvrec-Keep-support-for-older-resolver.patch \
file://0001-cmake-Do-not-build-po-files.patch \
+ file://0001-Hide-fstatat64-and-prlimit64-defines-on-musl.patch \
"
SRC_URI_append_class-native = " \
@@ -45,6 +46,7 @@ EXTRA_OECMAKE_append = " -DCURRENT_VENDOR=debian -DWITH_DOC=False \
-DDPKG_DATADIR=${datadir}/dpkg \
-DTRIEHASH_EXECUTABLE=${WORKDIR}/triehash \
-DCMAKE_DISABLE_FIND_PACKAGE_ZSTD=True \
+ -DCMAKE_DISABLE_FIND_PACKAGE_SECCOMP=True \
-DWITH_TESTS=False \
"
diff --git a/poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2019.01.06.bb b/poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2021.02.19.bb
index 13593d7bb..54079b5f0 100644
--- a/poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2019.01.06.bb
+++ b/poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2021.02.19.bb
@@ -6,8 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=11cc2d3ee574f9d6b7ee797bdce4d423 \
file://COPYING.EXCEPTION;md5=fdef168ebff3bc2f13664c365a5fb515"
SRC_URI = "${GNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "d46413c8b00a125b1529bae385bbec55"
-SRC_URI[sha256sum] = "17195c833098da79de5778ee90948f4c5d90ed1a0cf8391b4ab348e2ec511e3f"
+SRC_URI[sha256sum] = "e8a6eb9d28ddcba8ffef3fa211653239e9bf239aba6a01a6b7cfc7ceaec69cbd"
inherit autotools allarch texinfo
diff --git a/poky/meta/recipes-devtools/binutils/binutils-2.36.inc b/poky/meta/recipes-devtools/binutils/binutils-2.36.inc
index 296829188..66080dfce 100644
--- a/poky/meta/recipes-devtools/binutils/binutils-2.36.inc
+++ b/poky/meta/recipes-devtools/binutils/binutils-2.36.inc
@@ -10,22 +10,16 @@ LIC_FILES_CHKSUM="\
file://bfd/COPYING;md5=d32239bcb673463ab874e80d47fae504\
"
-def binutils_branch_version(d):
- pvsplit = d.getVar('PV').split('.')
- return pvsplit[0] + "_" + pvsplit[1]
-
# When upgrading to 2.37, please make sure there is no trailing .0, so
# that upstream version check can work correctly.
PV = "2.36.1"
CVE_VERSION = "2.36.1"
-BINUPV = "${@binutils_branch_version(d)}"
-#BRANCH = "binutils-${BINUPV}-branch"
-BRANCH ?= "binutils-2_36-branch"
+SRCBRANCH ?= "binutils-2_36-branch"
UPSTREAM_CHECK_GITTAGREGEX = "binutils-(?P<pver>\d+_(\d_?)*)"
SRCREV ?= "7651a4871c225925ffdfda0a8c91a6ed370cd9a1"
-BINUTILS_GIT_URI ?= "git://sourceware.org/git/binutils-gdb.git;branch=${BRANCH};protocol=git"
+BINUTILS_GIT_URI ?= "git://sourceware.org/git/binutils-gdb.git;branch=${SRCBRANCH};protocol=git"
SRC_URI = "\
${BINUTILS_GIT_URI} \
file://0004-configure-widen-the-regexp-for-SH-architectures.patch \
@@ -41,5 +35,7 @@ SRC_URI = "\
file://0014-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch \
file://0015-sync-with-OE-libtool-changes.patch \
file://0016-Check-for-clang-before-checking-gcc-version.patch \
+ file://0017-Add-support-for-the-DW_FORM_strx-forms-to-the-BFD-li.patch \
+ file://CVE-2021-20197.patch \
"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0017-Add-support-for-the-DW_FORM_strx-forms-to-the-BFD-li.patch b/poky/meta/recipes-devtools/binutils/binutils/0017-Add-support-for-the-DW_FORM_strx-forms-to-the-BFD-li.patch
new file mode 100644
index 000000000..b4880e0d1
--- /dev/null
+++ b/poky/meta/recipes-devtools/binutils/binutils/0017-Add-support-for-the-DW_FORM_strx-forms-to-the-BFD-li.patch
@@ -0,0 +1,183 @@
+From a50c11a7a47b26e6a3e095dfb72aa2e465919fb6 Mon Sep 17 00:00:00 2001
+From: Nick Clifton <nickc@redhat.com>
+Date: Fri, 5 Mar 2021 17:06:59 +0000
+Subject: [PATCH] Add support for the DW_FORM_strx* forms to the BFD library.
+
+ PR 27521
+ * dwarf2.c (is_str_attr): Add DW_FORM_strx* forms.
+ (read_indexed_string): Placeholder function.
+ (read_attribute_value): Handle DW_FORM_strx* and DW_FORM_addrx*
+ forms.
+
+Upstream-Status: Backport [https://sourceware.org/bugzilla/show_bug.cgi?id=27521]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ bfd/dwarf2.c | 105 ++++++++++++++++++++++++++++++++-------------------
+ 1 file changed, 67 insertions(+), 38 deletions(-)
+
+diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
+index 5651696c0f7..5ffcd93f54c 100644
+--- a/bfd/dwarf2.c
++++ b/bfd/dwarf2.c
+@@ -1160,8 +1160,23 @@ read_abbrevs (bfd *abfd, bfd_uint64_t offset, struct dwarf2_debug *stash,
+ static inline bfd_boolean
+ is_str_attr (enum dwarf_form form)
+ {
+- return (form == DW_FORM_string || form == DW_FORM_strp
+- || form == DW_FORM_line_strp || form == DW_FORM_GNU_strp_alt);
++ return (form == DW_FORM_string
++ || form == DW_FORM_strp
++ || form == DW_FORM_strx
++ || form == DW_FORM_strx1
++ || form == DW_FORM_strx2
++ || form == DW_FORM_strx3
++ || form == DW_FORM_strx4
++ || form == DW_FORM_line_strp
++ || form == DW_FORM_GNU_strp_alt);
++}
++
++static const char *
++read_indexed_string (bfd_uint64_t index ATTRIBUTE_UNUSED,
++ struct comp_unit * unit ATTRIBUTE_UNUSED)
++{
++ /* FIXME: Add support for indexed strings. */
++ return "<indexed strings not yet supported>";
+ }
+
+ /* Read and fill in the value of attribute ATTR as described by FORM.
+@@ -1192,6 +1207,9 @@ read_attribute_value (struct attribute * attr,
+
+ switch (form)
+ {
++ case DW_FORM_flag_present:
++ attr->u.val = 1;
++ break;
+ case DW_FORM_ref_addr:
+ /* DW_FORM_ref_addr is an address in DWARF2, and an offset in
+ DWARF3. */
+@@ -1237,15 +1255,32 @@ read_attribute_value (struct attribute * attr,
+ info_ptr = read_n_bytes (info_ptr, info_ptr_end, blk);
+ attr->u.blk = blk;
+ break;
++ case DW_FORM_ref1:
++ case DW_FORM_flag:
++ case DW_FORM_data1:
++ case DW_FORM_addrx1:
++ attr->u.val = read_1_byte (abfd, info_ptr, info_ptr_end);
++ info_ptr += 1;
++ break;
+ case DW_FORM_data2:
++ case DW_FORM_ref2:
+ attr->u.val = read_2_bytes (abfd, info_ptr, info_ptr_end);
+ info_ptr += 2;
+ break;
++ case DW_FORM_addrx3:
++ attr->u.val = read_4_bytes (abfd, info_ptr, info_ptr_end);
++ attr->u.val &= 0xffffff;
++ info_ptr += 3;
++ break;
++ case DW_FORM_ref4:
+ case DW_FORM_data4:
++ case DW_FORM_addrx4:
+ attr->u.val = read_4_bytes (abfd, info_ptr, info_ptr_end);
+ info_ptr += 4;
+ break;
+ case DW_FORM_data8:
++ case DW_FORM_ref8:
++ case DW_FORM_ref_sig8:
+ attr->u.val = read_8_bytes (abfd, info_ptr, info_ptr_end);
+ info_ptr += 8;
+ break;
+@@ -1265,6 +1300,33 @@ read_attribute_value (struct attribute * attr,
+ attr->u.str = read_alt_indirect_string (unit, info_ptr, info_ptr_end, &bytes_read);
+ info_ptr += bytes_read;
+ break;
++ case DW_FORM_strx1:
++ attr->u.val = read_1_byte (abfd, info_ptr, info_ptr_end);
++ info_ptr += 1;
++ attr->u.str = (char *) read_indexed_string (attr->u.val, unit);
++ break;
++ case DW_FORM_strx2:
++ attr->u.val = read_2_bytes (abfd, info_ptr, info_ptr_end);
++ info_ptr += 2;
++ attr->u.str = (char *) read_indexed_string (attr->u.val, unit);
++ break;
++ case DW_FORM_strx3:
++ attr->u.val = read_4_bytes (abfd, info_ptr, info_ptr_end);
++ info_ptr += 3;
++ attr->u.val &= 0xffffff;
++ attr->u.str = (char *) read_indexed_string (attr->u.val, unit);
++ break;
++ case DW_FORM_strx4:
++ attr->u.val = read_4_bytes (abfd, info_ptr, info_ptr_end);
++ info_ptr += 4;
++ attr->u.str = (char *) read_indexed_string (attr->u.val, unit);
++ break;
++ case DW_FORM_strx:
++ attr->u.val = _bfd_safe_read_leb128 (abfd, info_ptr, &bytes_read,
++ FALSE, info_ptr_end);
++ info_ptr += bytes_read;
++ attr->u.str = (char *) read_indexed_string (attr->u.val, unit);
++ break;
+ case DW_FORM_exprloc:
+ case DW_FORM_block:
+ amt = sizeof (struct dwarf_block);
+@@ -1287,48 +1349,14 @@ read_attribute_value (struct attribute * attr,
+ info_ptr = read_n_bytes (info_ptr, info_ptr_end, blk);
+ attr->u.blk = blk;
+ break;
+- case DW_FORM_data1:
+- attr->u.val = read_1_byte (abfd, info_ptr, info_ptr_end);
+- info_ptr += 1;
+- break;
+- case DW_FORM_flag:
+- attr->u.val = read_1_byte (abfd, info_ptr, info_ptr_end);
+- info_ptr += 1;
+- break;
+- case DW_FORM_flag_present:
+- attr->u.val = 1;
+- break;
+ case DW_FORM_sdata:
+ attr->u.sval = _bfd_safe_read_leb128 (abfd, info_ptr, &bytes_read,
+ TRUE, info_ptr_end);
+ info_ptr += bytes_read;
+ break;
+- case DW_FORM_udata:
+- attr->u.val = _bfd_safe_read_leb128 (abfd, info_ptr, &bytes_read,
+- FALSE, info_ptr_end);
+- info_ptr += bytes_read;
+- break;
+- case DW_FORM_ref1:
+- attr->u.val = read_1_byte (abfd, info_ptr, info_ptr_end);
+- info_ptr += 1;
+- break;
+- case DW_FORM_ref2:
+- attr->u.val = read_2_bytes (abfd, info_ptr, info_ptr_end);
+- info_ptr += 2;
+- break;
+- case DW_FORM_ref4:
+- attr->u.val = read_4_bytes (abfd, info_ptr, info_ptr_end);
+- info_ptr += 4;
+- break;
+- case DW_FORM_ref8:
+- attr->u.val = read_8_bytes (abfd, info_ptr, info_ptr_end);
+- info_ptr += 8;
+- break;
+- case DW_FORM_ref_sig8:
+- attr->u.val = read_8_bytes (abfd, info_ptr, info_ptr_end);
+- info_ptr += 8;
+- break;
+ case DW_FORM_ref_udata:
++ case DW_FORM_udata:
++ case DW_FORM_addrx:
+ attr->u.val = _bfd_safe_read_leb128 (abfd, info_ptr, &bytes_read,
+ FALSE, info_ptr_end);
+ info_ptr += bytes_read;
+@@ -1361,6 +1389,7 @@ read_attribute_value (struct attribute * attr,
+ info_ptr = read_n_bytes (info_ptr, info_ptr_end, blk);
+ attr->u.blk = blk;
+ break;
++
+ default:
+ _bfd_error_handler (_("DWARF error: invalid or unhandled FORM value: %#x"),
+ form);
diff --git a/poky/meta/recipes-devtools/binutils/binutils/CVE-2021-20197.patch b/poky/meta/recipes-devtools/binutils/binutils/CVE-2021-20197.patch
new file mode 100644
index 000000000..d6117b65a
--- /dev/null
+++ b/poky/meta/recipes-devtools/binutils/binutils/CVE-2021-20197.patch
@@ -0,0 +1,388 @@
+From d3edaa91d4cf7202ec14342410194841e2f67f12 Mon Sep 17 00:00:00 2001
+From: Alan Modra <amodra@gmail.com>
+Date: Fri, 26 Feb 2021 11:30:32 +1030
+Subject: [PATCH] Reinstate various pieces backed out from smart_rename changes
+
+In the interests of a stable release various last minute smart_rename
+patches were backed out of the 2.36 branch. The main reason to
+reinstate some of those backed out changes here is to make necessary
+followup fixes to commit 8e03235147a9 simple cherry-picks from
+mainline. A secondary reason is that ar -M support isn't fixed for
+pr26945 without this patch.
+
+ PR 26945
+ * ar.c: Don't include libbfd.h.
+ (write_archive): Replace xmalloc+strcpy with xstrdup.
+ * arsup.c (temp_name, real_ofd): New static variables.
+ (ar_open): Use make_tempname and bfd_fdopenw.
+ (ar_save): Adjust to suit ar_open changes.
+ * objcopy.c: Don't include libbfd.h.
+ * rename.c: Rename and reorder variables.
+
+(cherry picked from commit 95b91a043aeaeb546d2fea556d84a2de1e917770)
+
+Upstream-Status: Backport [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=d3edaa91d4cf7202ec14342410194841e2f67f12]
+CVE: CVE-2021-20197
+Signed-off-by: Vinay Kumar <vinay.m.engg@gmail.com>
+---
+ binutils/ar.c | 6 +-
+ binutils/arsup.c | 37 ++++++++----
+ binutils/bucomm.h | 3 +-
+ binutils/objcopy.c | 9 +--
+ binutils/rename.c | 148 +++++++++++----------------------------------
+ 5 files changed, 67 insertions(+), 136 deletions(-)
+
+diff --git a/binutils/ar.c b/binutils/ar.c
+index 45a34e3a6cf..44df48c5c67 100644
+--- a/binutils/ar.c
++++ b/binutils/ar.c
+@@ -25,7 +25,6 @@
+
+ #include "sysdep.h"
+ #include "bfd.h"
+-#include "libbfd.h"
+ #include "libiberty.h"
+ #include "progress.h"
+ #include "getopt.h"
+@@ -1255,8 +1254,7 @@ write_archive (bfd *iarch)
+ bfd *contents_head = iarch->archive_next;
+ int ofd = -1;
+
+- old_name = (char *) xmalloc (strlen (bfd_get_filename (iarch)) + 1);
+- strcpy (old_name, bfd_get_filename (iarch));
++ old_name = xstrdup (bfd_get_filename (iarch));
+ new_name = make_tempname (old_name, &ofd);
+
+ if (new_name == NULL)
+@@ -1308,7 +1306,7 @@ write_archive (bfd *iarch)
+ /* We don't care if this fails; we might be creating the archive. */
+ bfd_close (iarch);
+
+- if (smart_rename (new_name, old_name, 0) != 0)
++ if (smart_rename (new_name, old_name, NULL) != 0)
+ xexit (1);
+ free (old_name);
+ free (new_name);
+diff --git a/binutils/arsup.c b/binutils/arsup.c
+index 5403a0c5d74..f7ce8f0bc82 100644
+--- a/binutils/arsup.c
++++ b/binutils/arsup.c
+@@ -42,6 +42,8 @@ extern int deterministic;
+
+ static bfd *obfd;
+ static char *real_name;
++static char *temp_name;
++static int real_ofd;
+ static FILE *outfile;
+
+ static void
+@@ -149,27 +151,24 @@ maybequit (void)
+ void
+ ar_open (char *name, int t)
+ {
+- char *tname;
+- const char *bname = lbasename (name);
+- real_name = name;
++ real_name = xstrdup (name);
++ temp_name = make_tempname (real_name, &real_ofd);
+
+- /* Prepend tmp- to the beginning, to avoid file-name clashes after
+- truncation on filesystems with limited namespaces (DOS). */
+- if (asprintf (&tname, "%.*stmp-%s", (int) (bname - name), name, bname) == -1)
++ if (temp_name == NULL)
+ {
+- fprintf (stderr, _("%s: Can't allocate memory for temp name (%s)\n"),
++ fprintf (stderr, _("%s: Can't open temporary file (%s)\n"),
+ program_name, strerror(errno));
+ maybequit ();
+ return;
+ }
+
+- obfd = bfd_openw (tname, NULL);
++ obfd = bfd_fdopenw (temp_name, NULL, real_ofd);
+
+ if (!obfd)
+ {
+ fprintf (stderr,
+ _("%s: Can't open output archive %s\n"),
+- program_name, tname);
++ program_name, temp_name);
+
+ maybequit ();
+ }
+@@ -344,16 +343,30 @@ ar_save (void)
+ }
+ else
+ {
+- char *ofilename = xstrdup (bfd_get_filename (obfd));
++ struct stat target_stat;
+
+ if (deterministic > 0)
+ obfd->flags |= BFD_DETERMINISTIC_OUTPUT;
+
+ bfd_close (obfd);
+
+- smart_rename (ofilename, real_name, 0);
++ if (stat (real_name, &target_stat) != 0)
++ {
++ /* The temp file created in ar_open has mode 0600 as per mkstemp.
++ Create the real empty output file here so smart_rename will
++ update the mode according to the process umask. */
++ obfd = bfd_openw (real_name, NULL);
++ if (obfd != NULL)
++ {
++ bfd_set_format (obfd, bfd_archive);
++ bfd_close (obfd);
++ }
++ }
++
++ smart_rename (temp_name, real_name, NULL);
+ obfd = 0;
+- free (ofilename);
++ free (temp_name);
++ free (real_name);
+ }
+ }
+
+diff --git a/binutils/bucomm.h b/binutils/bucomm.h
+index 91f6a5b228f..aa7e33d8cd1 100644
+--- a/binutils/bucomm.h
++++ b/binutils/bucomm.h
+@@ -71,7 +71,8 @@ extern void print_version (const char *);
+ /* In rename.c. */
+ extern void set_times (const char *, const struct stat *);
+
+-extern int smart_rename (const char *, const char *, int);
++extern int smart_rename (const char *, const char *, struct stat *);
++
+
+ /* In libiberty. */
+ void *xmalloc (size_t);
+diff --git a/binutils/objcopy.c b/binutils/objcopy.c
+index eab3b6db585..73aa8bc2514 100644
+--- a/binutils/objcopy.c
++++ b/binutils/objcopy.c
+@@ -20,7 +20,6 @@
+
+ #include "sysdep.h"
+ #include "bfd.h"
+-#include "libbfd.h"
+ #include "progress.h"
+ #include "getopt.h"
+ #include "libiberty.h"
+@@ -4861,12 +4860,10 @@ strip_main (int argc, char *argv[])
+ output_target, NULL);
+ if (status == 0)
+ {
+- if (preserve_dates)
+- set_times (tmpname, &statbuf);
+ if (output_file != tmpname)
+ status = (smart_rename (tmpname,
+ output_file ? output_file : argv[i],
+- preserve_dates) != 0);
++ preserve_dates ? &statbuf : NULL) != 0);
+ if (status == 0)
+ status = hold_status;
+ }
+@@ -5931,11 +5928,9 @@ copy_main (int argc, char *argv[])
+ output_target, input_arch);
+ if (status == 0)
+ {
+- if (preserve_dates)
+- set_times (tmpname, &statbuf);
+ if (tmpname != output_filename)
+ status = (smart_rename (tmpname, input_filename,
+- preserve_dates) != 0);
++ preserve_dates ? &statbuf : NULL) != 0);
+ }
+ else
+ unlink_if_ordinary (tmpname);
+diff --git a/binutils/rename.c b/binutils/rename.c
+index 65ad5bf52c4..72a9323d72c 100644
+--- a/binutils/rename.c
++++ b/binutils/rename.c
+@@ -24,14 +24,9 @@
+
+ #ifdef HAVE_GOOD_UTIME_H
+ #include <utime.h>
+-#else /* ! HAVE_GOOD_UTIME_H */
+-#ifdef HAVE_UTIMES
++#elif defined HAVE_UTIMES
+ #include <sys/time.h>
+-#endif /* HAVE_UTIMES */
+-#endif /* ! HAVE_GOOD_UTIME_H */
+-
+-#if ! defined (_WIN32) || defined (__CYGWIN32__)
+-static int simple_copy (const char *, const char *);
++#endif
+
+ /* The number of bytes to copy at once. */
+ #define COPY_BUF 8192
+@@ -82,7 +77,6 @@ simple_copy (const char *from, const char *to)
+ }
+ return 0;
+ }
+-#endif /* __CYGWIN32__ or not _WIN32 */
+
+ /* Set the times of the file DESTINATION to be the same as those in
+ STATBUF. */
+@@ -91,122 +85,52 @@ void
+ set_times (const char *destination, const struct stat *statbuf)
+ {
+ int result;
+-
+- {
+ #ifdef HAVE_GOOD_UTIME_H
+- struct utimbuf tb;
+-
+- tb.actime = statbuf->st_atime;
+- tb.modtime = statbuf->st_mtime;
+- result = utime (destination, &tb);
+-#else /* ! HAVE_GOOD_UTIME_H */
+-#ifndef HAVE_UTIMES
+- long tb[2];
+-
+- tb[0] = statbuf->st_atime;
+- tb[1] = statbuf->st_mtime;
+- result = utime (destination, tb);
+-#else /* HAVE_UTIMES */
+- struct timeval tv[2];
+-
+- tv[0].tv_sec = statbuf->st_atime;
+- tv[0].tv_usec = 0;
+- tv[1].tv_sec = statbuf->st_mtime;
+- tv[1].tv_usec = 0;
+- result = utimes (destination, tv);
+-#endif /* HAVE_UTIMES */
+-#endif /* ! HAVE_GOOD_UTIME_H */
+- }
++ struct utimbuf tb;
++
++ tb.actime = statbuf->st_atime;
++ tb.modtime = statbuf->st_mtime;
++ result = utime (destination, &tb);
++#elif defined HAVE_UTIMES
++ struct timeval tv[2];
++
++ tv[0].tv_sec = statbuf->st_atime;
++ tv[0].tv_usec = 0;
++ tv[1].tv_sec = statbuf->st_mtime;
++ tv[1].tv_usec = 0;
++ result = utimes (destination, tv);
++#else
++ long tb[2];
++
++ tb[0] = statbuf->st_atime;
++ tb[1] = statbuf->st_mtime;
++ result = utime (destination, tb);
++#endif
+
+ if (result != 0)
+ non_fatal (_("%s: cannot set time: %s"), destination, strerror (errno));
+ }
+
+-#ifndef S_ISLNK
+-#ifdef S_IFLNK
+-#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
+-#else
+-#define S_ISLNK(m) 0
+-#define lstat stat
+-#endif
+-#endif
+-
+-/* Rename FROM to TO, copying if TO is a link.
+- Return 0 if ok, -1 if error. */
++/* Copy FROM to TO. TARGET_STAT has the file status that, if non-NULL,
++ is used to fix up timestamps. Return 0 if ok, -1 if error.
++ At one time this function renamed files, but file permissions are
++ tricky to update given the number of different schemes used by
++ various systems. So now we just copy. */
+
+ int
+-smart_rename (const char *from, const char *to, int preserve_dates ATTRIBUTE_UNUSED)
++smart_rename (const char *from, const char *to,
++ struct stat *target_stat)
+ {
+- bfd_boolean exists;
+- struct stat s;
+- int ret = 0;
+-
+- exists = lstat (to, &s) == 0;
+-
+-#if defined (_WIN32) && !defined (__CYGWIN32__)
+- /* Win32, unlike unix, will not erase `to' in `rename(from, to)' but
+- fail instead. Also, chown is not present. */
++ int ret;
+
+- if (exists)
+- remove (to);
+-
+- ret = rename (from, to);
++ ret = simple_copy (from, to);
+ if (ret != 0)
+- {
+- /* We have to clean up here. */
+- non_fatal (_("unable to rename '%s'; reason: %s"), to, strerror (errno));
+- unlink (from);
+- }
+-#else
+- /* Use rename only if TO is not a symbolic link and has
+- only one hard link, and we have permission to write to it. */
+- if (! exists
+- || (!S_ISLNK (s.st_mode)
+- && S_ISREG (s.st_mode)
+- && (s.st_mode & S_IWUSR)
+- && s.st_nlink == 1)
+- )
+- {
+- ret = rename (from, to);
+- if (ret == 0)
+- {
+- if (exists)
+- {
+- /* Try to preserve the permission bits and ownership of
+- TO. First get the mode right except for the setuid
+- bit. Then change the ownership. Then fix the setuid
+- bit. We do the chmod before the chown because if the
+- chown succeeds, and we are a normal user, we won't be
+- able to do the chmod afterward. We don't bother to
+- fix the setuid bit first because that might introduce
+- a fleeting security problem, and because the chown
+- will clear the setuid bit anyhow. We only fix the
+- setuid bit if the chown succeeds, because we don't
+- want to introduce an unexpected setuid file owned by
+- the user running objcopy. */
+- chmod (to, s.st_mode & 0777);
+- if (chown (to, s.st_uid, s.st_gid) >= 0)
+- chmod (to, s.st_mode & 07777);
+- }
+- }
+- else
+- {
+- /* We have to clean up here. */
+- non_fatal (_("unable to rename '%s'; reason: %s"), to, strerror (errno));
+- unlink (from);
+- }
+- }
+- else
+- {
+- ret = simple_copy (from, to);
+- if (ret != 0)
+- non_fatal (_("unable to copy file '%s'; reason: %s"), to, strerror (errno));
++ non_fatal (_("unable to copy file '%s'; reason: %s"),
++ to, strerror (errno));
+
+- if (preserve_dates)
+- set_times (to, &s);
+- unlink (from);
+- }
+-#endif /* _WIN32 && !__CYGWIN32__ */
++ if (target_stat != NULL)
++ set_times (to, target_stat);
++ unlink (from);
+
+ return ret;
+ }
+--
+2.17.1
+
diff --git a/poky/meta/recipes-devtools/binutils/binutils_2.36.bb b/poky/meta/recipes-devtools/binutils/binutils_2.36.bb
index a50d2ee7e..ee9617de1 100644
--- a/poky/meta/recipes-devtools/binutils/binutils_2.36.bb
+++ b/poky/meta/recipes-devtools/binutils/binutils_2.36.bb
@@ -25,7 +25,7 @@ EXTRA_OECONF_class-native = "--enable-targets=all \
--disable-sim \
--disable-werror"
-PACKAGECONFIG ??= ""
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'debuginfod', d)}"
PACKAGECONFIG[debuginfod] = "--with-debuginfod, --without-debuginfod, elfutils"
# gcc9.0 end up mis-compiling libbfd.so with O2 which then crashes on target
# So remove -O2 and use -Os as workaround
diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.10.1.bb b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.11.1.bb
index fca010d4a..b5e0561c1 100644
--- a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.10.1.bb
+++ b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.11.1.bb
@@ -7,28 +7,45 @@ btrfs and an utility (btrfs-convert) to make a btrfs filesystem from an ext3."
HOMEPAGE = "https://btrfs.wiki.kernel.org"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fcb02dc552a041dee27e4b85c7396067"
+LICENSE = "GPLv2 & LGPLv3+"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=fcb02dc552a041dee27e4b85c7396067 \
+ file://libbtrfsutil/COPYING.LESSER;md5=3000208d539ec061b899bce1d9ce9404 \
+"
SECTION = "base"
-DEPENDS = "util-linux attr e2fsprogs lzo acl"
+DEPENDS = "lzo util-linux zlib"
DEPENDS_append_class-target = " udev"
-RDEPENDS_${PN} = "libgcc"
-SRCREV = "f2ffce38b9c1477a7350bfe165f0e34b9bde40f5"
SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git \
file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \
"
+SRCREV = "8d5051f279f7994fb80536ef8f846f06d121d898"
+S = "${WORKDIR}/git"
-PACKAGECONFIG ??= "python"
+PACKAGECONFIG ??= " \
+ programs \
+ convert \
+ python \
+ crypto-builtin \
+"
PACKAGECONFIG[manpages] = "--enable-documentation, --disable-documentation, asciidoc-native xmlto-native"
+PACKAGECONFIG[programs] = "--enable-programs,--disable-programs"
+PACKAGECONFIG[convert] = "--enable-convert --with-convert=ext2,--disable-convert --without-convert,e2fsprogs"
PACKAGECONFIG[python] = "--enable-python,--disable-python,python3-setuptools-native"
PACKAGECONFIG[zstd] = "--enable-zstd,--disable-zstd,zstd"
+# Pick only one crypto provider
+PACKAGECONFIG[crypto-builtin] = "--with-crypto=builtin"
+PACKAGECONFIG[crypto-libgcrypt] = "--with-crypto=libgcrypt,,libgcrypt"
+PACKAGECONFIG[crypto-libsodium] = "--with-crypto=libsodium,,libsodium"
+PACKAGECONFIG[crypto-libkcapi] = "--with-crypto=libkcapi,,libkcapi"
+
inherit autotools-brokensep pkgconfig manpages
inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'distutils3-base', '', d)}
CLEANBROKEN = "1"
+EXTRA_OECONF = "--enable-largefile"
EXTRA_OECONF_append_libc-musl = " --disable-backtrace "
EXTRA_PYTHON_CFLAGS = "${DEBUG_PREFIX_MAP}"
EXTRA_PYTHON_CFLAGS_class-native = ""
@@ -41,7 +58,6 @@ do_configure_prepend() {
cp -f $(automake --print-libdir)/install-sh ${S}/config/
}
-S = "${WORKDIR}/git"
do_install_append() {
if [ "${@bb.utils.filter('PACKAGECONFIG', 'python', d)}" ]; then
@@ -49,4 +65,6 @@ do_install_append() {
fi
}
+RDEPENDS_${PN} = "libgcc"
+
BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/ccache/ccache/0001-doc-allow-disabling-docs-man-page-generation.patch b/poky/meta/recipes-devtools/ccache/ccache/0001-doc-allow-disabling-docs-man-page-generation.patch
new file mode 100644
index 000000000..51ca0e82f
--- /dev/null
+++ b/poky/meta/recipes-devtools/ccache/ccache/0001-doc-allow-disabling-docs-man-page-generation.patch
@@ -0,0 +1,161 @@
+From aebabafe085dd1b84027a1e31e5566c82528bd62 Mon Sep 17 00:00:00 2001
+From: Bastian Krause <bst@pengutronix.de>
+Date: Tue, 4 May 2021 11:41:56 +0200
+Subject: [PATCH] doc: allow disabling docs/man page generation
+
+The assumption that HTML documentation and manual pages should be
+generated if the required tools (asciidoc) are present is not always
+true. So add a cmake option that allows disabling the docs/man page
+generation. The default is to generate docs/man pages like before.
+
+Origin: https://github.com/ccache/ccache/pull/844
+Upstream-Status: Submitted
+Signed-off-by: Bastian Krause <bst@pengutronix.de>
+---
+ doc/CMakeLists.txt | 128 +++++++++++++++++++++++----------------------
+ 1 file changed, 66 insertions(+), 62 deletions(-)
+
+diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
+index c5ce224d..74b7831b 100644
+--- a/doc/CMakeLists.txt
++++ b/doc/CMakeLists.txt
+@@ -1,70 +1,74 @@
++option(BUILD_DOCS "Indicates whether HTML documentation and manual pages should be built or not" ON)
++
+ find_program(ASCIIDOC_EXE asciidoc)
+ mark_as_advanced(ASCIIDOC_EXE) # Don't show in CMake UIs
+
+-if(NOT ASCIIDOC_EXE)
+- message(WARNING "Could not find asciidoc; documentation will not be generated")
+-else()
+- #
+- # HTML documentation
+- #
+- function(generate_html adoc_file)
+- get_filename_component(base_name "${adoc_file}" NAME_WE)
+- set(html_file "${base_name}.html")
+- add_custom_command(
+- OUTPUT "${html_file}"
+- COMMAND
+- ${ASCIIDOC_EXE}
+- -o "${html_file}"
+- -a revnumber="${CCACHE_VERSION}"
+- -a toc
+- -b xhtml11
+- "${CMAKE_SOURCE_DIR}/${adoc_file}"
+- MAIN_DEPENDENCY "${CMAKE_SOURCE_DIR}/${adoc_file}"
+- )
+- set(html_files "${html_files}" "${html_file}" PARENT_SCOPE)
+- endfunction()
++if (BUILD_DOCS)
++ if(NOT ASCIIDOC_EXE)
++ message(WARNING "Could not find asciidoc; documentation will not be generated")
++ else()
++ #
++ # HTML documentation
++ #
++ function(generate_html adoc_file)
++ get_filename_component(base_name "${adoc_file}" NAME_WE)
++ set(html_file "${base_name}.html")
++ add_custom_command(
++ OUTPUT "${html_file}"
++ COMMAND
++ ${ASCIIDOC_EXE}
++ -o "${html_file}"
++ -a revnumber="${CCACHE_VERSION}"
++ -a toc
++ -b xhtml11
++ "${CMAKE_SOURCE_DIR}/${adoc_file}"
++ MAIN_DEPENDENCY "${CMAKE_SOURCE_DIR}/${adoc_file}"
++ )
++ set(html_files "${html_files}" "${html_file}" PARENT_SCOPE)
++ endfunction()
+
+- generate_html(LICENSE.adoc)
+- generate_html(doc/AUTHORS.adoc)
+- generate_html(doc/MANUAL.adoc)
+- generate_html(doc/NEWS.adoc)
++ generate_html(LICENSE.adoc)
++ generate_html(doc/AUTHORS.adoc)
++ generate_html(doc/MANUAL.adoc)
++ generate_html(doc/NEWS.adoc)
+
+- add_custom_target(doc-html DEPENDS "${html_files}")
+- set(doc_files "${html_files}")
++ add_custom_target(doc-html DEPENDS "${html_files}")
++ set(doc_files "${html_files}")
+
+- #
+- # Man page
+- #
+- find_program(A2X_EXE a2x)
+- mark_as_advanced(A2X_EXE) # Don't show in CMake UIs
+- if(NOT A2X_EXE)
+- message(WARNING "Could not find a2x; man page will not be generated")
+- else()
+- # MANUAL.adoc -> MANUAL.xml -> man page
+- add_custom_command(
+- OUTPUT MANUAL.xml
+- COMMAND
+- ${ASCIIDOC_EXE}
+- -o -
+- -a revnumber=${CCACHE_VERSION}
+- -d manpage
+- -b docbook "${CMAKE_SOURCE_DIR}/doc/MANUAL.adoc"
+- | perl -pe 's!<literal>\(.*?\)</literal>!<emphasis role="strong">\\1</emphasis>!g'
+- >MANUAL.xml
+- MAIN_DEPENDENCY "${CMAKE_SOURCE_DIR}/doc/MANUAL.adoc"
+- )
+- add_custom_command(
+- OUTPUT ccache.1
+- COMMAND ${A2X_EXE} --doctype manpage --format manpage MANUAL.xml
+- MAIN_DEPENDENCY MANUAL.xml
+- )
+- add_custom_target(doc-man-page DEPENDS ccache.1)
+- install(
+- FILES "${CMAKE_CURRENT_BINARY_DIR}/ccache.1"
+- DESTINATION "${CMAKE_INSTALL_MANDIR}/man1"
+- )
+- set(doc_files "${doc_files}" ccache.1)
+- endif()
++ #
++ # Man page
++ #
++ find_program(A2X_EXE a2x)
++ mark_as_advanced(A2X_EXE) # Don't show in CMake UIs
++ if(NOT A2X_EXE)
++ message(WARNING "Could not find a2x; man page will not be generated")
++ else()
++ # MANUAL.adoc -> MANUAL.xml -> man page
++ add_custom_command(
++ OUTPUT MANUAL.xml
++ COMMAND
++ ${ASCIIDOC_EXE}
++ -o -
++ -a revnumber=${CCACHE_VERSION}
++ -d manpage
++ -b docbook "${CMAKE_SOURCE_DIR}/doc/MANUAL.adoc"
++ | perl -pe 's!<literal>\(.*?\)</literal>!<emphasis role="strong">\\1</emphasis>!g'
++ >MANUAL.xml
++ MAIN_DEPENDENCY "${CMAKE_SOURCE_DIR}/doc/MANUAL.adoc"
++ )
++ add_custom_command(
++ OUTPUT ccache.1
++ COMMAND ${A2X_EXE} --doctype manpage --format manpage MANUAL.xml
++ MAIN_DEPENDENCY MANUAL.xml
++ )
++ add_custom_target(doc-man-page DEPENDS ccache.1)
++ install(
++ FILES "${CMAKE_CURRENT_BINARY_DIR}/ccache.1"
++ DESTINATION "${CMAKE_INSTALL_MANDIR}/man1"
++ )
++ set(doc_files "${doc_files}" ccache.1)
++ endif()
+
+- add_custom_target(doc ALL DEPENDS "${doc_files}")
++ add_custom_target(doc ALL DEPENDS "${doc_files}")
++ endif()
+ endif()
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/ccache/ccache_4.2.bb b/poky/meta/recipes-devtools/ccache/ccache_4.2.1.bb
index 9957bc7e6..8dd5893d6 100644
--- a/poky/meta/recipes-devtools/ccache/ccache_4.2.bb
+++ b/poky/meta/recipes-devtools/ccache/ccache_4.2.1.bb
@@ -7,12 +7,14 @@ HOMEPAGE = "http://ccache.samba.org"
SECTION = "devel"
LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=28afb89f649f309e7ac1aab554564637"
+LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=698a26b57e513d678e1e7727bf56395b"
DEPENDS = "zstd"
-SRC_URI = "https://github.com/ccache/ccache/releases/download/v${PV}/${BP}.tar.gz"
-SRC_URI[sha256sum] = "dbf139ff32031b54cb47f2d7983269f328df14b5a427882f89f7721e5c411b7e"
+SRC_URI = "https://github.com/ccache/ccache/releases/download/v${PV}/${BP}.tar.gz \
+ file://0001-doc-allow-disabling-docs-man-page-generation.patch \
+ "
+SRC_URI[sha256sum] = "320d2b17d2f76393e5d4bb28c8dee5ca783248e9cd23dff0654694d60f8a4b62"
UPSTREAM_CHECK_URI = "https://github.com/ccache/ccache/releases/"
@@ -21,3 +23,5 @@ inherit cmake
PATCHTOOL = "patch"
BBCLASSEXTEND = "native nativesdk"
+
+PACKAGECONFIG[docs] = "-DBUILD_DOCS=ON,-DBUILD_DOCS=OFF,asciidoc"
diff --git a/poky/meta/recipes-devtools/elfutils/elfutils_0.183.bb b/poky/meta/recipes-devtools/elfutils/elfutils_0.183.bb
index c0833686d..7aebaf1b6 100644
--- a/poky/meta/recipes-devtools/elfutils/elfutils_0.183.bb
+++ b/poky/meta/recipes-devtools/elfutils/elfutils_0.183.bb
@@ -22,6 +22,7 @@ SRC_URI = "https://sourceware.org/elfutils/ftp/${PV}/${BP}.tar.bz2 \
file://ptest.patch \
file://0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch \
file://0001-add-support-for-ipkg-to-debuginfod.cxx.patch \
+ file://0001-debuginfod-debuginfod-client.c-correct-string-format.patch \
"
SRC_URI_append_libc-musl = " \
file://0002-musl-libs.patch \
@@ -38,13 +39,13 @@ EXTRA_OECONF = "--program-prefix=eu-"
DEPENDS_BZIP2 = "bzip2-replacement-native"
DEPENDS_BZIP2_class-target = "bzip2"
-PACKAGECONFIG ??= ""
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'debuginfod', 'debuginfod libdebuginfod', '', d)}"
PACKAGECONFIG[bzip2] = "--with-bzlib,--without-bzlib,${DEPENDS_BZIP2}"
PACKAGECONFIG[xz] = "--with-lzma,--without-lzma,xz"
PACKAGECONFIG[libdebuginfod] = "--enable-libdebuginfod,--disable-libdebuginfod,curl"
PACKAGECONFIG[debuginfod] = "--enable-debuginfod,--disable-debuginfod,libarchive sqlite3 libmicrohttpd"
-RDEPENDS_${PN}-ptest += "libasm libelf bash make coreutils ${PN}-binutils"
+RDEPENDS_${PN}-ptest += "libasm libelf bash make coreutils ${PN}-binutils iproute2-ss bsdtar"
EXTRA_OECONF_append_class-target = " --disable-tests-rpath"
@@ -86,6 +87,7 @@ do_install_ptest() {
cp -r ${B}/tests/* ${D}${PTEST_PATH}/tests
cp -r ${B}/config.h ${D}${PTEST_PATH}
cp -r ${B}/backends ${D}${PTEST_PATH}
+ cp -r ${B}/debuginfod ${D}${PTEST_PATH}
sed -i '/^Makefile:/c Makefile:' ${D}${PTEST_PATH}/tests/Makefile
find ${D}${PTEST_PATH} -type f -name *.[hoc] | xargs -i rm {}
fi
@@ -142,6 +144,7 @@ INHIBIT_PACKAGE_STRIP_FILES = "\
${PKGD}${PTEST_PATH}/tests/backtrace-data \
${PKGD}${PTEST_PATH}/tests/backtrace-dwarf \
${PKGD}${PTEST_PATH}/tests/deleted \
+ ${PKGD}${PTEST_PATH}/tests/dwfllines \
${PKGD}${PTEST_PATH}/src/strip \
${PKGD}${PTEST_PATH}/src/addr2line \
${PKGD}${PTEST_PATH}/src/elfcmp \
@@ -159,4 +162,4 @@ INHIBIT_PACKAGE_STRIP_FILES = "\
${PKGD}${PTEST_PATH}/backends/libebl_x86_64.so \
"
-PRIVATE_LIBS_${PN}-ptest = "libdw.so.1 libelf.so.1 libasm.so.1"
+PRIVATE_LIBS_${PN}-ptest = "libdw.so.1 libelf.so.1 libasm.so.1 libdebuginfod.so.1"
diff --git a/poky/meta/recipes-devtools/elfutils/files/0001-debuginfod-debuginfod-client.c-correct-string-format.patch b/poky/meta/recipes-devtools/elfutils/files/0001-debuginfod-debuginfod-client.c-correct-string-format.patch
new file mode 100644
index 000000000..5bd6ba961
--- /dev/null
+++ b/poky/meta/recipes-devtools/elfutils/files/0001-debuginfod-debuginfod-client.c-correct-string-format.patch
@@ -0,0 +1,74 @@
+From 14dfe84943b8f9e6f504536d8735ef6356210b40 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 19 Apr 2021 23:29:10 +0200
+Subject: [PATCH] debuginfod/debuginfod-client.c: correct string format on
+ 32bit arches with 64bit time_t
+
+Use intmax_t to print time_t
+
+time_t is platform dependent and some of architectures e.g.
+x32, riscv32, arc use 64bit time_t even while they are 32bit
+architectures, therefore directly using integer printf formats will not
+work portably, use intmax_t to typecast time_t into printf family of
+functions
+
+Upstream-Status: Pending
+
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ debuginfod/debuginfod-client.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c
+index de26af5..39e28f2 100644
+--- a/debuginfod/debuginfod-client.c
++++ b/debuginfod/debuginfod-client.c
+@@ -229,7 +229,7 @@ debuginfod_init_cache (char *cache_path, char *interval_path, char *maxage_path)
+ if (fd < 0)
+ return -errno;
+
+- if (dprintf(fd, "%ld", cache_clean_default_interval_s) < 0)
++ if (dprintf(fd, "%jd", (intmax_t)cache_clean_default_interval_s) < 0)
+ return -errno;
+
+ /* init max age config file. */
+@@ -237,7 +237,7 @@ debuginfod_init_cache (char *cache_path, char *interval_path, char *maxage_path)
+ && (fd = open(maxage_path, O_CREAT | O_RDWR, DEFFILEMODE)) < 0)
+ return -errno;
+
+- if (dprintf(fd, "%ld", cache_default_max_unused_age_s) < 0)
++ if (dprintf(fd, "%jd", (intmax_t)cache_default_max_unused_age_s) < 0)
+ return -errno;
+
+ return 0;
+@@ -263,7 +263,7 @@ debuginfod_clean_cache(debuginfod_client *c,
+ if (interval_file == NULL)
+ return -errno;
+
+- int rc = fprintf(interval_file, "%ld", cache_clean_default_interval_s);
++ int rc = fprintf(interval_file, "%jd", (intmax_t)cache_clean_default_interval_s);
+ fclose(interval_file);
+
+ if (rc < 0)
+@@ -275,7 +275,7 @@ debuginfod_clean_cache(debuginfod_client *c,
+ interval_file = fopen(interval_path, "r");
+ if (interval_file)
+ {
+- if (fscanf(interval_file, "%ld", &clean_interval) != 1)
++ if (fscanf(interval_file, "%jd", (intmax_t*)(&clean_interval)) != 1)
+ clean_interval = cache_clean_default_interval_s;
+ fclose(interval_file);
+ }
+@@ -291,7 +291,7 @@ debuginfod_clean_cache(debuginfod_client *c,
+ max_unused_file = fopen(max_unused_path, "r");
+ if (max_unused_file)
+ {
+- if (fscanf(max_unused_file, "%ld", &max_unused_age) != 1)
++ if (fscanf(max_unused_file, "%jd", (intmax_t*)(&max_unused_age)) != 1)
+ max_unused_age = cache_default_max_unused_age_s;
+ fclose(max_unused_file);
+ }
+--
+2.31.1
+
diff --git a/poky/meta/recipes-devtools/file/file_5.39.bb b/poky/meta/recipes-devtools/file/file_5.40.bb
index abaa8149a..ec79839bd 100644
--- a/poky/meta/recipes-devtools/file/file_5.39.bb
+++ b/poky/meta/recipes-devtools/file/file_5.40.bb
@@ -11,10 +11,9 @@ LIC_FILES_CHKSUM = "file://COPYING;beginline=2;md5=0251eaec1188b20d9a72c502ecfdd
DEPENDS = "file-replacement-native"
DEPENDS_class-native = "bzip2-replacement-native"
-SRC_URI = "git://github.com/file/file.git \
- file://0001-src-compress.c-correct-header-define-for-xz-lzma.patch"
+SRC_URI = "git://github.com/file/file.git"
-SRCREV = "87731415de945660b00f02207d8e9d986ef9b82e"
+SRCREV = "f49fda6f52a9477d817dbd9c06afab02daf025f8"
S = "${WORKDIR}/git"
inherit autotools update-alternatives
diff --git a/poky/meta/recipes-devtools/file/files/0001-src-compress.c-correct-header-define-for-xz-lzma.patch b/poky/meta/recipes-devtools/file/files/0001-src-compress.c-correct-header-define-for-xz-lzma.patch
deleted file mode 100644
index f8ba2f615..000000000
--- a/poky/meta/recipes-devtools/file/files/0001-src-compress.c-correct-header-define-for-xz-lzma.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From ffb6ebdb42590cb9f7d3f5177b7b820a9edc4c81 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Sun, 18 Oct 2020 23:40:42 +0200
-Subject: [PATCH] src/compress.c: correct header define for xz/lzma
-
-Upstream-Status: Submitted [https://github.com/file/file/pull/98]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- src/compress.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/compress.c b/src/compress.c
-index 67f21583..9670b72c 100644
---- a/src/compress.c
-+++ b/src/compress.c
-@@ -71,7 +71,7 @@ typedef void (*sig_t)(int);
- #include <bzlib.h>
- #endif
-
--#if defined(HAVE_XZLIB_H) && defined(XZLIBSUPPORT)
-+#if defined(HAVE_LZMA_H) && defined(XZLIBSUPPORT)
- #define BUILTIN_XZLIB
- #include <lzma.h>
- #endif
---
-2.28.0
-
diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.2.inc b/poky/meta/recipes-devtools/gcc/gcc-11.1.inc
index c0cd8b31d..713002266 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-10.2.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-11.1.inc
@@ -2,11 +2,11 @@ require gcc-common.inc
# Third digit in PV should be incremented after a minor release
-PV = "10.2.0"
+PV = "11.1.0"
# BINV should be incremented to a revision after a minor gcc release
-BINV = "10.2.0"
+BINV = "11.1.0"
FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc:${FILE_DIRNAME}/gcc/backport:"
@@ -23,9 +23,9 @@ LIC_FILES_CHKSUM = "\
file://COPYING.RUNTIME;md5=fe60d87048567d4fe8c8a0ed2448bcc8 \
"
-BASEURI ?= "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.xz"
-#RELEASE ?= "93a49d2d2292893b9b7f38132df949c70942838c"
+#RELEASE ?= "5b2ac9b40c325e9209c0bd55955db84aad4a0cc5"
#BASEURI ?= "https://github.com/gcc-mirror/gcc/archive/${RELEASE}.zip;downloadfilename=gcc-${PV}-${RELEASE}.zip"
+BASEURI ?= "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.xz"
SRC_URI = "\
${BASEURI} \
file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \
@@ -65,15 +65,11 @@ SRC_URI = "\
file://0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch \
file://0036-mingw32-Enable-operation_not_supported.patch \
file://0037-libatomic-Do-not-enforce-march-on-aarch64.patch \
- file://0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch \
- file://0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch \
- file://0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch \
- file://0001-aarch64-Fix-up-__aarch64_cas16_acq_rel-fallback.patch \
- file://0001-libatomic-libgomp-libitc-Fix-bootstrap-PR70454.patch \
"
-SRC_URI[sha256sum] = "b8dd4368bb9c7f0b98188317ee0254dd8cc99d1e3a18d0ff146c855fe16c1d8c"
+SRC_URI[sha256sum] = "4c4a6fb8a8396059241c2e674b85b351c26a5d678274007f076957afa1cc9ddf"
S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}"
+
# For dev release snapshotting
#S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${RELEASE}"
#B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}"
diff --git a/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc b/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
index d3875c94d..878feaf81 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
@@ -75,6 +75,7 @@ FILES_${PN} = "\
${gcclibdir}/${TARGET_SYS}/${BINV}/include-fixed \
${gcclibdir}/${TARGET_SYS}/${BINV}/plugin/include/ \
${gcclibdir}/${TARGET_SYS}/${BINV}/plugin/gtype.* \
+ ${libdir}/bfd-plugins/*.so \
${includedir}/c++/${BINV} \
${prefix}/${TARGET_SYS}/bin/* \
${prefix}/${TARGET_SYS}/lib/* \
@@ -92,6 +93,8 @@ EXEEXT = ""
# Compute how to get from libexecdir to bindir in python (easier than shell)
BINRELPATH = "${@os.path.relpath(d.expand("${bindir}"), d.expand("${libexecdir}/gcc/${TARGET_SYS}/${BINV}"))}"
+# linker plugin path
+LIBRELPATH = "${@os.path.relpath(d.expand("${libexecdir}/gcc/${TARGET_SYS}/${BINV}"), d.expand("${libdir}/bfd-plugins"))}"
do_install () {
( cd ${B}/${TARGET_SYS}/libgcc; oe_runmake 'DESTDIR=${D}' install-unwind_h-forbuild install-unwind_h )
@@ -136,8 +139,12 @@ do_install () {
cp ${S}/libquadmath/quadmath.h ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include/
cp ${S}/libquadmath/quadmath_weak.h ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include/
+ # install LTO linker plugins where binutils tools can find it
+ install -d ${D}${libdir}/bfd-plugins
+ ln -sf ${LIBRELPATH}/liblto_plugin.so ${D}${libdir}/bfd-plugins/liblto_plugin.so
+
chown -R root:root ${D}
-
+
cross_canadian_bindirlinks
for i in linux ${CANADIANEXTRAOS}
diff --git a/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_10.2.bb b/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_11.1.bb
index bf53c5cd7..bf53c5cd7 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_10.2.bb
+++ b/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_11.1.bb
diff --git a/poky/meta/recipes-devtools/gcc/gcc-cross.inc b/poky/meta/recipes-devtools/gcc/gcc-cross.inc
index e08807afa..dca4036ab 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-cross.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-cross.inc
@@ -83,6 +83,8 @@ INHIBIT_PACKAGE_STRIP = "1"
# Compute how to get from libexecdir to bindir in python (easier than shell)
BINRELPATH = "${@os.path.relpath(d.expand("${STAGING_DIR_NATIVE}${prefix_native}/bin/${TARGET_SYS}"), d.expand("${libexecdir}/gcc/${TARGET_SYS}/${BINV}"))}"
+# linker plugin path
+LIBRELPATH = "${@os.path.relpath(d.expand("${libexecdir}/gcc/${TARGET_SYS}/${BINV}"), d.expand("${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/bfd-plugins"))}"
do_install () {
( cd ${B}/${TARGET_SYS}/libgcc; oe_runmake 'DESTDIR=${D}' install-unwind_h-forbuild install-unwind_h )
@@ -92,7 +94,7 @@ do_install () {
install -d ${D}${target_libdir}
# Link gfortran to g77 to satisfy not-so-smart configure or hard coded g77
- # gfortran is fully backwards compatible. This is a safe and practical solution.
+ # gfortran is fully backwards compatible. This is a safe and practical solution.
if [ -n "${@d.getVar('FORTRAN')}" ]; then
ln -sf ${STAGING_DIR_NATIVE}${prefix_native}/bin/${TARGET_PREFIX}gfortran ${STAGING_DIR_NATIVE}${prefix_native}/bin/${TARGET_PREFIX}g77 || true
fortsymlinks="g77 gfortran"
@@ -118,6 +120,10 @@ do_install () {
cp ${S}/libquadmath/quadmath_weak.h ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include/
find ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include-fixed -type f -not -name "README" -not -name limits.h -not -name syslimits.h | xargs rm -f
+
+ # install LTO linker plugins where binutils tools can find it
+ install -d ${D}${libdir}/bfd-plugins
+ ln -sf ${LIBRELPATH}/liblto_plugin.so ${D}${libdir}/bfd-plugins/liblto_plugin.so
}
do_package[noexec] = "1"
diff --git a/poky/meta/recipes-devtools/gcc/gcc-cross_10.2.bb b/poky/meta/recipes-devtools/gcc/gcc-cross_11.1.bb
index b43cca0c5..b43cca0c5 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-cross_10.2.bb
+++ b/poky/meta/recipes-devtools/gcc/gcc-cross_11.1.bb
diff --git a/poky/meta/recipes-devtools/gcc/gcc-crosssdk_10.2.bb b/poky/meta/recipes-devtools/gcc/gcc-crosssdk_11.1.bb
index 40a6c4fef..40a6c4fef 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-crosssdk_10.2.bb
+++ b/poky/meta/recipes-devtools/gcc/gcc-crosssdk_11.1.bb
diff --git a/poky/meta/recipes-devtools/gcc/gcc-runtime.inc b/poky/meta/recipes-devtools/gcc/gcc-runtime.inc
index 9dcce2653..59d9a2468 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-runtime.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-runtime.inc
@@ -49,16 +49,18 @@ RUNTIMETARGET_libc-newlib = "libstdc++-v3"
# libiberty
# libgfortran needs separate recipe due to libquadmath dependency
-SLIB = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}"
-SLIB_NEW = "/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
+# Relative path to be repaced into debug info
+REL_S = "/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
DEBUG_PREFIX_MAP_class-target = " \
-fdebug-prefix-map=${WORKDIR}/recipe-sysroot= \
-fdebug-prefix-map=${WORKDIR}/recipe-sysroot-native= \
- -fdebug-prefix-map=${SLIB}=${SLIB_NEW} \
- -fdebug-prefix-map=${SLIB}/include=${SLIB_NEW}/libstdc++-v3/../include \
- -fdebug-prefix-map=${SLIB}/libiberty=${SLIB_NEW}/libstdc++-v3/../libiberty \
- -fdebug-prefix-map=${B}=${SLIB_NEW} \
+ -fdebug-prefix-map=${S}=${REL_S} \
+ -fdebug-prefix-map=${S}/include=${REL_S}/libstdc++-v3/../include \
+ -fdebug-prefix-map=${S}/libiberty=${REL_S}/libstdc++-v3/../libiberty \
+ -fdebug-prefix-map=${S}/libgcc=${REL_S}/libstdc++-v3/../libgcc \
+ -fdebug-prefix-map=${B}=${REL_S} \
+ -ffile-prefix-map=${B}/${HOST_SYS}/libstdc++-v3/include=${includedir}/c++/${BINV} \
"
do_configure () {
diff --git a/poky/meta/recipes-devtools/gcc/gcc-runtime_10.2.bb b/poky/meta/recipes-devtools/gcc/gcc-runtime_11.1.bb
index dd430b57e..dd430b57e 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-runtime_10.2.bb
+++ b/poky/meta/recipes-devtools/gcc/gcc-runtime_11.1.bb
diff --git a/poky/meta/recipes-devtools/gcc/gcc-sanitizers_10.2.bb b/poky/meta/recipes-devtools/gcc/gcc-sanitizers_11.1.bb
index f3c705811..f3c705811 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-sanitizers_10.2.bb
+++ b/poky/meta/recipes-devtools/gcc/gcc-sanitizers_11.1.bb
diff --git a/poky/meta/recipes-devtools/gcc/gcc-source_10.2.bb b/poky/meta/recipes-devtools/gcc/gcc-source_11.1.bb
index b890fa33e..b890fa33e 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-source_10.2.bb
+++ b/poky/meta/recipes-devtools/gcc/gcc-source_11.1.bb
diff --git a/poky/meta/recipes-devtools/gcc/gcc-target.inc b/poky/meta/recipes-devtools/gcc/gcc-target.inc
index 164a669aa..0ee3e83d4 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-target.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-target.inc
@@ -54,6 +54,7 @@ FILES_${PN} = "\
${gcclibdir}/${TARGET_SYS}/${BINV}/lib*${SOLIBS} \
${gcclibdir}/${TARGET_SYS}/${BINV}/include \
${gcclibdir}/${TARGET_SYS}/${BINV}/include-fixed \
+ ${libdir}/bfd-plugins/*.so \
"
INSANE_SKIP_${PN} += "dev-so"
RRECOMMENDS_${PN} += "\
@@ -215,7 +216,8 @@ do_install () {
ln -sf ${bindir}/${TARGET_PREFIX}cpp ${D}${base_libdir}/cpp
ln -sf g++ c++
ln -sf gcc cc
-
+ install -d ${D}${libdir}/bfd-plugins
+ ln -sf ${libexecdir}/gcc/${TARGET_SYS}/${BINV}/liblto_plugin.so ${D}${libdir}/bfd-plugins/liblto_plugin.so
chown -R root:root ${D}
}
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0001-aarch64-Fix-up-__aarch64_cas16_acq_rel-fallback.patch b/poky/meta/recipes-devtools/gcc/gcc/0001-aarch64-Fix-up-__aarch64_cas16_acq_rel-fallback.patch
deleted file mode 100644
index c060accd9..000000000
--- a/poky/meta/recipes-devtools/gcc/gcc/0001-aarch64-Fix-up-__aarch64_cas16_acq_rel-fallback.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-From fd2ec4542fd2975e6d3f2f1c1a2639945a84f9e1 Mon Sep 17 00:00:00 2001
-From: Jakub Jelinek <jakub@redhat.com>
-Date: Mon, 3 Aug 2020 22:55:28 +0200
-Subject: [PATCH] aarch64: Fix up __aarch64_cas16_acq_rel fallback
-
-As mentioned in the PR, the fallback path when LSE is unavailable writes
-incorrect registers to the memory if the previous content compares equal
-to x0, x1 - it writes copy of x0, x1 from the start of function, but it
-should write x2, x3.
-
-2020-08-03 Jakub Jelinek <jakub@redhat.com>
-
- PR target/96402
- * config/aarch64/lse.S (__aarch64_cas16_acq_rel): Use x2, x3 instead
- of x(tmp0), x(tmp1) in STXP arguments.
-
- * gcc.target/aarch64/pr96402.c: New test.
-
-(cherry picked from commit 90b43856fdff7d96d93d22970eca8a86c56e0ddc)
----
- gcc/testsuite/gcc.target/aarch64/pr96402.c | 16 ++++++++++++++++
- libgcc/config/aarch64/lse.S | 2 +-
- 2 files changed, 17 insertions(+), 1 deletion(-)
- create mode 100644 gcc/testsuite/gcc.target/aarch64/pr96402.c
-
-diff --git a/gcc/testsuite/gcc.target/aarch64/pr96402.c b/gcc/testsuite/gcc.target/aarch64/pr96402.c
-new file mode 100644
-index 00000000000..fa2dddfac15
---- /dev/null
-+++ b/gcc/testsuite/gcc.target/aarch64/pr96402.c
-@@ -0,0 +1,16 @@
-+/* PR target/96402 */
-+/* { dg-do run { target int128 } } */
-+/* { dg-options "-moutline-atomics" } */
-+
-+int
-+main ()
-+{
-+ __int128 a = 0;
-+ __sync_val_compare_and_swap (&a, (__int128) 0, (__int128) 1);
-+ if (a != 1)
-+ __builtin_abort ();
-+ __sync_val_compare_and_swap (&a, (__int128) 1, (((__int128) 0xdeadbeeffeedbac1ULL) << 64) | 0xabadcafe00c0ffeeULL);
-+ if (a != ((((__int128) 0xdeadbeeffeedbac1ULL) << 64) | 0xabadcafe00c0ffeeULL))
-+ __builtin_abort ();
-+ return 0;
-+}
-diff --git a/libgcc/config/aarch64/lse.S b/libgcc/config/aarch64/lse.S
-index 64691c601c1..c8fbfbce4fd 100644
---- a/libgcc/config/aarch64/lse.S
-+++ b/libgcc/config/aarch64/lse.S
-@@ -203,7 +203,7 @@ STARTFN NAME(cas)
- cmp x0, x(tmp0)
- ccmp x1, x(tmp1), #0, eq
- bne 1f
-- STXP w(tmp2), x(tmp0), x(tmp1), [x4]
-+ STXP w(tmp2), x2, x3, [x4]
- cbnz w(tmp2), 0b
- 1: ret
-
---
-2.26.2
-
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch b/poky/meta/recipes-devtools/gcc/gcc/0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch
deleted file mode 100644
index 73de4c759..000000000
--- a/poky/meta/recipes-devtools/gcc/gcc/0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch
+++ /dev/null
@@ -1,202 +0,0 @@
-CVE: CVE-2020-13844
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-From 1ff243934ac443b5f58cd02a5012ce58ecc31fb2 Mon Sep 17 00:00:00 2001
-From: Matthew Malcomson <matthew.malcomson@arm.com>
-Date: Thu, 9 Jul 2020 09:11:58 +0100
-Subject: [PATCH 1/3] aarch64: New Straight Line Speculation (SLS) mitigation
- flags
-
-Here we introduce the flags that will be used for straight line speculation.
-
-The new flag introduced is `-mharden-sls=`.
-This flag can take arguments of `none`, `all`, or a comma seperated list of one
-or more of `retbr` or `blr`.
-`none` indicates no special mitigation of the straight line speculation
-vulnerability.
-`all` requests all mitigations currently implemented.
-`retbr` requests that the RET and BR instructions have a speculation barrier
-inserted after them.
-`blr` requests that BLR instructions are replaced by a BL to a function stub
-using a BR with a speculation barrier after it.
-
-Setting this on a per-function basis using attributes or the like is not
-enabled, but may be in the future.
-
-gcc/ChangeLog:
-
-2020-06-02 Matthew Malcomson <matthew.malcomson@arm.com>
-
- * config/aarch64/aarch64-protos.h (aarch64_harden_sls_retbr_p):
- New.
- (aarch64_harden_sls_blr_p): New.
- * config/aarch64/aarch64.c (enum aarch64_sls_hardening_type):
- New.
- (aarch64_harden_sls_retbr_p): New.
- (aarch64_harden_sls_blr_p): New.
- (aarch64_validate_sls_mitigation): New.
- (aarch64_override_options): Parse options for SLS mitigation.
- * config/aarch64/aarch64.opt (-mharden-sls): New option.
- * doc/invoke.texi: Document new option.
----
- gcc/config/aarch64/aarch64-protos.h | 3 ++
- gcc/config/aarch64/aarch64.c | 76 +++++++++++++++++++++++++++++++++++++
- gcc/config/aarch64/aarch64.opt | 4 ++
- gcc/doc/invoke.texi | 12 ++++++
- 4 files changed, 95 insertions(+)
-
-diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h
-index 723d9ba..eb5f4b4 100644
---- a/gcc/config/aarch64/aarch64-protos.h
-+++ b/gcc/config/aarch64/aarch64-protos.h
-@@ -781,4 +781,7 @@ extern const atomic_ool_names aarch64_ool_ldeor_names;
-
- tree aarch64_resolve_overloaded_builtin_general (location_t, tree, void *);
-
-+extern bool aarch64_harden_sls_retbr_p (void);
-+extern bool aarch64_harden_sls_blr_p (void);
-+
- #endif /* GCC_AARCH64_PROTOS_H */
-diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
-index b86434a..437a9cf 100644
---- a/gcc/config/aarch64/aarch64.c
-+++ b/gcc/config/aarch64/aarch64.c
-@@ -14494,6 +14494,79 @@ aarch64_validate_mcpu (const char *str, const struct processor **res,
- return false;
- }
-
-+/* Straight line speculation indicators. */
-+enum aarch64_sls_hardening_type
-+{
-+ SLS_NONE = 0,
-+ SLS_RETBR = 1,
-+ SLS_BLR = 2,
-+ SLS_ALL = 3,
-+};
-+static enum aarch64_sls_hardening_type aarch64_sls_hardening;
-+
-+/* Return whether we should mitigatate Straight Line Speculation for the RET
-+ and BR instructions. */
-+bool
-+aarch64_harden_sls_retbr_p (void)
-+{
-+ return aarch64_sls_hardening & SLS_RETBR;
-+}
-+
-+/* Return whether we should mitigatate Straight Line Speculation for the BLR
-+ instruction. */
-+bool
-+aarch64_harden_sls_blr_p (void)
-+{
-+ return aarch64_sls_hardening & SLS_BLR;
-+}
-+
-+/* As of yet we only allow setting these options globally, in the future we may
-+ allow setting them per function. */
-+static void
-+aarch64_validate_sls_mitigation (const char *const_str)
-+{
-+ char *token_save = NULL;
-+ char *str = NULL;
-+
-+ if (strcmp (const_str, "none") == 0)
-+ {
-+ aarch64_sls_hardening = SLS_NONE;
-+ return;
-+ }
-+ if (strcmp (const_str, "all") == 0)
-+ {
-+ aarch64_sls_hardening = SLS_ALL;
-+ return;
-+ }
-+
-+ char *str_root = xstrdup (const_str);
-+ str = strtok_r (str_root, ",", &token_save);
-+ if (!str)
-+ error ("invalid argument given to %<-mharden-sls=%>");
-+
-+ int temp = SLS_NONE;
-+ while (str)
-+ {
-+ if (strcmp (str, "blr") == 0)
-+ temp |= SLS_BLR;
-+ else if (strcmp (str, "retbr") == 0)
-+ temp |= SLS_RETBR;
-+ else if (strcmp (str, "none") == 0 || strcmp (str, "all") == 0)
-+ {
-+ error ("%<%s%> must be by itself for %<-mharden-sls=%>", str);
-+ break;
-+ }
-+ else
-+ {
-+ error ("invalid argument %<%s%> for %<-mharden-sls=%>", str);
-+ break;
-+ }
-+ str = strtok_r (NULL, ",", &token_save);
-+ }
-+ aarch64_sls_hardening = (aarch64_sls_hardening_type) temp;
-+ free (str_root);
-+}
-+
- /* Parses CONST_STR for branch protection features specified in
- aarch64_branch_protect_types, and set any global variables required. Returns
- the parsing result and assigns LAST_STR to the last processed token from
-@@ -14738,6 +14811,9 @@ aarch64_override_options (void)
- selected_arch = NULL;
- selected_tune = NULL;
-
-+ if (aarch64_harden_sls_string)
-+ aarch64_validate_sls_mitigation (aarch64_harden_sls_string);
-+
- if (aarch64_branch_protection_string)
- aarch64_validate_mbranch_protection (aarch64_branch_protection_string);
-
-diff --git a/gcc/config/aarch64/aarch64.opt b/gcc/config/aarch64/aarch64.opt
-index d99d14c..5170361 100644
---- a/gcc/config/aarch64/aarch64.opt
-+++ b/gcc/config/aarch64/aarch64.opt
-@@ -71,6 +71,10 @@ mgeneral-regs-only
- Target Report RejectNegative Mask(GENERAL_REGS_ONLY) Save
- Generate code which uses only the general registers.
-
-+mharden-sls=
-+Target RejectNegative Joined Var(aarch64_harden_sls_string)
-+Generate code to mitigate against straight line speculation.
-+
- mfix-cortex-a53-835769
- Target Report Var(aarch64_fix_a53_err835769) Init(2) Save
- Workaround for ARM Cortex-A53 Erratum number 835769.
-diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
-index a2794a6..bd5b77a 100644
---- a/gcc/doc/invoke.texi
-+++ b/gcc/doc/invoke.texi
-@@ -696,6 +696,7 @@ Objective-C and Objective-C++ Dialects}.
- -msign-return-address=@var{scope} @gol
- -mbranch-protection=@var{none}|@var{standard}|@var{pac-ret}[+@var{leaf}
- +@var{b-key}]|@var{bti} @gol
-+-mharden-sls=@var{opts} @gol
- -march=@var{name} -mcpu=@var{name} -mtune=@var{name} @gol
- -moverride=@var{string} -mverbose-cost-dump @gol
- -mstack-protector-guard=@var{guard} -mstack-protector-guard-reg=@var{sysreg} @gol
-@@ -17065,6 +17066,17 @@ functions. The optional argument @samp{b-key} can be used to sign the functions
- with the B-key instead of the A-key.
- @samp{bti} turns on branch target identification mechanism.
-
-+@item -mharden-sls=@var{opts}
-+@opindex mharden-sls
-+Enable compiler hardening against straight line speculation (SLS).
-+@var{opts} is a comma-separated list of the following options:
-+@table @samp
-+@item retbr
-+@item blr
-+@end table
-+In addition, @samp{-mharden-sls=all} enables all SLS hardening while
-+@samp{-mharden-sls=none} disables all SLS hardening.
-+
- @item -msve-vector-bits=@var{bits}
- @opindex msve-vector-bits
- Specify the number of bits in an SVE vector register. This option only has
---
-2.7.4
-
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/poky/meta/recipes-devtools/gcc/gcc/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
index 82ae9f8d1..0a108ee51 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
@@ -1,4 +1,4 @@
-From f2a5dc3bc7e5727d6bf77e1c6e8a31a6f000883d Mon Sep 17 00:00:00 2001
+From 368eaf1846733a9920c7cf5bc547a377e7167785 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 08:37:11 +0400
Subject: [PATCH] gcc-4.3.1: ARCH_FLAGS_FOR_TARGET
@@ -12,10 +12,10 @@ Upstream-Status: Inappropriate [embedded specific]
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
-index 4cc938ebb7d..226a64939d1 100755
+index 504f6410274..bcebad264ec 100755
--- a/configure
+++ b/configure
-@@ -7722,7 +7722,7 @@ fi
+@@ -9728,7 +9728,7 @@ fi
# for target_alias and gcc doesn't manage it consistently.
target_configargs="--cache-file=./config.cache ${target_configargs}"
@@ -25,10 +25,10 @@ index 4cc938ebb7d..226a64939d1 100755
*" newlib "*)
case " $target_configargs " in
diff --git a/configure.ac b/configure.ac
-index c78d9cbea62..f024f4bac9b 100644
+index 088e735c5db..1289fe08760 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -3227,7 +3227,7 @@ fi
+@@ -3240,7 +3240,7 @@ fi
# for target_alias and gcc doesn't manage it consistently.
target_configargs="--cache-file=./config.cache ${target_configargs}"
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0001-libatomic-libgomp-libitc-Fix-bootstrap-PR70454.patch b/poky/meta/recipes-devtools/gcc/gcc/0001-libatomic-libgomp-libitc-Fix-bootstrap-PR70454.patch
deleted file mode 100644
index addecb4bd..000000000
--- a/poky/meta/recipes-devtools/gcc/gcc/0001-libatomic-libgomp-libitc-Fix-bootstrap-PR70454.patch
+++ /dev/null
@@ -1,208 +0,0 @@
-From 2824d2418605e092899117e77bc8ebf332321807 Mon Sep 17 00:00:00 2001
-From: Jakub Jelinek <jakub@redhat.com>
-Date: Fri, 15 Jan 2021 13:12:59 +0100
-Subject: [PATCH] libatomic, libgomp, libitc: Fix bootstrap [PR70454]
-
-The recent changes to error on mixing -march=i386 and -fcf-protection broke
-bootstrap. This patch changes lib{atomic,gomp,itm} configury, so that it
-only adds -march=i486 to flags if really needed (i.e. when 486 or later isn't
-on by default already). Similarly, it will not use ifuncs if -mcx16
-(or -march=i686 for 32-bit) is on by default.
-
-2021-01-15 Jakub Jelinek <jakub@redhat.com>
-
- PR target/70454
-libatomic/
- * configure.tgt: For i?86 and x86_64 determine if -march=i486 needs to
- be added through preprocessor check on
- __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4. Determine if try_ifunc is needed
- based on preprocessor check on __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16
- or __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8.
-libgomp/
- * configure.tgt: For i?86 and x86_64 determine if -march=i486 needs to
- be added through preprocessor check on
- __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
-libitm/
- * configure.tgt: For i?86 and x86_64 determine if -march=i486 needs to
- be added through preprocessor check on
- __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
-
-Upstream-Status: Backport [master post 10.x release]
----
- libatomic/configure.tgt | 56 +++++++++++++++++++++++------------------
- libgomp/configure.tgt | 35 +++++++++++---------------
- libitm/configure.tgt | 37 +++++++++++++--------------
- 3 files changed, 64 insertions(+), 64 deletions(-)
-
-diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt
-index 5dd0926d20..6ea082a29b 100644
---- a/libatomic/configure.tgt
-+++ b/libatomic/configure.tgt
-@@ -81,32 +81,40 @@ case "${target_cpu}" in
- ARCH=sparc
- ;;
-
-- i[3456]86)
-- case " ${CC} ${CFLAGS} " in
-- *" -m64 "*|*" -mx32 "*)
-- ;;
-- *)
-- if test -z "$with_arch"; then
-- XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
-- XCFLAGS="${XCFLAGS} -fomit-frame-pointer"
-- fi
-- esac
-- ARCH=x86
-- # ??? Detect when -march=i686 is already enabled.
-- try_ifunc=yes
-- ;;
-- x86_64)
-- case " ${CC} ${CFLAGS} " in
-- *" -m32 "*)
-+ i[3456]86 | x86_64)
-+ cat > conftestx.c <<EOF
-+#ifndef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4
-+#error need -march=i486
-+#endif
-+EOF
-+ if ${CC} ${CFLAGS} -E conftestx.c > /dev/null 2>&1; then
-+ :
-+ else
-+ if test "${target_cpu}" = x86_64; then
- XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
-- XCFLAGS="${XCFLAGS} -fomit-frame-pointer"
-- ;;
-- *)
-- ;;
-- esac
-+ else
-+ XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
-+ fi
-+ XCFLAGS="${XCFLAGS} -fomit-frame-pointer"
-+ fi
-+ cat > conftestx.c <<EOF
-+#ifdef __x86_64__
-+#ifndef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16
-+#error need -mcx16
-+#endif
-+#else
-+#ifndef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8
-+#error need -march=i686
-+#endif
-+#endif
-+EOF
-+ if ${CC} ${CFLAGS} -E conftestx.c > /dev/null 2>&1; then
-+ try_ifunc=no
-+ else
-+ try_ifunc=yes
-+ fi
-+ rm -f conftestx.c
- ARCH=x86
-- # ??? Detect when -mcx16 is already enabled.
-- try_ifunc=yes
- ;;
-
- *) ARCH="${target_cpu}" ;;
-diff --git a/libgomp/configure.tgt b/libgomp/configure.tgt
-index 4790a31e39..761ef2a7db 100644
---- a/libgomp/configure.tgt
-+++ b/libgomp/configure.tgt
-@@ -70,28 +70,23 @@ if test x$enable_linux_futex = xyes; then
- ;;
-
- # Note that bare i386 is not included here. We need cmpxchg.
-- i[456]86-*-linux*)
-+ i[456]86-*-linux* | x86_64-*-linux*)
- config_path="linux/x86 linux posix"
-- case " ${CC} ${CFLAGS} " in
-- *" -m64 "*|*" -mx32 "*)
-- ;;
-- *)
-- if test -z "$with_arch"; then
-- XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
-- fi
-- esac
-- ;;
--
-- # Similar jiggery-pokery for x86_64 multilibs, except here we
-- # can't rely on the --with-arch configure option, since that
-- # applies to the 64-bit side.
-- x86_64-*-linux*)
-- config_path="linux/x86 linux posix"
-- case " ${CC} ${CFLAGS} " in
-- *" -m32 "*)
-+ cat > conftestx.c <<EOF
-+#ifndef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4
-+#error need -march=i486
-+#endif
-+EOF
-+ if ${CC} ${CFLAGS} -E conftestx.c > /dev/null 2>&1; then
-+ :
-+ else
-+ if test "${target_cpu}" = x86_64; then
- XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
-- ;;
-- esac
-+ else
-+ XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
-+ fi
-+ fi
-+ rm -f conftestx.c
- ;;
-
- # Note that sparcv7 and sparcv8 is not included here. We need cas.
-diff --git a/libitm/configure.tgt b/libitm/configure.tgt
-index 04109160e9..ca62bac627 100644
---- a/libitm/configure.tgt
-+++ b/libitm/configure.tgt
-@@ -58,16 +58,23 @@ case "${target_cpu}" in
-
- arm*) ARCH=arm ;;
-
-- i[3456]86)
-- case " ${CC} ${CFLAGS} " in
-- *" -m64 "*|*" -mx32 "*)
-- ;;
-- *)
-- if test -z "$with_arch"; then
-- XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
-- XCFLAGS="${XCFLAGS} -fomit-frame-pointer"
-- fi
-- esac
-+ i[3456]86 | x86_64)
-+ cat > conftestx.c <<EOF
-+#ifndef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4
-+#error need -march=i486
-+#endif
-+EOF
-+ if ${CC} ${CFLAGS} -E conftestx.c > /dev/null 2>&1; then
-+ :
-+ else
-+ if test "${target_cpu}" = x86_64; then
-+ XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
-+ else
-+ XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
-+ fi
-+ XCFLAGS="${XCFLAGS} -fomit-frame-pointer"
-+ fi
-+ rm -f conftestx.c
- XCFLAGS="${XCFLAGS} -mrtm"
- ARCH=x86
- ;;
-@@ -102,16 +109,6 @@ case "${target_cpu}" in
- ARCH=sparc
- ;;
-
-- x86_64)
-- case " ${CC} ${CFLAGS} " in
-- *" -m32 "*)
-- XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
-- XCFLAGS="${XCFLAGS} -fomit-frame-pointer"
-- ;;
-- esac
-- XCFLAGS="${XCFLAGS} -mrtm"
-- ARCH=x86
-- ;;
- s390|s390x)
- XCFLAGS="${XCFLAGS} -mzarch -mhtm"
- ARCH=s390
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch b/poky/meta/recipes-devtools/gcc/gcc/0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch
deleted file mode 100644
index 823cc8b66..000000000
--- a/poky/meta/recipes-devtools/gcc/gcc/0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch
+++ /dev/null
@@ -1,607 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-From b1204d16e1ec96a4aa89e44de8990e2499ffdb22 Mon Sep 17 00:00:00 2001
-From: Matthew Malcomson <matthew.malcomson@arm.com>
-Date: Thu, 9 Jul 2020 09:11:59 +0100
-Subject: [PATCH 2/3] aarch64: Introduce SLS mitigation for RET and BR
- instructions
-
-Instructions following RET or BR are not necessarily executed. In order
-to avoid speculation past RET and BR we can simply append a speculation
-barrier.
-
-Since these speculation barriers will not be architecturally executed,
-they are not expected to add a high performance penalty.
-
-The speculation barrier is to be SB when targeting architectures which
-have this enabled, and DSB SY + ISB otherwise.
-
-We add tests for each of the cases where such an instruction was seen.
-
-This is implemented by modifying each machine description pattern that
-emits either a RET or a BR instruction. We choose not to use something
-like `TARGET_ASM_FUNCTION_EPILOGUE` since it does not affect the
-`indirect_jump`, `jump`, `sibcall_insn` and `sibcall_value_insn`
-patterns and we find it preferable to implement the functionality in the
-same way for every pattern.
-
-There is one particular case which is slightly tricky. The
-implementation of TARGET_ASM_TRAMPOLINE_TEMPLATE uses a BR which needs
-to be mitigated against. The trampoline template is used *once* per
-compilation unit, and the TRAMPOLINE_SIZE is exposed to the user via the
-builtin macro __LIBGCC_TRAMPOLINE_SIZE__.
-In the future we may implement function specific attributes to turn on
-and off hardening on a per-function basis.
-The fixed nature of the trampoline described above implies it will be
-safer to ensure this speculation barrier is always used.
-
-Testing:
- Bootstrap and regtest done on aarch64-none-linux
- Used a temporary hack(1) to use these options on every test in the
- testsuite and a script to check that the output never emitted an
- unmitigated RET or BR.
-
-1) Temporary hack was a change to the testsuite to always use
-`-save-temps` and run a script on the assembly output of those
-compilations which produced one to ensure every RET or BR is immediately
-followed by a speculation barrier.
-
-gcc/ChangeLog:
-
- * config/aarch64/aarch64-protos.h (aarch64_sls_barrier): New.
- * config/aarch64/aarch64.c (aarch64_output_casesi): Emit
- speculation barrier after BR instruction if needs be.
- (aarch64_trampoline_init): Handle ptr_mode value & adjust size
- of code copied.
- (aarch64_sls_barrier): New.
- (aarch64_asm_trampoline_template): Add needed barriers.
- * config/aarch64/aarch64.h (AARCH64_ISA_SB): New.
- (TARGET_SB): New.
- (TRAMPOLINE_SIZE): Account for barrier.
- * config/aarch64/aarch64.md (indirect_jump, *casesi_dispatch,
- simple_return, *do_return, *sibcall_insn, *sibcall_value_insn):
- Emit barrier if needs be, also account for possible barrier using
- "sls_length" attribute.
- (sls_length): New attribute.
- (length): Determine default using any non-default sls_length
- value.
-
-gcc/testsuite/ChangeLog:
-
- * gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c: New test.
- * gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c:
- New test.
- * gcc.target/aarch64/sls-mitigation/sls-mitigation.exp: New file.
- * lib/target-supports.exp (check_effective_target_aarch64_asm_sb_ok):
- New proc.
----
- gcc/config/aarch64/aarch64-protos.h | 1 +
- gcc/config/aarch64/aarch64.c | 41 ++++++-
- gcc/config/aarch64/aarch64.h | 10 +-
- gcc/config/aarch64/aarch64.md | 76 +++++++++----
- .../aarch64/sls-mitigation/sls-miti-retbr-pacret.c | 21 ++++
- .../aarch64/sls-mitigation/sls-miti-retbr.c | 119 +++++++++++++++++++++
- .../aarch64/sls-mitigation/sls-mitigation.exp | 73 +++++++++++++
- gcc/testsuite/lib/target-supports.exp | 2 +-
- 8 files changed, 318 insertions(+), 25 deletions(-)
- create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c
- create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c
- create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp
-
-diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h
-index eb5f4b4..ee0ffde 100644
---- a/gcc/config/aarch64/aarch64-protos.h
-+++ b/gcc/config/aarch64/aarch64-protos.h
-@@ -781,6 +781,7 @@ extern const atomic_ool_names aarch64_ool_ldeor_names;
-
- tree aarch64_resolve_overloaded_builtin_general (location_t, tree, void *);
-
-+const char *aarch64_sls_barrier (int);
- extern bool aarch64_harden_sls_retbr_p (void);
- extern bool aarch64_harden_sls_blr_p (void);
-
-diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
-index 437a9cf..44e3d1f 100644
---- a/gcc/config/aarch64/aarch64.c
-+++ b/gcc/config/aarch64/aarch64.c
-@@ -10852,8 +10852,8 @@ aarch64_return_addr (int count, rtx frame ATTRIBUTE_UNUSED)
- static void
- aarch64_asm_trampoline_template (FILE *f)
- {
-- int offset1 = 16;
-- int offset2 = 20;
-+ int offset1 = 24;
-+ int offset2 = 28;
-
- if (aarch64_bti_enabled ())
- {
-@@ -10876,6 +10876,17 @@ aarch64_asm_trampoline_template (FILE *f)
- }
- asm_fprintf (f, "\tbr\t%s\n", reg_names [IP1_REGNUM]);
-
-+ /* We always emit a speculation barrier.
-+ This is because the same trampoline template is used for every nested
-+ function. Since nested functions are not particularly common or
-+ performant we don't worry too much about the extra instructions to copy
-+ around.
-+ This is not yet a problem, since we have not yet implemented function
-+ specific attributes to choose between hardening against straight line
-+ speculation or not, but such function specific attributes are likely to
-+ happen in the future. */
-+ asm_fprintf (f, "\tdsb\tsy\n\tisb\n");
-+
- /* The trampoline needs an extra padding instruction. In case if BTI is
- enabled the padding instruction is replaced by the BTI instruction at
- the beginning. */
-@@ -10890,10 +10901,14 @@ static void
- aarch64_trampoline_init (rtx m_tramp, tree fndecl, rtx chain_value)
- {
- rtx fnaddr, mem, a_tramp;
-- const int tramp_code_sz = 16;
-+ const int tramp_code_sz = 24;
-
- /* Don't need to copy the trailing D-words, we fill those in below. */
-- emit_block_move (m_tramp, assemble_trampoline_template (),
-+ /* We create our own memory address in Pmode so that `emit_block_move` can
-+ use parts of the backend which expect Pmode addresses. */
-+ rtx temp = convert_memory_address (Pmode, XEXP (m_tramp, 0));
-+ emit_block_move (gen_rtx_MEM (BLKmode, temp),
-+ assemble_trampoline_template (),
- GEN_INT (tramp_code_sz), BLOCK_OP_NORMAL);
- mem = adjust_address (m_tramp, ptr_mode, tramp_code_sz);
- fnaddr = XEXP (DECL_RTL (fndecl), 0);
-@@ -11084,6 +11099,8 @@ aarch64_output_casesi (rtx *operands)
- output_asm_insn (buf, operands);
- output_asm_insn (patterns[index][1], operands);
- output_asm_insn ("br\t%3", operands);
-+ output_asm_insn (aarch64_sls_barrier (aarch64_harden_sls_retbr_p ()),
-+ operands);
- assemble_label (asm_out_file, label);
- return "";
- }
-@@ -22924,6 +22941,22 @@ aarch64_file_end_indicate_exec_stack ()
- #undef GNU_PROPERTY_AARCH64_FEATURE_1_BTI
- #undef GNU_PROPERTY_AARCH64_FEATURE_1_AND
-
-+/* Helper function for straight line speculation.
-+ Return what barrier should be emitted for straight line speculation
-+ mitigation.
-+ When not mitigating against straight line speculation this function returns
-+ an empty string.
-+ When mitigating against straight line speculation, use:
-+ * SB when the v8.5-A SB extension is enabled.
-+ * DSB+ISB otherwise. */
-+const char *
-+aarch64_sls_barrier (int mitigation_required)
-+{
-+ return mitigation_required
-+ ? (TARGET_SB ? "sb" : "dsb\tsy\n\tisb")
-+ : "";
-+}
-+
- /* Target-specific selftests. */
-
- #if CHECKING_P
-diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
-index 1ce23c6..c21015f 100644
---- a/gcc/config/aarch64/aarch64.h
-+++ b/gcc/config/aarch64/aarch64.h
-@@ -281,6 +281,7 @@ extern unsigned aarch64_architecture_version;
- #define AARCH64_ISA_F32MM (aarch64_isa_flags & AARCH64_FL_F32MM)
- #define AARCH64_ISA_F64MM (aarch64_isa_flags & AARCH64_FL_F64MM)
- #define AARCH64_ISA_BF16 (aarch64_isa_flags & AARCH64_FL_BF16)
-+#define AARCH64_ISA_SB (aarch64_isa_flags & AARCH64_FL_SB)
-
- /* Crypto is an optional extension to AdvSIMD. */
- #define TARGET_CRYPTO (TARGET_SIMD && AARCH64_ISA_CRYPTO)
-@@ -378,6 +379,9 @@ extern unsigned aarch64_architecture_version;
- #define TARGET_FIX_ERR_A53_835769_DEFAULT 1
- #endif
-
-+/* SB instruction is enabled through +sb. */
-+#define TARGET_SB (AARCH64_ISA_SB)
-+
- /* Apply the workaround for Cortex-A53 erratum 835769. */
- #define TARGET_FIX_ERR_A53_835769 \
- ((aarch64_fix_a53_err835769 == 2) \
-@@ -1058,8 +1062,10 @@ typedef struct
-
- #define RETURN_ADDR_RTX aarch64_return_addr
-
--/* BTI c + 3 insns + 2 pointer-sized entries. */
--#define TRAMPOLINE_SIZE (TARGET_ILP32 ? 24 : 32)
-+/* BTI c + 3 insns
-+ + sls barrier of DSB + ISB.
-+ + 2 pointer-sized entries. */
-+#define TRAMPOLINE_SIZE (24 + (TARGET_ILP32 ? 8 : 16))
-
- /* Trampolines contain dwords, so must be dword aligned. */
- #define TRAMPOLINE_ALIGNMENT 64
-diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
-index 8c8be3c..dda04ee 100644
---- a/gcc/config/aarch64/aarch64.md
-+++ b/gcc/config/aarch64/aarch64.md
-@@ -407,10 +407,25 @@
- ;; Attribute that specifies whether the alternative uses MOVPRFX.
- (define_attr "movprfx" "no,yes" (const_string "no"))
-
-+;; Attribute to specify that an alternative has the length of a single
-+;; instruction plus a speculation barrier.
-+(define_attr "sls_length" "none,retbr,casesi" (const_string "none"))
-+
- (define_attr "length" ""
- (cond [(eq_attr "movprfx" "yes")
- (const_int 8)
-- ] (const_int 4)))
-+
-+ (eq_attr "sls_length" "retbr")
-+ (cond [(match_test "!aarch64_harden_sls_retbr_p ()") (const_int 4)
-+ (match_test "TARGET_SB") (const_int 8)]
-+ (const_int 12))
-+
-+ (eq_attr "sls_length" "casesi")
-+ (cond [(match_test "!aarch64_harden_sls_retbr_p ()") (const_int 16)
-+ (match_test "TARGET_SB") (const_int 20)]
-+ (const_int 24))
-+ ]
-+ (const_int 4)))
-
- ;; Strictly for compatibility with AArch32 in pipeline models, since AArch64 has
- ;; no predicated insns.
-@@ -447,8 +462,12 @@
- (define_insn "indirect_jump"
- [(set (pc) (match_operand:DI 0 "register_operand" "r"))]
- ""
-- "br\\t%0"
-- [(set_attr "type" "branch")]
-+ {
-+ output_asm_insn ("br\\t%0", operands);
-+ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ());
-+ }
-+ [(set_attr "type" "branch")
-+ (set_attr "sls_length" "retbr")]
- )
-
- (define_insn "jump"
-@@ -765,7 +784,7 @@
- "*
- return aarch64_output_casesi (operands);
- "
-- [(set_attr "length" "16")
-+ [(set_attr "sls_length" "casesi")
- (set_attr "type" "branch")]
- )
-
-@@ -844,18 +863,23 @@
- [(return)]
- ""
- {
-+ const char *ret = NULL;
- if (aarch64_return_address_signing_enabled ()
- && TARGET_ARMV8_3
- && !crtl->calls_eh_return)
- {
- if (aarch64_ra_sign_key == AARCH64_KEY_B)
-- return "retab";
-+ ret = "retab";
- else
-- return "retaa";
-+ ret = "retaa";
- }
-- return "ret";
-+ else
-+ ret = "ret";
-+ output_asm_insn (ret, operands);
-+ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ());
- }
-- [(set_attr "type" "branch")]
-+ [(set_attr "type" "branch")
-+ (set_attr "sls_length" "retbr")]
- )
-
- (define_expand "return"
-@@ -867,8 +891,12 @@
- (define_insn "simple_return"
- [(simple_return)]
- ""
-- "ret"
-- [(set_attr "type" "branch")]
-+ {
-+ output_asm_insn ("ret", operands);
-+ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ());
-+ }
-+ [(set_attr "type" "branch")
-+ (set_attr "sls_length" "retbr")]
- )
-
- (define_insn "*cb<optab><mode>1"
-@@ -1066,10 +1094,16 @@
- (unspec:DI [(match_operand:DI 2 "const_int_operand")] UNSPEC_CALLEE_ABI)
- (return)]
- "SIBLING_CALL_P (insn)"
-- "@
-- br\\t%0
-- b\\t%c0"
-- [(set_attr "type" "branch, branch")]
-+ {
-+ if (which_alternative == 0)
-+ {
-+ output_asm_insn ("br\\t%0", operands);
-+ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ());
-+ }
-+ return "b\\t%c0";
-+ }
-+ [(set_attr "type" "branch, branch")
-+ (set_attr "sls_length" "retbr,none")]
- )
-
- (define_insn "*sibcall_value_insn"
-@@ -1080,10 +1114,16 @@
- (unspec:DI [(match_operand:DI 3 "const_int_operand")] UNSPEC_CALLEE_ABI)
- (return)]
- "SIBLING_CALL_P (insn)"
-- "@
-- br\\t%1
-- b\\t%c1"
-- [(set_attr "type" "branch, branch")]
-+ {
-+ if (which_alternative == 0)
-+ {
-+ output_asm_insn ("br\\t%1", operands);
-+ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ());
-+ }
-+ return "b\\t%c1";
-+ }
-+ [(set_attr "type" "branch, branch")
-+ (set_attr "sls_length" "retbr,none")]
- )
-
- ;; Call subroutine returning any type.
-diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c
-new file mode 100644
-index 0000000..fa1887a
---- /dev/null
-+++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c
-@@ -0,0 +1,21 @@
-+/* Avoid ILP32 since pacret is only available for LP64 */
-+/* { dg-do compile { target { ! ilp32 } } } */
-+/* { dg-additional-options "-mharden-sls=retbr -mbranch-protection=pac-ret -march=armv8.3-a" } */
-+
-+/* Testing the do_return pattern for retaa and retab. */
-+long retbr_subcall(void);
-+long retbr_do_return_retaa(void)
-+{
-+ return retbr_subcall()+1;
-+}
-+
-+__attribute__((target("branch-protection=pac-ret+b-key")))
-+long retbr_do_return_retab(void)
-+{
-+ return retbr_subcall()+1;
-+}
-+
-+/* Ensure there are no BR or RET instructions which are not directly followed
-+ by a speculation barrier. */
-+/* { dg-final { scan-assembler-not {\t(br|ret|retaa|retab)\tx[0-9][0-9]?\n\t(?!dsb\tsy\n\tisb)} } } */
-+/* { dg-final { scan-assembler-not {ret\t} } } */
-diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c
-new file mode 100644
-index 0000000..76b8d03
---- /dev/null
-+++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c
-@@ -0,0 +1,119 @@
-+/* We ensure that -Wpedantic is off since it complains about the trampolines
-+ we explicitly want to test. */
-+/* { dg-additional-options "-mharden-sls=retbr -Wno-pedantic " } */
-+/*
-+ Ensure that the SLS hardening of RET and BR leaves no unprotected RET/BR
-+ instructions.
-+ */
-+typedef int (foo) (int, int);
-+typedef void (bar) (int, int);
-+struct sls_testclass {
-+ foo *x;
-+ bar *y;
-+ int left;
-+ int right;
-+};
-+
-+int
-+retbr_sibcall_value_insn (struct sls_testclass x)
-+{
-+ return x.x(x.left, x.right);
-+}
-+
-+void
-+retbr_sibcall_insn (struct sls_testclass x)
-+{
-+ x.y(x.left, x.right);
-+}
-+
-+/* Aim to test two different returns.
-+ One that introduces a tail call in the middle of the function, and one that
-+ has a normal return. */
-+int
-+retbr_multiple_returns (struct sls_testclass x)
-+{
-+ int temp;
-+ if (x.left % 10)
-+ return x.x(x.left, 100);
-+ else if (x.right % 20)
-+ {
-+ return x.x(x.left * x.right, 100);
-+ }
-+ temp = x.left % x.right;
-+ temp *= 100;
-+ temp /= 2;
-+ return temp % 3;
-+}
-+
-+void
-+retbr_multiple_returns_void (struct sls_testclass x)
-+{
-+ if (x.left % 10)
-+ {
-+ x.y(x.left, 100);
-+ }
-+ else if (x.right % 20)
-+ {
-+ x.y(x.left * x.right, 100);
-+ }
-+ return;
-+}
-+
-+/* Testing the casesi jump via register. */
-+__attribute__ ((optimize ("Os")))
-+int
-+retbr_casesi_dispatch (struct sls_testclass x)
-+{
-+ switch (x.left)
-+ {
-+ case -5:
-+ return -2;
-+ case -3:
-+ return -1;
-+ case 0:
-+ return 0;
-+ case 3:
-+ return 1;
-+ case 5:
-+ break;
-+ default:
-+ __builtin_unreachable ();
-+ }
-+ return x.right;
-+}
-+
-+/* Testing the BR in trampolines is mitigated against. */
-+void f1 (void *);
-+void f3 (void *, void (*)(void *));
-+void f2 (void *);
-+
-+int
-+retbr_trampolines (void *a, int b)
-+{
-+ if (!b)
-+ {
-+ f1 (a);
-+ return 1;
-+ }
-+ if (b)
-+ {
-+ void retbr_tramp_internal (void *c)
-+ {
-+ if (c == a)
-+ f2 (c);
-+ }
-+ f3 (a, retbr_tramp_internal);
-+ }
-+ return 0;
-+}
-+
-+/* Testing the indirect_jump pattern. */
-+void
-+retbr_indirect_jump (int *buf)
-+{
-+ __builtin_longjmp(buf, 1);
-+}
-+
-+/* Ensure there are no BR or RET instructions which are not directly followed
-+ by a speculation barrier. */
-+/* { dg-final { scan-assembler-not {\t(br|ret|retaa|retab)\tx[0-9][0-9]?\n\t(?!dsb\tsy\n\tisb|sb)} } } */
-diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp
-new file mode 100644
-index 0000000..8122503
---- /dev/null
-+++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp
-@@ -0,0 +1,73 @@
-+# Regression driver for SLS mitigation on AArch64.
-+# Copyright (C) 2020 Free Software Foundation, Inc.
-+# Contributed by ARM Ltd.
-+#
-+# This file is part of GCC.
-+#
-+# GCC is free software; you can redistribute it and/or modify it
-+# under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 3, or (at your option)
-+# any later version.
-+#
-+# GCC is distributed in the hope that it will be useful, but
-+# WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+# General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with GCC; see the file COPYING3. If not see
-+# <http://www.gnu.org/licenses/>. */
-+
-+# Exit immediately if this isn't an AArch64 target.
-+if {![istarget aarch64*-*-*] } then {
-+ return
-+}
-+
-+# Load support procs.
-+load_lib gcc-dg.exp
-+load_lib torture-options.exp
-+
-+# If a testcase doesn't have special options, use these.
-+global DEFAULT_CFLAGS
-+if ![info exists DEFAULT_CFLAGS] then {
-+ set DEFAULT_CFLAGS " "
-+}
-+
-+# Initialize `dg'.
-+dg-init
-+torture-init
-+
-+# Use different architectures as well as the normal optimisation options.
-+# (i.e. use both SB and DSB+ISB barriers).
-+
-+set save-dg-do-what-default ${dg-do-what-default}
-+# Main loop.
-+# Run with torture tests (i.e. a bunch of different optimisation levels) just
-+# to increase test coverage.
-+set dg-do-what-default assemble
-+gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cCS\]]] \
-+ "-save-temps" $DEFAULT_CFLAGS
-+
-+# Run the same tests but this time with SB extension.
-+# Since not all supported assemblers will support that extension we decide
-+# whether to assemble or just compile based on whether the extension is
-+# supported for the available assembler.
-+
-+set templist {}
-+foreach x $DG_TORTURE_OPTIONS {
-+ lappend templist "$x -march=armv8.3-a+sb "
-+ lappend templist "$x -march=armv8-a+sb "
-+}
-+set-torture-options $templist
-+if { [check_effective_target_aarch64_asm_sb_ok] } {
-+ set dg-do-what-default assemble
-+} else {
-+ set dg-do-what-default compile
-+}
-+gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cCS\]]] \
-+ "-save-temps" $DEFAULT_CFLAGS
-+set dg-do-what-default ${save-dg-do-what-default}
-+
-+# All done.
-+torture-finish
-+dg-finish
-diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
-index 8a186dd..9d2e093 100644
---- a/gcc/testsuite/lib/target-supports.exp
-+++ b/gcc/testsuite/lib/target-supports.exp
-@@ -9432,7 +9432,7 @@ proc check_effective_target_aarch64_tiny { } {
- # various architecture extensions via the .arch_extension pseudo-op.
-
- foreach { aarch64_ext } { "fp" "simd" "crypto" "crc" "lse" "dotprod" "sve"
-- "i8mm" "f32mm" "f64mm" "bf16" } {
-+ "i8mm" "f32mm" "f64mm" "bf16" "sb" } {
- eval [string map [list FUNC $aarch64_ext] {
- proc check_effective_target_aarch64_asm_FUNC_ok { } {
- if { [istarget aarch64*-*-*] } {
---
-2.7.4
-
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch b/poky/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch
index 697bdc821..18a9fb870 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch
@@ -1,6 +1,6 @@
-From 74cc21f474402cf3578e37e1d7a1a22bbd070f6a Mon Sep 17 00:00:00 2001
+From 118c6f054711d437167ff125a88c9236bfc8099c Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 08:59:00 +0400
+Date: Mon, 8 Mar 2021 16:04:20 -0800
Subject: [PATCH] gcc: poison-system-directories
Add /sw/include and /opt/include based on the original
@@ -11,11 +11,9 @@ aborted.
Instead, we add the two missing items to the current scan. If the user
wants this to be a failure, they can add "-Werror=poison-system-directories".
+Upstream-Status: Pending
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
-
-Upstream-Status: Pending
---
gcc/common.opt | 4 ++++
gcc/config.in | 10 ++++++++++
@@ -27,10 +25,10 @@ Upstream-Status: Pending
7 files changed, 86 insertions(+), 2 deletions(-)
diff --git a/gcc/common.opt b/gcc/common.opt
-index 3ec7743ea..d3c3e51dc 100644
+index c75dd36843e..49acbd6ed44 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
-@@ -682,6 +682,10 @@ Wreturn-local-addr
+@@ -683,6 +683,10 @@ Wreturn-local-addr
Common Var(warn_return_local_addr) Init(1) Warning
Warn about returning a pointer/reference to a local or temporary variable.
@@ -42,10 +40,10 @@ index 3ec7743ea..d3c3e51dc 100644
Common Var(warn_shadow) Warning
Warn when one variable shadows another. Same as -Wshadow=global.
diff --git a/gcc/config.in b/gcc/config.in
-index 364eba477..7d2c3bbf1 100644
+index 10a13cde586..8848284da41 100644
--- a/gcc/config.in
+++ b/gcc/config.in
-@@ -224,6 +224,16 @@
+@@ -218,6 +218,16 @@
#endif
@@ -63,18 +61,18 @@ index 364eba477..7d2c3bbf1 100644
optimizer and back end) to be checked for dynamic type safety at runtime.
This is quite expensive. */
diff --git a/gcc/configure b/gcc/configure
-index 2a9d646b4..a848792f2 100755
+index 9bb436ce7bd..3f0734bff11 100755
--- a/gcc/configure
+++ b/gcc/configure
-@@ -1010,6 +1010,7 @@ with_system_zlib
- enable_maintainer_mode
+@@ -1020,6 +1020,7 @@ enable_maintainer_mode
enable_link_mutex
+ enable_link_serialization
enable_version_specific_runtime_libs
+enable_poison_system_directories
enable_plugin
enable_host_shared
enable_libquadmath_support
-@@ -1766,6 +1767,8 @@ Optional Features:
+@@ -1782,6 +1783,8 @@ Optional Features:
--enable-version-specific-runtime-libs
specify that runtime libraries should be installed
in a compiler-specific directory
@@ -83,7 +81,7 @@ index 2a9d646b4..a848792f2 100755
--enable-plugin enable plugin support
--enable-host-shared build host code as shared libraries
--disable-libquadmath-support
-@@ -30280,6 +30283,22 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
+@@ -31325,6 +31328,22 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
fi
@@ -107,16 +105,16 @@ index 2a9d646b4..a848792f2 100755
diff --git a/gcc/configure.ac b/gcc/configure.ac
-index 51cce36ce..66ffde305 100644
+index caa611933df..54e21764b3e 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
-@@ -6614,6 +6614,22 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
+@@ -7123,6 +7123,22 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
[specify that runtime libraries should be
installed in a compiler-specific directory])])
+AC_ARG_ENABLE([poison-system-directories],
+ AS_HELP_STRING([--enable-poison-system-directories],
-+ [warn for use of native system header directories (no/yes/error)]),,
++ [warn for use of native system header directories (no/yes/error)]),,
+ [enable_poison_system_directories=no])
+AC_MSG_NOTICE([poisoned directories $enable_poison_system_directories])
+if test "x${enable_poison_system_directories}" != "xno"; then
@@ -134,10 +132,10 @@ index 51cce36ce..66ffde305 100644
AC_SUBST(subdirs)
AC_SUBST(srcdir)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
-index d929eb109..aa5ff88b1 100644
+index 7a368959e5e..6659a903bf0 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
-@@ -351,6 +351,7 @@ Objective-C and Objective-C++ Dialects}.
+@@ -369,6 +369,7 @@ Objective-C and Objective-C++ Dialects}.
-Wpacked -Wno-packed-bitfield-compat -Wpacked-not-aligned -Wpadded @gol
-Wparentheses -Wno-pedantic-ms-format @gol
-Wpointer-arith -Wno-pointer-compare -Wno-pointer-to-int-cast @gol
@@ -145,7 +143,7 @@ index d929eb109..aa5ff88b1 100644
-Wno-pragmas -Wno-prio-ctor-dtor -Wredundant-decls @gol
-Wrestrict -Wno-return-local-addr -Wreturn-type @gol
-Wno-scalar-storage-order -Wsequence-point @gol
-@@ -6928,6 +6929,14 @@ made up of data only and thus requires no special treatment. But, for
+@@ -7735,6 +7736,14 @@ made up of data only and thus requires no special treatment. But, for
most targets, it is made up of code and thus requires the stack to be
made executable in order for the program to work properly.
@@ -161,10 +159,10 @@ index d929eb109..aa5ff88b1 100644
@opindex Wfloat-equal
@opindex Wno-float-equal
diff --git a/gcc/gcc.c b/gcc/gcc.c
-index 49c9c6c17..24a92bf27 100644
+index 7837553958b..19c75b6e20d 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
-@@ -1044,6 +1044,8 @@ proper position among the other output files. */
+@@ -1152,6 +1152,8 @@ proper position among the other output files. */
"%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \
"%X %{o*} %{e*} %{N} %{n} %{r}\
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \
@@ -173,7 +171,7 @@ index 49c9c6c17..24a92bf27 100644
%{static|no-pie|static-pie:} %@{L*} %(mfwrap) %(link_libgcc) " \
VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o "" \
%{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
-@@ -1138,8 +1140,11 @@ static const char *cpp_unique_options =
+@@ -1247,8 +1249,11 @@ static const char *cpp_unique_options =
static const char *cpp_options =
"%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w}\
%{f*} %{g*:%{%:debug-level-gt(0):%{g*}\
@@ -185,10 +183,10 @@ index 49c9c6c17..24a92bf27 100644
+#endif
+ " %{undef} %{save-temps*:-fpch-preprocess}";
- /* This contains cpp options which are not passed when the preprocessor
- output will be used by another program. */
+ /* Pass -d* flags, possibly modifying -dumpdir, -dumpbase et al.
+
diff --git a/gcc/incpath.c b/gcc/incpath.c
-index 94eaba7b1..bfad4ebe3 100644
+index 446d280321d..fbfc0ce03b8 100644
--- a/gcc/incpath.c
+++ b/gcc/incpath.c
@@ -26,6 +26,7 @@
@@ -199,7 +197,7 @@ index 94eaba7b1..bfad4ebe3 100644
/* Microsoft Windows does not natively support inodes.
VMS has non-numeric inodes. */
-@@ -393,6 +394,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose)
+@@ -395,6 +396,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose)
}
fprintf (stderr, _("End of search list.\n"));
}
@@ -226,6 +224,3 @@ index 94eaba7b1..bfad4ebe3 100644
}
/* Use given -I paths for #include "..." but not #include <...>, and
---
-2.25.1
-
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch b/poky/meta/recipes-devtools/gcc/gcc/0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch
deleted file mode 100644
index 716a36717..000000000
--- a/poky/meta/recipes-devtools/gcc/gcc/0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch
+++ /dev/null
@@ -1,658 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-From a5e7efc40ed841934c1d913f39476afa17d8e5f7 Mon Sep 17 00:00:00 2001
-From: Matthew Malcomson <matthew.malcomson@arm.com>
-Date: Thu, 9 Jul 2020 09:11:59 +0100
-Subject: [PATCH 3/3] aarch64: Mitigate SLS for BLR instruction
-
-This patch introduces the mitigation for Straight Line Speculation past
-the BLR instruction.
-
-This mitigation replaces BLR instructions with a BL to a stub which uses
-a BR to jump to the original value. These function stubs are then
-appended with a speculation barrier to ensure no straight line
-speculation happens after these jumps.
-
-When optimising for speed we use a set of stubs for each function since
-this should help the branch predictor make more accurate predictions
-about where a stub should branch.
-
-When optimising for size we use one set of stubs for all functions.
-This set of stubs can have human readable names, and we are using
-`__call_indirect_x<N>` for register x<N>.
-
-When BTI branch protection is enabled the BLR instruction can jump to a
-`BTI c` instruction using any register, while the BR instruction can
-only jump to a `BTI c` instruction using the x16 or x17 registers.
-Hence, in order to ensure this transformation is safe we mov the value
-of the original register into x16 and use x16 for the BR.
-
-As an example when optimising for size:
-a
- BLR x0
-instruction would get transformed to something like
- BL __call_indirect_x0
-where __call_indirect_x0 labels a thunk that contains
-__call_indirect_x0:
- MOV X16, X0
- BR X16
- <speculation barrier>
-
-The first version of this patch used local symbols specific to a
-compilation unit to try and avoid relocations.
-This was mistaken since functions coming from the same compilation unit
-can still be in different sections, and the assembler will insert
-relocations at jumps between sections.
-
-On any relocation the linker is permitted to emit a veneer to handle
-jumps between symbols that are very far apart. The registers x16 and
-x17 may be clobbered by these veneers.
-Hence the function stubs cannot rely on the values of x16 and x17 being
-the same as just before the function stub is called.
-
-Similar can be said for the hot/cold partitioning of single functions,
-so function-local stubs have the same restriction.
-
-This updated version of the patch never emits function stubs for x16 and
-x17, and instead forces other registers to be used.
-
-Given the above, there is now no benefit to local symbols (since they
-are not enough to avoid dealing with linker intricacies). This patch
-now uses global symbols with hidden visibility each stored in their own
-COMDAT section. This means stubs can be shared between compilation
-units while still avoiding the PLT indirection.
-
-This patch also removes the `__call_indirect_x30` stub (and
-function-local equivalent) which would simply jump back to the original
-location.
-
-The function-local stubs are emitted to the assembly output file in one
-chunk, which means we need not add the speculation barrier directly
-after each one.
-This is because we know for certain that the instructions directly after
-the BR in all but the last function stub will be from another one of
-these stubs and hence will not contain a speculation gadget.
-Instead we add a speculation barrier at the end of the sequence of
-stubs.
-
-The global stubs are emitted in COMDAT/.linkonce sections by
-themselves so that the linker can remove duplicates from multiple object
-files. This means they are not emitted in one chunk, and each one must
-include the speculation barrier.
-
-Another difference is that since the global stubs are shared across
-compilation units we do not know that all functions will be targeting an
-architecture supporting the SB instruction.
-Rather than provide multiple stubs for each architecture, we provide a
-stub that will work for all architectures -- using the DSB+ISB barrier.
-
-This mitigation does not apply for BLR instructions in the following
-places:
-- Some accesses to thread-local variables use a code sequence with a BLR
- instruction. This code sequence is part of the binary interface between
- compiler and linker. If this BLR instruction needs to be mitigated, it'd
- probably be best to do so in the linker. It seems that the code sequence
- for thread-local variable access is unlikely to lead to a Spectre Revalation
- Gadget.
-- PLT stubs are produced by the linker and each contain a BLR instruction.
- It seems that at most only after the last PLT stub a Spectre Revalation
- Gadget might appear.
-
-Testing:
- Bootstrap and regtest on AArch64
- (with BOOT_CFLAGS="-mharden-sls=retbr,blr")
- Used a temporary hack(1) in gcc-dg.exp to use these options on every
- test in the testsuite, a slight modification to emit the speculation
- barrier after every function stub, and a script to check that the
- output never emitted a BLR, or unmitigated BR or RET instruction.
- Similar on an aarch64-none-elf cross-compiler.
-
-1) Temporary hack emitted a speculation barrier at the end of every stub
-function, and used a script to ensure that:
- a) Every RET or BR is immediately followed by a speculation barrier.
- b) No BLR instruction is emitted by compiler.
-
-gcc/ChangeLog:
-
- * config/aarch64/aarch64-protos.h (aarch64_indirect_call_asm):
- New declaration.
- * config/aarch64/aarch64.c (aarch64_regno_regclass): Handle new
- stub registers class.
- (aarch64_class_max_nregs): Likewise.
- (aarch64_register_move_cost): Likewise.
- (aarch64_sls_shared_thunks): Global array to store stub labels.
- (aarch64_sls_emit_function_stub): New.
- (aarch64_create_blr_label): New.
- (aarch64_sls_emit_blr_function_thunks): New.
- (aarch64_sls_emit_shared_blr_thunks): New.
- (aarch64_asm_file_end): New.
- (aarch64_indirect_call_asm): New.
- (TARGET_ASM_FILE_END): Use aarch64_asm_file_end.
- (TARGET_ASM_FUNCTION_EPILOGUE): Use
- aarch64_sls_emit_blr_function_thunks.
- * config/aarch64/aarch64.h (STB_REGNUM_P): New.
- (enum reg_class): Add STUB_REGS class.
- (machine_function): Introduce `call_via` array for
- function-local stub labels.
- * config/aarch64/aarch64.md (*call_insn, *call_value_insn): Use
- aarch64_indirect_call_asm to emit code when hardening BLR
- instructions.
- * config/aarch64/constraints.md (Ucr): New constraint
- representing registers for indirect calls. Is GENERAL_REGS
- usually, and STUB_REGS when hardening BLR instruction against
- SLS.
- * config/aarch64/predicates.md (aarch64_general_reg): STUB_REGS class
- is also a general register.
-
-gcc/testsuite/ChangeLog:
-
- * gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c: New test.
- * gcc.target/aarch64/sls-mitigation/sls-miti-blr.c: New test.
----
- gcc/config/aarch64/aarch64-protos.h | 1 +
- gcc/config/aarch64/aarch64.c | 225 ++++++++++++++++++++-
- gcc/config/aarch64/aarch64.h | 15 ++
- gcc/config/aarch64/aarch64.md | 11 +-
- gcc/config/aarch64/constraints.md | 9 +
- gcc/config/aarch64/predicates.md | 3 +-
- .../aarch64/sls-mitigation/sls-miti-blr-bti.c | 40 ++++
- .../aarch64/sls-mitigation/sls-miti-blr.c | 33 +++
- 8 files changed, 328 insertions(+), 9 deletions(-)
- create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c
- create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c
-
-diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h
-index ee0ffde..839f801 100644
---- a/gcc/config/aarch64/aarch64-protos.h
-+++ b/gcc/config/aarch64/aarch64-protos.h
-@@ -782,6 +782,7 @@ extern const atomic_ool_names aarch64_ool_ldeor_names;
- tree aarch64_resolve_overloaded_builtin_general (location_t, tree, void *);
-
- const char *aarch64_sls_barrier (int);
-+const char *aarch64_indirect_call_asm (rtx);
- extern bool aarch64_harden_sls_retbr_p (void);
- extern bool aarch64_harden_sls_blr_p (void);
-
-diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
-index 2389d49..0f7bba3 100644
---- a/gcc/config/aarch64/aarch64.c
-+++ b/gcc/config/aarch64/aarch64.c
-@@ -10605,6 +10605,9 @@ aarch64_label_mentioned_p (rtx x)
- enum reg_class
- aarch64_regno_regclass (unsigned regno)
- {
-+ if (STUB_REGNUM_P (regno))
-+ return STUB_REGS;
-+
- if (GP_REGNUM_P (regno))
- return GENERAL_REGS;
-
-@@ -10939,6 +10942,7 @@ aarch64_class_max_nregs (reg_class_t regclass, machine_mode mode)
- unsigned int nregs, vec_flags;
- switch (regclass)
- {
-+ case STUB_REGS:
- case TAILCALL_ADDR_REGS:
- case POINTER_REGS:
- case GENERAL_REGS:
-@@ -13155,10 +13159,12 @@ aarch64_register_move_cost (machine_mode mode,
- = aarch64_tune_params.regmove_cost;
-
- /* Caller save and pointer regs are equivalent to GENERAL_REGS. */
-- if (to == TAILCALL_ADDR_REGS || to == POINTER_REGS)
-+ if (to == TAILCALL_ADDR_REGS || to == POINTER_REGS
-+ || to == STUB_REGS)
- to = GENERAL_REGS;
-
-- if (from == TAILCALL_ADDR_REGS || from == POINTER_REGS)
-+ if (from == TAILCALL_ADDR_REGS || from == POINTER_REGS
-+ || from == STUB_REGS)
- from = GENERAL_REGS;
-
- /* Make RDFFR very expensive. In particular, if we know that the FFR
-@@ -22957,6 +22963,215 @@ aarch64_sls_barrier (int mitigation_required)
- : "";
- }
-
-+static GTY (()) tree aarch64_sls_shared_thunks[30];
-+static GTY (()) bool aarch64_sls_shared_thunks_needed = false;
-+const char *indirect_symbol_names[30] = {
-+ "__call_indirect_x0",
-+ "__call_indirect_x1",
-+ "__call_indirect_x2",
-+ "__call_indirect_x3",
-+ "__call_indirect_x4",
-+ "__call_indirect_x5",
-+ "__call_indirect_x6",
-+ "__call_indirect_x7",
-+ "__call_indirect_x8",
-+ "__call_indirect_x9",
-+ "__call_indirect_x10",
-+ "__call_indirect_x11",
-+ "__call_indirect_x12",
-+ "__call_indirect_x13",
-+ "__call_indirect_x14",
-+ "__call_indirect_x15",
-+ "", /* "__call_indirect_x16", */
-+ "", /* "__call_indirect_x17", */
-+ "__call_indirect_x18",
-+ "__call_indirect_x19",
-+ "__call_indirect_x20",
-+ "__call_indirect_x21",
-+ "__call_indirect_x22",
-+ "__call_indirect_x23",
-+ "__call_indirect_x24",
-+ "__call_indirect_x25",
-+ "__call_indirect_x26",
-+ "__call_indirect_x27",
-+ "__call_indirect_x28",
-+ "__call_indirect_x29",
-+};
-+
-+/* Function to create a BLR thunk. This thunk is used to mitigate straight
-+ line speculation. Instead of a simple BLR that can be speculated past,
-+ we emit a BL to this thunk, and this thunk contains a BR to the relevant
-+ register. These thunks have the relevant speculation barries put after
-+ their indirect branch so that speculation is blocked.
-+
-+ We use such a thunk so the speculation barriers are kept off the
-+ architecturally executed path in order to reduce the performance overhead.
-+
-+ When optimizing for size we use stubs shared by the linked object.
-+ When optimizing for performance we emit stubs for each function in the hope
-+ that the branch predictor can better train on jumps specific for a given
-+ function. */
-+rtx
-+aarch64_sls_create_blr_label (int regnum)
-+{
-+ gcc_assert (STUB_REGNUM_P (regnum));
-+ if (optimize_function_for_size_p (cfun))
-+ {
-+ /* For the thunks shared between different functions in this compilation
-+ unit we use a named symbol -- this is just for users to more easily
-+ understand the generated assembly. */
-+ aarch64_sls_shared_thunks_needed = true;
-+ const char *thunk_name = indirect_symbol_names[regnum];
-+ if (aarch64_sls_shared_thunks[regnum] == NULL)
-+ {
-+ /* Build a decl representing this function stub and record it for
-+ later. We build a decl here so we can use the GCC machinery for
-+ handling sections automatically (through `get_named_section` and
-+ `make_decl_one_only`). That saves us a lot of trouble handling
-+ the specifics of different output file formats. */
-+ tree decl = build_decl (BUILTINS_LOCATION, FUNCTION_DECL,
-+ get_identifier (thunk_name),
-+ build_function_type_list (void_type_node,
-+ NULL_TREE));
-+ DECL_RESULT (decl) = build_decl (BUILTINS_LOCATION, RESULT_DECL,
-+ NULL_TREE, void_type_node);
-+ TREE_PUBLIC (decl) = 1;
-+ TREE_STATIC (decl) = 1;
-+ DECL_IGNORED_P (decl) = 1;
-+ DECL_ARTIFICIAL (decl) = 1;
-+ make_decl_one_only (decl, DECL_ASSEMBLER_NAME (decl));
-+ resolve_unique_section (decl, 0, false);
-+ aarch64_sls_shared_thunks[regnum] = decl;
-+ }
-+
-+ return gen_rtx_SYMBOL_REF (Pmode, thunk_name);
-+ }
-+
-+ if (cfun->machine->call_via[regnum] == NULL)
-+ cfun->machine->call_via[regnum]
-+ = gen_rtx_LABEL_REF (Pmode, gen_label_rtx ());
-+ return cfun->machine->call_via[regnum];
-+}
-+
-+/* Helper function for aarch64_sls_emit_blr_function_thunks and
-+ aarch64_sls_emit_shared_blr_thunks below. */
-+static void
-+aarch64_sls_emit_function_stub (FILE *out_file, int regnum)
-+{
-+ /* Save in x16 and branch to that function so this transformation does
-+ not prevent jumping to `BTI c` instructions. */
-+ asm_fprintf (out_file, "\tmov\tx16, x%d\n", regnum);
-+ asm_fprintf (out_file, "\tbr\tx16\n");
-+}
-+
-+/* Emit all BLR stubs for this particular function.
-+ Here we emit all the BLR stubs needed for the current function. Since we
-+ emit these stubs in a consecutive block we know there will be no speculation
-+ gadgets between each stub, and hence we only emit a speculation barrier at
-+ the end of the stub sequences.
-+
-+ This is called in the TARGET_ASM_FUNCTION_EPILOGUE hook. */
-+void
-+aarch64_sls_emit_blr_function_thunks (FILE *out_file)
-+{
-+ if (! aarch64_harden_sls_blr_p ())
-+ return;
-+
-+ bool any_functions_emitted = false;
-+ /* We must save and restore the current function section since this assembly
-+ is emitted at the end of the function. This means it can be emitted *just
-+ after* the cold section of a function. That cold part would be emitted in
-+ a different section. That switch would trigger a `.cfi_endproc` directive
-+ to be emitted in the original section and a `.cfi_startproc` directive to
-+ be emitted in the new section. Switching to the original section without
-+ restoring would mean that the `.cfi_endproc` emitted as a function ends
-+ would happen in a different section -- leaving an unmatched
-+ `.cfi_startproc` in the cold text section and an unmatched `.cfi_endproc`
-+ in the standard text section. */
-+ section *save_text_section = in_section;
-+ switch_to_section (function_section (current_function_decl));
-+ for (int regnum = 0; regnum < 30; ++regnum)
-+ {
-+ rtx specu_label = cfun->machine->call_via[regnum];
-+ if (specu_label == NULL)
-+ continue;
-+
-+ targetm.asm_out.print_operand (out_file, specu_label, 0);
-+ asm_fprintf (out_file, ":\n");
-+ aarch64_sls_emit_function_stub (out_file, regnum);
-+ any_functions_emitted = true;
-+ }
-+ if (any_functions_emitted)
-+ /* Can use the SB if needs be here, since this stub will only be used
-+ by the current function, and hence for the current target. */
-+ asm_fprintf (out_file, "\t%s\n", aarch64_sls_barrier (true));
-+ switch_to_section (save_text_section);
-+}
-+
-+/* Emit shared BLR stubs for the current compilation unit.
-+ Over the course of compiling this unit we may have converted some BLR
-+ instructions to a BL to a shared stub function. This is where we emit those
-+ stub functions.
-+ This function is for the stubs shared between different functions in this
-+ compilation unit. We share when optimizing for size instead of speed.
-+
-+ This function is called through the TARGET_ASM_FILE_END hook. */
-+void
-+aarch64_sls_emit_shared_blr_thunks (FILE *out_file)
-+{
-+ if (! aarch64_sls_shared_thunks_needed)
-+ return;
-+
-+ for (int regnum = 0; regnum < 30; ++regnum)
-+ {
-+ tree decl = aarch64_sls_shared_thunks[regnum];
-+ if (!decl)
-+ continue;
-+
-+ const char *name = indirect_symbol_names[regnum];
-+ switch_to_section (get_named_section (decl, NULL, 0));
-+ ASM_OUTPUT_ALIGN (out_file, 2);
-+ targetm.asm_out.globalize_label (out_file, name);
-+ /* Only emits if the compiler is configured for an assembler that can
-+ handle visibility directives. */
-+ targetm.asm_out.assemble_visibility (decl, VISIBILITY_HIDDEN);
-+ ASM_OUTPUT_TYPE_DIRECTIVE (out_file, name, "function");
-+ ASM_OUTPUT_LABEL (out_file, name);
-+ aarch64_sls_emit_function_stub (out_file, regnum);
-+ /* Use the most conservative target to ensure it can always be used by any
-+ function in the translation unit. */
-+ asm_fprintf (out_file, "\tdsb\tsy\n\tisb\n");
-+ ASM_DECLARE_FUNCTION_SIZE (out_file, name, decl);
-+ }
-+}
-+
-+/* Implement TARGET_ASM_FILE_END. */
-+void
-+aarch64_asm_file_end ()
-+{
-+ aarch64_sls_emit_shared_blr_thunks (asm_out_file);
-+ /* Since this function will be called for the ASM_FILE_END hook, we ensure
-+ that what would be called otherwise (e.g. `file_end_indicate_exec_stack`
-+ for FreeBSD) still gets called. */
-+#ifdef TARGET_ASM_FILE_END
-+ TARGET_ASM_FILE_END ();
-+#endif
-+}
-+
-+const char *
-+aarch64_indirect_call_asm (rtx addr)
-+{
-+ gcc_assert (REG_P (addr));
-+ if (aarch64_harden_sls_blr_p ())
-+ {
-+ rtx stub_label = aarch64_sls_create_blr_label (REGNO (addr));
-+ output_asm_insn ("bl\t%0", &stub_label);
-+ }
-+ else
-+ output_asm_insn ("blr\t%0", &addr);
-+ return "";
-+}
-+
- /* Target-specific selftests. */
-
- #if CHECKING_P
-@@ -23507,6 +23722,12 @@ aarch64_libgcc_floating_mode_supported_p
- #undef TARGET_MD_ASM_ADJUST
- #define TARGET_MD_ASM_ADJUST arm_md_asm_adjust
-
-+#undef TARGET_ASM_FILE_END
-+#define TARGET_ASM_FILE_END aarch64_asm_file_end
-+
-+#undef TARGET_ASM_FUNCTION_EPILOGUE
-+#define TARGET_ASM_FUNCTION_EPILOGUE aarch64_sls_emit_blr_function_thunks
-+
- struct gcc_target targetm = TARGET_INITIALIZER;
-
- #include "gt-aarch64.h"
-diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
-index 8e0fc37..7331450 100644
---- a/gcc/config/aarch64/aarch64.h
-+++ b/gcc/config/aarch64/aarch64.h
-@@ -643,6 +643,16 @@ extern unsigned aarch64_architecture_version;
- #define GP_REGNUM_P(REGNO) \
- (((unsigned) (REGNO - R0_REGNUM)) <= (R30_REGNUM - R0_REGNUM))
-
-+/* Registers known to be preserved over a BL instruction. This consists of the
-+ GENERAL_REGS without x16, x17, and x30. The x30 register is changed by the
-+ BL instruction itself, while the x16 and x17 registers may be used by
-+ veneers which can be inserted by the linker. */
-+#define STUB_REGNUM_P(REGNO) \
-+ (GP_REGNUM_P (REGNO) \
-+ && (REGNO) != R16_REGNUM \
-+ && (REGNO) != R17_REGNUM \
-+ && (REGNO) != R30_REGNUM) \
-+
- #define FP_REGNUM_P(REGNO) \
- (((unsigned) (REGNO - V0_REGNUM)) <= (V31_REGNUM - V0_REGNUM))
-
-@@ -667,6 +677,7 @@ enum reg_class
- {
- NO_REGS,
- TAILCALL_ADDR_REGS,
-+ STUB_REGS,
- GENERAL_REGS,
- STACK_REG,
- POINTER_REGS,
-@@ -689,6 +700,7 @@ enum reg_class
- { \
- "NO_REGS", \
- "TAILCALL_ADDR_REGS", \
-+ "STUB_REGS", \
- "GENERAL_REGS", \
- "STACK_REG", \
- "POINTER_REGS", \
-@@ -708,6 +720,7 @@ enum reg_class
- { \
- { 0x00000000, 0x00000000, 0x00000000 }, /* NO_REGS */ \
- { 0x00030000, 0x00000000, 0x00000000 }, /* TAILCALL_ADDR_REGS */\
-+ { 0x3ffcffff, 0x00000000, 0x00000000 }, /* STUB_REGS */ \
- { 0x7fffffff, 0x00000000, 0x00000003 }, /* GENERAL_REGS */ \
- { 0x80000000, 0x00000000, 0x00000000 }, /* STACK_REG */ \
- { 0xffffffff, 0x00000000, 0x00000003 }, /* POINTER_REGS */ \
-@@ -862,6 +875,8 @@ typedef struct GTY (()) machine_function
- struct aarch64_frame frame;
- /* One entry for each hard register. */
- bool reg_is_wrapped_separately[LAST_SAVED_REGNUM];
-+ /* One entry for each general purpose register. */
-+ rtx call_via[SP_REGNUM];
- bool label_is_assembled;
- } machine_function;
- #endif
-diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
-index dda04ee..43da754 100644
---- a/gcc/config/aarch64/aarch64.md
-+++ b/gcc/config/aarch64/aarch64.md
-@@ -1022,16 +1022,15 @@
- )
-
- (define_insn "*call_insn"
-- [(call (mem:DI (match_operand:DI 0 "aarch64_call_insn_operand" "r, Usf"))
-+ [(call (mem:DI (match_operand:DI 0 "aarch64_call_insn_operand" "Ucr, Usf"))
- (match_operand 1 "" ""))
- (unspec:DI [(match_operand:DI 2 "const_int_operand")] UNSPEC_CALLEE_ABI)
- (clobber (reg:DI LR_REGNUM))]
- ""
- "@
-- blr\\t%0
-+ * return aarch64_indirect_call_asm (operands[0]);
- bl\\t%c0"
-- [(set_attr "type" "call, call")]
--)
-+ [(set_attr "type" "call, call")])
-
- (define_expand "call_value"
- [(parallel
-@@ -1050,13 +1049,13 @@
-
- (define_insn "*call_value_insn"
- [(set (match_operand 0 "" "")
-- (call (mem:DI (match_operand:DI 1 "aarch64_call_insn_operand" "r, Usf"))
-+ (call (mem:DI (match_operand:DI 1 "aarch64_call_insn_operand" "Ucr, Usf"))
- (match_operand 2 "" "")))
- (unspec:DI [(match_operand:DI 3 "const_int_operand")] UNSPEC_CALLEE_ABI)
- (clobber (reg:DI LR_REGNUM))]
- ""
- "@
-- blr\\t%1
-+ * return aarch64_indirect_call_asm (operands[1]);
- bl\\t%c1"
- [(set_attr "type" "call, call")]
- )
-diff --git a/gcc/config/aarch64/constraints.md b/gcc/config/aarch64/constraints.md
-index d993268..8cc6f50 100644
---- a/gcc/config/aarch64/constraints.md
-+++ b/gcc/config/aarch64/constraints.md
-@@ -24,6 +24,15 @@
- (define_register_constraint "Ucs" "TAILCALL_ADDR_REGS"
- "@internal Registers suitable for an indirect tail call")
-
-+(define_register_constraint "Ucr"
-+ "aarch64_harden_sls_blr_p () ? STUB_REGS : GENERAL_REGS"
-+ "@internal Registers to be used for an indirect call.
-+ This is usually the general registers, but when we are hardening against
-+ Straight Line Speculation we disallow x16, x17, and x30 so we can use
-+ indirection stubs. These indirection stubs cannot use the above registers
-+ since they will be reached by a BL that may have to go through a linker
-+ veneer.")
-+
- (define_register_constraint "w" "FP_REGS"
- "Floating point and SIMD vector registers.")
-
-diff --git a/gcc/config/aarch64/predicates.md b/gcc/config/aarch64/predicates.md
-index 215fcec..1754b1e 100644
---- a/gcc/config/aarch64/predicates.md
-+++ b/gcc/config/aarch64/predicates.md
-@@ -32,7 +32,8 @@
-
- (define_predicate "aarch64_general_reg"
- (and (match_operand 0 "register_operand")
-- (match_test "REGNO_REG_CLASS (REGNO (op)) == GENERAL_REGS")))
-+ (match_test "REGNO_REG_CLASS (REGNO (op)) == STUB_REGS
-+ || REGNO_REG_CLASS (REGNO (op)) == GENERAL_REGS")))
-
- ;; Return true if OP a (const_int 0) operand.
- (define_predicate "const0_operand"
-diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c
-new file mode 100644
-index 0000000..b1fb754
---- /dev/null
-+++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c
-@@ -0,0 +1,40 @@
-+/* { dg-do compile } */
-+/* { dg-additional-options "-mharden-sls=blr -mbranch-protection=bti" } */
-+/*
-+ Ensure that the SLS hardening of BLR leaves no BLR instructions.
-+ Here we also check that there are no BR instructions with anything except an
-+ x16 or x17 register. This is because a `BTI c` instruction can be branched
-+ to using a BLR instruction using any register, but can only be branched to
-+ with a BR using an x16 or x17 register.
-+ */
-+typedef int (foo) (int, int);
-+typedef void (bar) (int, int);
-+struct sls_testclass {
-+ foo *x;
-+ bar *y;
-+ int left;
-+ int right;
-+};
-+
-+/* We test both RTL patterns for a call which returns a value and a call which
-+ does not. */
-+int blr_call_value (struct sls_testclass x)
-+{
-+ int retval = x.x(x.left, x.right);
-+ if (retval % 10)
-+ return 100;
-+ return 9;
-+}
-+
-+int blr_call (struct sls_testclass x)
-+{
-+ x.y(x.left, x.right);
-+ if (x.left % 10)
-+ return 100;
-+ return 9;
-+}
-+
-+/* { dg-final { scan-assembler-not {\tblr\t} } } */
-+/* { dg-final { scan-assembler-not {\tbr\tx(?!16|17)} } } */
-+/* { dg-final { scan-assembler {\tbr\tx(16|17)} } } */
-+
-diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c
-new file mode 100644
-index 0000000..88bafff
---- /dev/null
-+++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c
-@@ -0,0 +1,33 @@
-+/* { dg-additional-options "-mharden-sls=blr -save-temps" } */
-+/* Ensure that the SLS hardening of BLR leaves no BLR instructions.
-+ We only test that all BLR instructions have been removed, not that the
-+ resulting code makes sense. */
-+typedef int (foo) (int, int);
-+typedef void (bar) (int, int);
-+struct sls_testclass {
-+ foo *x;
-+ bar *y;
-+ int left;
-+ int right;
-+};
-+
-+/* We test both RTL patterns for a call which returns a value and a call which
-+ does not. */
-+int blr_call_value (struct sls_testclass x)
-+{
-+ int retval = x.x(x.left, x.right);
-+ if (retval % 10)
-+ return 100;
-+ return 9;
-+}
-+
-+int blr_call (struct sls_testclass x)
-+{
-+ x.y(x.left, x.right);
-+ if (x.left % 10)
-+ return 100;
-+ return 9;
-+}
-+
-+/* { dg-final { scan-assembler-not {\tblr\t} } } */
-+/* { dg-final { scan-assembler {\tbr\tx[0-9][0-9]?} } } */
---
-2.7.4
-
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch b/poky/meta/recipes-devtools/gcc/gcc/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch
index 27237feb5..7a6765455 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch
@@ -1,4 +1,4 @@
-From 6e3395c0bc933bdc3242d1dead4896d0aa4e11a8 Mon Sep 17 00:00:00 2001
+From 274a27da6fe355c4c49953b3b69c8949d2412c62 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:08:31 +0400
Subject: [PATCH] gcc-4.3.3: SYSROOT_CFLAGS_FOR_TARGET
@@ -26,10 +26,10 @@ Upstream-Status: Pending
1 file changed, 32 insertions(+)
diff --git a/configure b/configure
-index 226a64939d1..b31dc137fc9 100755
+index bcebad264ec..86e4ee7c383 100755
--- a/configure
+++ b/configure
-@@ -6971,6 +6971,38 @@ fi
+@@ -8977,6 +8977,38 @@ fi
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch b/poky/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch
index 7c751bef6..789f57343 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch
@@ -1,4 +1,4 @@
-From 85a7c5aeb82ed61e6ef6d8e061b9da9e6a4a652c Mon Sep 17 00:00:00 2001
+From 28e7c312b1292ca216d4b54ec9f6b7ac055907a8 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:10:06 +0400
Subject: [PATCH] 64-bit multilib hack.
@@ -37,7 +37,7 @@ Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
5 files changed, 15 insertions(+), 20 deletions(-)
diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux
-index 83e59e33b85..b1356be1fb4 100644
+index 241b0ef20b6..a7dadb2d64f 100644
--- a/gcc/config/aarch64/t-aarch64-linux
+++ b/gcc/config/aarch64/t-aarch64-linux
@@ -21,8 +21,8 @@
@@ -54,7 +54,7 @@ index 83e59e33b85..b1356be1fb4 100644
-MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32)
+#MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32)
diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64
-index 1171e218578..5e057b7e5db 100644
+index d288b093522..7b5980a9d21 100644
--- a/gcc/config/i386/t-linux64
+++ b/gcc/config/i386/t-linux64
@@ -32,7 +32,5 @@
@@ -68,7 +68,7 @@ index 1171e218578..5e057b7e5db 100644
+MULTILIB_DIRNAMES = . .
+MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir))
diff --git a/gcc/config/mips/t-linux64 b/gcc/config/mips/t-linux64
-index ceb58d3b5f3..43fe2bf28ab 100644
+index 130e1f04707..3b7eb6b2a2f 100644
--- a/gcc/config/mips/t-linux64
+++ b/gcc/config/mips/t-linux64
@@ -17,10 +17,6 @@
@@ -98,7 +98,7 @@ index 216d2776a18..e4d817621fc 100644
+#MULTILIB_OSDIRNAMES := $(patsubst lib%,../lib%,$(MULTILIB_DIRNAMES))
+MULTILIB_OSDIRNAMES := ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir))
diff --git a/gcc/config/rs6000/t-linux64 b/gcc/config/rs6000/t-linux64
-index 264a7e27524..dc9d440f66b 100644
+index e11a118cb5f..4eaffb416fe 100644
--- a/gcc/config/rs6000/t-linux64
+++ b/gcc/config/rs6000/t-linux64
@@ -26,10 +26,9 @@
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0005-optional-libstdc.patch b/poky/meta/recipes-devtools/gcc/gcc/0005-optional-libstdc.patch
index 4020c9e3c..c921ac334 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0005-optional-libstdc.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0005-optional-libstdc.patch
@@ -1,4 +1,4 @@
-From 6ddfb0bfcd1eea71acd37ab06f7a4510b9f1d12b Mon Sep 17 00:00:00 2001
+From 57e2c5e35732988c0b287289eb0997b4e9769371 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:12:56 +0400
Subject: [PATCH] optional libstdc
@@ -25,10 +25,10 @@ Upstream-Status: Inappropriate [embedded specific]
4 files changed, 37 insertions(+), 1 deletion(-)
diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
-index c49da99d395..35f712e2c84 100644
+index 64e46e7573e..1824380f27a 100644
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
-@@ -2025,6 +2025,10 @@ nostdinc++
+@@ -2166,6 +2166,10 @@ nostdinc++
C++ ObjC++
Do not search standard system include directories for C++.
@@ -40,10 +40,10 @@ index c49da99d395..35f712e2c84 100644
C ObjC C++ ObjC++ Joined Separate
; Documented in common.opt
diff --git a/gcc/cp/g++spec.c b/gcc/cp/g++spec.c
-index 0ab63bcd211..7b081e9e4f0 100644
+index 3c9bd1490b4..818beb61cee 100644
--- a/gcc/cp/g++spec.c
+++ b/gcc/cp/g++spec.c
-@@ -137,6 +137,7 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
+@@ -159,6 +159,7 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
switch (decoded_options[i].opt_index)
{
case OPT_nostdlib:
@@ -52,10 +52,10 @@ index 0ab63bcd211..7b081e9e4f0 100644
library = -1;
break;
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
-index f12d8d12150..cf6cb428e7d 100644
+index 6659a903bf0..9ee63dbe52f 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
-@@ -230,6 +230,9 @@ in the following sections.
+@@ -239,6 +239,9 @@ in the following sections.
-fno-weak -nostdinc++ @gol
-fvisibility-inlines-hidden @gol
-fvisibility-ms-compat @gol
@@ -63,9 +63,9 @@ index f12d8d12150..cf6cb428e7d 100644
+-fvtv-counts -fvtv-debug @gol
+-nostdlib++ @gol
-fext-numeric-literals @gol
- -Wabi-tag -Wcatch-value -Wcatch-value=@var{n} @gol
- -Wno-class-conversion -Wclass-memaccess @gol
-@@ -599,7 +602,7 @@ Objective-C and Objective-C++ Dialects}.
+ -flang-info-include-translate@r{[}=@var{header}@r{]} @gol
+ -flang-info-include-translate-not @gol
+@@ -632,7 +635,7 @@ Objective-C and Objective-C++ Dialects}.
-pie -pthread -r -rdynamic @gol
-s -static -static-pie -static-libgcc -static-libstdc++ @gol
-static-libasan -static-libtsan -static-liblsan -static-libubsan @gol
@@ -74,7 +74,7 @@ index f12d8d12150..cf6cb428e7d 100644
-T @var{script} -Wl,@var{option} -Xlinker @var{option} @gol
-u @var{symbol} -z @var{keyword}}
-@@ -14407,6 +14410,33 @@ Specify that the program entry point is @var{entry}. The argument is
+@@ -15708,6 +15711,33 @@ Specify that the program entry point is @var{entry}. The argument is
interpreted by the linker; the GNU linker accepts either a symbol name
or an address.
@@ -109,10 +109,10 @@ index f12d8d12150..cf6cb428e7d 100644
@opindex pie
Produce a dynamically linked position independent executable on targets
diff --git a/gcc/gcc.c b/gcc/gcc.c
-index b2200c5185a..f8be58ce0a6 100644
+index 19c75b6e20d..be7630ffd8c 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
-@@ -1051,6 +1051,7 @@ proper position among the other output files. */
+@@ -1162,6 +1162,7 @@ proper position among the other output files. */
%(mflib) " STACK_SPLIT_SPEC "\
%{fprofile-arcs|fprofile-generate*|coverage:-lgcov} " SANITIZER_SPEC " \
%{!nostdlib:%{!r:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}}}\
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0006-COLLECT_GCC_OPTIONS.patch b/poky/meta/recipes-devtools/gcc/gcc/0006-COLLECT_GCC_OPTIONS.patch
index 9fbbe8070..265ca0e21 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0006-COLLECT_GCC_OPTIONS.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0006-COLLECT_GCC_OPTIONS.patch
@@ -1,4 +1,4 @@
-From a6c90d3a9c5010b4aa7cc30467cf81ca7e0f430e Mon Sep 17 00:00:00 2001
+From 127716a32a11ca2a6b3aac068054bfc69c4dcfd8 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:16:28 +0400
Subject: [PATCH] COLLECT_GCC_OPTIONS
@@ -14,10 +14,10 @@ Upstream-Status: Pending
1 file changed, 9 insertions(+)
diff --git a/gcc/gcc.c b/gcc/gcc.c
-index f8be58ce0a6..48b0f9dde81 100644
+index be7630ffd8c..1bc45285384 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
-@@ -4806,6 +4806,15 @@ set_collect_gcc_options (void)
+@@ -5383,6 +5383,15 @@ set_collect_gcc_options (void)
sizeof ("COLLECT_GCC_OPTIONS=") - 1);
first_time = TRUE;
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch b/poky/meta/recipes-devtools/gcc/gcc/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
index a764bdd0f..9844c2ae8 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
@@ -1,4 +1,4 @@
-From 5670d4489f119d2da661734895ac0be99b606d1b Mon Sep 17 00:00:00 2001
+From e64342df647829d3e1c52fd480a5be7c1281ced0 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:17:25 +0400
Subject: [PATCH] Use the defaults.h in ${B} instead of ${S}, and t-oe in ${B}
@@ -26,10 +26,10 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
4 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index 543b477ff18..a67d2cc18d6 100644
+index 8a5fb3fd99c..7da6f439fff 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
-@@ -540,7 +540,7 @@ TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@
+@@ -552,7 +552,7 @@ TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@
TARGET_SYSTEM_ROOT_DEFINE = @TARGET_SYSTEM_ROOT_DEFINE@
xmake_file=@xmake_file@
@@ -39,10 +39,10 @@ index 543b477ff18..a67d2cc18d6 100644
TM_MULTILIB_CONFIG=@TM_MULTILIB_CONFIG@
TM_MULTILIB_EXCEPTIONS_CONFIG=@TM_MULTILIB_EXCEPTIONS_CONFIG@
diff --git a/gcc/configure b/gcc/configure
-index 8de766a942c..b26e8fc7fee 100755
+index 3f0734bff11..c5d3bc4ee2d 100755
--- a/gcc/configure
+++ b/gcc/configure
-@@ -12705,8 +12705,8 @@ for f in $tm_file; do
+@@ -13090,8 +13090,8 @@ for f in $tm_file; do
tm_include_list="${tm_include_list} $f"
;;
defaults.h )
@@ -54,10 +54,10 @@ index 8de766a942c..b26e8fc7fee 100755
* )
tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
diff --git a/gcc/configure.ac b/gcc/configure.ac
-index 8bfd6feb780..26fa46802c7 100644
+index 54e21764b3e..f83420326d6 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
-@@ -2138,8 +2138,8 @@ for f in $tm_file; do
+@@ -2263,8 +2263,8 @@ for f in $tm_file; do
tm_include_list="${tm_include_list} $f"
;;
defaults.h )
@@ -69,7 +69,7 @@ index 8bfd6feb780..26fa46802c7 100644
* )
tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
diff --git a/gcc/mkconfig.sh b/gcc/mkconfig.sh
-index d2c677a4a42..d03852481cb 100644
+index c49acd8f7e4..a0a657bdbb9 100644
--- a/gcc/mkconfig.sh
+++ b/gcc/mkconfig.sh
@@ -77,7 +77,7 @@ if [ -n "$HEADERS" ]; then
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0008-fortran-cross-compile-hack.patch b/poky/meta/recipes-devtools/gcc/gcc/0008-fortran-cross-compile-hack.patch
index 714db3bef..47f611e37 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0008-fortran-cross-compile-hack.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0008-fortran-cross-compile-hack.patch
@@ -1,4 +1,4 @@
-From f05062625e7a4751be723595a2f7a4b7fbeff311 Mon Sep 17 00:00:00 2001
+From 904d102e3ccb93296b16ceb2e283a6ccf3c1d718 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:20:01 +0400
Subject: [PATCH] fortran cross-compile hack.
@@ -16,10 +16,10 @@ Upstream-Status: Inappropriate [embedded specific]
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/libgfortran/configure b/libgfortran/configure
-index b4cf854ddb3..e8e0ac3b1cf 100755
+index f3634389cf8..f974e874b8e 100755
--- a/libgfortran/configure
+++ b/libgfortran/configure
-@@ -13090,7 +13090,7 @@ esac
+@@ -13102,7 +13102,7 @@ esac
# We need gfortran to compile parts of the library
#AC_PROG_FC(gfortran)
@@ -29,10 +29,10 @@ index b4cf854ddb3..e8e0ac3b1cf 100755
ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
diff --git a/libgfortran/configure.ac b/libgfortran/configure.ac
-index 711dc60ff78..3c9bbfbf47d 100644
+index 8961e314d82..49c8221cb6b 100644
--- a/libgfortran/configure.ac
+++ b/libgfortran/configure.ac
-@@ -258,7 +258,7 @@ AC_SUBST(enable_static)
+@@ -271,7 +271,7 @@ AC_SUBST(enable_static)
# We need gfortran to compile parts of the library
#AC_PROG_FC(gfortran)
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0009-cpp-honor-sysroot.patch b/poky/meta/recipes-devtools/gcc/gcc/0009-cpp-honor-sysroot.patch
index 8ad6853d8..c720defa3 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0009-cpp-honor-sysroot.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0009-cpp-honor-sysroot.patch
@@ -1,4 +1,4 @@
-From 1d76de7f1f5c99f1fa1a4b14aedad3d702e4e136 Mon Sep 17 00:00:00 2001
+From 33a7a55d39c040ba09af2d69f7fa9cf8e6f84c91 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:22:00 +0400
Subject: [PATCH] cpp: honor sysroot.
@@ -26,21 +26,23 @@ Upstream-Status: Pending
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc/cp/lang-specs.h b/gcc/cp/lang-specs.h
-index 0ad4a33b93e..16c744f4f90 100644
+index 8902ae1d2ed..e99e2fcd6ad 100644
--- a/gcc/cp/lang-specs.h
+++ b/gcc/cp/lang-specs.h
-@@ -66,5 +66,5 @@ along with GCC; see the file COPYING3. If not see
+@@ -116,7 +116,7 @@ along with GCC; see the file COPYING3. If not see
{".ii", "@c++-cpp-output", 0, 0, 0},
{"@c++-cpp-output",
"%{!E:%{!M:%{!MM:"
- " cc1plus -fpreprocessed %i %(cc1_options) %2"
+ " cc1plus -fpreprocessed %i %I %(cc1_options) %2"
- " %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
+ " %{!fsyntax-only:"
+ " %{fmodule-only:%{!S:-o %g.s%V}}"
+ " %{!fmodule-only:%{!fmodule-header*:%(invoke_as)}}}"
diff --git a/gcc/gcc.c b/gcc/gcc.c
-index 48b0f9dde81..c87f603955f 100644
+index 1bc45285384..8737bae5353 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
-@@ -1348,7 +1348,7 @@ static const struct compiler default_compilers[] =
+@@ -1470,7 +1470,7 @@ static const struct compiler default_compilers[] =
%W{o*:--output-pch=%*}}%V}}}}}}}", 0, 0, 0},
{".i", "@cpp-output", 0, 0, 0},
{"@cpp-output",
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0010-MIPS64-Default-to-N64-ABI.patch b/poky/meta/recipes-devtools/gcc/gcc/0010-MIPS64-Default-to-N64-ABI.patch
index 625e2d870..f385f8c5a 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0010-MIPS64-Default-to-N64-ABI.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0010-MIPS64-Default-to-N64-ABI.patch
@@ -1,4 +1,4 @@
-From 4fad4433c96bc9d0d9d124f9674fb3389f6f426e Mon Sep 17 00:00:00 2001
+From a2dc2fa4cc7e5d54544d4a7b6601eef79bc26cad Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:23:08 +0400
Subject: [PATCH] MIPS64: Default to N64 ABI
@@ -14,10 +14,10 @@ Upstream-Status: Inappropriate [OE config specific]
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/gcc/config.gcc b/gcc/config.gcc
-index cf1a87e2efd..37c4221a39f 100644
+index 3ec7582f5dd..a046fa6945c 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
-@@ -2511,29 +2511,29 @@ mips*-*-linux*) # Linux MIPS, either endian.
+@@ -2543,29 +2543,29 @@ mips*-*-linux*) # Linux MIPS, either endian.
default_mips_arch=mips32
;;
mips64el-st-linux-gnu)
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch b/poky/meta/recipes-devtools/gcc/gcc/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
index e35797633..4726267a8 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
@@ -1,4 +1,4 @@
-From 8fc016a53c22c19feccbfa13ebdf19090dc67058 Mon Sep 17 00:00:00 2001
+From 8e9d6efecdc8c42f47e3a012dee764b13c3dad59 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:24:50 +0400
Subject: [PATCH] Define GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER
@@ -31,7 +31,7 @@ Upstream-Status: Inappropriate [OE configuration]
12 files changed, 29 insertions(+), 34 deletions(-)
diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h
-index e25fcac3c59..01aca0c6542 100644
+index c1dae8ca2cf..3ce2b76c1a4 100644
--- a/gcc/config/alpha/linux-elf.h
+++ b/gcc/config/alpha/linux-elf.h
@@ -23,8 +23,8 @@ along with GCC; see the file COPYING3. If not see
@@ -46,7 +46,7 @@ index e25fcac3c59..01aca0c6542 100644
#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
#elif DEFAULT_LIBC == LIBC_GLIBC
diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
-index 5bdcfa0c5d3..0c0332f317f 100644
+index 85d0136e76e..6bd95855827 100644
--- a/gcc/config/arm/linux-eabi.h
+++ b/gcc/config/arm/linux-eabi.h
@@ -65,8 +65,8 @@
@@ -61,7 +61,7 @@ index 5bdcfa0c5d3..0c0332f317f 100644
#define GLIBC_DYNAMIC_LINKER \
diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
-index 0ec3aa53189..abfa9566d74 100644
+index 0c1c4e70b6b..6bd643ade11 100644
--- a/gcc/config/arm/linux-elf.h
+++ b/gcc/config/arm/linux-elf.h
@@ -60,7 +60,7 @@
@@ -74,7 +74,7 @@ index 0ec3aa53189..abfa9566d74 100644
#define LINUX_TARGET_LINK_SPEC "%{h*} \
%{static:-Bstatic} \
diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h
-index 9f823f125ed..e0390b7d5e3 100644
+index 04b274f1654..7aafcf3ac2d 100644
--- a/gcc/config/i386/linux.h
+++ b/gcc/config/i386/linux.h
@@ -20,7 +20,7 @@ along with GCC; see the file COPYING3. If not see
@@ -87,7 +87,7 @@ index 9f823f125ed..e0390b7d5e3 100644
#undef MUSL_DYNAMIC_LINKER
#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1"
diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h
-index 6cb68d1ccfa..7de09ec857c 100644
+index b3822ced528..92d303e80d6 100644
--- a/gcc/config/i386/linux64.h
+++ b/gcc/config/i386/linux64.h
@@ -27,9 +27,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
@@ -104,7 +104,7 @@ index 6cb68d1ccfa..7de09ec857c 100644
#undef MUSL_DYNAMIC_LINKER32
#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-i386.so.1"
diff --git a/gcc/config/linux.h b/gcc/config/linux.h
-index 95654bcdb5a..0c1a8118a26 100644
+index 4e1db60fced..87efc5f69fe 100644
--- a/gcc/config/linux.h
+++ b/gcc/config/linux.h
@@ -94,10 +94,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
@@ -123,7 +123,7 @@ index 95654bcdb5a..0c1a8118a26 100644
#define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker"
#define BIONIC_DYNAMIC_LINKER64 "/system/bin/linker64"
diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h
-index 54446e58e5f..4786ee304c1 100644
+index 44a85e410d9..8d41b5574f6 100644
--- a/gcc/config/mips/linux.h
+++ b/gcc/config/mips/linux.h
@@ -22,20 +22,20 @@ along with GCC; see the file COPYING3. If not see
@@ -154,7 +154,7 @@ index 54446e58e5f..4786ee304c1 100644
#undef MUSL_DYNAMIC_LINKER32
#define MUSL_DYNAMIC_LINKER32 \
diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
-index 4afef7c228c..01997330741 100644
+index 9238de5bc92..7136a83260a 100644
--- a/gcc/config/riscv/linux.h
+++ b/gcc/config/riscv/linux.h
@@ -22,7 +22,7 @@ along with GCC; see the file COPYING3. If not see
@@ -167,10 +167,10 @@ index 4afef7c228c..01997330741 100644
#define MUSL_ABI_SUFFIX \
"%{mabi=ilp32:-sf}" \
diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
-index 34776c8421e..967c1c43c63 100644
+index e3f2cd254f6..a11e01faa3d 100644
--- a/gcc/config/rs6000/linux64.h
+++ b/gcc/config/rs6000/linux64.h
-@@ -419,24 +419,19 @@ extern int dot_symbols;
+@@ -336,24 +336,19 @@ extern int dot_symbols;
#undef LINK_OS_DEFAULT_SPEC
#define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
@@ -201,7 +201,7 @@ index 34776c8421e..967c1c43c63 100644
#undef DEFAULT_ASM_ENDIAN
#if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h
-index c1d0441d488..81373eb8336 100644
+index 7558d2f7195..3aaa6c3a078 100644
--- a/gcc/config/sh/linux.h
+++ b/gcc/config/sh/linux.h
@@ -64,7 +64,7 @@ along with GCC; see the file COPYING3. If not see
@@ -214,10 +214,10 @@ index c1d0441d488..81373eb8336 100644
#undef SUBTARGET_LINK_EMUL_SUFFIX
#define SUBTARGET_LINK_EMUL_SUFFIX "%{mfdpic:_fd;:_linux}"
diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
-index 81201e67a2f..8b6fc577594 100644
+index 2550d7ee8f0..a94f4cd8ba2 100644
--- a/gcc/config/sparc/linux.h
+++ b/gcc/config/sparc/linux.h
-@@ -84,7 +84,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
+@@ -78,7 +78,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
When the -shared link option is used a final link is not being
done. */
@@ -227,10 +227,10 @@ index 81201e67a2f..8b6fc577594 100644
#undef LINK_SPEC
#define LINK_SPEC "-m elf32_sparc %{shared:-shared} \
diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h
-index a1a0efd8f28..85d1084afc2 100644
+index 95af8afa9b5..63127afb074 100644
--- a/gcc/config/sparc/linux64.h
+++ b/gcc/config/sparc/linux64.h
-@@ -84,8 +84,8 @@ along with GCC; see the file COPYING3. If not see
+@@ -78,8 +78,8 @@ along with GCC; see the file COPYING3. If not see
When the -shared link option is used a final link is not being
done. */
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0012-gcc-Fix-argument-list-too-long-error.patch b/poky/meta/recipes-devtools/gcc/gcc/0012-gcc-Fix-argument-list-too-long-error.patch
index 88e1715b5..814ce18b9 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0012-gcc-Fix-argument-list-too-long-error.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0012-gcc-Fix-argument-list-too-long-error.patch
@@ -1,4 +1,4 @@
-From a22d1264049d29b90663cf5667049ae6f9b7a5ce Mon Sep 17 00:00:00 2001
+From 12646c0899dec1b127ce71ebacf2571c1c7360f4 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:26:37 +0400
Subject: [PATCH] gcc: Fix argument list too long error.
@@ -22,17 +22,18 @@ fix. Add the sort to the original gcc code, leaving the tr+sort to fix the origi
issue but include the new files too as reported by Zhuang <qiuguang.zqg@alibaba-inc.com>
Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
gcc/Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index a67d2cc18d6..480c9366418 100644
+index 7da6f439fff..59c45c81393 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
-@@ -3606,7 +3606,7 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
- # We keep the directory structure for files in config or c-family and .def
- # files. All other files are flattened to a single directory.
+@@ -3678,7 +3678,7 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
+ # We keep the directory structure for files in config, common/config or
+ # c-family and .def files. All other files are flattened to a single directory.
$(mkinstalldirs) $(DESTDIR)$(plugin_includedir)
- headers=`echo $(PLUGIN_HEADERS) $$(cd $(srcdir); echo *.h *.def) | tr ' ' '\012' | sort -u`; \
+ headers=`echo $(sort $(PLUGIN_HEADERS)) $$(cd $(srcdir); echo *.h *.def) | tr ' ' '\012' | sort -u`; \
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0013-Disable-sdt.patch b/poky/meta/recipes-devtools/gcc/gcc/0013-Disable-sdt.patch
index 207cdb57a..1e657666d 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0013-Disable-sdt.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0013-Disable-sdt.patch
@@ -1,4 +1,4 @@
-From fa47586935a18ecfc2ad5586802e326e21741b7b Mon Sep 17 00:00:00 2001
+From 7928a4eddc4a6d821a6aa6eaaea1fd60d54e3da9 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:28:10 +0400
Subject: [PATCH] Disable sdt.
@@ -25,10 +25,10 @@ Upstream-Status: Inappropriate [hack]
4 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/gcc/configure b/gcc/configure
-index b26e8fc7fee..6080f86145e 100755
+index c5d3bc4ee2d..5160917d73e 100755
--- a/gcc/configure
+++ b/gcc/configure
-@@ -29789,12 +29789,12 @@ fi
+@@ -30812,12 +30812,12 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking sys/sdt.h in the target C library" >&5
$as_echo_n "checking sys/sdt.h in the target C library... " >&6; }
have_sys_sdt_h=no
@@ -48,10 +48,10 @@ index b26e8fc7fee..6080f86145e 100755
$as_echo "$have_sys_sdt_h" >&6; }
diff --git a/gcc/configure.ac b/gcc/configure.ac
-index 26fa46802c7..42be5252778 100644
+index f83420326d6..50f78308e8a 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
-@@ -6190,15 +6190,15 @@ fi
+@@ -6653,15 +6653,15 @@ fi
AC_SUBST([enable_default_ssp])
# Test for <sys/sdt.h> on the target.
@@ -77,10 +77,10 @@ index 26fa46802c7..42be5252778 100644
# Check if TFmode long double should be used by default or not.
# Some glibc targets used DFmode long double, but with glibc 2.4
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
-index 9f9c5a2419a..71ed13b815b 100755
+index a310e9feb6c..c879445b8a6 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
-@@ -22615,11 +22615,11 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+@@ -22014,11 +22014,11 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
@@ -96,10 +96,10 @@ index 9f9c5a2419a..71ed13b815b 100755
$as_echo "$glibcxx_cv_sys_sdt_h" >&6; }
diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac
-index 699e55fd829..5c7a7bda439 100644
+index 3c799be82b1..3f63a8ec9ce 100644
--- a/libstdc++-v3/configure.ac
+++ b/libstdc++-v3/configure.ac
-@@ -241,7 +241,7 @@ GLIBCXX_CHECK_SC_NPROCESSORS_ONLN
+@@ -240,7 +240,7 @@ GLIBCXX_CHECK_SC_NPROCESSORS_ONLN
GLIBCXX_CHECK_SC_NPROC_ONLN
GLIBCXX_CHECK_PTHREADS_NUM_PROCESSORS_NP
GLIBCXX_CHECK_SYSCTL_HW_NCPU
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0014-libtool.patch b/poky/meta/recipes-devtools/gcc/gcc/0014-libtool.patch
index f4e70c3b1..f2b8924eb 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0014-libtool.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0014-libtool.patch
@@ -1,4 +1,4 @@
-From 6ecd478881468934444ff85611fd43f7033b1e81 Mon Sep 17 00:00:00 2001
+From a5b984db9669cf38a7bd76c3fcdb41c086f740db Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:29:11 +0400
Subject: [PATCH] libtool
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch b/poky/meta/recipes-devtools/gcc/gcc/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
index bc2674abc..1ccf39ceb 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
@@ -1,4 +1,4 @@
-From de4427fa49c07dc651ee6ceaf5c5078700ca3b08 Mon Sep 17 00:00:00 2001
+From 0ae7090dec149cb2ff0c87eef87c043d4000ece1 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:30:32 +0400
Subject: [PATCH] gcc: armv4: pass fix-v4bx to linker to support EABI.
@@ -19,7 +19,7 @@ Upstream-Status: Pending
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
-index 0c0332f317f..7b3769e8459 100644
+index 6bd95855827..77befab5da8 100644
--- a/gcc/config/arm/linux-eabi.h
+++ b/gcc/config/arm/linux-eabi.h
@@ -91,10 +91,14 @@
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch b/poky/meta/recipes-devtools/gcc/gcc/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch
index 1dc4bb859..bde7ec660 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch
@@ -1,4 +1,4 @@
-From 6b363c2c1c089ee900efa6013aefba1003840a37 Mon Sep 17 00:00:00 2001
+From 5ce8aa4615a3816d12c43752323154744517ae9f Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:33:04 +0400
Subject: [PATCH] Use the multilib config files from ${B} instead of using the
@@ -18,10 +18,10 @@ Upstream-Status: Inappropriate [configuration]
2 files changed, 36 insertions(+), 8 deletions(-)
diff --git a/gcc/configure b/gcc/configure
-index 6080f86145e..825a9652329 100755
+index 5160917d73e..e663052cad2 100755
--- a/gcc/configure
+++ b/gcc/configure
-@@ -12685,10 +12685,20 @@ done
+@@ -13070,10 +13070,20 @@ done
tmake_file_=
for f in ${tmake_file}
do
@@ -46,7 +46,7 @@ index 6080f86145e..825a9652329 100755
done
tmake_file="${tmake_file_}${omp_device_property_tmake_file}"
-@@ -12699,6 +12709,10 @@ tm_file_list="options.h"
+@@ -13084,6 +13094,10 @@ tm_file_list="options.h"
tm_include_list="options.h insn-constants.h"
for f in $tm_file; do
case $f in
@@ -58,10 +58,10 @@ index 6080f86145e..825a9652329 100755
f=`echo $f | sed 's/^..//'`
tm_file_list="${tm_file_list} $f"
diff --git a/gcc/configure.ac b/gcc/configure.ac
-index 42be5252778..6099eb3251f 100644
+index 50f78308e8a..2b84875b028 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
-@@ -2118,10 +2118,20 @@ done
+@@ -2243,10 +2243,20 @@ done
tmake_file_=
for f in ${tmake_file}
do
@@ -86,7 +86,7 @@ index 42be5252778..6099eb3251f 100644
done
tmake_file="${tmake_file_}${omp_device_property_tmake_file}"
-@@ -2132,6 +2142,10 @@ tm_file_list="options.h"
+@@ -2257,6 +2267,10 @@ tm_file_list="options.h"
tm_include_list="options.h insn-constants.h"
for f in $tm_file; do
case $f in
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch b/poky/meta/recipes-devtools/gcc/gcc/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
index 05f12847e..3e0a1b413 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
@@ -1,4 +1,4 @@
-From 08752c2f1d21553301bee5757c453c6a36cbe03c Mon Sep 17 00:00:00 2001
+From 75a1ce0265ca123f74f17a40ad8bd8f26d9c2ab3 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 20 Feb 2015 09:39:38 +0000
Subject: [PATCH] Avoid using libdir from .la which usually points to a host
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0018-export-CPP.patch b/poky/meta/recipes-devtools/gcc/gcc/0018-export-CPP.patch
index 886a1221d..e6596da5c 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0018-export-CPP.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0018-export-CPP.patch
@@ -1,4 +1,4 @@
-From 5c3d66378c7ff60ca11a875aa4aa6f8a8529d43a Mon Sep 17 00:00:00 2001
+From b6e229a13aebfbb3fe38c216fd51b68bf71cfa9c Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 20 Feb 2015 09:40:59 +0000
Subject: [PATCH] export CPP
@@ -37,7 +37,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+)
diff --git a/Makefile.in b/Makefile.in
-index 36e369df6e7..c717903bb13 100644
+index 047be0255e2..af19589fa95 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -149,6 +149,7 @@ BUILD_EXPORTS = \
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0019-Ensure-target-gcc-headers-can-be-included.patch b/poky/meta/recipes-devtools/gcc/gcc/0019-Ensure-target-gcc-headers-can-be-included.patch
index 2797b2c22..98472dd2b 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0019-Ensure-target-gcc-headers-can-be-included.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0019-Ensure-target-gcc-headers-can-be-included.patch
@@ -1,4 +1,4 @@
-From 378b752c5d9a3dba4e58cdadf8b4b4f34ea99a76 Mon Sep 17 00:00:00 2001
+From 9b4eb0e18a953d79d20c78d3ba741af6d71ab9ca Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 20 Feb 2015 10:25:11 +0000
Subject: [PATCH] Ensure target gcc headers can be included
@@ -21,10 +21,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
2 files changed, 6 insertions(+)
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index 480c9366418..011c7ac2db6 100644
+index 59c45c81393..9b17d120aa1 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
-@@ -618,6 +618,7 @@ libexecdir = @libexecdir@
+@@ -630,6 +630,7 @@ libexecdir = @libexecdir@
# Directory in which the compiler finds libraries etc.
libsubdir = $(libdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix)
@@ -32,7 +32,7 @@ index 480c9366418..011c7ac2db6 100644
# Directory in which the compiler finds executables
libexecsubdir = $(libexecdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix)
# Directory in which all plugin resources are installed
-@@ -2946,6 +2947,7 @@ CFLAGS-intl.o += -DLOCALEDIR=\"$(localedir)\"
+@@ -3016,6 +3017,7 @@ CFLAGS-intl.o += -DLOCALEDIR=\"$(localedir)\"
PREPROCESSOR_DEFINES = \
-DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \
@@ -41,10 +41,10 @@ index 480c9366418..011c7ac2db6 100644
-DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
-DGPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT=$(gcc_gxx_include_dir_add_sysroot) \
diff --git a/gcc/cppdefault.c b/gcc/cppdefault.c
-index af38cc494ea..2f43b88a0c3 100644
+index c503d14fc3f..d54d6ce0076 100644
--- a/gcc/cppdefault.c
+++ b/gcc/cppdefault.c
-@@ -59,6 +59,10 @@ const struct default_include cpp_include_defaults[]
+@@ -64,6 +64,10 @@ const struct default_include cpp_include_defaults[]
/* This is the dir for gcc's private headers. */
{ GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
#endif
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0020-Don-t-search-host-directory-during-relink-if-inst_pr.patch b/poky/meta/recipes-devtools/gcc/gcc/0020-Don-t-search-host-directory-during-relink-if-inst_pr.patch
index c3baf8b45..bb2a3671f 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0020-Don-t-search-host-directory-during-relink-if-inst_pr.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0020-Don-t-search-host-directory-during-relink-if-inst_pr.patch
@@ -1,4 +1,4 @@
-From 870e805d705d99d9b9d7dbd09727f9c1d2ad9c1d Mon Sep 17 00:00:00 2001
+From cd09adb1e7f2a7e81a9f595a17c36f24911b90ac Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 3 Mar 2015 08:21:19 +0000
Subject: [PATCH] Don't search host directory during "relink" if $inst_prefix
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0021-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch b/poky/meta/recipes-devtools/gcc/gcc/0021-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch
index abee48669..0f3b3869b 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0021-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0021-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch
@@ -1,4 +1,4 @@
-From aba42de763a619355471efd1573561b0cbf51162 Mon Sep 17 00:00:00 2001
+From 7faad21154a76b200efcced9e12945057c94dff3 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 28 Apr 2015 23:15:27 -0700
Subject: [PATCH] Use SYSTEMLIBS_DIR replacement instead of hardcoding
@@ -12,7 +12,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
-index e587e2e9ad6..ddc62895693 100644
+index 7f2529a2a1d..5303b39186f 100644
--- a/gcc/config/aarch64/aarch64-linux.h
+++ b/gcc/config/aarch64/aarch64-linux.h
@@ -21,7 +21,7 @@
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0022-aarch64-Add-support-for-musl-ldso.patch b/poky/meta/recipes-devtools/gcc/gcc/0022-aarch64-Add-support-for-musl-ldso.patch
index c55b66d4b..41536a8a3 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0022-aarch64-Add-support-for-musl-ldso.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0022-aarch64-Add-support-for-musl-ldso.patch
@@ -1,4 +1,4 @@
-From d63820a78d92f302410358293546f01c7ad17bd8 Mon Sep 17 00:00:00 2001
+From 96aa24a874331a318693e4fccc4bc4e7d3fbad2b Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 28 Apr 2015 23:18:39 -0700
Subject: [PATCH] aarch64: Add support for musl ldso
@@ -11,7 +11,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
-index ddc62895693..b301825313a 100644
+index 5303b39186f..4bcae7f3110 100644
--- a/gcc/config/aarch64/aarch64-linux.h
+++ b/gcc/config/aarch64/aarch64-linux.h
@@ -24,7 +24,7 @@
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0023-libcc1-fix-libcc1-s-install-path-and-rpath.patch b/poky/meta/recipes-devtools/gcc/gcc/0023-libcc1-fix-libcc1-s-install-path-and-rpath.patch
index 80c4d2292..fb4511cc1 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0023-libcc1-fix-libcc1-s-install-path-and-rpath.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0023-libcc1-fix-libcc1-s-install-path-and-rpath.patch
@@ -1,4 +1,4 @@
-From 3474e16ad4ea8cf4e0e330568e3bc9039e723dce Mon Sep 17 00:00:00 2001
+From 2cfc5ee38b3f5ec1d7965aae0991bcd48b5dc2e6 Mon Sep 17 00:00:00 2001
From: Robert Yang <liezhi.yang@windriver.com>
Date: Sun, 5 Jul 2015 20:25:18 -0700
Subject: [PATCH] libcc1: fix libcc1's install path and rpath
@@ -20,10 +20,10 @@ Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/libcc1/Makefile.am b/libcc1/Makefile.am
-index c005b0dad4a..ec31d35b7b9 100644
+index f148fdd7aa2..0b6eb8f2855 100644
--- a/libcc1/Makefile.am
+++ b/libcc1/Makefile.am
-@@ -37,8 +37,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \
+@@ -40,8 +40,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \
$(Wc)$(libiberty_normal)))
libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty))
@@ -35,10 +35,10 @@ index c005b0dad4a..ec31d35b7b9 100644
if ENABLE_PLUGIN
plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la
diff --git a/libcc1/Makefile.in b/libcc1/Makefile.in
-index 7104b649026..2103c477468 100644
+index 753d435c9cb..455627b0a3b 100644
--- a/libcc1/Makefile.in
+++ b/libcc1/Makefile.in
-@@ -393,8 +393,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \
+@@ -398,8 +398,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \
$(Wc)$(libiberty_normal)))
libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty))
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0024-handle-sysroot-support-for-nativesdk-gcc.patch b/poky/meta/recipes-devtools/gcc/gcc/0024-handle-sysroot-support-for-nativesdk-gcc.patch
index dc3e6da65..3958e9c21 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0024-handle-sysroot-support-for-nativesdk-gcc.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0024-handle-sysroot-support-for-nativesdk-gcc.patch
@@ -1,4 +1,4 @@
-From 702daf2e9cb97337e0e594fcd435b1b61a917d14 Mon Sep 17 00:00:00 2001
+From 35c084a051bcd6587ebc73e4acb045cb2bdf7e99 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 7 Dec 2015 23:39:54 +0000
Subject: [PATCH] handle sysroot support for nativesdk-gcc
@@ -41,10 +41,10 @@ Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
6 files changed, 70 insertions(+), 48 deletions(-)
diff --git a/gcc/c-family/c-opts.c b/gcc/c-family/c-opts.c
-index 58ba0948e79..806bbcfb7a5 100644
+index bd15b9cd902..2bd667e3f58 100644
--- a/gcc/c-family/c-opts.c
+++ b/gcc/c-family/c-opts.c
-@@ -1409,8 +1409,8 @@ add_prefixed_path (const char *suffix, incpath_kind chain)
+@@ -1436,8 +1436,8 @@ add_prefixed_path (const char *suffix, incpath_kind chain)
size_t prefix_len, suffix_len;
suffix_len = strlen (suffix);
@@ -56,7 +56,7 @@ index 58ba0948e79..806bbcfb7a5 100644
path = (char *) xmalloc (prefix_len + suffix_len + 1);
memcpy (path, prefix, prefix_len);
diff --git a/gcc/cppdefault.c b/gcc/cppdefault.c
-index 2f43b88a0c3..6b6be04686c 100644
+index d54d6ce0076..784a92a0c24 100644
--- a/gcc/cppdefault.c
+++ b/gcc/cppdefault.c
@@ -35,6 +35,30 @@
@@ -90,7 +90,7 @@ index 2f43b88a0c3..6b6be04686c 100644
const struct default_include cpp_include_defaults[]
#ifdef INCLUDE_DEFAULTS
= INCLUDE_DEFAULTS;
-@@ -42,38 +66,38 @@ const struct default_include cpp_include_defaults[]
+@@ -42,17 +66,17 @@ const struct default_include cpp_include_defaults[]
= {
#ifdef GPLUSPLUS_INCLUDE_DIR
/* Pick up GNU C++ generic include files. */
@@ -110,6 +110,9 @@ index 2f43b88a0c3..6b6be04686c 100644
+ { GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR, "G++", 1, 1,
GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
#endif
+ #ifdef GPLUSPLUS_LIBCXX_INCLUDE_DIR
+@@ -62,23 +86,23 @@ const struct default_include cpp_include_defaults[]
+ #endif
#ifdef GCC_INCLUDE_DIR
/* This is the dir for gcc's private headers. */
- { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
@@ -138,7 +141,7 @@ index 2f43b88a0c3..6b6be04686c 100644
/* A multilib suffix needs adding if different multilibs use
different headers. */
#ifdef SYSROOT_HEADERS_SUFFIX_SPEC
-@@ -85,33 +109,24 @@ const struct default_include cpp_include_defaults[]
+@@ -90,33 +114,24 @@ const struct default_include cpp_include_defaults[]
#endif
#ifdef CROSS_INCLUDE_DIR
/* One place the target system's headers might be. */
@@ -179,7 +182,7 @@ index 2f43b88a0c3..6b6be04686c 100644
/* This value is set by cpp_relocated at runtime */
const char *gcc_exec_prefix;
diff --git a/gcc/cppdefault.h b/gcc/cppdefault.h
-index a681264f75e..5e10a2fa140 100644
+index fd3c655db1c..20669ac427d 100644
--- a/gcc/cppdefault.h
+++ b/gcc/cppdefault.h
@@ -33,7 +33,8 @@
@@ -191,8 +194,8 @@ index a681264f75e..5e10a2fa140 100644
+
const char *const component; /* The component containing the directory
(see update_path in prefix.c) */
- const char cplusplus; /* Only look here if we're compiling C++. */
-@@ -50,17 +51,13 @@ struct default_include
+ const char cplusplus; /* When this is non-zero, we should only
+@@ -55,17 +56,13 @@ struct default_include
};
extern const struct default_include cpp_include_defaults[];
@@ -214,7 +217,7 @@ index a681264f75e..5e10a2fa140 100644
subdirectory of the actual installation. */
extern const char *gcc_exec_prefix;
diff --git a/gcc/gcc.c b/gcc/gcc.c
-index c87f603955f..535d5c3bb65 100644
+index 8737bae5353..aa6fbe43965 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -252,6 +252,8 @@ FILE *report_times_to_file = NULL;
@@ -226,7 +229,7 @@ index c87f603955f..535d5c3bb65 100644
/* Nonzero means pass the updated target_system_root to the compiler. */
static int target_system_root_changed;
-@@ -526,6 +528,7 @@ or with constant text in a single argument.
+@@ -568,6 +570,7 @@ or with constant text in a single argument.
%G process LIBGCC_SPEC as a spec.
%R Output the concatenation of target_system_root and
target_sysroot_suffix.
@@ -234,7 +237,7 @@ index c87f603955f..535d5c3bb65 100644
%S process STARTFILE_SPEC as a spec. A capital S is actually used here.
%E process ENDFILE_SPEC as a spec. A capital E is actually used here.
%C process CPP_SPEC as a spec.
-@@ -1499,10 +1502,10 @@ static const char *gcc_libexec_prefix;
+@@ -1621,10 +1624,10 @@ static const char *gcc_libexec_prefix;
gcc_exec_prefix is set because, in that case, we know where the
compiler has been installed, and use paths relative to that
location instead. */
@@ -249,7 +252,7 @@ index c87f603955f..535d5c3bb65 100644
/* For native compilers, these are well-known paths containing
components that may be provided by the system. For cross
-@@ -1510,9 +1513,9 @@ static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
+@@ -1632,9 +1635,9 @@ static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
static const char *md_exec_prefix = MD_EXEC_PREFIX;
static const char *md_startfile_prefix = MD_STARTFILE_PREFIX;
static const char *md_startfile_prefix_1 = MD_STARTFILE_PREFIX_1;
@@ -261,7 +264,7 @@ index c87f603955f..535d5c3bb65 100644
= STANDARD_STARTFILE_PREFIX_2;
/* A relative path to be used in finding the location of tools
-@@ -5952,6 +5955,11 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
+@@ -6564,6 +6567,11 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
}
break;
@@ -274,7 +277,7 @@ index c87f603955f..535d5c3bb65 100644
value = do_spec_1 (startfile_spec, 0, NULL);
if (value != 0)
diff --git a/gcc/incpath.c b/gcc/incpath.c
-index 9098ab044ab..bfad4ebe382 100644
+index fbfc0ce03b8..a82e543428b 100644
--- a/gcc/incpath.c
+++ b/gcc/incpath.c
@@ -131,7 +131,7 @@ add_standard_paths (const char *sysroot, const char *iprefix,
@@ -286,7 +289,7 @@ index 9098ab044ab..bfad4ebe382 100644
{
/* Look for directories that start with the standard prefix.
"Translate" them, i.e. replace /usr/local/lib/gcc... with
-@@ -145,7 +145,7 @@ add_standard_paths (const char *sysroot, const char *iprefix,
+@@ -146,7 +146,7 @@ add_standard_paths (const char *sysroot, const char *iprefix,
now. */
if (sysroot && p->add_sysroot)
continue;
@@ -295,7 +298,7 @@ index 9098ab044ab..bfad4ebe382 100644
{
char *str = concat (iprefix, p->fname + len, NULL);
if (p->multilib == 1 && imultilib)
-@@ -185,7 +185,7 @@ add_standard_paths (const char *sysroot, const char *iprefix,
+@@ -187,7 +187,7 @@ add_standard_paths (const char *sysroot, const char *iprefix,
free (sysroot_no_trailing_dir_separator);
}
else if (!p->add_sysroot && relocated
@@ -304,7 +307,7 @@ index 9098ab044ab..bfad4ebe382 100644
{
static const char *relocated_prefix;
char *ostr;
-@@ -202,12 +202,12 @@ add_standard_paths (const char *sysroot, const char *iprefix,
+@@ -204,12 +204,12 @@ add_standard_paths (const char *sysroot, const char *iprefix,
dummy = concat (gcc_exec_prefix, "dummy", NULL);
relocated_prefix
= make_relative_prefix (dummy,
@@ -321,7 +324,7 @@ index 9098ab044ab..bfad4ebe382 100644
str = update_path (ostr, p->component);
free (ostr);
diff --git a/gcc/prefix.c b/gcc/prefix.c
-index 1a403e535bd..c26d07bde12 100644
+index 747c09de638..f728638dc65 100644
--- a/gcc/prefix.c
+++ b/gcc/prefix.c
@@ -72,7 +72,9 @@ License along with GCC; see the file COPYING3. If not see
@@ -344,6 +347,3 @@ index 1a403e535bd..c26d07bde12 100644
/* We used to strip trailing DIR_SEPARATORs here, but that can
sometimes yield a result with no separator when one was coded
---
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0025-Search-target-sysroot-gcc-version-specific-dirs-with.patch b/poky/meta/recipes-devtools/gcc/gcc/0025-Search-target-sysroot-gcc-version-specific-dirs-with.patch
index abf1f8491..ff622b105 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0025-Search-target-sysroot-gcc-version-specific-dirs-with.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0025-Search-target-sysroot-gcc-version-specific-dirs-with.patch
@@ -1,4 +1,4 @@
-From 9c0c73ee48dbee2aad57f4dcdad1b7b74e77b944 Mon Sep 17 00:00:00 2001
+From c55e24459370ad96577496ecd87475e3a9de7dad Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 7 Dec 2015 23:41:45 +0000
Subject: [PATCH] Search target sysroot gcc version specific dirs with
@@ -51,10 +51,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 28 insertions(+), 1 deletion(-)
diff --git a/gcc/gcc.c b/gcc/gcc.c
-index 535d5c3bb65..04647ae812d 100644
+index aa6fbe43965..f8a71a13826 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
-@@ -2616,7 +2616,7 @@ for_each_path (const struct path_prefix *paths,
+@@ -2811,7 +2811,7 @@ for_each_path (const struct path_prefix *paths,
if (path == NULL)
{
len = paths->max_len + extra_space + 1;
@@ -63,7 +63,7 @@ index 535d5c3bb65..04647ae812d 100644
path = XNEWVEC (char, len);
}
-@@ -2628,6 +2628,33 @@ for_each_path (const struct path_prefix *paths,
+@@ -2823,6 +2823,33 @@ for_each_path (const struct path_prefix *paths,
/* Look first in MACHINE/VERSION subdirectory. */
if (!skip_multi_dir)
{
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0026-Fix-various-_FOR_BUILD-and-related-variables.patch b/poky/meta/recipes-devtools/gcc/gcc/0026-Fix-various-_FOR_BUILD-and-related-variables.patch
index 97bf2f3a7..c2698f9ee 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0026-Fix-various-_FOR_BUILD-and-related-variables.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0026-Fix-various-_FOR_BUILD-and-related-variables.patch
@@ -1,4 +1,4 @@
-From 3a003af8804dda90fdf4862eca5f66cb12faaf02 Mon Sep 17 00:00:00 2001
+From cd5db101e3c4e72248f988a67ce28be8e24f66d4 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 7 Dec 2015 23:42:45 +0000
Subject: [PATCH] Fix various _FOR_BUILD and related variables
@@ -26,7 +26,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
5 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/Makefile.in b/Makefile.in
-index c717903bb13..5abc649868d 100644
+index af19589fa95..d0116a23e1a 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -152,6 +152,7 @@ BUILD_EXPORTS = \
@@ -64,7 +64,7 @@ index c717903bb13..5abc649868d 100644
"FLEX=$(FLEX)" \
"INSTALL=$(INSTALL)" \
diff --git a/Makefile.tpl b/Makefile.tpl
-index efed1511750..778beb705b4 100644
+index 6e0337fb48f..4fcac93d3d8 100644
--- a/Makefile.tpl
+++ b/Makefile.tpl
@@ -154,6 +154,7 @@ BUILD_EXPORTS = \
@@ -94,10 +94,10 @@ index efed1511750..778beb705b4 100644
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index 011c7ac2db6..2f1165f7b5e 100644
+index 9b17d120aa1..3053d05903c 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
-@@ -805,7 +805,7 @@ BUILD_LDFLAGS=@BUILD_LDFLAGS@
+@@ -820,7 +820,7 @@ BUILD_LDFLAGS=@BUILD_LDFLAGS@
BUILD_NO_PIE_FLAG = @BUILD_NO_PIE_FLAG@
BUILD_LDFLAGS += $(BUILD_NO_PIE_FLAG)
BUILD_CPPFLAGS= -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \
@@ -107,10 +107,10 @@ index 011c7ac2db6..2f1165f7b5e 100644
# Actual name to use when installing a native compiler.
GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)')
diff --git a/gcc/configure b/gcc/configure
-index 825a9652329..ff46cf58960 100755
+index e663052cad2..b0906aa3e96 100755
--- a/gcc/configure
+++ b/gcc/configure
-@@ -12314,7 +12314,7 @@ else
+@@ -12699,7 +12699,7 @@ else
CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \
LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \
@@ -120,10 +120,10 @@ index 825a9652329..ff46cf58960 100755
--enable-languages=${enable_languages-all} \
${enable_obsolete+--enable-obsolete="$enable_obsolete"} \
diff --git a/gcc/configure.ac b/gcc/configure.ac
-index 6099eb3251f..b3c345b61dc 100644
+index 2b84875b028..bfbd8946e8a 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
-@@ -1898,7 +1898,7 @@ else
+@@ -2023,7 +2023,7 @@ else
CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \
LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0027-nios2-Define-MUSL_DYNAMIC_LINKER.patch b/poky/meta/recipes-devtools/gcc/gcc/0027-nios2-Define-MUSL_DYNAMIC_LINKER.patch
index 3cd75b718..2e65740ec 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0027-nios2-Define-MUSL_DYNAMIC_LINKER.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0027-nios2-Define-MUSL_DYNAMIC_LINKER.patch
@@ -1,4 +1,4 @@
-From 4e53d0ae70af85af0e112a48a3e4dfe4c39f4a8d Mon Sep 17 00:00:00 2001
+From 9bbce1b5a10caf636eee137e5a229e5434a6c8f5 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 2 Feb 2016 10:26:10 -0800
Subject: [PATCH] nios2: Define MUSL_DYNAMIC_LINKER
@@ -12,7 +12,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+)
diff --git a/gcc/config/nios2/linux.h b/gcc/config/nios2/linux.h
-index 4bdcdcca1f0..e7943a9d640 100644
+index 08edf1521f6..15696d86241 100644
--- a/gcc/config/nios2/linux.h
+++ b/gcc/config/nios2/linux.h
@@ -30,6 +30,7 @@
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch b/poky/meta/recipes-devtools/gcc/gcc/0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
index 2a6769a82..edca9e3ca 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
@@ -1,4 +1,4 @@
-From 5db0404eb770ac477fd99d444226bcf021067584 Mon Sep 17 00:00:00 2001
+From 745a2ac7825c73102b888226c54397d21512f86b Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 27 Jun 2017 18:10:54 -0700
Subject: [PATCH] Add ssp_nonshared to link commandline for musl targets
@@ -23,7 +23,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
3 files changed, 27 insertions(+)
diff --git a/gcc/config/linux.h b/gcc/config/linux.h
-index 0c1a8118a26..bdc2a2d0659 100644
+index 87efc5f69fe..3c7b7c538b9 100644
--- a/gcc/config/linux.h
+++ b/gcc/config/linux.h
@@ -195,6 +195,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
@@ -41,7 +41,7 @@ index 0c1a8118a26..bdc2a2d0659 100644
#if (DEFAULT_LIBC == LIBC_UCLIBC) && defined (SINGLE_LIBC) /* uClinux */
diff --git a/gcc/config/rs6000/linux.h b/gcc/config/rs6000/linux.h
-index b7026fcbee7..dd54d6c393e 100644
+index 47c9d9ac0b6..d065f88b377 100644
--- a/gcc/config/rs6000/linux.h
+++ b/gcc/config/rs6000/linux.h
@@ -94,6 +94,16 @@
@@ -62,10 +62,10 @@ index b7026fcbee7..dd54d6c393e 100644
#define LINK_OS_LINUX_SPEC LINK_OS_LINUX_EMUL " %{!shared: %{!static: \
%{!static-pie: \
diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
-index 967c1c43c63..dc5e4d97975 100644
+index a11e01faa3d..ce464f3626b 100644
--- a/gcc/config/rs6000/linux64.h
+++ b/gcc/config/rs6000/linux64.h
-@@ -452,6 +452,16 @@ extern int dot_symbols;
+@@ -369,6 +369,16 @@ extern int dot_symbols;
" -m elf64ppc")
#endif
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0029-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch b/poky/meta/recipes-devtools/gcc/gcc/0029-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch
index 767cba038..b74aeb8bb 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0029-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0029-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch
@@ -1,4 +1,4 @@
-From fbc926dbf6a47fa623b9c94cd9b09a0e90448fdc Mon Sep 17 00:00:00 2001
+From 695adb4dffb23c6f5cbc757e05cf4187a2bd6528 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 4 May 2016 21:11:34 -0700
Subject: [PATCH] Link libgcc using LDFLAGS, not just SHLIB_LDFLAGS
@@ -12,7 +12,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libgcc/config/t-slibgcc b/libgcc/config/t-slibgcc
-index c997553447c..330352c2c81 100644
+index c59b43b7b69..ca4c141f526 100644
--- a/libgcc/config/t-slibgcc
+++ b/libgcc/config/t-slibgcc
@@ -32,7 +32,7 @@ SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_SONAME) \
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0030-sync-gcc-stddef.h-with-musl.patch b/poky/meta/recipes-devtools/gcc/gcc/0030-sync-gcc-stddef.h-with-musl.patch
index 4f18907a1..86f75d0d5 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0030-sync-gcc-stddef.h-with-musl.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0030-sync-gcc-stddef.h-with-musl.patch
@@ -1,4 +1,4 @@
-From 24dc04dc8d69e3bf61322615b3ef18e02ccd311e Mon Sep 17 00:00:00 2001
+From a9173429ae256c4b4a3ab4d758a6adf42f8c4239 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 3 Feb 2017 12:56:00 -0800
Subject: [PATCH] sync gcc stddef.h with musl
@@ -14,7 +14,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 9 insertions(+)
diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h
-index 9d67eac4947..6cb5edbedb4 100644
+index 66619fe43b1..3f843d6f365 100644
--- a/gcc/ginclude/stddef.h
+++ b/gcc/ginclude/stddef.h
@@ -128,6 +128,7 @@ _TYPE_wchar_t;
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0031-fix-segmentation-fault-in-precompiled-header-generat.patch b/poky/meta/recipes-devtools/gcc/gcc/0031-fix-segmentation-fault-in-precompiled-header-generat.patch
index 702279af0..70afa4f9e 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0031-fix-segmentation-fault-in-precompiled-header-generat.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0031-fix-segmentation-fault-in-precompiled-header-generat.patch
@@ -1,4 +1,4 @@
-From 27b8ba5555ada2dab076988529bfb84d00a4b901 Mon Sep 17 00:00:00 2001
+From 3d59f763b824ac11f8360931092baf0bc1719562 Mon Sep 17 00:00:00 2001
From: Juro Bystricky <juro.bystricky@intel.com>
Date: Mon, 19 Mar 2018 22:31:20 -0700
Subject: [PATCH] fix segmentation fault in precompiled header generation
@@ -19,10 +19,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 21 insertions(+), 5 deletions(-)
diff --git a/libcpp/lex.c b/libcpp/lex.c
-index 56ac3a1dd73..73a951148b3 100644
+index 06bcc31c87e..24bed9a35fa 100644
--- a/libcpp/lex.c
+++ b/libcpp/lex.c
-@@ -3311,11 +3311,27 @@ cpp_spell_token (cpp_reader *pfile, const cpp_token *token,
+@@ -3531,11 +3531,27 @@ cpp_spell_token (cpp_reader *pfile, const cpp_token *token,
spell_ident:
case SPELL_IDENT:
if (forstring)
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0032-Fix-for-testsuite-failure.patch b/poky/meta/recipes-devtools/gcc/gcc/0032-Fix-for-testsuite-failure.patch
index 0a0767b44..0be03e652 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0032-Fix-for-testsuite-failure.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0032-Fix-for-testsuite-failure.patch
@@ -1,4 +1,4 @@
-From 2512aacf023c679d86d8f40caff4f6ff412b32ff Mon Sep 17 00:00:00 2001
+From bb171ef618f8892bd56e57ae41ecb6e02caa8173 Mon Sep 17 00:00:00 2001
From: RAGHUNATH LOLUR <raghunath.lolur@kpit.com>
Date: Wed, 6 Dec 2017 22:52:26 -0800
Subject: [PATCH] Fix for testsuite failure
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0033-Re-introduce-spe-commandline-options.patch b/poky/meta/recipes-devtools/gcc/gcc/0033-Re-introduce-spe-commandline-options.patch
index ba7c2b8fd..129f555a4 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0033-Re-introduce-spe-commandline-options.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0033-Re-introduce-spe-commandline-options.patch
@@ -1,4 +1,4 @@
-From 3fc06241ce37e2e4b3ed21ace28d347eb511448d Mon Sep 17 00:00:00 2001
+From 0b900d6410b7c1938e86eceb87b032fd538566a9 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 6 Jun 2018 12:10:22 -0700
Subject: [PATCH] Re-introduce spe commandline options
@@ -10,17 +10,18 @@ Upstream-Status: Inappropriate [SPE port is removed from rs600 port]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- gcc/config/rs6000/rs6000.opt | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
+ gcc/config/rs6000/rs6000.opt | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt
-index f95b8279270..0e52d51409d 100644
+index 0dbdf753673..b273eb65c35 100644
--- a/gcc/config/rs6000/rs6000.opt
+++ b/gcc/config/rs6000/rs6000.opt
-@@ -344,6 +344,18 @@ mdebug=
+@@ -352,6 +352,19 @@ mdebug=
Target RejectNegative Joined
-mdebug= Enable debug output.
++; PPC SPE ABI
+mspe
+Target Var(rs6000_spe) Save
+Generate SPE SIMD instructions on E500.
@@ -33,6 +34,6 @@ index f95b8279270..0e52d51409d 100644
+Target RejectNegative Var(rs6000_spe_abi, 0)
+Do not use the SPE ABI extensions.
+
+ ; Altivec ABI
mabi=altivec
Target RejectNegative Var(rs6000_altivec_abi) Save
- Use the AltiVec ABI extensions.
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch b/poky/meta/recipes-devtools/gcc/gcc/0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
index 4ce9dc6de..3f666dc7b 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
@@ -1,4 +1,4 @@
-From b42ff59c3fe2967d37815c8db72a47b9b7f585b4 Mon Sep 17 00:00:00 2001
+From ea9154338cb3acbd75945fddde4202e73c20dd1a Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Sat, 24 Oct 2015 20:09:53 +0000
Subject: [PATCH] libgcc_s: Use alias for __cpu_indicator_init instead of
@@ -39,10 +39,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/gcc/config/i386/i386-expand.c b/gcc/config/i386/i386-expand.c
-index 48f00c5fcfc..468f5f71fac 100644
+index ac69eed4d32..ffaa44a16fc 100644
--- a/gcc/config/i386/i386-expand.c
+++ b/gcc/config/i386/i386-expand.c
-@@ -10941,10 +10941,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
+@@ -11038,10 +11038,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
{
case IX86_BUILTIN_CPU_INIT:
{
@@ -56,11 +56,11 @@ index 48f00c5fcfc..468f5f71fac 100644
return expand_expr (call_expr, target, mode, EXPAND_NORMAL);
}
diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c
-index 00322c58622..f42bbb8af98 100644
+index ef463848f9d..1a3de052c80 100644
--- a/libgcc/config/i386/cpuinfo.c
+++ b/libgcc/config/i386/cpuinfo.c
-@@ -508,7 +508,7 @@ __cpu_indicator_init (void)
- return 0;
+@@ -63,7 +63,7 @@ __cpu_indicator_init (void)
+ __cpu_features2);
}
-#if defined SHARED && defined USE_ELF_SYMVER
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch b/poky/meta/recipes-devtools/gcc/gcc/0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch
index dd1bf6ded..874cd7798 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch
@@ -1,4 +1,4 @@
-From 0395060a7dcf98c5f5a65103f6aaa71d6b862259 Mon Sep 17 00:00:00 2001
+From 520411cf364ee4b0b5a8f0857498aaabd790afb3 Mon Sep 17 00:00:00 2001
From: Richard Purdie <richard.purdie@linuxfoundation.org>
Date: Tue, 10 Mar 2020 08:26:53 -0700
Subject: [PATCH] gentypes/genmodes: Do not use __LINE__ for maintaining
@@ -17,7 +17,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
2 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/gcc/gengtype.c b/gcc/gengtype.c
-index 981577481af..d5700fff401 100644
+index 5f50242e857..cbaca9b8cd0 100644
--- a/gcc/gengtype.c
+++ b/gcc/gengtype.c
@@ -991,7 +991,7 @@ create_field_at (pair_p next, type_p type, const char *name, options_p opt,
@@ -38,7 +38,7 @@ index 981577481af..d5700fff401 100644
/* Reverse a linked list of 'struct pair's in place. */
pair_p
-@@ -5187,7 +5187,7 @@ main (int argc, char **argv)
+@@ -5189,7 +5189,7 @@ main (int argc, char **argv)
/* These types are set up with #define or else outside of where
we can see them. We should initialize them before calling
read_input_list. */
@@ -48,10 +48,10 @@ index 981577481af..d5700fff401 100644
POS_HERE (do_scalar_typedef ("CUMULATIVE_ARGS", &pos));
POS_HERE (do_scalar_typedef ("REAL_VALUE_TYPE", &pos));
diff --git a/gcc/genmodes.c b/gcc/genmodes.c
-index bd78310ea24..dbd02c51a4c 100644
+index c268ebc4c6e..4361f3f1563 100644
--- a/gcc/genmodes.c
+++ b/gcc/genmodes.c
-@@ -430,7 +430,7 @@ complete_all_modes (void)
+@@ -438,7 +438,7 @@ complete_all_modes (void)
}
/* For each mode in class CLASS, construct a corresponding complex mode. */
@@ -60,7 +60,7 @@ index bd78310ea24..dbd02c51a4c 100644
static void
make_complex_modes (enum mode_class cl,
const char *file, unsigned int line)
-@@ -489,7 +489,7 @@ make_complex_modes (enum mode_class cl,
+@@ -497,7 +497,7 @@ make_complex_modes (enum mode_class cl,
having as many components as necessary. ORDER is the sorting order
of the mode, with smaller numbers indicating a higher priority. */
#define VECTOR_MODES_WITH_PREFIX(PREFIX, C, W, ORDER) \
@@ -69,7 +69,7 @@ index bd78310ea24..dbd02c51a4c 100644
#define VECTOR_MODES(C, W) VECTOR_MODES_WITH_PREFIX (V, C, W, 0)
static void ATTRIBUTE_UNUSED
make_vector_modes (enum mode_class cl, const char *prefix, unsigned int width,
-@@ -541,7 +541,7 @@ make_vector_modes (enum mode_class cl, const char *prefix, unsigned int width,
+@@ -549,7 +549,7 @@ make_vector_modes (enum mode_class cl, const char *prefix, unsigned int width,
/* Create a vector of booleans called NAME with COUNT elements and
BYTESIZE bytes in total. */
#define VECTOR_BOOL_MODE(NAME, COUNT, BYTESIZE) \
@@ -78,7 +78,7 @@ index bd78310ea24..dbd02c51a4c 100644
static void ATTRIBUTE_UNUSED
make_vector_bool_mode (const char *name, unsigned int count,
unsigned int bytesize, const char *file,
-@@ -563,7 +563,7 @@ make_vector_bool_mode (const char *name, unsigned int count,
+@@ -571,7 +571,7 @@ make_vector_bool_mode (const char *name, unsigned int count,
/* Input. */
#define _SPECIAL_MODE(C, N) \
@@ -87,7 +87,7 @@ index bd78310ea24..dbd02c51a4c 100644
#define RANDOM_MODE(N) _SPECIAL_MODE (RANDOM, N)
#define CC_MODE(N) _SPECIAL_MODE (CC, N)
-@@ -576,7 +576,7 @@ make_special_mode (enum mode_class cl, const char *name,
+@@ -584,7 +584,7 @@ make_special_mode (enum mode_class cl, const char *name,
#define INT_MODE(N, Y) FRACTIONAL_INT_MODE (N, -1U, Y)
#define FRACTIONAL_INT_MODE(N, B, Y) \
@@ -96,7 +96,7 @@ index bd78310ea24..dbd02c51a4c 100644
static void
make_int_mode (const char *name,
-@@ -589,16 +589,16 @@ make_int_mode (const char *name,
+@@ -611,16 +611,16 @@ make_opaque_mode (const char *name,
}
#define FRACT_MODE(N, Y, F) \
@@ -117,7 +117,7 @@ index bd78310ea24..dbd02c51a4c 100644
/* Create a fixed-point mode by setting CL, NAME, BYTESIZE, IBIT, FBIT,
FILE, and LINE. */
-@@ -619,7 +619,7 @@ make_fixed_point_mode (enum mode_class cl,
+@@ -641,7 +641,7 @@ make_fixed_point_mode (enum mode_class cl,
#define FLOAT_MODE(N, Y, F) FRACTIONAL_FLOAT_MODE (N, -1U, Y, F)
#define FRACTIONAL_FLOAT_MODE(N, B, Y, F) \
@@ -126,7 +126,7 @@ index bd78310ea24..dbd02c51a4c 100644
static void
make_float_mode (const char *name,
-@@ -636,7 +636,7 @@ make_float_mode (const char *name,
+@@ -658,7 +658,7 @@ make_float_mode (const char *name,
#define DECIMAL_FLOAT_MODE(N, Y, F) \
FRACTIONAL_DECIMAL_FLOAT_MODE (N, -1U, Y, F)
#define FRACTIONAL_DECIMAL_FLOAT_MODE(N, B, Y, F) \
@@ -135,7 +135,7 @@ index bd78310ea24..dbd02c51a4c 100644
static void
make_decimal_float_mode (const char *name,
-@@ -651,7 +651,7 @@ make_decimal_float_mode (const char *name,
+@@ -673,7 +673,7 @@ make_decimal_float_mode (const char *name,
}
#define RESET_FLOAT_FORMAT(N, F) \
@@ -144,7 +144,7 @@ index bd78310ea24..dbd02c51a4c 100644
static void ATTRIBUTE_UNUSED
reset_float_format (const char *name, const char *format,
const char *file, unsigned int line)
-@@ -672,7 +672,7 @@ reset_float_format (const char *name, const char *format,
+@@ -694,7 +694,7 @@ reset_float_format (const char *name, const char *format,
/* __intN support. */
#define INT_N(M,PREC) \
@@ -153,7 +153,7 @@ index bd78310ea24..dbd02c51a4c 100644
static void ATTRIBUTE_UNUSED
make_int_n (const char *m, int bitsize,
const char *file, unsigned int line)
-@@ -701,7 +701,7 @@ make_int_n (const char *m, int bitsize,
+@@ -723,7 +723,7 @@ make_int_n (const char *m, int bitsize,
/* Partial integer modes are specified by relation to a full integer
mode. */
#define PARTIAL_INT_MODE(M,PREC,NAME) \
@@ -162,7 +162,7 @@ index bd78310ea24..dbd02c51a4c 100644
static void ATTRIBUTE_UNUSED
make_partial_integer_mode (const char *base, const char *name,
unsigned int precision,
-@@ -728,7 +728,7 @@ make_partial_integer_mode (const char *base, const char *name,
+@@ -750,7 +750,7 @@ make_partial_integer_mode (const char *base, const char *name,
/* A single vector mode can be specified by naming its component
mode and the number of components. */
#define VECTOR_MODE(C, M, N) \
@@ -171,7 +171,7 @@ index bd78310ea24..dbd02c51a4c 100644
static void ATTRIBUTE_UNUSED
make_vector_mode (enum mode_class bclass,
const char *base,
-@@ -771,7 +771,7 @@ make_vector_mode (enum mode_class bclass,
+@@ -793,7 +793,7 @@ make_vector_mode (enum mode_class bclass,
/* Adjustability. */
#define _ADD_ADJUST(A, M, X, C1, C2) \
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0036-mingw32-Enable-operation_not_supported.patch b/poky/meta/recipes-devtools/gcc/gcc/0036-mingw32-Enable-operation_not_supported.patch
index de82a3a53..3a7618c82 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0036-mingw32-Enable-operation_not_supported.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0036-mingw32-Enable-operation_not_supported.patch
@@ -1,4 +1,4 @@
-From 6f87a095f0e696bec07a50df789c9db8bdbca43d Mon Sep 17 00:00:00 2001
+From 96d895c8d5dc895d24fe37aa2b4f201a2566b4cc Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 12 May 2020 10:39:09 -0700
Subject: [PATCH] mingw32: Enable operation_not_supported
@@ -12,15 +12,15 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libstdc++-v3/config/os/mingw32/error_constants.h b/libstdc++-v3/config/os/mingw32/error_constants.h
-index 68ac72a78fb..71cd5815b81 100644
+index eca06a97014..933cfab49cf 100644
--- a/libstdc++-v3/config/os/mingw32/error_constants.h
+++ b/libstdc++-v3/config/os/mingw32/error_constants.h
@@ -107,7 +107,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
- #ifdef _GLIBCXX_HAVE_EPERM
+ #ifdef EPERM
operation_not_permitted = EPERM,
#endif
-// operation_not_supported = EOPNOTSUPP,
+ operation_not_supported = EOPNOTSUPP,
- #ifdef _GLIBCXX_HAVE_EWOULDBLOCK
+ #ifdef EWOULDBLOCK
operation_would_block = EWOULDBLOCK,
#endif
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0037-libatomic-Do-not-enforce-march-on-aarch64.patch b/poky/meta/recipes-devtools/gcc/gcc/0037-libatomic-Do-not-enforce-march-on-aarch64.patch
index 3946acea1..4c9a79cb6 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0037-libatomic-Do-not-enforce-march-on-aarch64.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0037-libatomic-Do-not-enforce-march-on-aarch64.patch
@@ -1,4 +1,4 @@
-From 38d262bfe7c0c894c364dc6e4dc7971e78a73974 Mon Sep 17 00:00:00 2001
+From 36d4fdbc99e69f9d70a29e2bada40cc3c1534557 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 13 May 2020 15:10:38 -0700
Subject: [PATCH] libatomic: Do not enforce march on aarch64
@@ -17,7 +17,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
2 files changed, 2 deletions(-)
diff --git a/libatomic/Makefile.am b/libatomic/Makefile.am
-index 133fbbca77e..ac1ca645876 100644
+index 0f3cd6f7121..c8124c1d5aa 100644
--- a/libatomic/Makefile.am
+++ b/libatomic/Makefile.am
@@ -125,7 +125,6 @@ libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix _$(s)_.lo,$(SIZEOBJS)))
@@ -29,10 +29,10 @@ index 133fbbca77e..ac1ca645876 100644
endif
if ARCH_ARM_LINUX
diff --git a/libatomic/Makefile.in b/libatomic/Makefile.in
-index a51807e95c9..97df2d7ff03 100644
+index 0a51bd55f01..6d5b1581706 100644
--- a/libatomic/Makefile.in
+++ b/libatomic/Makefile.in
-@@ -431,7 +431,6 @@ M_SRC = $(firstword $(filter %/$(M_FILE), $(all_c_files)))
+@@ -432,7 +432,6 @@ M_SRC = $(firstword $(filter %/$(M_FILE), $(all_c_files)))
libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix \
_$(s)_.lo,$(SIZEOBJS))) $(am__append_1) $(am__append_2) \
$(am__append_3) $(am__append_4)
diff --git a/poky/meta/recipes-devtools/gcc/gcc_10.2.bb b/poky/meta/recipes-devtools/gcc/gcc_11.1.bb
index 7d9359058..7d9359058 100644
--- a/poky/meta/recipes-devtools/gcc/gcc_10.2.bb
+++ b/poky/meta/recipes-devtools/gcc/gcc_11.1.bb
diff --git a/poky/meta/recipes-devtools/gcc/libgcc-initial.inc b/poky/meta/recipes-devtools/gcc/libgcc-initial.inc
index 06bf224f7..f7d804122 100644
--- a/poky/meta/recipes-devtools/gcc/libgcc-initial.inc
+++ b/poky/meta/recipes-devtools/gcc/libgcc-initial.inc
@@ -51,6 +51,8 @@ do_configure_prepend () {
do_configure_append () {
sed -i -e 's#thread_header = .*#thread_header = gthr-single.h#' ${B}/${BPN}/Makefile
+ sed -i -e '/^libgcc_tm_defines = $/a fp128_dec_funcs =' ${B}/${BPN}/Makefile
+ sed -i -e '/^libgcc_tm_defines = $/a fp128_decstr_funcs =' ${B}/${BPN}/Makefile
}
do_install_append () {
diff --git a/poky/meta/recipes-devtools/gcc/libgcc-initial_10.2.bb b/poky/meta/recipes-devtools/gcc/libgcc-initial_11.1.bb
index 0c698c26e..0c698c26e 100644
--- a/poky/meta/recipes-devtools/gcc/libgcc-initial_10.2.bb
+++ b/poky/meta/recipes-devtools/gcc/libgcc-initial_11.1.bb
diff --git a/poky/meta/recipes-devtools/gcc/libgcc_10.2.bb b/poky/meta/recipes-devtools/gcc/libgcc_11.1.bb
index ea210a113..ea210a113 100644
--- a/poky/meta/recipes-devtools/gcc/libgcc_10.2.bb
+++ b/poky/meta/recipes-devtools/gcc/libgcc_11.1.bb
diff --git a/poky/meta/recipes-devtools/gcc/libgfortran_10.2.bb b/poky/meta/recipes-devtools/gcc/libgfortran_11.1.bb
index 71dd8b4bd..71dd8b4bd 100644
--- a/poky/meta/recipes-devtools/gcc/libgfortran_10.2.bb
+++ b/poky/meta/recipes-devtools/gcc/libgfortran_11.1.bb
diff --git a/poky/meta/recipes-devtools/gdb/gdb-10.1.inc b/poky/meta/recipes-devtools/gdb/gdb-10.2.inc
index 07de17f84..0a7df54e9 100644
--- a/poky/meta/recipes-devtools/gdb/gdb-10.1.inc
+++ b/poky/meta/recipes-devtools/gdb/gdb-10.2.inc
@@ -16,4 +16,4 @@ SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.xz \
file://0010-Fix-invalid-sigprocmask-call.patch \
file://0011-gdbserver-ctrl-c-handling.patch \
"
-SRC_URI[sha256sum] = "f82f1eceeec14a3afa2de8d9b0d3c91d5a3820e23e0a01bbb70ef9f0276b62c0"
+SRC_URI[sha256sum] = "aaa1223d534c9b700a8bec952d9748ee1977513f178727e1bee520ee000b4f29"
diff --git a/poky/meta/recipes-devtools/gdb/gdb-common.inc b/poky/meta/recipes-devtools/gdb/gdb-common.inc
index 6e0455203..a2a6364da 100644
--- a/poky/meta/recipes-devtools/gdb/gdb-common.inc
+++ b/poky/meta/recipes-devtools/gdb/gdb-common.inc
@@ -29,7 +29,7 @@ EXTRA_OECONF = "--disable-gdbtk --disable-x --disable-werror \
--disable-gprof \
"
-PACKAGECONFIG ??= "readline"
+PACKAGECONFIG ??= "readline ${@bb.utils.filter('DISTRO_FEATURES', 'debuginfod', d)}"
# Use --without-system-readline to compile with readline 5.
PACKAGECONFIG[readline] = "--with-system-readline,--without-system-readline,readline"
PACKAGECONFIG[python] = "--with-python=${WORKDIR}/python,--without-python,python3,python3 python3-codecs"
diff --git a/poky/meta/recipes-devtools/gdb/gdb-cross-canadian_10.1.bb b/poky/meta/recipes-devtools/gdb/gdb-cross-canadian_10.2.bb
index 301035940..301035940 100644
--- a/poky/meta/recipes-devtools/gdb/gdb-cross-canadian_10.1.bb
+++ b/poky/meta/recipes-devtools/gdb/gdb-cross-canadian_10.2.bb
diff --git a/poky/meta/recipes-devtools/gdb/gdb-cross_10.1.bb b/poky/meta/recipes-devtools/gdb/gdb-cross_10.2.bb
index 50cf159fd..50cf159fd 100644
--- a/poky/meta/recipes-devtools/gdb/gdb-cross_10.1.bb
+++ b/poky/meta/recipes-devtools/gdb/gdb-cross_10.2.bb
diff --git a/poky/meta/recipes-devtools/gdb/gdb_10.1.bb b/poky/meta/recipes-devtools/gdb/gdb_10.2.bb
index d70757a15..d70757a15 100644
--- a/poky/meta/recipes-devtools/gdb/gdb_10.1.bb
+++ b/poky/meta/recipes-devtools/gdb/gdb_10.2.bb
diff --git a/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb b/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb
index c41177c72..d4ec4593f 100644
--- a/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb
+++ b/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb
@@ -9,8 +9,8 @@ DEPENDS_class-native = "hostperl-runtime-native"
INHIBIT_DEFAULT_DEPS = "1"
-SRCREV = "6faca61810d335c7837f320733fe8e15a1431fc2"
-PV = "20210125+git${SRCPV}"
+SRCREV = "277b4ed1776f721145b2649d888f1deb445fecc5"
+PV = "20210424+git${SRCPV}"
SRC_URI = "git://git.savannah.gnu.org/config.git \
file://gnu-configize.in"
diff --git a/poky/meta/recipes-devtools/go/go-1.16.2.inc b/poky/meta/recipes-devtools/go/go-1.16.3.inc
index e65caf819..ebd25a5ea 100644
--- a/poky/meta/recipes-devtools/go/go-1.16.2.inc
+++ b/poky/meta/recipes-devtools/go/go-1.16.3.inc
@@ -1,7 +1,7 @@
require go-common.inc
GO_BASEVERSION = "1.16"
-PV = "1.16.2"
+PV = "1.16.3"
FILESEXTRAPATHS_prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707"
@@ -17,4 +17,4 @@ SRC_URI += "\
file://0008-use-GOBUILDMODE-to-set-buildmode.patch \
file://0009-Revert-cmd-go-make-sure-CC-and-CXX-are-absolute.patch \
"
-SRC_URI[main.sha256sum] = "37ca14287a23cb8ba2ac3f5c3dd8adbc1f7a54b9701a57824bf19a0b271f83ea"
+SRC_URI[main.sha256sum] = "b298d29de9236ca47a023e382313bcc2d2eed31dfa706b60a04103ce83a71a25"
diff --git a/poky/meta/recipes-devtools/go/go-binary-native_1.16.2.bb b/poky/meta/recipes-devtools/go/go-binary-native_1.16.3.bb
index 4fb060173..d01a2bd8f 100644
--- a/poky/meta/recipes-devtools/go/go-binary-native_1.16.2.bb
+++ b/poky/meta/recipes-devtools/go/go-binary-native_1.16.3.bb
@@ -8,8 +8,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707"
PROVIDES = "go-native"
SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}"
-SRC_URI[go_linux_amd64.sha256sum] = "542e936b19542e62679766194364f45141fde55169db2d8d01046555ca9eb4b8"
-SRC_URI[go_linux_arm64.sha256sum] = "6924601d998a0917694fd14261347e3798bd2ad6b13c4d7f2edd70c9d57f62ab"
+SRC_URI[go_linux_amd64.sha256sum] = "951a3c7c6ce4e56ad883f97d9db74d3d6d80d5fec77455c6ada6c1f7ac4776d2"
+SRC_URI[go_linux_arm64.sha256sum] = "566b1d6f17d2bc4ad5f81486f0df44f3088c3ed47a3bec4099d8ed9939e90d5d"
UPSTREAM_CHECK_URI = "https://golang.org/dl/"
UPSTREAM_CHECK_REGEX = "go(?P<pver>\d+(\.\d+)+)\.linux"
diff --git a/poky/meta/recipes-devtools/go/go-common.inc b/poky/meta/recipes-devtools/go/go-common.inc
index f18d928c7..c368b95b6 100644
--- a/poky/meta/recipes-devtools/go/go-common.inc
+++ b/poky/meta/recipes-devtools/go/go-common.inc
@@ -14,7 +14,7 @@ LICENSE = "BSD-3-Clause"
inherit goarch
-SRC_URI = "http://golang.org/dl/go${PV}.src.tar.gz;name=main"
+SRC_URI = "https://dl.google.com/go/go${PV}.src.tar.gz;name=main"
S = "${WORKDIR}/go"
B = "${S}"
UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.src\.tar"
diff --git a/poky/meta/recipes-devtools/go/go-cross-canadian_1.16.2.bb b/poky/meta/recipes-devtools/go/go-cross-canadian_1.16.3.bb
index 7ac9449e4..7ac9449e4 100644
--- a/poky/meta/recipes-devtools/go/go-cross-canadian_1.16.2.bb
+++ b/poky/meta/recipes-devtools/go/go-cross-canadian_1.16.3.bb
diff --git a/poky/meta/recipes-devtools/go/go-cross_1.16.2.bb b/poky/meta/recipes-devtools/go/go-cross_1.16.3.bb
index 80b5a03f6..80b5a03f6 100644
--- a/poky/meta/recipes-devtools/go/go-cross_1.16.2.bb
+++ b/poky/meta/recipes-devtools/go/go-cross_1.16.3.bb
diff --git a/poky/meta/recipes-devtools/go/go-crosssdk_1.16.2.bb b/poky/meta/recipes-devtools/go/go-crosssdk_1.16.3.bb
index 1857c8a57..1857c8a57 100644
--- a/poky/meta/recipes-devtools/go/go-crosssdk_1.16.2.bb
+++ b/poky/meta/recipes-devtools/go/go-crosssdk_1.16.3.bb
diff --git a/poky/meta/recipes-devtools/go/go-native_1.16.2.bb b/poky/meta/recipes-devtools/go/go-native_1.16.3.bb
index f14892cdb..f14892cdb 100644
--- a/poky/meta/recipes-devtools/go/go-native_1.16.2.bb
+++ b/poky/meta/recipes-devtools/go/go-native_1.16.3.bb
diff --git a/poky/meta/recipes-devtools/go/go-runtime_1.16.2.bb b/poky/meta/recipes-devtools/go/go-runtime_1.16.3.bb
index 63464a150..63464a150 100644
--- a/poky/meta/recipes-devtools/go/go-runtime_1.16.2.bb
+++ b/poky/meta/recipes-devtools/go/go-runtime_1.16.3.bb
diff --git a/poky/meta/recipes-devtools/go/go_1.16.2.bb b/poky/meta/recipes-devtools/go/go_1.16.3.bb
index 4e9e0ebec..4e9e0ebec 100644
--- a/poky/meta/recipes-devtools/go/go_1.16.2.bb
+++ b/poky/meta/recipes-devtools/go/go_1.16.3.bb
diff --git a/poky/meta/recipes-devtools/help2man/help2man_1.48.2.bb b/poky/meta/recipes-devtools/help2man/help2man_1.48.3.bb
index 3e9b509ed..a612c0896 100644
--- a/poky/meta/recipes-devtools/help2man/help2man_1.48.2.bb
+++ b/poky/meta/recipes-devtools/help2man/help2man_1.48.3.bb
@@ -6,7 +6,7 @@ LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
SRC_URI = "${GNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "20cb36111df91d61741a20680912ab0e4c59da479c3fb05837c6f0a8cb7cb467"
+SRC_URI[sha256sum] = "8361ff3c643fbd391064e97e5f54592ca28b880eaffbf566a68e0ad800d1a8ac"
inherit autotools
diff --git a/poky/meta/recipes-devtools/libcomps/libcomps/0001-Add-crc32.c-to-sources-list.patch b/poky/meta/recipes-devtools/libcomps/libcomps/0001-Add-crc32.c-to-sources-list.patch
index f4fb6d3b2..76fce1976 100644
--- a/poky/meta/recipes-devtools/libcomps/libcomps/0001-Add-crc32.c-to-sources-list.patch
+++ b/poky/meta/recipes-devtools/libcomps/libcomps/0001-Add-crc32.c-to-sources-list.patch
@@ -13,7 +13,7 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/libcomps/src/python/src/CMakeLists.txt b/libcomps/src/python/src/CMakeLists.txt
-index adabb31..b9b96ab 100644
+index 89b9c91..08cd6b5 100644
--- a/libcomps/src/python/src/CMakeLists.txt
+++ b/libcomps/src/python/src/CMakeLists.txt
@@ -9,13 +9,13 @@ set (pycomps_SRCDIR ${CMAKE_CURRENT_SOURCE_DIR})
@@ -23,7 +23,7 @@ index adabb31..b9b96ab 100644
- pycomps_hash.c pycomps_exc.c pycomps_lbw.c)
+ pycomps_hash.c pycomps_exc.c pycomps_lbw.c crc32.c)
- set (pycomps_HEADERS pycomps_23macros.h pycomps_sequence.h
+ set (pycomps_HEADERS pycomps_macros.h pycomps_sequence.h
pycomps_envs.h pycomps_categories.h pycomps_groups.h
pycomps_gids.h pycomps_utils.h pycomps_dict.h pycomps_mdict.h
pycomps_hash.h pycomps_exc.h pycomps_lbw.h
@@ -46,5 +46,5 @@ index d8f5e34..f266067 100644
static uint32_t crc32_tab[] = {
0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,
--
-2.26.2
+2.25.1
diff --git a/poky/meta/recipes-devtools/libcomps/libcomps_0.1.15.bb b/poky/meta/recipes-devtools/libcomps/libcomps_0.1.16.bb
index 58d2dee89..851ec5b81 100644
--- a/poky/meta/recipes-devtools/libcomps/libcomps_0.1.15.bb
+++ b/poky/meta/recipes-devtools/libcomps/libcomps_0.1.16.bb
@@ -9,7 +9,7 @@ SRC_URI = "git://github.com/rpm-software-management/libcomps.git \
file://0002-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
"
-SRCREV = "b213f749405d84e989b25e183bcf28ce701696dd"
+SRCREV = "f3289ed1d812648558ab48ade4fae850b375fa65"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/libedit/libedit_20210216-3.1.bb b/poky/meta/recipes-devtools/libedit/libedit_20210419-3.1.bb
index 97aceaf71..a34b77328 100644
--- a/poky/meta/recipes-devtools/libedit/libedit_20210216-3.1.bb
+++ b/poky/meta/recipes-devtools/libedit/libedit_20210419-3.1.bb
@@ -13,7 +13,7 @@ inherit autotools
SRC_URI = "http://www.thrysoee.dk/editline/${BP}.tar.gz \
file://stdc-predef.patch \
"
-SRC_URI[sha256sum] = "2283f741d2aab935c8c52c04b57bf952d02c2c02e651172f8ac811f77b1fc77a"
+SRC_URI[sha256sum] = "571ebe44b74860823e24a08cf04086ff104fd7dfa1020abf26c52543134f5602"
BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/librepo/librepo_1.13.0.bb b/poky/meta/recipes-devtools/librepo/librepo_1.14.0.bb
index 0a68e0ac4..109b40ce3 100644
--- a/poky/meta/recipes-devtools/librepo/librepo_1.13.0.bb
+++ b/poky/meta/recipes-devtools/librepo/librepo_1.14.0.bb
@@ -10,7 +10,7 @@ SRC_URI = "git://github.com/rpm-software-management/librepo.git \
file://0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch \
"
-SRCREV = "a244d78bab11510408fb9413f1c78c2f56c69fa5"
+SRCREV = "88b769eceefc1b151937e6b54d108b48f2177d87"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/libtool/libtool-2.4.6.inc b/poky/meta/recipes-devtools/libtool/libtool-2.4.6.inc
index 19a03d473..e9225e140 100644
--- a/poky/meta/recipes-devtools/libtool/libtool-2.4.6.inc
+++ b/poky/meta/recipes-devtools/libtool/libtool-2.4.6.inc
@@ -22,6 +22,7 @@ SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \
file://0001-libtool-Fix-support-for-NIOS2-processor.patch \
file://0001-libtool-Check-for-static-libs-for-internal-compiler-.patch \
file://0001-Makefile.am-make-sure-autoheader-run-before-autoconf.patch \
+ file://0001-Makefile.am-make-sure-autoheader-run-before-automake.patch \
"
SRC_URI[md5sum] = "addf44b646ddb4e3919805aa88fa7c5e"
diff --git a/poky/meta/recipes-devtools/libtool/libtool/0001-Makefile.am-make-sure-autoheader-run-before-automake.patch b/poky/meta/recipes-devtools/libtool/libtool/0001-Makefile.am-make-sure-autoheader-run-before-automake.patch
new file mode 100644
index 000000000..87f849234
--- /dev/null
+++ b/poky/meta/recipes-devtools/libtool/libtool/0001-Makefile.am-make-sure-autoheader-run-before-automake.patch
@@ -0,0 +1,35 @@
+From e82c06584f02e3e4487aa73aa05981e2a35dc6d1 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Tue, 13 Apr 2021 07:17:29 +0000
+Subject: [PATCH] Makefile.am: make sure autoheader run before automake
+
+When use automake to generate Makefile.in from Makefile.am, there
+comes below race:
+ | configure.ac:45: error: required file 'config-h.in' not found
+
+It is because the file config-h.in in updating process by autoheader,
+so make automake run after autoheader to avoid the above race.
+
+Upstream-Status: Submitted [libtool-patches@gnu.org maillist]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 2752ecc..29950db 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -328,7 +328,7 @@ EXTRA_DIST += $(lt_aclocal_m4) \
+ $(lt_obsolete_m4) \
+ $(stamp_mk)
+
+-$(lt_Makefile_in): $(lt_Makefile_am) $(lt_aclocal_m4)
++$(lt_Makefile_in): $(lt_Makefile_am) $(lt_aclocal_m4) $(lt_config_h_in)
+ $(AM_V_GEN)cd '$(srcdir)/$(ltdl_dir)' && $(AUTOMAKE) Makefile
+
+ # Don't let unused scripts leak into the libltdl Makefile
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/llvm/llvm/0001-nfc-Fix-missing-include.patch b/poky/meta/recipes-devtools/llvm/llvm/0001-nfc-Fix-missing-include.patch
deleted file mode 100644
index f6dee77ab..000000000
--- a/poky/meta/recipes-devtools/llvm/llvm/0001-nfc-Fix-missing-include.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 3b7e611bd58ba842470d17374c550e14bceca5c7 Mon Sep 17 00:00:00 2001
-From: serge-sans-paille <sguelton@redhat.com>
-Date: Tue, 10 Nov 2020 14:55:25 +0100
-Subject: [PATCH] [nfc] Fix missing include
-
-Upstream-Status: Backport [https://github.com/llvm/llvm-project/commit/b498303066a63a203d24f739b2d2e0e56dca70d1]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- llvm/utils/benchmark/src/benchmark_register.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/llvm/utils/benchmark/src/benchmark_register.h b/llvm/utils/benchmark/src/benchmark_register.h
-index 0705e219f2fa..4caa5ad4da07 100644
---- a/llvm/utils/benchmark/src/benchmark_register.h
-+++ b/llvm/utils/benchmark/src/benchmark_register.h
-@@ -1,6 +1,7 @@
- #ifndef BENCHMARK_REGISTER_H
- #define BENCHMARK_REGISTER_H
-
-+#include <limits>
- #include <vector>
-
- #include "check.h"
---
-2.30.1
-
diff --git a/poky/meta/recipes-devtools/llvm/llvm_git.bb b/poky/meta/recipes-devtools/llvm/llvm_git.bb
index db6694339..8a5d3dc9b 100644
--- a/poky/meta/recipes-devtools/llvm/llvm_git.bb
+++ b/poky/meta/recipes-devtools/llvm/llvm_git.bb
@@ -19,8 +19,8 @@ inherit cmake pkgconfig
PROVIDES += "llvm${PV}"
-MAJOR_VERSION = "11"
-MINOR_VERSION = "1"
+MAJOR_VERSION = "12"
+MINOR_VERSION = "0"
PATCH_VERSION = "0"
PV = "${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}"
@@ -29,12 +29,11 @@ LLVM_RELEASE = "${PV}"
LLVM_DIR = "llvm${LLVM_RELEASE}"
BRANCH = "release/${MAJOR_VERSION}.x"
-SRCREV = "1fdec59bffc11ae37eb51a1b9869f0696bfd5312"
+SRCREV = "fa0971b87fb2c9d14d1bba2551e61f02f18f329b"
SRC_URI = "git://github.com/llvm/llvm-project.git;branch=${BRANCH} \
file://0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch;striplevel=2 \
file://0007-llvm-allow-env-override-of-exe-path.patch;striplevel=2 \
file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch;striplevel=2 \
- file://0001-nfc-Fix-missing-include.patch;striplevel=2 \
"
UPSTREAM_CHECK_GITTAGREGEX = "llvmorg-(?P<pver>\d+(\.\d+)+)"
diff --git a/poky/meta/recipes-devtools/m4/m4-1.4.18.inc b/poky/meta/recipes-devtools/m4/m4-1.4.18.inc
index a9b63c1bf..6475b02f8 100644
--- a/poky/meta/recipes-devtools/m4/m4-1.4.18.inc
+++ b/poky/meta/recipes-devtools/m4/m4-1.4.18.inc
@@ -9,6 +9,7 @@ inherit autotools texinfo ptest
SRC_URI = "${GNU_MIRROR}/m4/m4-${PV}.tar.gz \
file://ac_config_links.patch \
file://m4-1.4.18-glibc-change-work-around.patch \
+ file://0001-c-stack-stop-using-SIGSTKSZ.patch \
"
SRC_URI_append_class-target = " file://0001-Unset-need_charset_alias-when-building-for-musl.patch \
file://run-ptest \
diff --git a/poky/meta/recipes-devtools/m4/m4/0001-c-stack-stop-using-SIGSTKSZ.patch b/poky/meta/recipes-devtools/m4/m4/0001-c-stack-stop-using-SIGSTKSZ.patch
new file mode 100644
index 000000000..883b8a207
--- /dev/null
+++ b/poky/meta/recipes-devtools/m4/m4/0001-c-stack-stop-using-SIGSTKSZ.patch
@@ -0,0 +1,84 @@
+From 69238f15129f35eb4756ad8e2004e0d7907cb175 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 30 Apr 2021 17:40:36 -0700
+Subject: [PATCH] c-stack: stop using SIGSTKSZ
+
+This patch is required with glibc 2.34+
+based on gnulib [1]
+
+[1] https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=f9e2b20a12a230efa30f1d479563ae07d276a94b
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/c-stack.c | 22 +++++++++++++---------
+ 1 file changed, 13 insertions(+), 9 deletions(-)
+
+diff --git a/lib/c-stack.c b/lib/c-stack.c
+index 5353c08..863f764 100644
+--- a/lib/c-stack.c
++++ b/lib/c-stack.c
+@@ -51,13 +51,14 @@
+ typedef struct sigaltstack stack_t;
+ #endif
+ #ifndef SIGSTKSZ
+-# define SIGSTKSZ 16384
+-#elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384
++#define get_sigstksz() (16384)
++#elif HAVE_LIBSIGSEGV
+ /* libsigsegv 2.6 through 2.8 have a bug where some architectures use
+ more than the Linux default of an 8k alternate stack when deciding
+ if a fault was caused by stack overflow. */
+-# undef SIGSTKSZ
+-# define SIGSTKSZ 16384
++#define get_sigstksz() ((SIGSTKSZ) < 16384 ? 16384 : (SIGSTKSZ))
++#else
++#define get_sigstksz() ((SIGSTKSZ))
+ #endif
+
+ #include <stdlib.h>
+@@ -131,7 +132,8 @@ die (int signo)
+ /* Storage for the alternate signal stack. */
+ static union
+ {
+- char buffer[SIGSTKSZ];
++ /* allocate buffer with size from get_sigstksz() */
++ char *buffer;
+
+ /* These other members are for proper alignment. There's no
+ standard way to guarantee stack alignment, but this seems enough
+@@ -203,10 +205,11 @@ c_stack_action (void (*action) (int))
+ program_error_message = _("program error");
+ stack_overflow_message = _("stack overflow");
+
++ alternate_signal_stack.buffer = malloc(get_sigstksz());
+ /* Always install the overflow handler. */
+ if (stackoverflow_install_handler (overflow_handler,
+ alternate_signal_stack.buffer,
+- sizeof alternate_signal_stack.buffer))
++ get_sigstksz()))
+ {
+ errno = ENOTSUP;
+ return -1;
+@@ -279,14 +282,15 @@ c_stack_action (void (*action) (int))
+ stack_t st;
+ struct sigaction act;
+ st.ss_flags = 0;
++ alternate_signal_stack.buffer = malloc(get_sigstksz());
+ # if SIGALTSTACK_SS_REVERSED
+ /* Irix mistakenly treats ss_sp as the upper bound, rather than
+ lower bound, of the alternate stack. */
+- st.ss_sp = alternate_signal_stack.buffer + SIGSTKSZ - sizeof (void *);
+- st.ss_size = sizeof alternate_signal_stack.buffer - sizeof (void *);
++ st.ss_sp = alternate_signal_stack.buffer + get_sigstksz() - sizeof (void *);
++ st.ss_size = get_sigstksz() - sizeof (void *);
+ # else
+ st.ss_sp = alternate_signal_stack.buffer;
+- st.ss_size = sizeof alternate_signal_stack.buffer;
++ st.ss_size = get_sigstksz();
+ # endif
+ r = sigaltstack (&st, NULL);
+ if (r != 0)
+--
+2.31.1
+
diff --git a/poky/meta/recipes-devtools/mtools/mtools_4.0.26.bb b/poky/meta/recipes-devtools/mtools/mtools_4.0.27.bb
index 493871306..c6fa02ebd 100644
--- a/poky/meta/recipes-devtools/mtools/mtools_4.0.26.bb
+++ b/poky/meta/recipes-devtools/mtools/mtools_4.0.27.bb
@@ -24,7 +24,7 @@ RRECOMMENDS_${PN}_libc-glibc = "\
glibc-gconv-ibm866 \
glibc-gconv-ibm869 \
"
-SRC_URI[sha256sum] = "539f1c8b476a16e198d8bcb10a5799e22e69de49d854f7dbd85b64c2a45dea1a"
+SRC_URI[sha256sum] = "9c88c8d9244e54768e40b92c005e61ec4e084ea7c070df9184caf1a6408838b3"
SRC_URI = "${GNU_MIRROR}/mtools/mtools-${PV}.tar.bz2 \
file://mtools-makeinfo.patch \
diff --git a/poky/meta/recipes-devtools/patchelf/patchelf/6edec83653ce1b5fc201ff6db93b966394766814.patch b/poky/meta/recipes-devtools/patchelf/patchelf/6edec83653ce1b5fc201ff6db93b966394766814.patch
new file mode 100644
index 000000000..ba35ec6ff
--- /dev/null
+++ b/poky/meta/recipes-devtools/patchelf/patchelf/6edec83653ce1b5fc201ff6db93b966394766814.patch
@@ -0,0 +1,44 @@
+From 6edec83653ce1b5fc201ff6db93b966394766814 Mon Sep 17 00:00:00 2001
+From: rmnull <rmnull@users.noreply.github.com>
+Date: Tue, 18 Aug 2020 20:22:52 +0530
+Subject: [PATCH] mark phdrs synced with sections, avoid rechecking it when
+ syncing note sections to segments.
+
+This also serves as a bug fix when a previously synced note segment
+overlaps with another section and creates a false alarm.
+
+Upstream-Status: Backport
+---
+ src/patchelf.cc | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/patchelf.cc b/src/patchelf.cc
+index 05ec793..622f0b6 100644
+--- a/src/patchelf.cc
++++ b/src/patchelf.cc
+@@ -669,6 +669,7 @@ void ElfFile<ElfFileParamNames>::writeReplacedSections(Elf_Off & curOff,
+ memset(contents + rdi(shdr.sh_offset), 'X', rdi(shdr.sh_size));
+ }
+
++ std::set<unsigned int> noted_phdrs = {};
+ for (auto & i : replacedSections) {
+ std::string sectionName = i.first;
+ auto & shdr = findSection(sectionName);
+@@ -721,7 +722,7 @@ void ElfFile<ElfFileParamNames>::writeReplacedSections(Elf_Off & curOff,
+ shdr.sh_addralign = orig_shdr.sh_addralign;
+
+ for (unsigned int j = 0; j < phdrs.size(); ++j)
+- if (rdi(phdrs[j].p_type) == PT_NOTE) {
++ if (rdi(phdrs[j].p_type) == PT_NOTE && noted_phdrs.find(j) == noted_phdrs.end()) {
+ Elf_Off p_start = rdi(phdrs[j].p_offset);
+ Elf_Off p_end = p_start + rdi(phdrs[j].p_filesz);
+ Elf_Off s_start = rdi(orig_shdr.sh_offset);
+@@ -739,6 +740,8 @@ void ElfFile<ElfFileParamNames>::writeReplacedSections(Elf_Off & curOff,
+ phdrs[j].p_offset = shdr.sh_offset;
+ phdrs[j].p_vaddr = phdrs[j].p_paddr = shdr.sh_addr;
+ phdrs[j].p_filesz = phdrs[j].p_memsz = shdr.sh_size;
++
++ noted_phdrs.insert(j);
+ }
+ }
+
diff --git a/poky/meta/recipes-devtools/patchelf/patchelf/alignmentfix.patch b/poky/meta/recipes-devtools/patchelf/patchelf/alignmentfix.patch
new file mode 100644
index 000000000..a06876e50
--- /dev/null
+++ b/poky/meta/recipes-devtools/patchelf/patchelf/alignmentfix.patch
@@ -0,0 +1,44 @@
+If a binary has multiple SHT_NOTE sections and corresponding PT_NOTE
+headers, we can see the error:
+
+patchelf: cannot normalize PT_NOTE segment: non-contiguous SHT_NOTE sections
+
+if the SHT_NOTE sections aren't sized to end on aligned boundaries. An example
+would be a binary with:
+
+ [ 2] .note.ABI-tag NOTE 00000000000002f4 000002f4
+ 0000000000000020 0000000000000000 A 0 0 4
+ [ 3] .note.gnu.propert NOTE 0000000000000318 00000318
+ 0000000000000030 0000000000000000 A 0 0 8
+ [ 4] .note.gnu.build-i NOTE 0000000000000348 00000348
+ 0000000000000024 0000000000000000 A 0 0 4
+
+ NOTE 0x0000000000000318 0x0000000000000318 0x0000000000000318
+ 0x0000000000000030 0x0000000000000030 R 0x8
+ NOTE 0x00000000000002f4 0x00000000000002f4 0x00000000000002f4
+ 0x0000000000000078 0x0000000000000074 R 0x4
+
+since the PT_NOTE section at 2f4 covers [2] and [3] but the code
+calclates curr_off should be 314, not the 318 in the binary. This
+is an alignment issue.
+
+To fix this, we need to round curr_off to the next section alignment.
+
+Upstream-Status: Submitted [https://github.com/NixOS/patchelf/pull/274]
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: git/src/patchelf.cc
+===================================================================
+--- git.orig/src/patchelf.cc
++++ git/src/patchelf.cc
+@@ -1010,8 +1010,9 @@ void ElfFile<ElfFileParamNames>::normali
+ size_t size = 0;
+ for (const auto & shdr : shdrs) {
+ if (rdi(shdr.sh_type) != SHT_NOTE) continue;
+- if (rdi(shdr.sh_offset) != curr_off) continue;
++ if (rdi(shdr.sh_offset) != roundUp(curr_off, rdi(shdr.sh_addralign))) continue;
+ size = rdi(shdr.sh_size);
++ curr_off = roundUp(curr_off, rdi(shdr.sh_addralign));
+ break;
+ }
+ if (size == 0)
diff --git a/poky/meta/recipes-devtools/patchelf/patchelf_0.12.bb b/poky/meta/recipes-devtools/patchelf/patchelf_0.12.bb
index 95886c6d3..7c97ea078 100644
--- a/poky/meta/recipes-devtools/patchelf/patchelf_0.12.bb
+++ b/poky/meta/recipes-devtools/patchelf/patchelf_0.12.bb
@@ -6,6 +6,8 @@ LICENSE = "GPLv3"
SRC_URI = "git://github.com/NixOS/patchelf;protocol=https \
file://handle-read-only-files.patch \
+ file://6edec83653ce1b5fc201ff6db93b966394766814.patch \
+ file://alignmentfix.patch \
"
SRCREV = "8d3a16e97294e3c5521c61b4c8835499c9918264"
diff --git a/poky/meta/recipes-devtools/pkgconfig/pkgconfig/0001-autotools-remove-support-for-the-__int64-type.-See-1.patch b/poky/meta/recipes-devtools/pkgconfig/pkgconfig/0001-autotools-remove-support-for-the-__int64-type.-See-1.patch
new file mode 100644
index 000000000..bee458572
--- /dev/null
+++ b/poky/meta/recipes-devtools/pkgconfig/pkgconfig/0001-autotools-remove-support-for-the-__int64-type.-See-1.patch
@@ -0,0 +1,144 @@
+From 7e821441c482917e54435a07893272d87d3ad9e5 Mon Sep 17 00:00:00 2001
+From: Christoph Reiter <reiter.christoph@gmail.com>
+Date: Fri, 24 Aug 2018 19:43:04 +0200
+Subject: [PATCH] autotools: remove support for the __int64 type. See #1313
+
+__int64 was the 64bit type for Visual Studio before it added support for
+"long long" with VS2013. I think this was used to build glib with mingw and
+make the result usable for VS 6.0 which didn't support "long long" (??)
+
+Given that newer MSVC links against a different crt and mixing is not supported
+and everything supports "long long" nowadays just remove it.
+
+This is also a cleanup for printf format changes needed for #1497
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Backport [https://github.com/GNOME/glib/commit/7e821441c4]
+---
+ configure.ac | 43 ++++---------------------------------------
+ 1 file changed, 4 insertions(+), 39 deletions(-)
+
+--- a/glib/configure.ac
++++ b/glib/configure.ac
+@@ -550,7 +550,6 @@ AC_CHECK_SIZEOF(long)
+ AC_CHECK_SIZEOF(int)
+ AC_CHECK_SIZEOF(void *)
+ AC_CHECK_SIZEOF(long long)
+-AC_CHECK_SIZEOF(__int64)
+
+ AC_CACHE_CHECK([for sig_atomic_t], ac_cv_type_sig_atomic_t,
+ [AC_TRY_LINK([#include <signal.h>
+@@ -564,7 +563,7 @@ if test x$ac_cv_type_sig_atomic_t = xyes
+ [Define if you have the 'sig_atomic_t' type.])
+ fi
+
+-if test x$ac_cv_sizeof_long = x8 || test x$ac_cv_sizeof_long_long = x8 || test x$ac_cv_sizeof___int64 = x8 ; then
++if test x$ac_cv_sizeof_long = x8 || test x$ac_cv_sizeof_long_long = x8 ; then
+ :
+ else
+ AC_MSG_ERROR([
+@@ -573,7 +572,7 @@ else
+ ])
+ fi
+
+-AS_IF([test x$glib_native_win32 != xyes && test x$ac_cv_sizeof_long_long = x8], [
++AS_IF([test x$ac_cv_sizeof_long_long = x8], [
+ # long long is a 64 bit integer.
+ AC_MSG_CHECKING(for format to printf and scanf a guint64)
+ AC_CACHE_VAL(glib_cv_long_long_format,[
+@@ -599,14 +598,6 @@ AS_IF([test x$glib_native_win32 != xyes
+ AC_DEFINE(HAVE_INT64_AND_I64,1,[define to support printing 64-bit integers with format I64])
+ fi
+ ], [AC_MSG_RESULT(none)])
+-],[ test x$ac_cv_sizeof___int64 = x8], [
+- # __int64 is a 64 bit integer.
+- AC_MSG_CHECKING(for format to printf and scanf a guint64)
+- # We know this is MSVCRT.DLL, and what the formats are
+- glib_cv_long_long_format=I64
+- AC_MSG_RESULT(%${glib_cv_long_long_format}u)
+- AC_DEFINE(HAVE_LONG_LONG_FORMAT,1,[define if system printf can print long long])
+- AC_DEFINE(HAVE_INT64_AND_I64,1,[define to support printing 64-bit integers with format I64])
+ ])
+
+ AC_C_CONST
+@@ -872,9 +863,6 @@ case $ac_cv_sizeof_size_t in
+ $ac_cv_sizeof_long_long)
+ glib_size_type='long long'
+ ;;
+- $ac_cv_sizeof__int64)
+- glib_size_type='__int64'
+- ;;
+ *) AC_MSG_ERROR([No type matching size_t in size])
+ ;;
+ esac
+@@ -931,9 +919,6 @@ case $ac_cv_sizeof_ssize_t in
+ $ac_cv_sizeof_long_long)
+ glib_ssize_type='long long'
+ ;;
+- $ac_cv_sizeof__int64)
+- glib_ssize_type='__int64'
+- ;;
+ *) AC_MSG_ERROR([No type matching ssize_t in size])
+ ;;
+ esac
+@@ -2985,17 +2970,6 @@ $ac_cv_sizeof_long_long)
+ gint64_constant='(G_GNUC_EXTENSION (val##LL))'
+ guint64_constant='(G_GNUC_EXTENSION (val##ULL))'
+ ;;
+-$ac_cv_sizeof___int64)
+- gint64='__int64'
+- if test -n "$glib_cv_long_long_format"; then
+- gint64_modifier='"'$glib_cv_long_long_format'"'
+- gint64_format='"'$glib_cv_long_long_format'i"'
+- guint64_format='"'$glib_cv_long_long_format'u"'
+- fi
+- glib_extension=
+- gint64_constant='(val##i64)'
+- guint64_constant='(val##ui64)'
+- ;;
+ esac
+ glib_size_t=$ac_cv_sizeof_size_t
+ glib_ssize_t=$ac_cv_sizeof_ssize_t
+@@ -3020,7 +2994,7 @@ long)
+ gsize_format='"lu"'
+ glib_msize_type='LONG'
+ ;;
+-"long long"|__int64)
++"long long")
+ gsize_modifier='"I64"'
+ gsize_format='"I64u"'
+ glib_msize_type='INT64'
+@@ -3043,7 +3017,7 @@ long)
+ gssize_format='"li"'
+ glib_mssize_type='LONG'
+ ;;
+-"long long"|__int64)
++"long long")
+ gssize_modifier='"I64"'
+ gssize_format='"I64i"'
+ glib_mssize_type='INT64'
+@@ -3080,14 +3054,6 @@ $ac_cv_sizeof_long_long)
+ glib_gpi_cast='(gint64)'
+ glib_gpui_cast='(guint64)'
+ ;;
+-$ac_cv_sizeof___int64)
+- glib_intptr_type_define=__int64
+- gintptr_modifier='"I64"'
+- gintptr_format='"I64i"'
+- guintptr_format='"I64u"'
+- glib_gpi_cast='(gint64)'
+- glib_gpui_cast='(guint64)'
+- ;;
+ *)
+ glib_unknown_void_p=yes
+ ;;
+@@ -3258,9 +3224,6 @@ $ac_cv_sizeof_long)
+ $ac_cv_sizeof_long_long)
+ gint64='long long'
+ ;;
+-$ac_cv_sizeof___int64)
+- gint64='__int64'
+- ;;
+ esac
+
+ AC_CHECK_TYPE([guint32],,,[typedef unsigned $gint32 guint32;])
diff --git a/poky/meta/recipes-devtools/pkgconfig/pkgconfig/0001-autotools-use-C99-printf-format-specifiers-on-Window.patch b/poky/meta/recipes-devtools/pkgconfig/pkgconfig/0001-autotools-use-C99-printf-format-specifiers-on-Window.patch
new file mode 100644
index 000000000..a4e92da34
--- /dev/null
+++ b/poky/meta/recipes-devtools/pkgconfig/pkgconfig/0001-autotools-use-C99-printf-format-specifiers-on-Window.patch
@@ -0,0 +1,68 @@
+From 3d7cde654c4c6f3bdad32f5521f28f5802a7c377 Mon Sep 17 00:00:00 2001
+From: Christoph Reiter <reiter.christoph@gmail.com>
+Date: Fri, 24 Aug 2018 21:46:47 +0200
+Subject: [PATCH] autotools: use C99 printf format specifiers on Windows. Fixes
+ #1497
+
+Since we now require a C99 compatible printf and use gnulib on Windows,
+we also mark our printf functions as gnu_printf. GCC complains about the
+Windows specific I64 specifiers we still write to glibconfig.h with the
+autotools build.
+
+To fix this switch all I64(x) to ll(x).
+
+This also makes the glibconfig.h output for those macros match the ones
+we get when using meson.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Backport [https://github.com/GNOME/glib/commit/3d7cde654c]
+---
+ configure.ac | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+--- a/glib/configure.ac
++++ b/glib/configure.ac
+@@ -576,7 +576,7 @@ AS_IF([test x$ac_cv_sizeof_long_long = x
+ # long long is a 64 bit integer.
+ AC_MSG_CHECKING(for format to printf and scanf a guint64)
+ AC_CACHE_VAL(glib_cv_long_long_format,[
+- for format in ll q I64; do
++ for format in ll q; do
+ AC_TRY_RUN([#include <stdio.h>
+ int main()
+ {
+@@ -2995,8 +2995,8 @@ long)
+ glib_msize_type='LONG'
+ ;;
+ "long long")
+- gsize_modifier='"I64"'
+- gsize_format='"I64u"'
++ gsize_modifier='"ll"'
++ gsize_format='"llu"'
+ glib_msize_type='INT64'
+ ;;
+ esac
+@@ -3018,8 +3018,8 @@ long)
+ glib_mssize_type='LONG'
+ ;;
+ "long long")
+- gssize_modifier='"I64"'
+- gssize_format='"I64i"'
++ gssize_modifier='"ll"'
++ gssize_format='"lli"'
+ glib_mssize_type='INT64'
+ ;;
+ esac
+@@ -3048,9 +3048,9 @@ $ac_cv_sizeof_long)
+ ;;
+ $ac_cv_sizeof_long_long)
+ glib_intptr_type_define='long long'
+- gintptr_modifier='"I64"'
+- gintptr_format='"I64i"'
+- guintptr_format='"I64u"'
++ gintptr_modifier='"ll"'
++ gintptr_format='"lli"'
++ guintptr_format='"llu"'
+ glib_gpi_cast='(gint64)'
+ glib_gpui_cast='(guint64)'
+ ;;
diff --git a/poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb b/poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
index 52ef2a977..72db876ad 100644
--- a/poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
+++ b/poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
@@ -16,6 +16,8 @@ SRC_URI = "git://anongit.freedesktop.org/pkg-config \
file://pkg-config-native.in \
file://fix-glib-configure-libtool-usage.patch \
file://0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch \
+ file://0001-autotools-remove-support-for-the-__int64-type.-See-1.patch \
+ file://0001-autotools-use-C99-printf-format-specifiers-on-Window.patch \
"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/pseudo/pseudo_git.bb b/poky/meta/recipes-devtools/pseudo/pseudo_git.bb
index 17bd02c27..4eab13312 100644
--- a/poky/meta/recipes-devtools/pseudo/pseudo_git.bb
+++ b/poky/meta/recipes-devtools/pseudo/pseudo_git.bb
@@ -6,7 +6,7 @@ SRC_URI = "git://git.yoctoproject.org/pseudo;branch=oe-core \
file://fallback-group \
"
-SRCREV = "60e25a36558f1f07dcce1a044fe976b475bec42b"
+SRCREV = "ee24ebec9e5a11dd5208c9be2870f35eab3b9e20"
S = "${WORKDIR}/git"
PV = "1.9.0+git${SRCPV}"
diff --git a/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.20.1.bb b/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.20.2.bb
index 6c3b88678..0a60ca746 100644
--- a/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.20.1.bb
+++ b/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.20.2.bb
@@ -12,7 +12,7 @@ SRC_URI = "https://github.com/${SRCNAME}/${SRCNAME}/releases/download/v${PV}/${S
file://0001-numpy-core-Define-RISCV-32-support.patch \
file://run-ptest \
"
-SRC_URI[sha256sum] = "9bf51d69ebb4ca9239e55bedc2185fe2c0ec222da0adee7ece4125414676846d"
+SRC_URI[sha256sum] = "c049f410c78e76ffb0af830a8afbdf8baac09897b4152b97b1a3b8345ee338ff"
UPSTREAM_CHECK_URI = "https://github.com/numpy/numpy/releases"
UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar"
diff --git a/poky/meta/recipes-devtools/python/python-cython.inc b/poky/meta/recipes-devtools/python/python-cython.inc
index 0e6bac06a..04fd2ec2b 100644
--- a/poky/meta/recipes-devtools/python/python-cython.inc
+++ b/poky/meta/recipes-devtools/python/python-cython.inc
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e23fadd6ceef8c618fc1c65191d846fa"
PYPI_PACKAGE = "Cython"
BBCLASSEXTEND = "native nativesdk"
-SRC_URI[sha256sum] = "df6b83c7a6d1d967ea89a2903e4a931377634a297459652e4551734c48195406"
+SRC_URI[sha256sum] = "6a0d31452f0245daacb14c979c77e093eb1a546c760816b5eed0047686baad8e"
UPSTREAM_CHECK_REGEX = "Cython-(?P<pver>.*)\.tar"
inherit pypi
diff --git a/poky/meta/recipes-devtools/python/python-gitdb.inc b/poky/meta/recipes-devtools/python/python-gitdb.inc
index 618d85ff8..53d925a49 100644
--- a/poky/meta/recipes-devtools/python/python-gitdb.inc
+++ b/poky/meta/recipes-devtools/python/python-gitdb.inc
@@ -8,7 +8,7 @@ inherit pypi
PYPI_PACKAGE = "gitdb"
-SRC_URI[sha256sum] = "c9e1f2d0db7ddb9a704c2a0217be31214e91a4fe1dea1efad19ae42ba0c285c9"
+SRC_URI[sha256sum] = "96bf5c08b157a666fec41129e6d327235284cca4c81e92109260f353ba138005"
DEPENDS = "${PYTHON_PN}-async ${PYTHON_PN}-setuptools-native ${PYTHON_PN}-smmap"
diff --git a/poky/meta/recipes-devtools/python/python3-cython_0.29.22.bb b/poky/meta/recipes-devtools/python/python3-cython_0.29.23.bb
index 2ec4033fa..2ec4033fa 100644
--- a/poky/meta/recipes-devtools/python/python3-cython_0.29.22.bb
+++ b/poky/meta/recipes-devtools/python/python3-cython_0.29.23.bb
diff --git a/poky/meta/recipes-devtools/python/python3-dbusmock_0.22.0.bb b/poky/meta/recipes-devtools/python/python3-dbusmock_0.23.0.bb
index 0b87ab038..80990d8fb 100644
--- a/poky/meta/recipes-devtools/python/python3-dbusmock_0.22.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-dbusmock_0.23.0.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "https://pypi.org/project/python-dbusmock/"
LICENSE = "GPL-3.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02"
-SRC_URI[sha256sum] = "2191919cc411fb94953b36e46bfd55ee5ad4162432ee0d0892bc2c4770ff5d7c"
+SRC_URI[sha256sum] = "8c0b873a3f23869b416b51deeec39b3d5ab4c9875b705fc90ae917e4969c2574"
PYPI_PACKAGE = "python-dbusmock"
diff --git a/poky/meta/recipes-devtools/python/python3-docutils_0.16.bb b/poky/meta/recipes-devtools/python/python3-docutils_0.16.bb
deleted file mode 100644
index 50547a1b0..000000000
--- a/poky/meta/recipes-devtools/python/python3-docutils_0.16.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Text processing system for documentation"
-HOMEPAGE = "http://docutils.sourceforge.net"
-SECTION = "devel/python"
-LICENSE = "PSF & BSD-2-Clause & GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=7a4646907ab9083c826280b19e103106"
-
-DEPENDS = "python3"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/docutils/docutils-${PV}.tar.gz"
-SRC_URI[md5sum] = "9ccb6f332e23360f964de72c8ea5f0ed"
-SRC_URI[sha256sum] = "7d4e999cca74a52611773a42912088078363a30912e8822f7a3d38043b767573"
-
-S = "${WORKDIR}/docutils-${PV}"
-
-inherit distutils3
-
-BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-devtools/python/python3-docutils_0.17.1.bb b/poky/meta/recipes-devtools/python/python3-docutils_0.17.1.bb
new file mode 100644
index 000000000..54a809847
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-docutils_0.17.1.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Docutils is a modular system for processing documentation into useful formats"
+HOMEPAGE = "http://docutils.sourceforge.net"
+SECTION = "devel/python"
+LICENSE = "PSF & BSD-2-Clause & GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=836a1950177996968a49ff477a4a61c4"
+
+SRC_URI[sha256sum] = "686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-devtools/python/python3-gitdb_4.0.5.bb b/poky/meta/recipes-devtools/python/python3-gitdb_4.0.5.bb
deleted file mode 100644
index fe56bf964..000000000
--- a/poky/meta/recipes-devtools/python/python3-gitdb_4.0.5.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit setuptools3
-require python-gitdb.inc
-
-SRC_URI[md5sum] = "0e2d3f34efece5deda7c55fede6507cc"
diff --git a/poky/meta/recipes-devtools/python/python3-gitdb_4.0.7.bb b/poky/meta/recipes-devtools/python/python3-gitdb_4.0.7.bb
new file mode 100644
index 000000000..988d67b5f
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-gitdb_4.0.7.bb
@@ -0,0 +1,4 @@
+inherit setuptools3
+require python-gitdb.inc
+
+SRC_URI[md5sum] = "3f52187435ab0b6e64a15782ffaf29ab"
diff --git a/poky/meta/recipes-devtools/python/python3-jinja2_2.11.3.bb b/poky/meta/recipes-devtools/python/python3-jinja2_2.11.3.bb
index dbdf563f8..11a4d5432 100644
--- a/poky/meta/recipes-devtools/python/python3-jinja2_2.11.3.bb
+++ b/poky/meta/recipes-devtools/python/python3-jinja2_2.11.3.bb
@@ -13,8 +13,7 @@ CVE_PRODUCT = "jinja2 jinja"
CLEANBROKEN = "1"
inherit pypi setuptools3
-# ptest disabled in OE-Core for now due to missing dependencies
-
+inherit ${@bb.utils.filter('DISTRO_FEATURES', 'ptest', d)}
SRC_URI += " \
file://run-ptest \
@@ -27,6 +26,7 @@ do_install_ptest() {
RDEPENDS_${PN}-ptest += " \
${PYTHON_PN}-pytest \
+ ${PYTHON_PN}-toml \
${PYTHON_PN}-unixadmin \
"
diff --git a/poky/meta/recipes-devtools/python/python3-markupsafe_1.1.1.bb b/poky/meta/recipes-devtools/python/python3-markupsafe_1.1.1.bb
index 403a98a43..cade4e0f5 100644
--- a/poky/meta/recipes-devtools/python/python3-markupsafe_1.1.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-markupsafe_1.1.1.bb
@@ -8,7 +8,7 @@ SRC_URI[sha256sum] = "29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8
PYPI_PACKAGE = "MarkupSafe"
inherit pypi setuptools3
-# ptest disabled in OE-Core for now due to missing dependencies
+inherit ${@bb.utils.filter('DISTRO_FEATURES', 'ptest', d)}
RDEPENDS_${PN} += "${PYTHON_PN}-stringold"
diff --git a/poky/meta/recipes-devtools/python/python3-pygobject_3.38.0.bb b/poky/meta/recipes-devtools/python/python3-pygobject_3.40.1.bb
index 8df3150e3..f5679a4ba 100644
--- a/poky/meta/recipes-devtools/python/python3-pygobject_3.38.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-pygobject_3.40.1.bb
@@ -16,7 +16,7 @@ SRC_URI = " \
http://ftp.gnome.org/pub/GNOME/sources/${SRCNAME}/${@gnome_verdir("${PV}")}/${SRCNAME}-${PV}.tar.xz \
file://0001-Do-not-build-tests.patch \
"
-SRC_URI[sha256sum] = "0372d1bb9122fc19f500a249b1f38c2bb67485000f5887497b4b205b3e7084d5"
+SRC_URI[sha256sum] = "00c6d591f4cb40c335ab1fd3e8c17869ba15cfda54416fe363290af766790035"
UNKNOWN_CONFIGURE_WHITELIST = "introspection"
diff --git a/poky/meta/recipes-devtools/python/python3-pyyaml_5.4.1.bb b/poky/meta/recipes-devtools/python/python3-pyyaml_5.4.1.bb
new file mode 100644
index 000000000..dce1ad57d
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-pyyaml_5.4.1.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Python support for YAML"
+DEPENDS += "libyaml ${PYTHON_PN}-cython-native"
+HOMEPAGE = "https://pyyaml.org/"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6d8242660a8371add5fe547adf083079"
+
+PYPI_PACKAGE = "PyYAML"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-netclient \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools_54.1.1.bb b/poky/meta/recipes-devtools/python/python3-setuptools_56.0.0.bb
index 74264a381..07a82ad21 100644
--- a/poky/meta/recipes-devtools/python/python3-setuptools_54.1.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-setuptools_56.0.0.bb
@@ -10,7 +10,7 @@ SRC_URI_append_class-native = " file://0001-conditionally-do-not-fetch-code-by-e
SRC_URI += "file://0001-change-shebang-to-python3.patch"
-SRC_URI[sha256sum] = "1ce82798848a978696465866bb3aaab356003c42d6143e1111fcf069ac838274"
+SRC_URI[sha256sum] = "08a1c0f99455307c48690f00d5c2ac2c1ccfab04df00454fef854ec145b81302"
DEPENDS += "${PYTHON_PN}"
diff --git a/poky/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch b/poky/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch
index 35b7e0c48..c3d1e06d0 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch
@@ -23,24 +23,24 @@ Before this patch:
Upstream-Status: Submitted [https://github.com/python/cpython/pull/15132]
+
+Rebased for 3.9.4, still not accepted upstream Signed-off-by: Alejandro Hernandez <alejandro@enedino.org>
+
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
Lib/test/test_locale.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/Lib/test/test_locale.py b/Lib/test/test_locale.py
-index e2c2178..558d63c 100644
---- a/Lib/test/test_locale.py
-+++ b/Lib/test/test_locale.py
-@@ -527,7 +527,7 @@ class TestMiscellaneous(unittest.TestCase):
+Index: Python-3.9.4/Lib/test/test_locale.py
+===================================================================
+--- Python-3.9.4.orig/Lib/test/test_locale.py
++++ Python-3.9.4/Lib/test/test_locale.py
+@@ -562,7 +562,7 @@ class TestMiscellaneous(unittest.TestCas
self.skipTest('test needs Turkish locale')
loc = locale.getlocale(locale.LC_CTYPE)
if verbose:
- print('testing with %a' % (loc,), end=' ', flush=True)
+ print('testing with %a...' % (loc,), end=' ', flush=True)
- locale.setlocale(locale.LC_CTYPE, loc)
- self.assertEqual(loc, locale.getlocale(locale.LC_CTYPE))
-
---
-2.7.4
-
+ try:
+ locale.setlocale(locale.LC_CTYPE, loc)
+ except locale.Error as exc:
diff --git a/poky/meta/recipes-devtools/python/python3/create_manifest3.py b/poky/meta/recipes-devtools/python/python3/create_manifest3.py
index 4da02a299..045240ea0 100644
--- a/poky/meta/recipes-devtools/python/python3/create_manifest3.py
+++ b/poky/meta/recipes-devtools/python/python3/create_manifest3.py
@@ -36,7 +36,7 @@
# Tha method to handle cached files does not work when a module includes a folder which
# itself contains the pycache folder, gladly this is almost never the case.
#
-# Author: Alejandro Enedino Hernandez Samaniego "aehs29" <aehs29 at gmail dot com>
+# Author: Alejandro Enedino Hernandez Samaniego <alejandro at enedino dot org>
import sys
@@ -45,6 +45,11 @@ import json
import os
import collections
+if '-d' in sys.argv:
+ debugFlag = '-d'
+else:
+ debugFlag = ''
+
# Get python version from ${PYTHON_MAJMIN}
pyversion = str(sys.argv[1])
@@ -84,6 +89,12 @@ def prepend_comments(comments, json_manifest):
manifest.seek(0, 0)
manifest.write(comments + json_contents)
+def print_indent(msg, offset):
+ for l in msg.splitlines():
+ msg = ' ' * offset + l
+ print(msg)
+
+
# Read existing JSON manifest
with open('python3-manifest.json') as manifest:
# The JSON format doesn't allow comments so we hack the call to keep the comments using a marker
@@ -99,7 +110,7 @@ with open('python3-manifest.json') as manifest:
# Not exactly the same so it should not be a function
#
-print ('Getting dependencies for package: core')
+print_indent('Getting dependencies for package: core', 0)
# This special call gets the core dependencies and
@@ -109,7 +120,7 @@ print ('Getting dependencies for package: core')
# on the new core package, they will still find them
# even when checking the old_manifest
-output = subprocess.check_output([sys.executable, 'get_module_deps3.py', 'python-core-package']).decode('utf8')
+output = subprocess.check_output([sys.executable, 'get_module_deps3.py', 'python-core-package', '%s' % debugFlag]).decode('utf8')
for coredep in output.split():
coredep = coredep.replace(pyversion,'${PYTHON_MAJMIN}')
if isCached(coredep):
@@ -149,17 +160,16 @@ for filedep in old_manifest['core']['files']:
# Get actual module name , shouldnt be affected by libdir/bindir, etc.
pymodule = os.path.splitext(os.path.basename(os.path.normpath(filedep)))[0]
-
# We now know that were dealing with a python module, so we can import it
# and check what its dependencies are.
# We launch a separate task for each module for deterministic behavior.
# Each module will only import what is necessary for it to work in specific.
# The output of each task will contain each module's dependencies
- print ('Getting dependencies for module: %s' % pymodule)
- output = subprocess.check_output([sys.executable, 'get_module_deps3.py', '%s' % pymodule]).decode('utf8')
- print ('The following dependencies were found for module %s:\n' % pymodule)
- print (output)
+ print_indent('Getting dependencies for module: %s' % pymodule, 2)
+ output = subprocess.check_output([sys.executable, 'get_module_deps3.py', '%s' % pymodule, '%s' % debugFlag]).decode('utf8')
+ print_indent('The following dependencies were found for module %s:\n' % pymodule, 4)
+ print_indent(output, 6)
for pymodule_dep in output.split():
@@ -178,12 +188,13 @@ for filedep in old_manifest['core']['files']:
# all others will use this a base.
+print('\n\nChecking for directories...\n')
# To improve the script speed, we check which packages contain directories
# since we will be looping through (only) those later.
for pypkg in old_manifest:
for filedep in old_manifest[pypkg]['files']:
if isFolder(filedep):
- print ('%s is a folder' % filedep)
+ print_indent('%s is a directory' % filedep, 2)
if pypkg not in hasfolders:
hasfolders.append(pypkg)
if filedep not in allfolders:
@@ -221,14 +232,14 @@ for pypkg in old_manifest:
print('\n')
print('--------------------------')
- print ('Handling package %s' % pypkg)
+ print('Handling package %s' % pypkg)
print('--------------------------')
# Handle special cases, we assume that when they were manually added
# to the manifest we knew what we were doing.
special_packages = ['misc', 'modules', 'dev', 'tests']
if pypkg in special_packages or 'staticdev' in pypkg:
- print('Passing %s package directly' % pypkg)
+ print_indent('Passing %s package directly' % pypkg, 2)
new_manifest[pypkg] = old_manifest[pypkg]
continue
@@ -259,7 +270,7 @@ for pypkg in old_manifest:
# Get actual module name , shouldnt be affected by libdir/bindir, etc.
# We need to check if the imported module comes from another (e.g. sqlite3.dump)
- path,pymodule = os.path.split(filedep)
+ path, pymodule = os.path.split(filedep)
path = os.path.basename(path)
pymodule = os.path.splitext(os.path.basename(pymodule))[0]
@@ -279,10 +290,10 @@ for pypkg in old_manifest:
# Each module will only import what is necessary for it to work in specific.
# The output of each task will contain each module's dependencies
- print ('\nGetting dependencies for module: %s' % pymodule)
- output = subprocess.check_output([sys.executable, 'get_module_deps3.py', '%s' % pymodule]).decode('utf8')
- print ('The following dependencies were found for module %s:\n' % pymodule)
- print (output)
+ print_indent('\nGetting dependencies for module: %s' % pymodule, 2)
+ output = subprocess.check_output([sys.executable, 'get_module_deps3.py', '%s' % pymodule, '%s' % debugFlag]).decode('utf8')
+ print_indent('The following dependencies were found for module %s:\n' % pymodule, 4)
+ print_indent(output, 6)
reportFILES = []
reportRDEPS = []
@@ -325,7 +336,7 @@ for pypkg in old_manifest:
# print('Checking folder %s on package %s' % (pymodule_dep,pypkg_with_folder))
for folder_dep in old_manifest[pypkg_with_folder]['files'] or folder_dep in old_manifest[pypkg_with_folder]['cached']:
if folder_dep == folder:
- print ('%s folder found in %s' % (folder, pypkg_with_folder))
+ print ('%s directory found in %s' % (folder, pypkg_with_folder))
folderFound = True
if pypkg_with_folder not in new_manifest[pypkg]['rdepends'] and pypkg_with_folder != pypkg:
new_manifest[pypkg]['rdepends'].append(pypkg_with_folder)
@@ -424,7 +435,7 @@ prepend_comments(comments,'python3-manifest.json.new')
if (repeated):
error_msg = '\n\nERROR:\n'
- error_msg += 'The following files are repeated (contained in more than one package),\n'
+ error_msg += 'The following files were found in more than one package),\n'
error_msg += 'this is likely to happen when new files are introduced after an upgrade,\n'
error_msg += 'please check which package should get it,\n modify the manifest accordingly and re-run the create_manifest task:\n'
error_msg += '\n'.join(repeated)
diff --git a/poky/meta/recipes-devtools/python/python3/get_module_deps3.py b/poky/meta/recipes-devtools/python/python3/get_module_deps3.py
index 6806f2317..1f4c982ae 100644
--- a/poky/meta/recipes-devtools/python/python3/get_module_deps3.py
+++ b/poky/meta/recipes-devtools/python/python3/get_module_deps3.py
@@ -3,14 +3,18 @@
# them out, the output of this execution will have all dependencies
# for a specific module, which will be parsed an dealt on create_manifest.py
#
-# Author: Alejandro Enedino Hernandez Samaniego "aehs29" <aehs29@gmail.com>
+# Author: Alejandro Enedino Hernandez Samaniego <alejandro at enedino dot org>
-# We can get a log per module, for all the dependencies that were found, but its messy.
-debug=False
import sys
import os
+# We can get a log per module, for all the dependencies that were found, but its messy.
+if '-d' in sys.argv:
+ debug = True
+else:
+ debug = False
+
# We can get a list of the modules which are currently required to run python
# so we run python-core and get its modules, we then import what we need
# and check what modules are currently running, if we substract them from the
@@ -19,13 +23,13 @@ import os
# We use importlib to achieve this, so we also need to know what modules importlib needs
import importlib
-core_deps=set(sys.modules)
+core_deps = set(sys.modules)
def fix_path(dep_path):
import os
# We DONT want the path on our HOST system
- pivot='recipe-sysroot-native'
- dep_path=dep_path[dep_path.find(pivot)+len(pivot):]
+ pivot = 'recipe-sysroot-native'
+ dep_path = dep_path[dep_path.find(pivot)+len(pivot):]
if '/usr/bin' in dep_path:
dep_path = dep_path.replace('/usr/bin''${bindir}')
@@ -46,8 +50,8 @@ def fix_path(dep_path):
# Module to import was passed as an argument
current_module = str(sys.argv[1]).rstrip()
-if(debug==True):
- log = open('log_%s' % current_module,'w')
+if debug == True:
+ log = open('temp/log_%s' % current_module.strip('.*'),'w')
log.write('Module %s generated the following dependencies:\n' % current_module)
try:
m = importlib.import_module(current_module)
@@ -63,13 +67,13 @@ try:
except:
pass # ignore all import or other exceptions raised during import
except ImportError as e:
- if (debug==True):
- log.write('Module was not found')
+ if debug == True:
+ log.write('Module was not found\n')
pass
# Get current module dependencies, dif will contain a list of specific deps for this module
-module_deps=set(sys.modules)
+module_deps = set(sys.modules)
# We handle the core package (1st pass on create_manifest.py) as a special case
if current_module == 'python-core-package':
@@ -81,14 +85,18 @@ else:
# Check where each dependency came from
for item in dif:
- dep_path=''
+ # Main module returns script filename, __main matches mp_main__ as well
+ if 'main__' in item:
+ continue
+
+ dep_path = ''
try:
- if (debug==True):
- log.write('Calling: sys.modules[' + '%s' % item + '].__file__\n')
+ if debug == True:
+ log.write('\nCalling: sys.modules[' + '%s' % item + '].__file__\n')
dep_path = sys.modules['%s' % item].__file__
except AttributeError as e:
# Deals with thread (builtin module) not having __file__ attribute
- if debug==True:
+ if debug == True:
log.write(item + ' ')
log.write(str(e))
log.write('\n')
@@ -96,11 +104,16 @@ for item in dif:
except NameError as e:
# Deals with NameError: name 'dep_path' is not defined
# because module is not found (wasn't compiled?), e.g. bddsm
- if (debug==True):
+ if debug == True:
log.write(item+' ')
log.write(str(e))
pass
+ if dep_path == '':
+ continue
+ if debug == True:
+ log.write('Dependency path found:\n%s\n' % dep_path)
+
# Site-customize is a special case since we (OpenEmbedded) put it there manually
if 'sitecustomize' in dep_path:
dep_path = '${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py'
@@ -111,52 +124,51 @@ for item in dif:
dep_path = fix_path(dep_path)
import sysconfig
- soabi=sysconfig.get_config_var('SOABI')
+ soabi = sysconfig.get_config_var('SOABI')
# Check if its a shared library and deconstruct it
if soabi in dep_path:
- if (debug==True):
- log.write('Shared library found in %s' % dep_path)
+ if debug == True:
+ log.write('Shared library found in %s\n' % dep_path)
dep_path = dep_path.replace(soabi,'*')
print (dep_path)
continue
if "_sysconfigdata" in dep_path:
dep_path = dep_path.replace(sysconfig._get_sysconfigdata_name(), "_sysconfigdata*")
- if (debug==True):
+ if debug == True:
log.write(dep_path+'\n')
# Prints out result, which is what will be used by create_manifest
print (dep_path)
- import imp
- cpython_tag = imp.get_tag()
- cached=''
+ cpython_tag = sys.implementation.cache_tag
+ cached = ''
# Theres no naive way to find *.pyc files on python3
try:
- if (debug==True):
- log.write('Calling: sys.modules[' + '%s' % item + '].__cached__\n')
+ if debug == True:
+ log.write('\nCalling: sys.modules[' + '%s' % item + '].__cached__\n')
cached = sys.modules['%s' % item].__cached__
except AttributeError as e:
# Deals with thread (builtin module) not having __cached__ attribute
- if debug==True:
+ if debug == True:
log.write(item + ' ')
log.write(str(e))
log.write('\n')
pass
except NameError as e:
# Deals with NameError: name 'cached' is not defined
- if (debug==True):
+ if debug == True:
log.write(item+' ')
log.write(str(e))
pass
if cached is not None:
- if (debug==True):
- log.write(cached)
+ if debug == True:
+ log.write(cached + '\n')
cached = fix_path(cached)
cached = cached.replace(cpython_tag,'*')
if "_sysconfigdata" in cached:
cached = cached.replace(sysconfig._get_sysconfigdata_name(), "_sysconfigdata*")
print (cached)
-if debug==True:
+if debug == True:
log.close()
diff --git a/poky/meta/recipes-devtools/python/python3_3.9.2.bb b/poky/meta/recipes-devtools/python/python3_3.9.4.bb
index fd1172335..cb371ceed 100644
--- a/poky/meta/recipes-devtools/python/python3_3.9.2.bb
+++ b/poky/meta/recipes-devtools/python/python3_3.9.4.bb
@@ -38,7 +38,7 @@ SRC_URI_append_class-native = " \
file://12-distutils-prefix-is-inside-staging-area.patch \
file://0001-Don-t-search-system-for-headers-libraries.patch \
"
-SRC_URI[sha256sum] = "3c2034c54f811448f516668dce09d24008a0716c3a794dd8639b5388cbde247d"
+SRC_URI[sha256sum] = "4b0e6644a76f8df864ae24ac500a51bbf68bd098f6a173e27d3b61cdca9aa134"
# exclude pre-releases for both python 2.x and 3.x
UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar"
@@ -69,7 +69,7 @@ ALTERNATIVE_LINK_NAME[python3-config] = "${bindir}/python${PYTHON_MAJMIN}-config
ALTERNATIVE_TARGET[python3-config] = "${bindir}/python${PYTHON_MAJMIN}-config-${MULTILIB_SUFFIX}"
-DEPENDS = "bzip2-replacement-native libffi bzip2 openssl sqlite3 zlib virtual/libintl xz virtual/crypt util-linux libtirpc libnsl2"
+DEPENDS = "bzip2-replacement-native libffi bzip2 openssl sqlite3 zlib virtual/libintl xz virtual/crypt util-linux libtirpc libnsl2 autoconf-archive-native"
DEPENDS_append_class-target = " python3-native"
DEPENDS_append_class-nativesdk = " python3-native"
diff --git a/poky/meta/recipes-devtools/qemu/qemu-system-native_5.2.0.bb b/poky/meta/recipes-devtools/qemu/qemu-system-native_5.2.0.bb
index 222b55cbc..390dadea4 100644
--- a/poky/meta/recipes-devtools/qemu/qemu-system-native_5.2.0.bb
+++ b/poky/meta/recipes-devtools/qemu/qemu-system-native_5.2.0.bb
@@ -1,5 +1,7 @@
BPN = "qemu"
+inherit python3-dir
+
require qemu-native.inc
# As some of the files installed by qemu-native and qemu-system-native
@@ -23,4 +25,7 @@ do_install_append() {
rm -f ${D}${datadir}/qemu/trace-events-all
rm -rf ${D}${datadir}/qemu/keymaps
rm -rf ${D}${datadir}/icons/
+
+ # Install qmp.py to be used with testimage
+ install -D ${S}/python/qemu/qmp.py ${D}${PYTHON_SITEPACKAGES_DIR}/qmp.py
}
diff --git a/poky/meta/recipes-devtools/qemu/qemu.inc b/poky/meta/recipes-devtools/qemu/qemu.inc
index a62580959..384b0c19b 100644
--- a/poky/meta/recipes-devtools/qemu/qemu.inc
+++ b/poky/meta/recipes-devtools/qemu/qemu.inc
@@ -30,7 +30,33 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \
file://mmap2.patch \
file://determinism.patch \
file://0001-tests-meson.build-use-relative-path-to-refer-to-file.patch \
- file://CVE-2021-20203.patch \
+ file://CVE-2021-20203.patch \
+ file://CVE-2020-35517_1.patch \
+ file://CVE-2020-35517_2.patch \
+ file://CVE-2020-35517_3.patch \
+ file://CVE-2021-20181.patch \
+ file://CVE-2020-29443.patch \
+ file://CVE-2021-20221.patch \
+ file://CVE-2021-3409_1.patch \
+ file://CVE-2021-3409_2.patch \
+ file://CVE-2021-3409_3.patch \
+ file://CVE-2021-3409_4.patch \
+ file://CVE-2021-3409_5.patch \
+ file://CVE-2021-3409_6.patch \
+ file://CVE-2021-3416_1.patch \
+ file://CVE-2021-3416_2.patch \
+ file://CVE-2021-3416_3.patch \
+ file://CVE-2021-3416_4.patch \
+ file://CVE-2021-3416_5.patch \
+ file://CVE-2021-3416_6.patch \
+ file://CVE-2021-3416_7.patch \
+ file://CVE-2021-3416_8.patch \
+ file://CVE-2021-3416_9.patch \
+ file://CVE-2021-3416_10.patch \
+ file://CVE-2021-20257.patch \
+ file://CVE-2020-27821.patch \
+ file://CVE-2021-20263.patch \
+ file://CVE-2021-3392.patch \
"
UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-27821.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-27821.patch
new file mode 100644
index 000000000..58622f048
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-27821.patch
@@ -0,0 +1,143 @@
+From 279f90a9ab07304f0a49fc10e4bfd1243a8cddbe Mon Sep 17 00:00:00 2001
+From: Paolo Bonzini <pbonzini@redhat.com>
+Date: Tue, 1 Dec 2020 09:29:56 -0500
+Subject: [PATCH 1/2] memory: clamp cached translation in case it points to an
+ MMIO region
+
+In using the address_space_translate_internal API, address_space_cache_init
+forgot one piece of advice that can be found in the code for
+address_space_translate_internal:
+
+ /* MMIO registers can be expected to perform full-width accesses based only
+ * on their address, without considering adjacent registers that could
+ * decode to completely different MemoryRegions. When such registers
+ * exist (e.g. I/O ports 0xcf8 and 0xcf9 on most PC chipsets), MMIO
+ * regions overlap wildly. For this reason we cannot clamp the accesses
+ * here.
+ *
+ * If the length is small (as is the case for address_space_ldl/stl),
+ * everything works fine. If the incoming length is large, however,
+ * the caller really has to do the clamping through memory_access_size.
+ */
+
+address_space_cache_init is exactly one such case where "the incoming length
+is large", therefore we need to clamp the resulting length---not to
+memory_access_size though, since we are not doing an access yet, but to
+the size of the resulting section. This ensures that subsequent accesses
+to the cached MemoryRegionSection will be in range.
+
+With this patch, the enclosed testcase notices that the used ring does
+not fit into the MSI-X table and prints a "qemu-system-x86_64: Cannot map used"
+error.
+
+Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
+
+Upstream-Status: Backport [4bfb024bc76973d40a359476dc0291f46e435442]
+CVE: CVE-2020-27821
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ softmmu/physmem.c | 10 ++++++++
+ tests/qtest/fuzz-test.c | 51 +++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 61 insertions(+)
+
+diff --git a/softmmu/physmem.c b/softmmu/physmem.c
+index 3027747c0..2cd1de4a2 100644
+--- a/softmmu/physmem.c
++++ b/softmmu/physmem.c
+@@ -3255,6 +3255,7 @@ int64_t address_space_cache_init(MemoryRegionCache *cache,
+ AddressSpaceDispatch *d;
+ hwaddr l;
+ MemoryRegion *mr;
++ Int128 diff;
+
+ assert(len > 0);
+
+@@ -3263,6 +3264,15 @@ int64_t address_space_cache_init(MemoryRegionCache *cache,
+ d = flatview_to_dispatch(cache->fv);
+ cache->mrs = *address_space_translate_internal(d, addr, &cache->xlat, &l, true);
+
++ /*
++ * cache->xlat is now relative to cache->mrs.mr, not to the section itself.
++ * Take that into account to compute how many bytes are there between
++ * cache->xlat and the end of the section.
++ */
++ diff = int128_sub(cache->mrs.size,
++ int128_make64(cache->xlat - cache->mrs.offset_within_region));
++ l = int128_get64(int128_min(diff, int128_make64(l)));
++
+ mr = cache->mrs.mr;
+ memory_region_ref(mr);
+ if (memory_access_is_direct(mr, is_write)) {
+diff --git a/tests/qtest/fuzz-test.c b/tests/qtest/fuzz-test.c
+index 9cb4c42bd..28739248e 100644
+--- a/tests/qtest/fuzz-test.c
++++ b/tests/qtest/fuzz-test.c
+@@ -47,6 +47,55 @@ static void test_lp1878642_pci_bus_get_irq_level_assert(void)
+ qtest_outl(s, 0x5d02, 0xebed205d);
+ }
+
++/*
++ * Here a MemoryRegionCache pointed to an MMIO region but had a
++ * larger size than the underlying region.
++ */
++static void test_mmio_oob_from_memory_region_cache(void)
++{
++ QTestState *s;
++
++ s = qtest_init("-M pc-q35-5.2 -display none -m 512M "
++ "-device virtio-scsi,num_queues=8,addr=03.0 ");
++
++ qtest_outl(s, 0xcf8, 0x80001811);
++ qtest_outb(s, 0xcfc, 0x6e);
++ qtest_outl(s, 0xcf8, 0x80001824);
++ qtest_outl(s, 0xcf8, 0x80001813);
++ qtest_outl(s, 0xcfc, 0xa080000);
++ qtest_outl(s, 0xcf8, 0x80001802);
++ qtest_outl(s, 0xcfc, 0x5a175a63);
++ qtest_outb(s, 0x6e08, 0x9e);
++ qtest_writeb(s, 0x9f003, 0xff);
++ qtest_writeb(s, 0x9f004, 0x01);
++ qtest_writeb(s, 0x9e012, 0x0e);
++ qtest_writeb(s, 0x9e01b, 0x0e);
++ qtest_writeb(s, 0x9f006, 0x01);
++ qtest_writeb(s, 0x9f008, 0x01);
++ qtest_writeb(s, 0x9f00a, 0x01);
++ qtest_writeb(s, 0x9f00c, 0x01);
++ qtest_writeb(s, 0x9f00e, 0x01);
++ qtest_writeb(s, 0x9f010, 0x01);
++ qtest_writeb(s, 0x9f012, 0x01);
++ qtest_writeb(s, 0x9f014, 0x01);
++ qtest_writeb(s, 0x9f016, 0x01);
++ qtest_writeb(s, 0x9f018, 0x01);
++ qtest_writeb(s, 0x9f01a, 0x01);
++ qtest_writeb(s, 0x9f01c, 0x01);
++ qtest_writeb(s, 0x9f01e, 0x01);
++ qtest_writeb(s, 0x9f020, 0x01);
++ qtest_writeb(s, 0x9f022, 0x01);
++ qtest_writeb(s, 0x9f024, 0x01);
++ qtest_writeb(s, 0x9f026, 0x01);
++ qtest_writeb(s, 0x9f028, 0x01);
++ qtest_writeb(s, 0x9f02a, 0x01);
++ qtest_writeb(s, 0x9f02c, 0x01);
++ qtest_writeb(s, 0x9f02e, 0x01);
++ qtest_writeb(s, 0x9f030, 0x01);
++ qtest_outb(s, 0x6e10, 0x00);
++ qtest_quit(s);
++}
++
+ int main(int argc, char **argv)
+ {
+ const char *arch = qtest_get_arch();
+@@ -58,6 +107,8 @@ int main(int argc, char **argv)
+ test_lp1878263_megasas_zero_iov_cnt);
+ qtest_add_func("fuzz/test_lp1878642_pci_bus_get_irq_level_assert",
+ test_lp1878642_pci_bus_get_irq_level_assert);
++ qtest_add_func("fuzz/test_mmio_oob_from_memory_region_cache",
++ test_mmio_oob_from_memory_region_cache);
+ }
+
+ return g_test_run();
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-29443.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-29443.patch
new file mode 100644
index 000000000..c72324fce
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-29443.patch
@@ -0,0 +1,107 @@
+From c9a71afe182be5b62bd2ccdaf861695e0ec0731a Mon Sep 17 00:00:00 2001
+From: Prasad J Pandit <pjp@fedoraproject.org>
+Date: Mon, 18 Jan 2021 17:21:30 +0530
+Subject: [PATCH] ide: atapi: check logical block address and read size
+ (CVE-2020-29443)
+
+While processing ATAPI cmd_read/cmd_read_cd commands,
+Logical Block Address (LBA) maybe invalid OR closer to the last block,
+leading to an OOB access issues. Add range check to avoid it.
+
+Fixes: CVE-2020-29443
+Reported-by: Wenxiang Qian <leonwxqian@gmail.com>
+Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
+Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
+Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
+Message-Id: <20210118115130.457044-1-ppandit@redhat.com>
+Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
+
+Upstream-Status: Backport [b8d7f1bc59276fec85e4d09f1567613a3e14d31e]
+CVE: CVE-2020-29443
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ hw/ide/atapi.c | 30 ++++++++++++++++++++++++------
+ 1 file changed, 24 insertions(+), 6 deletions(-)
+
+diff --git a/hw/ide/atapi.c b/hw/ide/atapi.c
+index e79157863..b626199e3 100644
+--- a/hw/ide/atapi.c
++++ b/hw/ide/atapi.c
+@@ -322,6 +322,8 @@ static void ide_atapi_cmd_reply(IDEState *s, int size, int max_size)
+ static void ide_atapi_cmd_read_pio(IDEState *s, int lba, int nb_sectors,
+ int sector_size)
+ {
++ assert(0 <= lba && lba < (s->nb_sectors >> 2));
++
+ s->lba = lba;
+ s->packet_transfer_size = nb_sectors * sector_size;
+ s->elementary_transfer_size = 0;
+@@ -420,6 +422,8 @@ eot:
+ static void ide_atapi_cmd_read_dma(IDEState *s, int lba, int nb_sectors,
+ int sector_size)
+ {
++ assert(0 <= lba && lba < (s->nb_sectors >> 2));
++
+ s->lba = lba;
+ s->packet_transfer_size = nb_sectors * sector_size;
+ s->io_buffer_size = 0;
+@@ -973,35 +977,49 @@ static void cmd_prevent_allow_medium_removal(IDEState *s, uint8_t* buf)
+
+ static void cmd_read(IDEState *s, uint8_t* buf)
+ {
+- int nb_sectors, lba;
++ unsigned int nb_sectors, lba;
++
++ /* Total logical sectors of ATAPI_SECTOR_SIZE(=2048) bytes */
++ uint64_t total_sectors = s->nb_sectors >> 2;
+
+ if (buf[0] == GPCMD_READ_10) {
+ nb_sectors = lduw_be_p(buf + 7);
+ } else {
+ nb_sectors = ldl_be_p(buf + 6);
+ }
+-
+- lba = ldl_be_p(buf + 2);
+ if (nb_sectors == 0) {
+ ide_atapi_cmd_ok(s);
+ return;
+ }
+
++ lba = ldl_be_p(buf + 2);
++ if (lba >= total_sectors || lba + nb_sectors - 1 >= total_sectors) {
++ ide_atapi_cmd_error(s, ILLEGAL_REQUEST, ASC_LOGICAL_BLOCK_OOR);
++ return;
++ }
++
+ ide_atapi_cmd_read(s, lba, nb_sectors, 2048);
+ }
+
+ static void cmd_read_cd(IDEState *s, uint8_t* buf)
+ {
+- int nb_sectors, lba, transfer_request;
++ unsigned int nb_sectors, lba, transfer_request;
+
+- nb_sectors = (buf[6] << 16) | (buf[7] << 8) | buf[8];
+- lba = ldl_be_p(buf + 2);
++ /* Total logical sectors of ATAPI_SECTOR_SIZE(=2048) bytes */
++ uint64_t total_sectors = s->nb_sectors >> 2;
+
++ nb_sectors = (buf[6] << 16) | (buf[7] << 8) | buf[8];
+ if (nb_sectors == 0) {
+ ide_atapi_cmd_ok(s);
+ return;
+ }
+
++ lba = ldl_be_p(buf + 2);
++ if (lba >= total_sectors || lba + nb_sectors - 1 >= total_sectors) {
++ ide_atapi_cmd_error(s, ILLEGAL_REQUEST, ASC_LOGICAL_BLOCK_OOR);
++ return;
++ }
++
+ transfer_request = buf[9] & 0xf8;
+ if (transfer_request == 0x00) {
+ /* nothing */
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-35517_1.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-35517_1.patch
new file mode 100644
index 000000000..73a4cb206
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-35517_1.patch
@@ -0,0 +1,153 @@
+From 8afaaee976965b7fb90ec225a51d60f35c5f173c Mon Sep 17 00:00:00 2001
+From: Stefan Hajnoczi <stefanha@redhat.com>
+Date: Thu, 4 Feb 2021 15:02:06 +0000
+Subject: [PATCH] virtiofsd: extract lo_do_open() from lo_open()
+
+Both lo_open() and lo_create() have similar code to open a file. Extract
+a common lo_do_open() function from lo_open() that will be used by
+lo_create() in a later commit.
+
+Since lo_do_open() does not otherwise need fuse_req_t req, convert
+lo_add_fd_mapping() to use struct lo_data *lo instead.
+
+Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
+Message-Id: <20210204150208.367837-2-stefanha@redhat.com>
+Reviewed-by: Greg Kurz <groug@kaod.org>
+Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
+
+Upstream-Status: Backport
+[https://github.com/qemu/qemu/commit/8afaaee976965b7fb90ec225a51d60f35c5f173c]
+
+CVE: CVE-2020-35517
+
+Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
+Signed-off-by: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com>
+---
+ tools/virtiofsd/passthrough_ll.c | 73 +++++++++++++++++++++++++---------------
+ 1 file changed, 46 insertions(+), 27 deletions(-)
+
+diff --git a/tools/virtiofsd/passthrough_ll.c b/tools/virtiofsd/passthrough_ll.c
+index 5fb36d9..f14fa51 100644
+--- a/tools/virtiofsd/passthrough_ll.c
++++ b/tools/virtiofsd/passthrough_ll.c
+@@ -459,17 +459,17 @@ static void lo_map_remove(struct lo_map *map, size_t key)
+ }
+
+ /* Assumes lo->mutex is held */
+-static ssize_t lo_add_fd_mapping(fuse_req_t req, int fd)
++static ssize_t lo_add_fd_mapping(struct lo_data *lo, int fd)
+ {
+ struct lo_map_elem *elem;
+
+- elem = lo_map_alloc_elem(&lo_data(req)->fd_map);
++ elem = lo_map_alloc_elem(&lo->fd_map);
+ if (!elem) {
+ return -1;
+ }
+
+ elem->fd = fd;
+- return elem - lo_data(req)->fd_map.elems;
++ return elem - lo->fd_map.elems;
+ }
+
+ /* Assumes lo->mutex is held */
+@@ -1651,6 +1651,38 @@ static void update_open_flags(int writeback, int allow_direct_io,
+ }
+ }
+
++static int lo_do_open(struct lo_data *lo, struct lo_inode *inode,
++ struct fuse_file_info *fi)
++{
++ char buf[64];
++ ssize_t fh;
++ int fd;
++
++ update_open_flags(lo->writeback, lo->allow_direct_io, fi);
++
++ sprintf(buf, "%i", inode->fd);
++ fd = openat(lo->proc_self_fd, buf, fi->flags & ~O_NOFOLLOW);
++ if (fd == -1) {
++ return errno;
++ }
++
++ pthread_mutex_lock(&lo->mutex);
++ fh = lo_add_fd_mapping(lo, fd);
++ pthread_mutex_unlock(&lo->mutex);
++ if (fh == -1) {
++ close(fd);
++ return ENOMEM;
++ }
++
++ fi->fh = fh;
++ if (lo->cache == CACHE_NONE) {
++ fi->direct_io = 1;
++ } else if (lo->cache == CACHE_ALWAYS) {
++ fi->keep_cache = 1;
++ }
++ return 0;
++}
++
+ static void lo_create(fuse_req_t req, fuse_ino_t parent, const char *name,
+ mode_t mode, struct fuse_file_info *fi)
+ {
+@@ -1691,7 +1723,7 @@ static void lo_create(fuse_req_t req, fuse_ino_t parent, const char *name,
+ ssize_t fh;
+
+ pthread_mutex_lock(&lo->mutex);
+- fh = lo_add_fd_mapping(req, fd);
++ fh = lo_add_fd_mapping(lo, fd);
+ pthread_mutex_unlock(&lo->mutex);
+ if (fh == -1) {
+ close(fd);
+@@ -1892,38 +1924,25 @@ static void lo_fsyncdir(fuse_req_t req, fuse_ino_t ino, int datasync,
+
+ static void lo_open(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi)
+ {
+- int fd;
+- ssize_t fh;
+- char buf[64];
+ struct lo_data *lo = lo_data(req);
++ struct lo_inode *inode = lo_inode(req, ino);
++ int err;
+
+ fuse_log(FUSE_LOG_DEBUG, "lo_open(ino=%" PRIu64 ", flags=%d)\n", ino,
+ fi->flags);
+
+- update_open_flags(lo->writeback, lo->allow_direct_io, fi);
+-
+- sprintf(buf, "%i", lo_fd(req, ino));
+- fd = openat(lo->proc_self_fd, buf, fi->flags & ~O_NOFOLLOW);
+- if (fd == -1) {
+- return (void)fuse_reply_err(req, errno);
+- }
+-
+- pthread_mutex_lock(&lo->mutex);
+- fh = lo_add_fd_mapping(req, fd);
+- pthread_mutex_unlock(&lo->mutex);
+- if (fh == -1) {
+- close(fd);
+- fuse_reply_err(req, ENOMEM);
++ if (!inode) {
++ fuse_reply_err(req, EBADF);
+ return;
+ }
+
+- fi->fh = fh;
+- if (lo->cache == CACHE_NONE) {
+- fi->direct_io = 1;
+- } else if (lo->cache == CACHE_ALWAYS) {
+- fi->keep_cache = 1;
++ err = lo_do_open(lo, inode, fi);
++ lo_inode_put(lo, &inode);
++ if (err) {
++ fuse_reply_err(req, err);
++ } else {
++ fuse_reply_open(req, fi);
+ }
+- fuse_reply_open(req, fi);
+ }
+
+ static void lo_release(fuse_req_t req, fuse_ino_t ino,
+--
+1.8.3.1
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-35517_2.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-35517_2.patch
new file mode 100644
index 000000000..bf11bdb6f
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-35517_2.patch
@@ -0,0 +1,117 @@
+From 22d2ece71e533310da31f2857ebc4a00d91968b3 Mon Sep 17 00:00:00 2001
+From: Stefan Hajnoczi <stefanha@redhat.com>
+Date: Thu, 4 Feb 2021 15:02:07 +0000
+Subject: [PATCH] virtiofsd: optionally return inode pointer from
+ lo_do_lookup()
+
+lo_do_lookup() finds an existing inode or allocates a new one. It
+increments nlookup so that the inode stays alive until the client
+releases it.
+
+Existing callers don't need the struct lo_inode so the function doesn't
+return it. Extend the function to optionally return the inode. The next
+commit will need it.
+
+Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
+Reviewed-by: Greg Kurz <groug@kaod.org>
+Message-Id: <20210204150208.367837-3-stefanha@redhat.com>
+Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
+
+Upstream-Status: Backport
+[https://github.com/qemu/qemu/commit/22d2ece71e533310da31f2857ebc4a00d91968b3]
+
+CVE: CVE-2020-35517
+
+Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
+Signed-off-by: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com>
+---
+ tools/virtiofsd/passthrough_ll.c | 29 +++++++++++++++++++++--------
+ 1 file changed, 21 insertions(+), 8 deletions(-)
+
+diff --git a/tools/virtiofsd/passthrough_ll.c b/tools/virtiofsd/passthrough_ll.c
+index f14fa51..aa35fc6 100644
+--- a/tools/virtiofsd/passthrough_ll.c
++++ b/tools/virtiofsd/passthrough_ll.c
+@@ -831,11 +831,13 @@ static int do_statx(struct lo_data *lo, int dirfd, const char *pathname,
+ }
+
+ /*
+- * Increments nlookup and caller must release refcount using
+- * lo_inode_put(&parent).
++ * Increments nlookup on the inode on success. unref_inode_lolocked() must be
++ * called eventually to decrement nlookup again. If inodep is non-NULL, the
++ * inode pointer is stored and the caller must call lo_inode_put().
+ */
+ static int lo_do_lookup(fuse_req_t req, fuse_ino_t parent, const char *name,
+- struct fuse_entry_param *e)
++ struct fuse_entry_param *e,
++ struct lo_inode **inodep)
+ {
+ int newfd;
+ int res;
+@@ -845,6 +847,10 @@ static int lo_do_lookup(fuse_req_t req, fuse_ino_t parent, const char *name,
+ struct lo_inode *inode = NULL;
+ struct lo_inode *dir = lo_inode(req, parent);
+
++ if (inodep) {
++ *inodep = NULL;
++ }
++
+ /*
+ * name_to_handle_at() and open_by_handle_at() can reach here with fuse
+ * mount point in guest, but we don't have its inode info in the
+@@ -913,7 +919,14 @@ static int lo_do_lookup(fuse_req_t req, fuse_ino_t parent, const char *name,
+ pthread_mutex_unlock(&lo->mutex);
+ }
+ e->ino = inode->fuse_ino;
+- lo_inode_put(lo, &inode);
++
++ /* Transfer ownership of inode pointer to caller or drop it */
++ if (inodep) {
++ *inodep = inode;
++ } else {
++ lo_inode_put(lo, &inode);
++ }
++
+ lo_inode_put(lo, &dir);
+
+ fuse_log(FUSE_LOG_DEBUG, " %lli/%s -> %lli\n", (unsigned long long)parent,
+@@ -948,7 +961,7 @@ static void lo_lookup(fuse_req_t req, fuse_ino_t parent, const char *name)
+ return;
+ }
+
+- err = lo_do_lookup(req, parent, name, &e);
++ err = lo_do_lookup(req, parent, name, &e, NULL);
+ if (err) {
+ fuse_reply_err(req, err);
+ } else {
+@@ -1056,7 +1069,7 @@ static void lo_mknod_symlink(fuse_req_t req, fuse_ino_t parent,
+ goto out;
+ }
+
+- saverr = lo_do_lookup(req, parent, name, &e);
++ saverr = lo_do_lookup(req, parent, name, &e, NULL);
+ if (saverr) {
+ goto out;
+ }
+@@ -1534,7 +1547,7 @@ static void lo_do_readdir(fuse_req_t req, fuse_ino_t ino, size_t size,
+
+ if (plus) {
+ if (!is_dot_or_dotdot(name)) {
+- err = lo_do_lookup(req, ino, name, &e);
++ err = lo_do_lookup(req, ino, name, &e, NULL);
+ if (err) {
+ goto error;
+ }
+@@ -1732,7 +1745,7 @@ static void lo_create(fuse_req_t req, fuse_ino_t parent, const char *name,
+ }
+
+ fi->fh = fh;
+- err = lo_do_lookup(req, parent, name, &e);
++ err = lo_do_lookup(req, parent, name, &e, NULL);
+ }
+ if (lo->cache == CACHE_NONE) {
+ fi->direct_io = 1;
+--
+1.8.3.1
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-35517_3.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-35517_3.patch
new file mode 100644
index 000000000..f348f3f2b
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-35517_3.patch
@@ -0,0 +1,303 @@
+From a3fdbbc7f271bff7d53d0501b29d910ece0b3789 Mon Sep 17 00:00:00 2001
+From: Stefan Hajnoczi <stefanha@redhat.com>
+Date: Thu, 4 Feb 2021 15:02:08 +0000
+Subject: [PATCH] virtiofsd: prevent opening of special files (CVE-2020-35517)
+
+A well-behaved FUSE client does not attempt to open special files with
+FUSE_OPEN because they are handled on the client side (e.g. device nodes
+are handled by client-side device drivers).
+
+The check to prevent virtiofsd from opening special files is missing in
+a few cases, most notably FUSE_OPEN. A malicious client can cause
+virtiofsd to open a device node, potentially allowing the guest to
+escape. This can be exploited by a modified guest device driver. It is
+not exploitable from guest userspace since the guest kernel will handle
+special files inside the guest instead of sending FUSE requests.
+
+This patch fixes this issue by introducing the lo_inode_open() function
+to check the file type before opening it. This is a short-term solution
+because it does not prevent a compromised virtiofsd process from opening
+device nodes on the host.
+
+Restructure lo_create() to try O_CREAT | O_EXCL first. Note that O_CREAT
+| O_EXCL does not follow symlinks, so O_NOFOLLOW masking is not
+necessary here. If the file exists and the user did not specify O_EXCL,
+open it via lo_do_open().
+
+Reported-by: Alex Xu <alex@alxu.ca>
+Fixes: CVE-2020-35517
+Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
+Reviewed-by: Vivek Goyal <vgoyal@redhat.com>
+Reviewed-by: Greg Kurz <groug@kaod.org>
+Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
+Message-Id: <20210204150208.367837-4-stefanha@redhat.com>
+Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
+
+Upstream-Status: Backport
+[https://github.com/qemu/qemu/commit/a3fdbbc7f271bff7d53d0501b29d910ece0b3789]
+
+CVE: CVE-2020-35517
+
+Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
+Signed-off-by: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com>
+---
+ tools/virtiofsd/passthrough_ll.c | 144 ++++++++++++++++++++-----------
+ 1 file changed, 92 insertions(+), 52 deletions(-)
+
+diff --git a/tools/virtiofsd/passthrough_ll.c b/tools/virtiofsd/passthrough_ll.c
+index aa35fc6ba5a5..147b59338a18 100644
+--- a/tools/virtiofsd/passthrough_ll.c
++++ b/tools/virtiofsd/passthrough_ll.c
+@@ -555,6 +555,38 @@ static int lo_fd(fuse_req_t req, fuse_ino_t ino)
+ return fd;
+ }
+
++/*
++ * Open a file descriptor for an inode. Returns -EBADF if the inode is not a
++ * regular file or a directory.
++ *
++ * Use this helper function instead of raw openat(2) to prevent security issues
++ * when a malicious client opens special files such as block device nodes.
++ * Symlink inodes are also rejected since symlinks must already have been
++ * traversed on the client side.
++ */
++static int lo_inode_open(struct lo_data *lo, struct lo_inode *inode,
++ int open_flags)
++{
++ g_autofree char *fd_str = g_strdup_printf("%d", inode->fd);
++ int fd;
++
++ if (!S_ISREG(inode->filetype) && !S_ISDIR(inode->filetype)) {
++ return -EBADF;
++ }
++
++ /*
++ * The file is a symlink so O_NOFOLLOW must be ignored. We checked earlier
++ * that the inode is not a special file but if an external process races
++ * with us then symlinks are traversed here. It is not possible to escape
++ * the shared directory since it is mounted as "/" though.
++ */
++ fd = openat(lo->proc_self_fd, fd_str, open_flags & ~O_NOFOLLOW);
++ if (fd < 0) {
++ return -errno;
++ }
++ return fd;
++}
++
+ static void lo_init(void *userdata, struct fuse_conn_info *conn)
+ {
+ struct lo_data *lo = (struct lo_data *)userdata;
+@@ -684,9 +716,9 @@ static void lo_setattr(fuse_req_t req, fuse_ino_t ino, struct stat *attr,
+ if (fi) {
+ truncfd = fd;
+ } else {
+- sprintf(procname, "%i", ifd);
+- truncfd = openat(lo->proc_self_fd, procname, O_RDWR);
++ truncfd = lo_inode_open(lo, inode, O_RDWR);
+ if (truncfd < 0) {
++ errno = -truncfd;
+ goto out_err;
+ }
+ }
+@@ -848,7 +880,7 @@ static int lo_do_lookup(fuse_req_t req, fuse_ino_t parent, const char *name,
+ struct lo_inode *dir = lo_inode(req, parent);
+
+ if (inodep) {
+- *inodep = NULL;
++ *inodep = NULL; /* in case there is an error */
+ }
+
+ /*
+@@ -1664,19 +1696,26 @@ static void update_open_flags(int writeback, int allow_direct_io,
+ }
+ }
+
++/*
++ * Open a regular file, set up an fd mapping, and fill out the struct
++ * fuse_file_info for it. If existing_fd is not negative, use that fd instead
++ * opening a new one. Takes ownership of existing_fd.
++ *
++ * Returns 0 on success or a positive errno.
++ */
+ static int lo_do_open(struct lo_data *lo, struct lo_inode *inode,
+- struct fuse_file_info *fi)
++ int existing_fd, struct fuse_file_info *fi)
+ {
+- char buf[64];
+ ssize_t fh;
+- int fd;
++ int fd = existing_fd;
+
+ update_open_flags(lo->writeback, lo->allow_direct_io, fi);
+
+- sprintf(buf, "%i", inode->fd);
+- fd = openat(lo->proc_self_fd, buf, fi->flags & ~O_NOFOLLOW);
+- if (fd == -1) {
+- return errno;
++ if (fd < 0) {
++ fd = lo_inode_open(lo, inode, fi->flags);
++ if (fd < 0) {
++ return -fd;
++ }
+ }
+
+ pthread_mutex_lock(&lo->mutex);
+@@ -1699,9 +1738,10 @@ static int lo_do_open(struct lo_data *lo, struct lo_inode *inode,
+ static void lo_create(fuse_req_t req, fuse_ino_t parent, const char *name,
+ mode_t mode, struct fuse_file_info *fi)
+ {
+- int fd;
++ int fd = -1;
+ struct lo_data *lo = lo_data(req);
+ struct lo_inode *parent_inode;
++ struct lo_inode *inode = NULL;
+ struct fuse_entry_param e;
+ int err;
+ struct lo_cred old = {};
+@@ -1727,36 +1767,38 @@ static void lo_create(fuse_req_t req, fuse_ino_t parent, const char *name,
+
+ update_open_flags(lo->writeback, lo->allow_direct_io, fi);
+
+- fd = openat(parent_inode->fd, name, (fi->flags | O_CREAT) & ~O_NOFOLLOW,
+- mode);
++ /* Try to create a new file but don't open existing files */
++ fd = openat(parent_inode->fd, name, fi->flags | O_CREAT | O_EXCL, mode);
+ err = fd == -1 ? errno : 0;
+- lo_restore_cred(&old);
+
+- if (!err) {
+- ssize_t fh;
++ lo_restore_cred(&old);
+
+- pthread_mutex_lock(&lo->mutex);
+- fh = lo_add_fd_mapping(lo, fd);
+- pthread_mutex_unlock(&lo->mutex);
+- if (fh == -1) {
+- close(fd);
+- err = ENOMEM;
+- goto out;
+- }
++ /* Ignore the error if file exists and O_EXCL was not given */
++ if (err && (err != EEXIST || (fi->flags & O_EXCL))) {
++ goto out;
++ }
+
+- fi->fh = fh;
+- err = lo_do_lookup(req, parent, name, &e, NULL);
++ err = lo_do_lookup(req, parent, name, &e, &inode);
++ if (err) {
++ goto out;
+ }
+- if (lo->cache == CACHE_NONE) {
+- fi->direct_io = 1;
+- } else if (lo->cache == CACHE_ALWAYS) {
+- fi->keep_cache = 1;
++
++ err = lo_do_open(lo, inode, fd, fi);
++ fd = -1; /* lo_do_open() takes ownership of fd */
++ if (err) {
++ /* Undo lo_do_lookup() nlookup ref */
++ unref_inode_lolocked(lo, inode, 1);
+ }
+
+ out:
++ lo_inode_put(lo, &inode);
+ lo_inode_put(lo, &parent_inode);
+
+ if (err) {
++ if (fd >= 0) {
++ close(fd);
++ }
++
+ fuse_reply_err(req, err);
+ } else {
+ fuse_reply_create(req, &e, fi);
+@@ -1770,7 +1812,6 @@ static struct lo_inode_plock *lookup_create_plock_ctx(struct lo_data *lo,
+ pid_t pid, int *err)
+ {
+ struct lo_inode_plock *plock;
+- char procname[64];
+ int fd;
+
+ plock =
+@@ -1787,12 +1828,10 @@ static struct lo_inode_plock *lookup_create_plock_ctx(struct lo_data *lo,
+ }
+
+ /* Open another instance of file which can be used for ofd locks. */
+- sprintf(procname, "%i", inode->fd);
+-
+ /* TODO: What if file is not writable? */
+- fd = openat(lo->proc_self_fd, procname, O_RDWR);
+- if (fd == -1) {
+- *err = errno;
++ fd = lo_inode_open(lo, inode, O_RDWR);
++ if (fd < 0) {
++ *err = -fd;
+ free(plock);
+ return NULL;
+ }
+@@ -1949,7 +1988,7 @@ static void lo_open(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi)
+ return;
+ }
+
+- err = lo_do_open(lo, inode, fi);
++ err = lo_do_open(lo, inode, -1, fi);
+ lo_inode_put(lo, &inode);
+ if (err) {
+ fuse_reply_err(req, err);
+@@ -2014,39 +2053,40 @@ static void lo_flush(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi)
+ static void lo_fsync(fuse_req_t req, fuse_ino_t ino, int datasync,
+ struct fuse_file_info *fi)
+ {
++ struct lo_inode *inode = lo_inode(req, ino);
++ struct lo_data *lo = lo_data(req);
+ int res;
+ int fd;
+- char *buf;
+
+ fuse_log(FUSE_LOG_DEBUG, "lo_fsync(ino=%" PRIu64 ", fi=0x%p)\n", ino,
+ (void *)fi);
+
+- if (!fi) {
+- struct lo_data *lo = lo_data(req);
+-
+- res = asprintf(&buf, "%i", lo_fd(req, ino));
+- if (res == -1) {
+- return (void)fuse_reply_err(req, errno);
+- }
++ if (!inode) {
++ fuse_reply_err(req, EBADF);
++ return;
++ }
+
+- fd = openat(lo->proc_self_fd, buf, O_RDWR);
+- free(buf);
+- if (fd == -1) {
+- return (void)fuse_reply_err(req, errno);
++ if (!fi) {
++ fd = lo_inode_open(lo, inode, O_RDWR);
++ if (fd < 0) {
++ res = -fd;
++ goto out;
+ }
+ } else {
+ fd = lo_fi_fd(req, fi);
+ }
+
+ if (datasync) {
+- res = fdatasync(fd);
++ res = fdatasync(fd) == -1 ? errno : 0;
+ } else {
+- res = fsync(fd);
++ res = fsync(fd) == -1 ? errno : 0;
+ }
+ if (!fi) {
+ close(fd);
+ }
+- fuse_reply_err(req, res == -1 ? errno : 0);
++out:
++ lo_inode_put(lo, &inode);
++ fuse_reply_err(req, res);
+ }
+
+ static void lo_read(fuse_req_t req, fuse_ino_t ino, size_t size, off_t offset,
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20181.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20181.patch
new file mode 100644
index 000000000..1b8c77f83
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20181.patch
@@ -0,0 +1,81 @@
+From c2d2d14e8deece958bbc4fc649d22c3564bc4e7e Mon Sep 17 00:00:00 2001
+From: Greg Kurz <groug@kaod.org>
+Date: Thu, 14 Jan 2021 17:04:12 +0100
+Subject: [PATCH] 9pfs: Fully restart unreclaim loop (CVE-2021-20181)
+
+Depending on the client activity, the server can be asked to open a huge
+number of file descriptors and eventually hit RLIMIT_NOFILE. This is
+currently mitigated using a reclaim logic : the server closes the file
+descriptors of idle fids, based on the assumption that it will be able
+to re-open them later. This assumption doesn't hold of course if the
+client requests the file to be unlinked. In this case, we loop on the
+entire fid list and mark all related fids as unreclaimable (the reclaim
+logic will just ignore them) and, of course, we open or re-open their
+file descriptors if needed since we're about to unlink the file.
+
+This is the purpose of v9fs_mark_fids_unreclaim(). Since the actual
+opening of a file can cause the coroutine to yield, another client
+request could possibly add a new fid that we may want to mark as
+non-reclaimable as well. The loop is thus restarted if the re-open
+request was actually transmitted to the backend. This is achieved
+by keeping a reference on the first fid (head) before traversing
+the list.
+
+This is wrong in several ways:
+- a potential clunk request from the client could tear the first
+ fid down and cause the reference to be stale. This leads to a
+ use-after-free error that can be detected with ASAN, using a
+ custom 9p client
+- fids are added at the head of the list : restarting from the
+ previous head will always miss fids added by a some other
+ potential request
+
+All these problems could be avoided if fids were being added at the
+end of the list. This can be achieved with a QSIMPLEQ, but this is
+probably too much change for a bug fix. For now let's keep it
+simple and just restart the loop from the current head.
+
+Fixes: CVE-2021-20181
+Buglink: https://bugs.launchpad.net/qemu/+bug/1911666
+Reported-by: Zero Day Initiative <zdi-disclosures@trendmicro.com>
+Reviewed-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
+Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
+Message-Id: <161064025265.1838153.15185571283519390907.stgit@bahia.lan>
+Signed-off-by: Greg Kurz <groug@kaod.org>
+
+Upstream-Status: Backport [89fbea8737e8f7b954745a1ffc4238d377055305]
+CVE: CVE-2021-20181
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ hw/9pfs/9p.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
+index 94df440fc..6026b51a1 100644
+--- a/hw/9pfs/9p.c
++++ b/hw/9pfs/9p.c
+@@ -502,9 +502,9 @@ static int coroutine_fn v9fs_mark_fids_unreclaim(V9fsPDU *pdu, V9fsPath *path)
+ {
+ int err;
+ V9fsState *s = pdu->s;
+- V9fsFidState *fidp, head_fid;
++ V9fsFidState *fidp;
+
+- head_fid.next = s->fid_list;
++again:
+ for (fidp = s->fid_list; fidp; fidp = fidp->next) {
+ if (fidp->path.size != path->size) {
+ continue;
+@@ -524,7 +524,7 @@ static int coroutine_fn v9fs_mark_fids_unreclaim(V9fsPDU *pdu, V9fsPath *path)
+ * switched to the worker thread
+ */
+ if (err == 0) {
+- fidp = &head_fid;
++ goto again;
+ }
+ }
+ }
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20221.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20221.patch
new file mode 100644
index 000000000..d762a51d0
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20221.patch
@@ -0,0 +1,70 @@
+From e428bcfb86fb46d9773ae11e69712052dcff3d45 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <f4bug@amsat.org>
+Date: Sun, 31 Jan 2021 11:34:01 +0100
+Subject: [PATCH] hw/intc/arm_gic: Fix interrupt ID in GICD_SGIR register
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Per the ARM Generic Interrupt Controller Architecture specification
+(document "ARM IHI 0048B.b (ID072613)"), the SGIINTID field is 4 bit,
+not 10:
+
+ - 4.3 Distributor register descriptions
+ - 4.3.15 Software Generated Interrupt Register, GICD_SG
+
+ - Table 4-21 GICD_SGIR bit assignments
+
+ The Interrupt ID of the SGI to forward to the specified CPU
+ interfaces. The value of this field is the Interrupt ID, in
+ the range 0-15, for example a value of 0b0011 specifies
+ Interrupt ID 3.
+
+Correct the irq mask to fix an undefined behavior (which eventually
+lead to a heap-buffer-overflow, see [Buglink]):
+
+ $ echo 'writel 0x8000f00 0xff4affb0' | qemu-system-aarch64 -M virt,accel=qtest -qtest stdio
+ [I 1612088147.116987] OPENED
+ [R +0.278293] writel 0x8000f00 0xff4affb0
+ ../hw/intc/arm_gic.c:1498:13: runtime error: index 944 out of bounds for type 'uint8_t [16][8]'
+ SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../hw/intc/arm_gic.c:1498:13
+
+This fixes a security issue when running with KVM on Arm with
+kernel-irqchip=off. (The default is kernel-irqchip=on, which is
+unaffected, and which is also the correct choice for performance.)
+
+Cc: qemu-stable@nongnu.org
+Fixes: CVE-2021-20221
+Fixes: 9ee6e8bb853 ("ARMv7 support.")
+Buglink: https://bugs.launchpad.net/qemu/+bug/1913916
+Buglink: https://bugs.launchpad.net/qemu/+bug/1913917
+Reported-by: Alexander Bulekov <alxndr@bu.edu>
+Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
+Message-id: 20210131103401.217160-1-f4bug@amsat.org
+Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
+Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
+
+Upstream-Status: Backport [edfe2eb4360cde4ed5d95bda7777edcb3510f76a]
+CVE: CVE-2021-20221
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ hw/intc/arm_gic.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/hw/intc/arm_gic.c b/hw/intc/arm_gic.c
+index c60dc6b5e..fbde60de0 100644
+--- a/hw/intc/arm_gic.c
++++ b/hw/intc/arm_gic.c
+@@ -1474,7 +1474,7 @@ static void gic_dist_writel(void *opaque, hwaddr offset,
+ int target_cpu;
+
+ cpu = gic_get_current_cpu(s);
+- irq = value & 0x3ff;
++ irq = value & 0xf;
+ switch ((value >> 24) & 3) {
+ case 0:
+ mask = (value >> 16) & ALL_CPU_MASK;
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20257.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20257.patch
new file mode 100644
index 000000000..7175b24e9
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20257.patch
@@ -0,0 +1,55 @@
+From affdf476543405045c281a7c67d1eaedbcea8135 Mon Sep 17 00:00:00 2001
+From: Jason Wang <jasowang@redhat.com>
+Date: Wed, 24 Feb 2021 13:45:28 +0800
+Subject: [PATCH] e1000: fail early for evil descriptor
+
+During procss_tx_desc(), driver can try to chain data descriptor with
+legacy descriptor, when will lead underflow for the following
+calculation in process_tx_desc() for bytes:
+
+ if (tp->size + bytes > msh)
+ bytes = msh - tp->size;
+
+This will lead a infinite loop. So check and fail early if tp->size if
+greater or equal to msh.
+
+Reported-by: Alexander Bulekov <alxndr@bu.edu>
+Reported-by: Cheolwoo Myung <cwmyung@snu.ac.kr>
+Reported-by: Ruhr-University Bochum <bugs-syssec@rub.de>
+Cc: Prasad J Pandit <ppandit@redhat.com>
+Cc: qemu-stable@nongnu.org
+Signed-off-by: Jason Wang <jasowang@redhat.com>
+
+Upstream-Status: Backport [3de46e6fc489c52c9431a8a832ad8170a7569bd8]
+CVE: CVE-2021-20257
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ hw/net/e1000.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/hw/net/e1000.c b/hw/net/e1000.c
+index cf22c4f07..c3564c7ce 100644
+--- a/hw/net/e1000.c
++++ b/hw/net/e1000.c
+@@ -670,6 +670,9 @@ process_tx_desc(E1000State *s, struct e1000_tx_desc *dp)
+ msh = tp->tso_props.hdr_len + tp->tso_props.mss;
+ do {
+ bytes = split_size;
++ if (tp->size >= msh) {
++ goto eop;
++ }
+ if (tp->size + bytes > msh)
+ bytes = msh - tp->size;
+
+@@ -695,6 +698,7 @@ process_tx_desc(E1000State *s, struct e1000_tx_desc *dp)
+ tp->size += split_size;
+ }
+
++eop:
+ if (!(txd_lower & E1000_TXD_CMD_EOP))
+ return;
+ if (!(tp->cptse && tp->size < tp->tso_props.hdr_len)) {
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20263.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20263.patch
new file mode 100644
index 000000000..4f9a91f0c
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20263.patch
@@ -0,0 +1,214 @@
+From aaa5f8e00c2e85a893b972f1e243fb14c26b70dc Mon Sep 17 00:00:00 2001
+From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
+Date: Wed, 24 Feb 2021 19:56:25 +0000
+Subject: [PATCH 2/2] virtiofs: drop remapped security.capability xattr as
+ needed
+
+On Linux, the 'security.capability' xattr holds a set of
+capabilities that can change when an executable is run, giving
+a limited form of privilege escalation to those programs that
+the writer of the file deemed worthy.
+
+Any write causes the 'security.capability' xattr to be dropped,
+stopping anyone from gaining privilege by modifying a blessed
+file.
+
+Fuse relies on the daemon to do this dropping, and in turn the
+daemon relies on the host kernel to drop the xattr for it. However,
+with the addition of -o xattrmap, the xattr that the guest
+stores its capabilities in is now not the same as the one that
+the host kernel automatically clears.
+
+Where the mapping changes 'security.capability', explicitly clear
+the remapped name to preserve the same behaviour.
+
+This bug is assigned CVE-2021-20263.
+
+Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
+Reviewed-by: Vivek Goyal <vgoyal@redhat.com>
+
+Upstream-Status: Backport [e586edcb410543768ef009eaa22a2d9dd4a53846]
+CVE: CVE-2021-20263
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ docs/tools/virtiofsd.rst | 4 ++
+ tools/virtiofsd/passthrough_ll.c | 77 +++++++++++++++++++++++++++++++-
+ 2 files changed, 80 insertions(+), 1 deletion(-)
+
+diff --git a/docs/tools/virtiofsd.rst b/docs/tools/virtiofsd.rst
+index 866b7db3e..00554c75b 100644
+--- a/docs/tools/virtiofsd.rst
++++ b/docs/tools/virtiofsd.rst
+@@ -228,6 +228,10 @@ The 'map' type adds a number of separate rules to add **prepend** as a prefix
+ to the matched **key** (or all attributes if **key** is empty).
+ There may be at most one 'map' rule and it must be the last rule in the set.
+
++Note: When the 'security.capability' xattr is remapped, the daemon has to do
++extra work to remove it during many operations, which the host kernel normally
++does itself.
++
+ xattr-mapping Examples
+ ----------------------
+
+diff --git a/tools/virtiofsd/passthrough_ll.c b/tools/virtiofsd/passthrough_ll.c
+index 03c5e0d13..c9197da86 100644
+--- a/tools/virtiofsd/passthrough_ll.c
++++ b/tools/virtiofsd/passthrough_ll.c
+@@ -160,6 +160,7 @@ struct lo_data {
+ int posix_lock;
+ int xattr;
+ char *xattrmap;
++ char *xattr_security_capability;
+ char *source;
+ char *modcaps;
+ double timeout;
+@@ -226,6 +227,8 @@ static __thread bool cap_loaded = 0;
+
+ static struct lo_inode *lo_find(struct lo_data *lo, struct stat *st,
+ uint64_t mnt_id);
++static int xattr_map_client(const struct lo_data *lo, const char *client_name,
++ char **out_name);
+
+ static int is_dot_or_dotdot(const char *name)
+ {
+@@ -365,6 +368,37 @@ out:
+ return ret;
+ }
+
++/*
++ * The host kernel normally drops security.capability xattr's on
++ * any write, however if we're remapping xattr names we need to drop
++ * whatever the clients security.capability is actually stored as.
++ */
++static int drop_security_capability(const struct lo_data *lo, int fd)
++{
++ if (!lo->xattr_security_capability) {
++ /* We didn't remap the name, let the host kernel do it */
++ return 0;
++ }
++ if (!fremovexattr(fd, lo->xattr_security_capability)) {
++ /* All good */
++ return 0;
++ }
++
++ switch (errno) {
++ case ENODATA:
++ /* Attribute didn't exist, that's fine */
++ return 0;
++
++ case ENOTSUP:
++ /* FS didn't support attribute anyway, also fine */
++ return 0;
++
++ default:
++ /* Hmm other error */
++ return errno;
++ }
++}
++
+ static void lo_map_init(struct lo_map *map)
+ {
+ map->elems = NULL;
+@@ -717,6 +751,11 @@ static void lo_setattr(fuse_req_t req, fuse_ino_t ino, struct stat *attr,
+ uid_t uid = (valid & FUSE_SET_ATTR_UID) ? attr->st_uid : (uid_t)-1;
+ gid_t gid = (valid & FUSE_SET_ATTR_GID) ? attr->st_gid : (gid_t)-1;
+
++ saverr = drop_security_capability(lo, ifd);
++ if (saverr) {
++ goto out_err;
++ }
++
+ res = fchownat(ifd, "", uid, gid, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW);
+ if (res == -1) {
+ goto out_err;
+@@ -735,6 +774,14 @@ static void lo_setattr(fuse_req_t req, fuse_ino_t ino, struct stat *attr,
+ }
+ }
+
++ saverr = drop_security_capability(lo, truncfd);
++ if (saverr) {
++ if (!fi) {
++ close(truncfd);
++ }
++ goto out_err;
++ }
++
+ res = ftruncate(truncfd, attr->st_size);
+ if (!fi) {
+ saverr = errno;
+@@ -1726,6 +1773,13 @@ static int lo_do_open(struct lo_data *lo, struct lo_inode *inode,
+ if (fd < 0) {
+ return -fd;
+ }
++ if (fi->flags & (O_TRUNC)) {
++ int err = drop_security_capability(lo, fd);
++ if (err) {
++ close(fd);
++ return err;
++ }
++ }
+ }
+
+ pthread_mutex_lock(&lo->mutex);
+@@ -2114,6 +2168,12 @@ static void lo_write_buf(fuse_req_t req, fuse_ino_t ino,
+ "lo_write_buf(ino=%" PRIu64 ", size=%zd, off=%lu)\n", ino,
+ out_buf.buf[0].size, (unsigned long)off);
+
++ res = drop_security_capability(lo_data(req), out_buf.buf[0].fd);
++ if (res) {
++ fuse_reply_err(req, res);
++ return;
++ }
++
+ /*
+ * If kill_priv is set, drop CAP_FSETID which should lead to kernel
+ * clearing setuid/setgid on file.
+@@ -2353,6 +2413,7 @@ static void parse_xattrmap(struct lo_data *lo)
+ {
+ const char *map = lo->xattrmap;
+ const char *tmp;
++ int ret;
+
+ lo->xattr_map_nentries = 0;
+ while (*map) {
+@@ -2383,7 +2444,7 @@ static void parse_xattrmap(struct lo_data *lo)
+ * the last entry.
+ */
+ parse_xattrmap_map(lo, map, sep);
+- return;
++ break;
+ } else {
+ fuse_log(FUSE_LOG_ERR,
+ "%s: Unexpected type;"
+@@ -2452,6 +2513,19 @@ static void parse_xattrmap(struct lo_data *lo)
+ fuse_log(FUSE_LOG_ERR, "Empty xattr map\n");
+ exit(1);
+ }
++
++ ret = xattr_map_client(lo, "security.capability",
++ &lo->xattr_security_capability);
++ if (ret) {
++ fuse_log(FUSE_LOG_ERR, "Failed to map security.capability: %s\n",
++ strerror(ret));
++ exit(1);
++ }
++ if (!strcmp(lo->xattr_security_capability, "security.capability")) {
++ /* 1-1 mapping, don't need to do anything */
++ free(lo->xattr_security_capability);
++ lo->xattr_security_capability = NULL;
++ }
+ }
+
+ /*
+@@ -3480,6 +3554,7 @@ static void fuse_lo_data_cleanup(struct lo_data *lo)
+
+ free(lo->xattrmap);
+ free_xattrmap(lo);
++ free(lo->xattr_security_capability);
+ free(lo->source);
+ }
+
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3392.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3392.patch
new file mode 100644
index 000000000..af94cff7e
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3392.patch
@@ -0,0 +1,89 @@
+From 3791642c8d60029adf9b00bcb4e34d7d8a1aea4d Mon Sep 17 00:00:00 2001
+From: Michael Tokarev <mjt@tls.msk.ru>
+Date: Mon, 19 Apr 2021 15:42:47 +0200
+Subject: [PATCH] mptsas: Remove unused MPTSASState 'pending' field
+ (CVE-2021-3392)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+While processing SCSI i/o requests in mptsas_process_scsi_io_request(),
+the Megaraid emulator appends new MPTSASRequest object 'req' to
+the 's->pending' queue. In case of an error, this same object gets
+dequeued in mptsas_free_request() only if SCSIRequest object
+'req->sreq' is initialised. This may lead to a use-after-free issue.
+
+Since s->pending is actually not used, simply remove it from
+MPTSASState.
+
+Cc: qemu-stable@nongnu.org
+Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
+Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
+Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
+Reported-by: Cheolwoo Myung <cwmyung@snu.ac.kr>
+Message-id: 20210419134247.1467982-1-f4bug@amsat.org
+Message-Id: <20210416102243.1293871-1-mjt@msgid.tls.msk.ru>
+Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
+Reported-by: Cheolwoo Myung <cwmyung@snu.ac.kr>
+BugLink: https://bugs.launchpad.net/qemu/+bug/1914236 (CVE-2021-3392)
+Fixes: e351b826112 ("hw: Add support for LSI SAS1068 (mptsas) device")
+[PMD: Reworded description, added more tags]
+Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
+Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
+Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
+
+CVE: CVE-2021-3392
+Upstream-Status: Backport [https://git.qemu.org/?p=qemu.git;a=commit;h=3791642c8d60029adf9b00bcb4e34d7d8a1aea4d]
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+---
+ hw/scsi/mptsas.c | 6 ------
+ hw/scsi/mptsas.h | 1 -
+ 2 files changed, 7 deletions(-)
+
+diff --git a/hw/scsi/mptsas.c b/hw/scsi/mptsas.c
+index 7416e7870614..db3219e7d206 100644
+--- a/hw/scsi/mptsas.c
++++ b/hw/scsi/mptsas.c
+@@ -251,13 +251,10 @@ static int mptsas_build_sgl(MPTSASState *s, MPTSASRequest *req, hwaddr addr)
+
+ static void mptsas_free_request(MPTSASRequest *req)
+ {
+- MPTSASState *s = req->dev;
+-
+ if (req->sreq != NULL) {
+ req->sreq->hba_private = NULL;
+ scsi_req_unref(req->sreq);
+ req->sreq = NULL;
+- QTAILQ_REMOVE(&s->pending, req, next);
+ }
+ qemu_sglist_destroy(&req->qsg);
+ g_free(req);
+@@ -303,7 +300,6 @@ static int mptsas_process_scsi_io_request(MPTSASState *s,
+ }
+
+ req = g_new0(MPTSASRequest, 1);
+- QTAILQ_INSERT_TAIL(&s->pending, req, next);
+ req->scsi_io = *scsi_io;
+ req->dev = s;
+
+@@ -1319,8 +1315,6 @@ static void mptsas_scsi_realize(PCIDevice *dev, Error **errp)
+
+ s->request_bh = qemu_bh_new(mptsas_fetch_requests, s);
+
+- QTAILQ_INIT(&s->pending);
+-
+ scsi_bus_new(&s->bus, sizeof(s->bus), &dev->qdev, &mptsas_scsi_info, NULL);
+ }
+
+diff --git a/hw/scsi/mptsas.h b/hw/scsi/mptsas.h
+index b85ac1a5fcc7..c046497db719 100644
+--- a/hw/scsi/mptsas.h
++++ b/hw/scsi/mptsas.h
+@@ -79,7 +79,6 @@ struct MPTSASState {
+ uint16_t reply_frame_size;
+
+ SCSIBus bus;
+- QTAILQ_HEAD(, MPTSASRequest) pending;
+ };
+
+ void mptsas_fix_scsi_io_endianness(MPIMsgSCSIIORequest *req);
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_1.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_1.patch
new file mode 100644
index 000000000..f9395add4
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_1.patch
@@ -0,0 +1,56 @@
+From c01ae9a35b3c6b4a8e1f1bfa0a0caafe394f8b5c Mon Sep 17 00:00:00 2001
+From: Bin Meng <bmeng.cn@gmail.com>
+Date: Tue, 16 Feb 2021 11:46:52 +0800
+Subject: [PATCH 1/6] hw/sd: sdhci: Simplify updating s->prnsts in
+ sdhci_sdma_transfer_multi_blocks()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+s->prnsts is updated in both branches of the if () else () statement.
+Move the common bits outside so that it is cleaner.
+
+Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
+Tested-by: Alexander Bulekov <alxndr@bu.edu>
+Reviewed-by: Alexander Bulekov <alxndr@bu.edu>
+Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
+Message-Id: <1613447214-81951-5-git-send-email-bmeng.cn@gmail.com>
+Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+Upstream-Status: Backport [8bc1f1aa51d32c3184e7b19d5b94c35ecc06f056]
+CVE: CVE-2021-3409
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ hw/sd/sdhci.c | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c
+index 2f8b74a84..f83c5e295 100644
+--- a/hw/sd/sdhci.c
++++ b/hw/sd/sdhci.c
+@@ -596,9 +596,9 @@ static void sdhci_sdma_transfer_multi_blocks(SDHCIState *s)
+ page_aligned = true;
+ }
+
++ s->prnsts |= SDHC_DATA_INHIBIT | SDHC_DAT_LINE_ACTIVE;
+ if (s->trnmod & SDHC_TRNS_READ) {
+- s->prnsts |= SDHC_DOING_READ | SDHC_DATA_INHIBIT |
+- SDHC_DAT_LINE_ACTIVE;
++ s->prnsts |= SDHC_DOING_READ;
+ while (s->blkcnt) {
+ if (s->data_count == 0) {
+ sdbus_read_data(&s->sdbus, s->fifo_buffer, block_size);
+@@ -625,8 +625,7 @@ static void sdhci_sdma_transfer_multi_blocks(SDHCIState *s)
+ }
+ }
+ } else {
+- s->prnsts |= SDHC_DOING_WRITE | SDHC_DATA_INHIBIT |
+- SDHC_DAT_LINE_ACTIVE;
++ s->prnsts |= SDHC_DOING_WRITE;
+ while (s->blkcnt) {
+ begin = s->data_count;
+ if (((boundary_count + begin) < block_size) && page_aligned) {
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_2.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_2.patch
new file mode 100644
index 000000000..f3d2bb137
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_2.patch
@@ -0,0 +1,92 @@
+From b9bb4700798bce98888c51d7b6dbc19ec49159d5 Mon Sep 17 00:00:00 2001
+From: Bin Meng <bmeng.cn@gmail.com>
+Date: Wed, 3 Mar 2021 20:26:35 +0800
+Subject: [PATCH 2/6] hw/sd: sdhci: Don't transfer any data when command time
+ out
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+At the end of sdhci_send_command(), it starts a data transfer if the
+command register indicates data is associated. But the data transfer
+should only be initiated when the command execution has succeeded.
+
+With this fix, the following reproducer:
+
+outl 0xcf8 0x80001810
+outl 0xcfc 0xe1068000
+outl 0xcf8 0x80001804
+outw 0xcfc 0x7
+write 0xe106802c 0x1 0x0f
+write 0xe1068004 0xc 0x2801d10101fffffbff28a384
+write 0xe106800c 0x1f 0x9dacbbcad9e8f7061524334251606f7e8d9cabbac9d8e7f60514233241505f
+write 0xe1068003 0x28 0x80d000251480d000252280d000253080d000253e80d000254c80d000255a80d000256880d0002576
+write 0xe1068003 0x1 0xfe
+
+cannot be reproduced with the following QEMU command line:
+
+$ qemu-system-x86_64 -nographic -M pc-q35-5.0 \
+ -device sdhci-pci,sd-spec-version=3 \
+ -drive if=sd,index=0,file=null-co://,format=raw,id=mydrive \
+ -device sd-card,drive=mydrive \
+ -monitor none -serial none -qtest stdio
+
+Cc: qemu-stable@nongnu.org
+Fixes: CVE-2020-17380
+Fixes: CVE-2020-25085
+Fixes: CVE-2021-3409
+Fixes: d7dfca0807a0 ("hw/sdhci: introduce standard SD host controller")
+Reported-by: Alexander Bulekov <alxndr@bu.edu>
+Reported-by: Cornelius Aschermann (Ruhr-Universität Bochum)
+Reported-by: Sergej Schumilo (Ruhr-Universität Bochum)
+Reported-by: Simon Wörner (Ruhr-Universität Bochum)
+Buglink: https://bugs.launchpad.net/qemu/+bug/1892960
+Buglink: https://bugs.launchpad.net/qemu/+bug/1909418
+Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1928146
+Acked-by: Alistair Francis <alistair.francis@wdc.com>
+Tested-by: Alexander Bulekov <alxndr@bu.edu>
+Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
+Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
+Message-Id: <20210303122639.20004-2-bmeng.cn@gmail.com>
+Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+Upstream-Status: Backport [b263d8f928001b5cfa2a993ea43b7a5b3a1811e8]
+CVE: CVE-2021-3409
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ hw/sd/sdhci.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c
+index f83c5e295..44f8a82ea 100644
+--- a/hw/sd/sdhci.c
++++ b/hw/sd/sdhci.c
+@@ -326,6 +326,7 @@ static void sdhci_send_command(SDHCIState *s)
+ SDRequest request;
+ uint8_t response[16];
+ int rlen;
++ bool timeout = false;
+
+ s->errintsts = 0;
+ s->acmd12errsts = 0;
+@@ -349,6 +350,7 @@ static void sdhci_send_command(SDHCIState *s)
+ trace_sdhci_response16(s->rspreg[3], s->rspreg[2],
+ s->rspreg[1], s->rspreg[0]);
+ } else {
++ timeout = true;
+ trace_sdhci_error("timeout waiting for command response");
+ if (s->errintstsen & SDHC_EISEN_CMDTIMEOUT) {
+ s->errintsts |= SDHC_EIS_CMDTIMEOUT;
+@@ -369,7 +371,7 @@ static void sdhci_send_command(SDHCIState *s)
+
+ sdhci_update_irq(s);
+
+- if (s->blksize && (s->cmdreg & SDHC_CMD_DATA_PRESENT)) {
++ if (!timeout && s->blksize && (s->cmdreg & SDHC_CMD_DATA_PRESENT)) {
+ s->data_count = 0;
+ sdhci_data_transfer(s);
+ }
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_3.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_3.patch
new file mode 100644
index 000000000..c3b37ed61
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_3.patch
@@ -0,0 +1,109 @@
+From 405ca416ccc8135544a4fe5732974497244128c9 Mon Sep 17 00:00:00 2001
+From: Bin Meng <bmeng.cn@gmail.com>
+Date: Wed, 3 Mar 2021 20:26:36 +0800
+Subject: [PATCH 3/6] hw/sd: sdhci: Don't write to SDHC_SYSAD register when
+ transfer is in progress
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Per "SD Host Controller Standard Specification Version 7.00"
+chapter 2.2.1 SDMA System Address Register:
+
+This register can be accessed only if no transaction is executing
+(i.e., after a transaction has stopped).
+
+With this fix, the following reproducer:
+
+outl 0xcf8 0x80001010
+outl 0xcfc 0xfbefff00
+outl 0xcf8 0x80001001
+outl 0xcfc 0x06000000
+write 0xfbefff2c 0x1 0x05
+write 0xfbefff0f 0x1 0x37
+write 0xfbefff0a 0x1 0x01
+write 0xfbefff0f 0x1 0x29
+write 0xfbefff0f 0x1 0x02
+write 0xfbefff0f 0x1 0x03
+write 0xfbefff04 0x1 0x01
+write 0xfbefff05 0x1 0x01
+write 0xfbefff07 0x1 0x02
+write 0xfbefff0c 0x1 0x33
+write 0xfbefff0e 0x1 0x20
+write 0xfbefff0f 0x1 0x00
+write 0xfbefff2a 0x1 0x01
+write 0xfbefff0c 0x1 0x00
+write 0xfbefff03 0x1 0x00
+write 0xfbefff05 0x1 0x00
+write 0xfbefff2a 0x1 0x02
+write 0xfbefff0c 0x1 0x32
+write 0xfbefff01 0x1 0x01
+write 0xfbefff02 0x1 0x01
+write 0xfbefff03 0x1 0x01
+
+cannot be reproduced with the following QEMU command line:
+
+$ qemu-system-x86_64 -nographic -machine accel=qtest -m 512M \
+ -nodefaults -device sdhci-pci,sd-spec-version=3 \
+ -drive if=sd,index=0,file=null-co://,format=raw,id=mydrive \
+ -device sd-card,drive=mydrive -qtest stdio
+
+Cc: qemu-stable@nongnu.org
+Fixes: CVE-2020-17380
+Fixes: CVE-2020-25085
+Fixes: CVE-2021-3409
+Fixes: d7dfca0807a0 ("hw/sdhci: introduce standard SD host controller")
+Reported-by: Alexander Bulekov <alxndr@bu.edu>
+Reported-by: Cornelius Aschermann (Ruhr-Universität Bochum)
+Reported-by: Sergej Schumilo (Ruhr-Universität Bochum)
+Reported-by: Simon Wörner (Ruhr-Universität Bochum)
+Buglink: https://bugs.launchpad.net/qemu/+bug/1892960
+Buglink: https://bugs.launchpad.net/qemu/+bug/1909418
+Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1928146
+Tested-by: Alexander Bulekov <alxndr@bu.edu>
+Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
+Message-Id: <20210303122639.20004-3-bmeng.cn@gmail.com>
+Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+Upstream-Status: Backport [8be45cc947832b3c02144c9d52921f499f2d77fe]
+CVE: CVE-2021-3409
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ hw/sd/sdhci.c | 20 +++++++++++---------
+ 1 file changed, 11 insertions(+), 9 deletions(-)
+
+diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c
+index 44f8a82ea..d8a46f307 100644
+--- a/hw/sd/sdhci.c
++++ b/hw/sd/sdhci.c
+@@ -1121,15 +1121,17 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t val, unsigned size)
+
+ switch (offset & ~0x3) {
+ case SDHC_SYSAD:
+- s->sdmasysad = (s->sdmasysad & mask) | value;
+- MASKED_WRITE(s->sdmasysad, mask, value);
+- /* Writing to last byte of sdmasysad might trigger transfer */
+- if (!(mask & 0xFF000000) && TRANSFERRING_DATA(s->prnsts) && s->blkcnt &&
+- s->blksize && SDHC_DMA_TYPE(s->hostctl1) == SDHC_CTRL_SDMA) {
+- if (s->trnmod & SDHC_TRNS_MULTI) {
+- sdhci_sdma_transfer_multi_blocks(s);
+- } else {
+- sdhci_sdma_transfer_single_block(s);
++ if (!TRANSFERRING_DATA(s->prnsts)) {
++ s->sdmasysad = (s->sdmasysad & mask) | value;
++ MASKED_WRITE(s->sdmasysad, mask, value);
++ /* Writing to last byte of sdmasysad might trigger transfer */
++ if (!(mask & 0xFF000000) && s->blkcnt && s->blksize &&
++ SDHC_DMA_TYPE(s->hostctl1) == SDHC_CTRL_SDMA) {
++ if (s->trnmod & SDHC_TRNS_MULTI) {
++ sdhci_sdma_transfer_multi_blocks(s);
++ } else {
++ sdhci_sdma_transfer_single_block(s);
++ }
+ }
+ }
+ break;
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_4.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_4.patch
new file mode 100644
index 000000000..d5be99759
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_4.patch
@@ -0,0 +1,75 @@
+From b672bcaf5522294a4d8de3e88e0932d55585ee3b Mon Sep 17 00:00:00 2001
+From: Bin Meng <bmeng.cn@gmail.com>
+Date: Wed, 3 Mar 2021 20:26:37 +0800
+Subject: [PATCH 4/6] hw/sd: sdhci: Correctly set the controller status for
+ ADMA
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+When an ADMA transfer is started, the codes forget to set the
+controller status to indicate a transfer is in progress.
+
+With this fix, the following 2 reproducers:
+
+https://paste.debian.net/plain/1185136
+https://paste.debian.net/plain/1185141
+
+cannot be reproduced with the following QEMU command line:
+
+$ qemu-system-x86_64 -nographic -machine accel=qtest -m 512M \
+ -nodefaults -device sdhci-pci,sd-spec-version=3 \
+ -drive if=sd,index=0,file=null-co://,format=raw,id=mydrive \
+ -device sd-card,drive=mydrive -qtest stdio
+
+Cc: qemu-stable@nongnu.org
+Fixes: CVE-2020-17380
+Fixes: CVE-2020-25085
+Fixes: CVE-2021-3409
+Fixes: d7dfca0807a0 ("hw/sdhci: introduce standard SD host controller")
+Reported-by: Alexander Bulekov <alxndr@bu.edu>
+Reported-by: Cornelius Aschermann (Ruhr-Universität Bochum)
+Reported-by: Sergej Schumilo (Ruhr-Universität Bochum)
+Reported-by: Simon Wörner (Ruhr-Universität Bochum)
+Buglink: https://bugs.launchpad.net/qemu/+bug/1892960
+Buglink: https://bugs.launchpad.net/qemu/+bug/1909418
+Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1928146
+Tested-by: Alexander Bulekov <alxndr@bu.edu>
+Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
+Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
+Message-Id: <20210303122639.20004-4-bmeng.cn@gmail.com>
+Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+Upstream-Status: Backport [bc6f28995ff88f5d82c38afcfd65406f0ae375aa]
+CVE: CVE-2021-3409
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ hw/sd/sdhci.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c
+index d8a46f307..7de03c6dd 100644
+--- a/hw/sd/sdhci.c
++++ b/hw/sd/sdhci.c
+@@ -768,7 +768,9 @@ static void sdhci_do_adma(SDHCIState *s)
+
+ switch (dscr.attr & SDHC_ADMA_ATTR_ACT_MASK) {
+ case SDHC_ADMA_ATTR_ACT_TRAN: /* data transfer */
++ s->prnsts |= SDHC_DATA_INHIBIT | SDHC_DAT_LINE_ACTIVE;
+ if (s->trnmod & SDHC_TRNS_READ) {
++ s->prnsts |= SDHC_DOING_READ;
+ while (length) {
+ if (s->data_count == 0) {
+ sdbus_read_data(&s->sdbus, s->fifo_buffer, block_size);
+@@ -796,6 +798,7 @@ static void sdhci_do_adma(SDHCIState *s)
+ }
+ }
+ } else {
++ s->prnsts |= SDHC_DOING_WRITE;
+ while (length) {
+ begin = s->data_count;
+ if ((length + begin) < block_size) {
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_5.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_5.patch
new file mode 100644
index 000000000..719905683
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_5.patch
@@ -0,0 +1,56 @@
+From c2298884cf6bcf2b047b4bae5f78432b052b5729 Mon Sep 17 00:00:00 2001
+From: Bin Meng <bmeng.cn@gmail.com>
+Date: Wed, 3 Mar 2021 20:26:38 +0800
+Subject: [PATCH 5/6] hw/sd: sdhci: Limit block size only when SDHC_BLKSIZE
+ register is writable
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The codes to limit the maximum block size is only necessary when
+SDHC_BLKSIZE register is writable.
+
+Tested-by: Alexander Bulekov <alxndr@bu.edu>
+Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
+Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
+Message-Id: <20210303122639.20004-5-bmeng.cn@gmail.com>
+Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+Upstream-Status: Backport [5cd7aa3451b76bb19c0f6adc2b931f091e5d7fcd]
+CVE: CVE-2021-3409
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ hw/sd/sdhci.c | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c
+index 7de03c6dd..6c780126e 100644
+--- a/hw/sd/sdhci.c
++++ b/hw/sd/sdhci.c
+@@ -1142,15 +1142,15 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t val, unsigned size)
+ if (!TRANSFERRING_DATA(s->prnsts)) {
+ MASKED_WRITE(s->blksize, mask, extract32(value, 0, 12));
+ MASKED_WRITE(s->blkcnt, mask >> 16, value >> 16);
+- }
+
+- /* Limit block size to the maximum buffer size */
+- if (extract32(s->blksize, 0, 12) > s->buf_maxsz) {
+- qemu_log_mask(LOG_GUEST_ERROR, "%s: Size 0x%x is larger than "
+- "the maximum buffer 0x%x\n", __func__, s->blksize,
+- s->buf_maxsz);
++ /* Limit block size to the maximum buffer size */
++ if (extract32(s->blksize, 0, 12) > s->buf_maxsz) {
++ qemu_log_mask(LOG_GUEST_ERROR, "%s: Size 0x%x is larger than "
++ "the maximum buffer 0x%x\n", __func__, s->blksize,
++ s->buf_maxsz);
+
+- s->blksize = deposit32(s->blksize, 0, 12, s->buf_maxsz);
++ s->blksize = deposit32(s->blksize, 0, 12, s->buf_maxsz);
++ }
+ }
+
+ break;
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_6.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_6.patch
new file mode 100644
index 000000000..624c1f649
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_6.patch
@@ -0,0 +1,99 @@
+From db916870a839346767b6d5ca7d0eed3128ba5fea Mon Sep 17 00:00:00 2001
+From: Bin Meng <bmeng.cn@gmail.com>
+Date: Wed, 3 Mar 2021 20:26:39 +0800
+Subject: [PATCH 6/6] hw/sd: sdhci: Reset the data pointer of s->fifo_buffer[]
+ when a different block size is programmed
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+If the block size is programmed to a different value from the
+previous one, reset the data pointer of s->fifo_buffer[] so that
+s->fifo_buffer[] can be filled in using the new block size in
+the next transfer.
+
+With this fix, the following reproducer:
+
+outl 0xcf8 0x80001010
+outl 0xcfc 0xe0000000
+outl 0xcf8 0x80001001
+outl 0xcfc 0x06000000
+write 0xe000002c 0x1 0x05
+write 0xe0000005 0x1 0x02
+write 0xe0000007 0x1 0x01
+write 0xe0000028 0x1 0x10
+write 0x0 0x1 0x23
+write 0x2 0x1 0x08
+write 0xe000000c 0x1 0x01
+write 0xe000000e 0x1 0x20
+write 0xe000000f 0x1 0x00
+write 0xe000000c 0x1 0x32
+write 0xe0000004 0x2 0x0200
+write 0xe0000028 0x1 0x00
+write 0xe0000003 0x1 0x40
+
+cannot be reproduced with the following QEMU command line:
+
+$ qemu-system-x86_64 -nographic -machine accel=qtest -m 512M \
+ -nodefaults -device sdhci-pci,sd-spec-version=3 \
+ -drive if=sd,index=0,file=null-co://,format=raw,id=mydrive \
+ -device sd-card,drive=mydrive -qtest stdio
+
+Cc: qemu-stable@nongnu.org
+Fixes: CVE-2020-17380
+Fixes: CVE-2020-25085
+Fixes: CVE-2021-3409
+Fixes: d7dfca0807a0 ("hw/sdhci: introduce standard SD host controller")
+Reported-by: Alexander Bulekov <alxndr@bu.edu>
+Reported-by: Cornelius Aschermann (Ruhr-Universität Bochum)
+Reported-by: Sergej Schumilo (Ruhr-Universität Bochum)
+Reported-by: Simon Wörner (Ruhr-Universität Bochum)
+Buglink: https://bugs.launchpad.net/qemu/+bug/1892960
+Buglink: https://bugs.launchpad.net/qemu/+bug/1909418
+Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1928146
+Tested-by: Alexander Bulekov <alxndr@bu.edu>
+Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
+Message-Id: <20210303122639.20004-6-bmeng.cn@gmail.com>
+Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
+
+Upstream-Status: Backport [cffb446e8fd19a14e1634c7a3a8b07be3f01d5c9]
+CVE: CVE-2021-3409
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ hw/sd/sdhci.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c
+index 6c780126e..216842420 100644
+--- a/hw/sd/sdhci.c
++++ b/hw/sd/sdhci.c
+@@ -1140,6 +1140,8 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t val, unsigned size)
+ break;
+ case SDHC_BLKSIZE:
+ if (!TRANSFERRING_DATA(s->prnsts)) {
++ uint16_t blksize = s->blksize;
++
+ MASKED_WRITE(s->blksize, mask, extract32(value, 0, 12));
+ MASKED_WRITE(s->blkcnt, mask >> 16, value >> 16);
+
+@@ -1151,6 +1153,16 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t val, unsigned size)
+
+ s->blksize = deposit32(s->blksize, 0, 12, s->buf_maxsz);
+ }
++
++ /*
++ * If the block size is programmed to a different value from
++ * the previous one, reset the data pointer of s->fifo_buffer[]
++ * so that s->fifo_buffer[] can be filled in using the new block
++ * size in the next transfer.
++ */
++ if (blksize != s->blksize) {
++ s->data_count = 0;
++ }
+ }
+
+ break;
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_1.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_1.patch
new file mode 100644
index 000000000..5bacd6748
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_1.patch
@@ -0,0 +1,177 @@
+From 4b1988a29d67277d6c8ce1df52975f5616592913 Mon Sep 17 00:00:00 2001
+From: Jason Wang <jasowang@redhat.com>
+Date: Wed, 24 Feb 2021 11:44:36 +0800
+Subject: [PATCH 01/10] net: introduce qemu_receive_packet()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Some NIC supports loopback mode and this is done by calling
+nc->info->receive() directly which in fact suppresses the effort of
+reentrancy check that is done in qemu_net_queue_send().
+
+Unfortunately we can't use qemu_net_queue_send() here since for
+loopback there's no sender as peer, so this patch introduce a
+qemu_receive_packet() which is used for implementing loopback mode
+for a NIC with this check.
+
+NIC that supports loopback mode will be converted to this helper.
+
+This is intended to address CVE-2021-3416.
+
+Cc: Prasad J Pandit <ppandit@redhat.com>
+Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
+Cc: qemu-stable@nongnu.org
+Signed-off-by: Jason Wang <jasowang@redhat.com>
+
+Upstream-Status: Backport [705df5466c98f3efdd2b68d3b31dad86858acad7]
+CVE: CVE-2021-3416
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ include/net/net.h | 5 +++++
+ include/net/queue.h | 8 ++++++++
+ net/net.c | 38 +++++++++++++++++++++++++++++++-------
+ net/queue.c | 22 ++++++++++++++++++++++
+ 4 files changed, 66 insertions(+), 7 deletions(-)
+
+diff --git a/include/net/net.h b/include/net/net.h
+index 778fc787c..03f058ecb 100644
+--- a/include/net/net.h
++++ b/include/net/net.h
+@@ -143,12 +143,17 @@ void *qemu_get_nic_opaque(NetClientState *nc);
+ void qemu_del_net_client(NetClientState *nc);
+ typedef void (*qemu_nic_foreach)(NICState *nic, void *opaque);
+ void qemu_foreach_nic(qemu_nic_foreach func, void *opaque);
++int qemu_can_receive_packet(NetClientState *nc);
+ int qemu_can_send_packet(NetClientState *nc);
+ ssize_t qemu_sendv_packet(NetClientState *nc, const struct iovec *iov,
+ int iovcnt);
+ ssize_t qemu_sendv_packet_async(NetClientState *nc, const struct iovec *iov,
+ int iovcnt, NetPacketSent *sent_cb);
+ ssize_t qemu_send_packet(NetClientState *nc, const uint8_t *buf, int size);
++ssize_t qemu_receive_packet(NetClientState *nc, const uint8_t *buf, int size);
++ssize_t qemu_receive_packet_iov(NetClientState *nc,
++ const struct iovec *iov,
++ int iovcnt);
+ ssize_t qemu_send_packet_raw(NetClientState *nc, const uint8_t *buf, int size);
+ ssize_t qemu_send_packet_async(NetClientState *nc, const uint8_t *buf,
+ int size, NetPacketSent *sent_cb);
+diff --git a/include/net/queue.h b/include/net/queue.h
+index c0269bb1d..9f2f289d7 100644
+--- a/include/net/queue.h
++++ b/include/net/queue.h
+@@ -55,6 +55,14 @@ void qemu_net_queue_append_iov(NetQueue *queue,
+
+ void qemu_del_net_queue(NetQueue *queue);
+
++ssize_t qemu_net_queue_receive(NetQueue *queue,
++ const uint8_t *data,
++ size_t size);
++
++ssize_t qemu_net_queue_receive_iov(NetQueue *queue,
++ const struct iovec *iov,
++ int iovcnt);
++
+ ssize_t qemu_net_queue_send(NetQueue *queue,
+ NetClientState *sender,
+ unsigned flags,
+diff --git a/net/net.c b/net/net.c
+index 6a2c3d956..5e15e5d27 100644
+--- a/net/net.c
++++ b/net/net.c
+@@ -528,6 +528,17 @@ int qemu_set_vnet_be(NetClientState *nc, bool is_be)
+ #endif
+ }
+
++int qemu_can_receive_packet(NetClientState *nc)
++{
++ if (nc->receive_disabled) {
++ return 0;
++ } else if (nc->info->can_receive &&
++ !nc->info->can_receive(nc)) {
++ return 0;
++ }
++ return 1;
++}
++
+ int qemu_can_send_packet(NetClientState *sender)
+ {
+ int vm_running = runstate_is_running();
+@@ -540,13 +551,7 @@ int qemu_can_send_packet(NetClientState *sender)
+ return 1;
+ }
+
+- if (sender->peer->receive_disabled) {
+- return 0;
+- } else if (sender->peer->info->can_receive &&
+- !sender->peer->info->can_receive(sender->peer)) {
+- return 0;
+- }
+- return 1;
++ return qemu_can_receive_packet(sender->peer);
+ }
+
+ static ssize_t filter_receive_iov(NetClientState *nc,
+@@ -679,6 +684,25 @@ ssize_t qemu_send_packet(NetClientState *nc, const uint8_t *buf, int size)
+ return qemu_send_packet_async(nc, buf, size, NULL);
+ }
+
++ssize_t qemu_receive_packet(NetClientState *nc, const uint8_t *buf, int size)
++{
++ if (!qemu_can_receive_packet(nc)) {
++ return 0;
++ }
++
++ return qemu_net_queue_receive(nc->incoming_queue, buf, size);
++}
++
++ssize_t qemu_receive_packet_iov(NetClientState *nc, const struct iovec *iov,
++ int iovcnt)
++{
++ if (!qemu_can_receive_packet(nc)) {
++ return 0;
++ }
++
++ return qemu_net_queue_receive_iov(nc->incoming_queue, iov, iovcnt);
++}
++
+ ssize_t qemu_send_packet_raw(NetClientState *nc, const uint8_t *buf, int size)
+ {
+ return qemu_send_packet_async_with_flags(nc, QEMU_NET_PACKET_FLAG_RAW,
+diff --git a/net/queue.c b/net/queue.c
+index 19e32c80f..c872d51df 100644
+--- a/net/queue.c
++++ b/net/queue.c
+@@ -182,6 +182,28 @@ static ssize_t qemu_net_queue_deliver_iov(NetQueue *queue,
+ return ret;
+ }
+
++ssize_t qemu_net_queue_receive(NetQueue *queue,
++ const uint8_t *data,
++ size_t size)
++{
++ if (queue->delivering) {
++ return 0;
++ }
++
++ return qemu_net_queue_deliver(queue, NULL, 0, data, size);
++}
++
++ssize_t qemu_net_queue_receive_iov(NetQueue *queue,
++ const struct iovec *iov,
++ int iovcnt)
++{
++ if (queue->delivering) {
++ return 0;
++ }
++
++ return qemu_net_queue_deliver_iov(queue, NULL, 0, iov, iovcnt);
++}
++
+ ssize_t qemu_net_queue_send(NetQueue *queue,
+ NetClientState *sender,
+ unsigned flags,
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_10.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_10.patch
new file mode 100644
index 000000000..7deec1a34
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_10.patch
@@ -0,0 +1,44 @@
+From 65b851efd3d0280425c202f4e5880c48f8334dae Mon Sep 17 00:00:00 2001
+From: Alexander Bulekov <alxndr@bu.edu>
+Date: Mon, 1 Mar 2021 14:35:30 -0500
+Subject: [PATCH 10/10] lan9118: switch to use qemu_receive_packet() for
+ loopback
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This patch switches to use qemu_receive_packet() which can detect
+reentrancy and return early.
+
+This is intended to address CVE-2021-3416.
+
+Cc: Prasad J Pandit <ppandit@redhat.com>
+Cc: qemu-stable@nongnu.org
+Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com
+Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
+Signed-off-by: Jason Wang <jasowang@redhat.com>
+
+Upstream-Status: Backport [37cee01784ff0df13e5209517e1b3594a5e792d1]
+CVE: CVE-2021-3416
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ hw/net/lan9118.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/hw/net/lan9118.c b/hw/net/lan9118.c
+index ab57c02c8..75f18ae2d 100644
+--- a/hw/net/lan9118.c
++++ b/hw/net/lan9118.c
+@@ -669,7 +669,7 @@ static void do_tx_packet(lan9118_state *s)
+ /* FIXME: Honor TX disable, and allow queueing of packets. */
+ if (s->phy_control & 0x4000) {
+ /* This assumes the receive routine doesn't touch the VLANClient. */
+- lan9118_receive(qemu_get_queue(s->nic), s->txp->data, s->txp->len);
++ qemu_receive_packet(qemu_get_queue(s->nic), s->txp->data, s->txp->len);
+ } else {
+ qemu_send_packet(qemu_get_queue(s->nic), s->txp->data, s->txp->len);
+ }
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_2.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_2.patch
new file mode 100644
index 000000000..5e53e20ba
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_2.patch
@@ -0,0 +1,42 @@
+From e2a48a3c7cc33dbbe89f896e0f07462cb04ff6b5 Mon Sep 17 00:00:00 2001
+From: Jason Wang <jasowang@redhat.com>
+Date: Wed, 24 Feb 2021 12:13:22 +0800
+Subject: [PATCH 02/10] e1000: switch to use qemu_receive_packet() for loopback
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This patch switches to use qemu_receive_packet() which can detect
+reentrancy and return early.
+
+This is intended to address CVE-2021-3416.
+
+Cc: Prasad J Pandit <ppandit@redhat.com>
+Cc: qemu-stable@nongnu.org
+Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
+Signed-off-by: Jason Wang <jasowang@redhat.com>
+
+Upstream-Status: Backport [1caff0340f49c93d535c6558a5138d20d475315c]
+CVE: CVE-2021-3416
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ hw/net/e1000.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/hw/net/e1000.c b/hw/net/e1000.c
+index d7d05ae30..cf22c4f07 100644
+--- a/hw/net/e1000.c
++++ b/hw/net/e1000.c
+@@ -546,7 +546,7 @@ e1000_send_packet(E1000State *s, const uint8_t *buf, int size)
+
+ NetClientState *nc = qemu_get_queue(s->nic);
+ if (s->phy_reg[PHY_CTRL] & MII_CR_LOOPBACK) {
+- nc->info->receive(nc, buf, size);
++ qemu_receive_packet(nc, buf, size);
+ } else {
+ qemu_send_packet(nc, buf, size);
+ }
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_3.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_3.patch
new file mode 100644
index 000000000..3fc469e3e
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_3.patch
@@ -0,0 +1,43 @@
+From c041a4da1ff119715e0ccf2d4a7af62568f17b93 Mon Sep 17 00:00:00 2001
+From: Jason Wang <jasowang@redhat.com>
+Date: Wed, 24 Feb 2021 12:57:40 +0800
+Subject: [PATCH 03/10] dp8393x: switch to use qemu_receive_packet() for
+ loopback packet
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This patch switches to use qemu_receive_packet() which can detect
+reentrancy and return early.
+
+This is intended to address CVE-2021-3416.
+
+Cc: Prasad J Pandit <ppandit@redhat.com>
+Cc: qemu-stable@nongnu.org
+Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com
+Signed-off-by: Jason Wang <jasowang@redhat.com>
+
+Upstream-Status: Backport [331d2ac9ea307c990dc86e6493e8f0c48d14bb33]
+CVE: CVE-2021-3416
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ hw/net/dp8393x.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/hw/net/dp8393x.c b/hw/net/dp8393x.c
+index 205c0decc..533a8304d 100644
+--- a/hw/net/dp8393x.c
++++ b/hw/net/dp8393x.c
+@@ -506,7 +506,7 @@ static void dp8393x_do_transmit_packets(dp8393xState *s)
+ s->regs[SONIC_TCR] |= SONIC_TCR_CRSL;
+ if (nc->info->can_receive(nc)) {
+ s->loopback_packet = 1;
+- nc->info->receive(nc, s->tx_buffer, tx_len);
++ qemu_receive_packet(nc, s->tx_buffer, tx_len);
+ }
+ } else {
+ /* Transmit packet */
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_4.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_4.patch
new file mode 100644
index 000000000..e14f37735
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_4.patch
@@ -0,0 +1,43 @@
+From 9ac5345344b75995bc96d171eaa5dc8d26bf0e21 Mon Sep 17 00:00:00 2001
+From: Jason Wang <jasowang@redhat.com>
+Date: Wed, 24 Feb 2021 13:00:01 +0800
+Subject: [PATCH 04/10] msf2-mac: switch to use qemu_receive_packet() for
+ loopback
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This patch switches to use qemu_receive_packet() which can detect
+reentrancy and return early.
+
+This is intended to address CVE-2021-3416.
+
+Cc: Prasad J Pandit <ppandit@redhat.com>
+Cc: qemu-stable@nongnu.org
+Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
+Signed-off-by: Jason Wang <jasowang@redhat.com>
+
+Upstream-Status: Backport [26194a58f4eb83c5bdf4061a1628508084450ba1]
+CVE: CVE-2021-3416
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ hw/net/msf2-emac.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/hw/net/msf2-emac.c b/hw/net/msf2-emac.c
+index 32ba9e841..3e6206044 100644
+--- a/hw/net/msf2-emac.c
++++ b/hw/net/msf2-emac.c
+@@ -158,7 +158,7 @@ static void msf2_dma_tx(MSF2EmacState *s)
+ * R_CFG1 bit 0 is set.
+ */
+ if (s->regs[R_CFG1] & R_CFG1_LB_EN_MASK) {
+- nc->info->receive(nc, buf, size);
++ qemu_receive_packet(nc, buf, size);
+ } else {
+ qemu_send_packet(nc, buf, size);
+ }
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_5.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_5.patch
new file mode 100644
index 000000000..c3f8f9759
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_5.patch
@@ -0,0 +1,45 @@
+From d465dc79c9ee729d91ef086b993e956b1935be69 Mon Sep 17 00:00:00 2001
+From: Jason Wang <jasowang@redhat.com>
+Date: Wed, 24 Feb 2021 13:14:35 +0800
+Subject: [PATCH 05/10] sungem: switch to use qemu_receive_packet() for
+ loopback
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This patch switches to use qemu_receive_packet() which can detect
+reentrancy and return early.
+
+This is intended to address CVE-2021-3416.
+
+Cc: Prasad J Pandit <ppandit@redhat.com>
+Cc: qemu-stable@nongnu.org
+Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
+Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
+Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
+Signed-off-by: Jason Wang <jasowang@redhat.com>
+
+Upstream-Status: Backport [8c92060d3c0248bd4d515719a35922cd2391b9b4]
+CVE: CVE-2021-3416
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ hw/net/sungem.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/hw/net/sungem.c b/hw/net/sungem.c
+index 33c3722df..3684a4d73 100644
+--- a/hw/net/sungem.c
++++ b/hw/net/sungem.c
+@@ -306,7 +306,7 @@ static void sungem_send_packet(SunGEMState *s, const uint8_t *buf,
+ NetClientState *nc = qemu_get_queue(s->nic);
+
+ if (s->macregs[MAC_XIFCFG >> 2] & MAC_XIFCFG_LBCK) {
+- nc->info->receive(nc, buf, size);
++ qemu_receive_packet(nc, buf, size);
+ } else {
+ qemu_send_packet(nc, buf, size);
+ }
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_6.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_6.patch
new file mode 100644
index 000000000..855c6970f
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_6.patch
@@ -0,0 +1,43 @@
+From c0010f9b2bafe866fe32e3c2688454bc24147136 Mon Sep 17 00:00:00 2001
+From: Jason Wang <jasowang@redhat.com>
+Date: Wed, 24 Feb 2021 13:27:52 +0800
+Subject: [PATCH 06/10] tx_pkt: switch to use qemu_receive_packet_iov() for
+ loopback
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This patch switches to use qemu_receive_receive_iov() which can detect
+reentrancy and return early.
+
+This is intended to address CVE-2021-3416.
+
+Cc: Prasad J Pandit <ppandit@redhat.com>
+Cc: qemu-stable@nongnu.org
+Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
+Signed-off-by: Jason Wang <jasowang@redhat.com>
+
+Upstream-Status: Backport [8c552542b81e56ff532dd27ec6e5328954bdda73]
+CVE: CVE-2021-3416
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ hw/net/net_tx_pkt.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/hw/net/net_tx_pkt.c b/hw/net/net_tx_pkt.c
+index da262edc3..1f9aa59ec 100644
+--- a/hw/net/net_tx_pkt.c
++++ b/hw/net/net_tx_pkt.c
+@@ -553,7 +553,7 @@ static inline void net_tx_pkt_sendv(struct NetTxPkt *pkt,
+ NetClientState *nc, const struct iovec *iov, int iov_cnt)
+ {
+ if (pkt->is_loopback) {
+- nc->info->receive_iov(nc, iov, iov_cnt);
++ qemu_receive_packet_iov(nc, iov, iov_cnt);
+ } else {
+ qemu_sendv_packet(nc, iov, iov_cnt);
+ }
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_7.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_7.patch
new file mode 100644
index 000000000..4e1115de0
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_7.patch
@@ -0,0 +1,45 @@
+From 64b38675c728354e4015e4bec3d975cd4cb8a981 Mon Sep 17 00:00:00 2001
+From: Alexander Bulekov <alxndr@bu.edu>
+Date: Fri, 26 Feb 2021 13:47:53 -0500
+Subject: [PATCH 07/10] rtl8139: switch to use qemu_receive_packet() for
+ loopback
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This patch switches to use qemu_receive_packet() which can detect
+reentrancy and return early.
+
+This is intended to address CVE-2021-3416.
+
+Cc: Prasad J Pandit <ppandit@redhat.com>
+Cc: qemu-stable@nongnu.org
+Buglink: https://bugs.launchpad.net/qemu/+bug/1910826
+Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com
+Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
+Signed-off-by: Jason Wang <jasowang@redhat.com>
+
+Upstream-Status: Backport [5311fb805a4403bba024e83886fa0e7572265de4]
+CVE: CVE-2021-3416
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ hw/net/rtl8139.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/hw/net/rtl8139.c b/hw/net/rtl8139.c
+index ba5ace1ab..d2dd03e6a 100644
+--- a/hw/net/rtl8139.c
++++ b/hw/net/rtl8139.c
+@@ -1795,7 +1795,7 @@ static void rtl8139_transfer_frame(RTL8139State *s, uint8_t *buf, int size,
+ }
+
+ DPRINTF("+++ transmit loopback mode\n");
+- rtl8139_do_receive(qemu_get_queue(s->nic), buf, size, do_interrupt);
++ qemu_receive_packet(qemu_get_queue(s->nic), buf, size);
+
+ if (iov) {
+ g_free(buf2);
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_8.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_8.patch
new file mode 100644
index 000000000..ed716468d
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_8.patch
@@ -0,0 +1,44 @@
+From 023ce62f0a788ad3a8233c7a828554bceeafd031 Mon Sep 17 00:00:00 2001
+From: Alexander Bulekov <alxndr@bu.edu>
+Date: Mon, 1 Mar 2021 10:33:34 -0500
+Subject: [PATCH 08/10] pcnet: switch to use qemu_receive_packet() for loopback
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This patch switches to use qemu_receive_packet() which can detect
+reentrancy and return early.
+
+This is intended to address CVE-2021-3416.
+
+Cc: Prasad J Pandit <ppandit@redhat.com>
+Cc: qemu-stable@nongnu.org
+Buglink: https://bugs.launchpad.net/qemu/+bug/1917085
+Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com
+Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
+Signed-off-by: Jason Wang <jasowang@redhat.com>
+
+Upstream-Status: Backport [99ccfaa1edafd79f7a3a0ff7b58ae4da7c514928]
+CVE: CVE-2021-3416
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ hw/net/pcnet.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/hw/net/pcnet.c b/hw/net/pcnet.c
+index f3f18d859..dcd3fc494 100644
+--- a/hw/net/pcnet.c
++++ b/hw/net/pcnet.c
+@@ -1250,7 +1250,7 @@ txagain:
+ if (BCR_SWSTYLE(s) == 1)
+ add_crc = !GET_FIELD(tmd.status, TMDS, NOFCS);
+ s->looptest = add_crc ? PCNET_LOOPTEST_CRC : PCNET_LOOPTEST_NOCRC;
+- pcnet_receive(qemu_get_queue(s->nic), s->buffer, s->xmit_pos);
++ qemu_receive_packet(qemu_get_queue(s->nic), s->buffer, s->xmit_pos);
+ s->looptest = 0;
+ } else {
+ if (s->nic) {
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_9.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_9.patch
new file mode 100644
index 000000000..39d32b33a
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_9.patch
@@ -0,0 +1,46 @@
+From ecf7e62bb2cb02c9bd40082504ae376f3e19ffd2 Mon Sep 17 00:00:00 2001
+From: Alexander Bulekov <alxndr@bu.edu>
+Date: Mon, 1 Mar 2021 14:33:43 -0500
+Subject: [PATCH 09/10] cadence_gem: switch to use qemu_receive_packet() for
+ loopback
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This patch switches to use qemu_receive_packet() which can detect
+reentrancy and return early.
+
+This is intended to address CVE-2021-3416.
+
+Cc: Prasad J Pandit <ppandit@redhat.com>
+Cc: qemu-stable@nongnu.org
+Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
+Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
+Signed-off-by: Jason Wang <jasowang@redhat.com>
+
+Upstream-Status: Backport [e73adfbeec9d4e008630c814759052ed945c3fed]
+CVE: CVE-2021-3416
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ hw/net/cadence_gem.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/hw/net/cadence_gem.c b/hw/net/cadence_gem.c
+index 7a534691f..43b760e3f 100644
+--- a/hw/net/cadence_gem.c
++++ b/hw/net/cadence_gem.c
+@@ -1275,8 +1275,8 @@ static void gem_transmit(CadenceGEMState *s)
+ /* Send the packet somewhere */
+ if (s->phy_loop || (s->regs[GEM_NWCTRL] &
+ GEM_NWCTRL_LOCALLOOP)) {
+- gem_receive(qemu_get_queue(s->nic), s->tx_packet,
+- total_bytes);
++ qemu_receive_packet(qemu_get_queue(s->nic), s->tx_packet,
++ total_bytes);
+ } else {
+ qemu_send_packet(qemu_get_queue(s->nic), s->tx_packet,
+ total_bytes);
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu_5.2.0.bb b/poky/meta/recipes-devtools/qemu/qemu_5.2.0.bb
index 7afa66e39..f265204b1 100644
--- a/poky/meta/recipes-devtools/qemu/qemu_5.2.0.bb
+++ b/poky/meta/recipes-devtools/qemu/qemu_5.2.0.bb
@@ -22,6 +22,7 @@ PACKAGECONFIG ??= " \
fdt sdl kvm \
${@bb.utils.filter('DISTRO_FEATURES', 'alsa xen', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', d)} \
"
PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '', d)} \
diff --git a/poky/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch b/poky/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch
index 38d755205..d8fcc1672 100644
--- a/poky/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch
+++ b/poky/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch
@@ -1,4 +1,4 @@
-From 9bbe3f8564705aafcdcc5f2f033f9241a97f47c6 Mon Sep 17 00:00:00 2001
+From 7b2dd83d8fcd06af8e583b53da79ed0033793d46 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Mon, 27 Feb 2017 09:43:30 +0200
Subject: [PATCH] Do not hardcode "lib/rpm" as the installation path for
@@ -14,7 +14,7 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/configure.ac b/configure.ac
-index 6c78568e4..76b1d40e4 100644
+index fe35a90fa..b2faec6f3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -966,7 +966,7 @@ else
@@ -40,7 +40,7 @@ index 35c8cf9df..9d8b2825c 100644
%_infodir %{_datadir}/info
%_mandir %{_datadir}/man
diff --git a/rpm.am b/rpm.am
-index cd40a16be..e6941e09f 100644
+index 8e1dc2184..3d889ec86 100644
--- a/rpm.am
+++ b/rpm.am
@@ -1,10 +1,10 @@
@@ -55,4 +55,4 @@ index cd40a16be..e6941e09f 100644
+rpmconfigdir = $(libdir)/rpm
# Libtool version (current-revision-age) for all our libraries
- rpm_version_info = 10:2:1
+ rpm_version_info = 10:3:1
diff --git a/poky/meta/recipes-devtools/rpm/rpm_4.16.1.2.bb b/poky/meta/recipes-devtools/rpm/rpm_4.16.1.3.bb
index d369c706a..7c03b41fc 100644
--- a/poky/meta/recipes-devtools/rpm/rpm_4.16.1.2.bb
+++ b/poky/meta/recipes-devtools/rpm/rpm_4.16.1.3.bb
@@ -43,7 +43,7 @@ SRC_URI = "git://github.com/rpm-software-management/rpm;branch=rpm-4.16.x \
"
PE = "1"
-SRCREV = "278883a704ea36c97974d0f2d65d41abe78b0e2a"
+SRCREV = "3659b8a04f5b8bacf6535e0124e7fe23f15286bd"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/rsync/files/0001-rsync-ssl-Verify-the-hostname-in-the-certificate-whe.patch b/poky/meta/recipes-devtools/rsync/files/0001-rsync-ssl-Verify-the-hostname-in-the-certificate-whe.patch
new file mode 100644
index 000000000..2d51ddf96
--- /dev/null
+++ b/poky/meta/recipes-devtools/rsync/files/0001-rsync-ssl-Verify-the-hostname-in-the-certificate-whe.patch
@@ -0,0 +1,31 @@
+From fbe85634d88e82fbb439ae2a5d1aca8b8c309bea Mon Sep 17 00:00:00 2001
+From: Matt McCutchen <matt@mattmccutchen.net>
+Date: Wed, 26 Aug 2020 12:16:08 -0400
+Subject: [PATCH] rsync-ssl: Verify the hostname in the certificate when using
+ openssl.
+
+CVE: CVE-2020-14387
+
+Upstream-Status: Backport [https://git.samba.org/?p=rsync.git;a=commit;h=c3f7414]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ rsync-ssl | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/rsync-ssl b/rsync-ssl
+index 8101975..46701af 100755
+--- a/rsync-ssl
++++ b/rsync-ssl
+@@ -129,7 +129,7 @@ function rsync_ssl_helper {
+ fi
+
+ if [[ $RSYNC_SSL_TYPE == openssl ]]; then
+- exec $RSYNC_SSL_OPENSSL s_client $caopt $certopt -quiet -verify_quiet -servername $hostname -connect $hostname:$port
++ exec $RSYNC_SSL_OPENSSL s_client $caopt $certopt -quiet -verify_quiet -servername $hostname -verify_hostname $hostname -connect $hostname:$port
+ elif [[ $RSYNC_SSL_TYPE == gnutls ]]; then
+ exec $RSYNC_SSL_GNUTLS --logfile=/dev/null $gnutls_cert_opt $gnutls_opts $hostname:$port
+ else
+--
+2.17.1
+
diff --git a/poky/meta/recipes-devtools/rsync/rsync_3.2.3.bb b/poky/meta/recipes-devtools/rsync/rsync_3.2.3.bb
index 8b36a8ebd..cb1866775 100644
--- a/poky/meta/recipes-devtools/rsync/rsync_3.2.3.bb
+++ b/poky/meta/recipes-devtools/rsync/rsync_3.2.3.bb
@@ -14,6 +14,7 @@ SRC_URI = "https://download.samba.org/pub/${BPN}/src/${BP}.tar.gz \
file://rsyncd.conf \
file://makefile-no-rebuild.patch \
file://determism.patch \
+ file://0001-rsync-ssl-Verify-the-hostname-in-the-certificate-whe.patch \
"
SRC_URI[sha256sum] = "becc3c504ceea499f4167a260040ccf4d9f2ef9499ad5683c179a697146ce50e"
diff --git a/poky/meta/recipes-devtools/ruby/ruby_3.0.0.bb b/poky/meta/recipes-devtools/ruby/ruby_3.0.1.bb
index 28e12c3cd..944cb81c1 100644
--- a/poky/meta/recipes-devtools/ruby/ruby_3.0.0.bb
+++ b/poky/meta/recipes-devtools/ruby/ruby_3.0.1.bb
@@ -8,7 +8,7 @@ SRC_URI += " \
file://0001-template-Makefile.in-do-not-write-host-cross-cc-item.patch \
"
-SRC_URI[sha256sum] = "a13ed141a1c18eb967aac1e33f4d6ad5f21be1ac543c344e0d6feeee54af8e28"
+SRC_URI[sha256sum] = "369825db2199f6aeef16b408df6a04ebaddb664fb9af0ec8c686b0ce7ab77727"
PACKAGECONFIG ??= ""
PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
diff --git a/poky/meta/recipes-devtools/strace/strace_5.11.bb b/poky/meta/recipes-devtools/strace/strace_5.12.bb
index f6a91df1d..6a8996535 100644
--- a/poky/meta/recipes-devtools/strace/strace_5.11.bb
+++ b/poky/meta/recipes-devtools/strace/strace_5.12.bb
@@ -15,7 +15,7 @@ SRC_URI = "https://strace.io/files/${PV}/strace-${PV}.tar.xz \
file://uintptr_t.patch \
file://0001-strace-fix-reproducibilty-issues.patch \
"
-SRC_URI[sha256sum] = "ffe340b10c145a0f85734271e9cce56457d23f21a7ea5931ab32f8cf4e793879"
+SRC_URI[sha256sum] = "29171edf9d252f89c988a4c340dfdec662f458cb8c63d85431d64bab5911e7c4"
inherit autotools ptest
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/0001-Add-missing-musl.supp.patch b/poky/meta/recipes-devtools/valgrind/valgrind/0001-Add-missing-musl.supp.patch
new file mode 100644
index 000000000..2a73f7e81
--- /dev/null
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/0001-Add-missing-musl.supp.patch
@@ -0,0 +1,72 @@
+From 61bc8664f93cd980831c9da4a3e8a385b089a0ab Mon Sep 17 00:00:00 2001
+From: Yi Fan Yu <yifan.yu@windriver.com>
+Date: Tue, 23 Mar 2021 09:32:22 -0700
+Subject: [PATCH] Add missing musl.supp
+
+3.17 did not ship musl.supp in the tarball.
+
+This is a workaround until next release.
+
+Upstream-Status: Backport [dde556d51f8226a6de564a00bf82536bb7042c54]
+
+Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
+---
+ musl.supp | 46 ++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 46 insertions(+)
+ create mode 100644 musl.supp
+
+diff --git a/musl.supp b/musl.supp
+new file mode 100644
+index 000000000..864172a24
+--- /dev/null
++++ b/musl.supp
+@@ -0,0 +1,46 @@
++# Suppressions for musl libc
++# See: https://www.openwall.com/lists/musl/2017/06/15/4
++
++{
++ musl-dynlink-false-positive1
++ Memcheck:Leak
++ fun:calloc
++ fun:load_direct_deps
++ fun:load_deps
++ fun:load_deps
++ fun:__dls3
++ fun:__dls2b
++ fun:__dls2
++}
++
++{
++ musl-dynlink-false-positive2
++ Memcheck:Leak
++ fun:calloc
++ fun:load_direct_deps
++ fun:load_deps
++ fun:load_deps
++ fun:__dls3
++ fun:__dls2
++}
++
++{
++ musl-dynlink-false-positive3
++ Memcheck:Leak
++ fun:calloc
++ fun:load_library
++ fun:load_preload
++ fun:__dls3
++ fun:__dls2b
++ fun:__dls2
++}
++
++{
++ musl-dynlink-false-positive4
++ Memcheck:Leak
++ fun:calloc
++ fun:load_library
++ fun:load_preload
++ fun:__dls3
++ fun:__dls2
++}
+--
+2.17.1
+
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/0001-Fix-nlcontrolc.vgtest-hanging-on-newer-glibc-and-or-.patch b/poky/meta/recipes-devtools/valgrind/valgrind/0001-Fix-nlcontrolc.vgtest-hanging-on-newer-glibc-and-or-.patch
deleted file mode 100644
index 98cbcd132..000000000
--- a/poky/meta/recipes-devtools/valgrind/valgrind/0001-Fix-nlcontrolc.vgtest-hanging-on-newer-glibc-and-or-.patch
+++ /dev/null
@@ -1,200 +0,0 @@
-From 83c24e31df6932a6d4fced179050c6d8d8c6f3b5 Mon Sep 17 00:00:00 2001
-From: Philippe Waroquiers <philippe.waroquiers@skynet.be>
-Date: Sun, 7 Mar 2021 22:29:27 +0100
-Subject: [PATCH] Fix nlcontrolc.vgtest hanging on newer glibc and/or arm64
-
-This test verifies that GDB can interrupt a process with all threads
-blocked in a long select syscall.
-The test used to terminate by having GDB modifying the select argument.
-However, modifying the select argument works only for specific arch
-and/or specific versions of glibc.
-The test then blocks on other architectures/glibc versions.
-
-The previous version of the test was:
- * first launching sleepers so as to have all threads blocked in long select
- * interrupting these threads
- * changing the select time arg so that the threads burn cpu
- * and then change variables to have the program exit.
-
-The new version does:
- * first launches sleepers so that all threads are burning cpu.
- * interrupting these threads
- * change the local variables of sleepers so that the threads will
- block in a long select syscall
- * interrupt these threads
- * kill the program.
-
-With this new version, we still check the behaviour of gdb+vgdbserver
-for both burning and sleep threads, but without having the termination
-depending on modifying select syscall argument.
-
-Tested on debian amd64 and on ubuntu arm64 (to check the test does not hang
-on an arm64 platform).
-
-Upstream-Status: Backport
-
-From commit on master:
-c79180a3afcf65902e578646c3b716cc749db406
-
-Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
----
- gdbserver_tests/nlcontrolc.stderr.exp | 4 +-
- gdbserver_tests/nlcontrolc.stdinB.gdb | 57 +++++++++++++++-----------
- gdbserver_tests/nlcontrolc.stdoutB.exp | 25 ++++++-----
- gdbserver_tests/nlcontrolc.vgtest | 12 +++---
- 4 files changed, 56 insertions(+), 42 deletions(-)
-
-diff --git a/gdbserver_tests/nlcontrolc.stderr.exp b/gdbserver_tests/nlcontrolc.stderr.exp
-index ac75bb3da..b63a9a988 100644
---- a/gdbserver_tests/nlcontrolc.stderr.exp
-+++ b/gdbserver_tests/nlcontrolc.stderr.exp
-@@ -3,9 +3,9 @@ Nulgrind, the minimal Valgrind tool
- (action at startup) vgdb me ...
-
-
--loops/sleep_ms/burn/threads_spec/affinity: 1000000000 1000000000 1000000000 BSBSBSBS 1
-+loops/sleep_ms/burn/threads_spec/affinity: 1000000000 0 100000 BSBSBSBS 1
- Brussels ready to sleep and/or burn
- London ready to sleep and/or burn
- Petaouchnok ready to sleep and/or burn
- main ready to sleep and/or burn
--
-+Gdb request to kill this process
-diff --git a/gdbserver_tests/nlcontrolc.stdinB.gdb b/gdbserver_tests/nlcontrolc.stdinB.gdb
-index 667ece18d..ea4fcd530 100644
---- a/gdbserver_tests/nlcontrolc.stdinB.gdb
-+++ b/gdbserver_tests/nlcontrolc.stdinB.gdb
-@@ -9,32 +9,43 @@ shell ./simulate_control_c --vgdb-prefix=./vgdb-prefix-nlcontrolc 1 grep main nl
- #
- continue
- #
--# Here, all tasks should be blocked in a loooonnnng select, all in WaitSys
--info threads
--# We will unblock them by changing their timeout argument
--# To avoid going into the frame where the timeval arg is,
--# it has been defined as global variables, as the nr
--# of calls on the stack differs between 32bits and 64bits,
--# and/or between OS.
--# ensure select finishes in a few milliseconds max:
--p t[0].tv_sec = 0
--p t[1].tv_sec = 0
--p t[2].tv_sec = 0
--p t[3].tv_sec = 0
--#
--# We will change the burning parameters in a few seconds
-+# Threads are burning cpu now
-+# We would like to fully test info threads here, but which thread are Runnable
-+# or Yielding is unpredictable. With a recent enough gdb, check the nr of
-+# threads by state using pipe commands and grep/wc.
-+init-if-undefined $_gdb_major = 0
-+init-if-undefined $_gdb_minor = 0
-+if $_gdb_major >= 9
-+ | info threads | grep VgTs_Runnable | wc -l
-+ | info threads | grep VgTs_Yielding | wc -l
-+else
-+ echo 1\n
-+ echo 3\n
-+end
-+# We change the variables so that all the threads are blocked in a syscall
-+p burn = 0
-+p sleepms = 1000000
-+#
-+#
- shell ./simulate_control_c --vgdb-prefix=./vgdb-prefix-nlcontrolc 1 grep changed nlcontrolc.stdoutB.out
- #
--echo changed burning parameters\n
-+echo changed burning parameters to sleeping parameters\n
- continue
-+# Here, all tasks should be blocked in a loooonnnng select, all in WaitSys
-+info threads
-+# We reset the sleepms to 0. The threads should still be blocked in the syscall
-+p sleepms = 0
-+shell ./simulate_control_c --vgdb-prefix=./vgdb-prefix-nlcontrolc 1 grep reset nlcontrolc.stdoutB.out
- #
--# Threads are burning cpu now
--# We would like to test info threads here, but which thread are Runnable or Yielding
--# is unpredictable.
--# info threads
--p burn = 0
--p loops = 0
--p report_finished = 0
-+echo reset to sleeping parameters\n
- continue
--# and the process should stop very quickly now
-+# threads should still be blocked in a loooonnnng select, all in WaitSys
-+info threads
-+if $_gdb_major >= 9
-+ | info threads | grep VgTs_WaitSys | wc -l
-+else
-+ echo 4\n
-+end
-+# Make the process die.
-+kill
- quit
-diff --git a/gdbserver_tests/nlcontrolc.stdoutB.exp b/gdbserver_tests/nlcontrolc.stdoutB.exp
-index e8a5ff8ba..2e8dc8498 100644
---- a/gdbserver_tests/nlcontrolc.stdoutB.exp
-+++ b/gdbserver_tests/nlcontrolc.stdoutB.exp
-@@ -1,18 +1,21 @@
- Continuing.
- Program received signal SIGTRAP, Trace/breakpoint trap.
-+do_burn () at sleepers.c:41
-+41 for (i = 0; i < burn; i++) loopnr++;
-+ > > > > > >1
-+3
-+$1 = 0
-+$2 = 1000000
-+changed burning parameters to sleeping parameters
-+Continuing.
-+Program received signal SIGTRAP, Trace/breakpoint trap.
- 0x........ in syscall ...
- * 1 Thread .... (tid 1 VgTs_WaitSys) 0x........ in syscall ...
--$1 = 0
--$2 = 0
- $3 = 0
--$4 = 0
--changed burning parameters
-+reset to sleeping parameters
- Continuing.
- Program received signal SIGTRAP, Trace/breakpoint trap.
--do_burn () at sleepers.c:41
--41 for (i = 0; i < burn; i++) loopnr++;
--$5 = 0
--$6 = 0
--$7 = 0
--Continuing.
--Program exited normally.
-+0x........ in syscall ...
-+* 1 Thread .... (tid 1 VgTs_WaitSys) 0x........ in syscall ...
-+ > > > >4
-+Kill the program being debugged? (y or n) [answered Y; input not from terminal]
-diff --git a/gdbserver_tests/nlcontrolc.vgtest b/gdbserver_tests/nlcontrolc.vgtest
-index bb5308403..09edfcaba 100644
---- a/gdbserver_tests/nlcontrolc.vgtest
-+++ b/gdbserver_tests/nlcontrolc.vgtest
-@@ -4,16 +4,16 @@
- # and modify some variables
- # the user can control-c an process with all threads in Running/Yielding
- # and modify some variables
--# sleepers is started with argument so that it will compute during ages.
--# The variable modifications means it will exit in a reasonable time.
--# This test is disabled on Solaris because modifying select/poll/ppoll timeout
--# has no effect if a thread is already blocked in that syscall.
-+# sleepers is started so that it burns CPU.
-+# We then interrupt the process.
-+# We modify variables so that instead of burning cpu, sleepers blocks
-+# all threads in a select syscall.
- prog: sleepers
--args: 1000000000 1000000000 1000000000 BSBSBSBS 1
-+args: 1000000000 0 100000 BSBSBSBS 1
- vgopts: --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlcontrolc
- stderr_filter: filter_stderr
- # Bug 338633 nlcontrol hangs on arm64 currently.
--prereq: test -e gdb -a -f vgdb.invoker && ! ../tests/arch_test arm64 && ! ../tests/os_test solaris
-+prereq: test -e gdb -a -f vgdb.invoker && ! ../tests/os_test solaris
- progB: gdb
- argsB: --quiet -l 60 --nx ./sleepers
- stdinB: nlcontrolc.stdinB.gdb
---
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/0001-drd-Port-to-Fedora-33.patch b/poky/meta/recipes-devtools/valgrind/valgrind/0001-drd-Port-to-Fedora-33.patch
deleted file mode 100644
index 37f6ea667..000000000
--- a/poky/meta/recipes-devtools/valgrind/valgrind/0001-drd-Port-to-Fedora-33.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 15330adf7c2471fbaa6a0818db07078d81dbff97 Mon Sep 17 00:00:00 2001
-From: Bart Van Assche <bvanassche@acm.org>
-Date: Sat, 19 Sep 2020 08:08:59 -0700
-Subject: [PATCH] drd: Port to Fedora 33
-
-Apparently on Fedora 33 the POSIX thread functions exist in both libc and
-libpthread. Hence this patch that intercepts the pthread functions in
-libc. See also https://bugs.kde.org/show_bug.cgi?id=426144 .
-
-Signed-off-by: Bart Van Assche <bvanassche@acm.org>
-
-This patch was imported from the valgrind sourceware server
-(https://sourceware.org/git/?p=valgrind.git;a=commit;h=15330adf7c2471fbaa6a0818db07078d81dbff97)
-It was modified to remove the changes to the valgrind NEWS file,
-as these are difficult to maintain and don't impact the valgrind
-code itself.
-
-Upstream-Status: Backport
-
-Signed-off-by: Stacy Gaikovaia <stacy.gaikovaia@windriver.com>
----
- drd/drd_pthread_intercepts.c | 9 +++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/drd/drd_pthread_intercepts.c b/drd/drd_pthread_intercepts.c
-index 58c45aaec..c2882e5ab 100644
---- a/drd/drd_pthread_intercepts.c
-+++ b/drd/drd_pthread_intercepts.c
-@@ -174,7 +174,16 @@ static int never_true;
- ret_ty VG_WRAP_FUNCTION_ZZ(VG_Z_LIBC_SONAME,zf) argl_decl \
- { return implf argl; }
- #else
-+/*
-+ * On Linux, intercept both the libc and the libpthread functions. At
-+ * least glibc 2.32.9000 (Fedora 34) has an implementation of all pthread
-+ * functions in both libc and libpthread. Older glibc versions only have an
-+ * implementation of the pthread functions in libpthread.
-+ */
- #define PTH_FUNC(ret_ty, zf, implf, argl_decl, argl) \
-+ ret_ty VG_WRAP_FUNCTION_ZZ(VG_Z_LIBC_SONAME,zf) argl_decl; \
-+ ret_ty VG_WRAP_FUNCTION_ZZ(VG_Z_LIBC_SONAME,zf) argl_decl \
-+ { return implf argl; } \
- ret_ty VG_WRAP_FUNCTION_ZZ(VG_Z_LIBPTHREAD_SONAME,zf) argl_decl; \
- ret_ty VG_WRAP_FUNCTION_ZZ(VG_Z_LIBPTHREAD_SONAME,zf) argl_decl \
- { return implf argl; }
---
-2.25.1
-
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/0001-drd-musl-fix.patch b/poky/meta/recipes-devtools/valgrind/valgrind/0001-drd-musl-fix.patch
deleted file mode 100644
index e96bf3c61..000000000
--- a/poky/meta/recipes-devtools/valgrind/valgrind/0001-drd-musl-fix.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-The changes in 0001-drd-Port-to-Fedora-33.patch break builds on musl. These
-need a __GLIBC__ guard to ensure musl builds continue to work.
-
-Upstream-Status: Pending
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-
-Index: valgrind-3.16.1/drd/drd_pthread_intercepts.c
-===================================================================
---- valgrind-3.16.1.orig/drd/drd_pthread_intercepts.c
-+++ valgrind-3.16.1/drd/drd_pthread_intercepts.c
-@@ -180,6 +180,7 @@ static int never_true;
- * functions in both libc and libpthread. Older glibc versions only have an
- * implementation of the pthread functions in libpthread.
- */
-+#ifdef __GLIBC__
- #define PTH_FUNC(ret_ty, zf, implf, argl_decl, argl) \
- ret_ty VG_WRAP_FUNCTION_ZZ(VG_Z_LIBC_SONAME,zf) argl_decl; \
- ret_ty VG_WRAP_FUNCTION_ZZ(VG_Z_LIBC_SONAME,zf) argl_decl \
-@@ -187,6 +188,12 @@ static int never_true;
- ret_ty VG_WRAP_FUNCTION_ZZ(VG_Z_LIBPTHREAD_SONAME,zf) argl_decl; \
- ret_ty VG_WRAP_FUNCTION_ZZ(VG_Z_LIBPTHREAD_SONAME,zf) argl_decl \
- { return implf argl; }
-+#else
-+#define PTH_FUNC(ret_ty, zf, implf, argl_decl, argl) \
-+ ret_ty VG_WRAP_FUNCTION_ZZ(VG_Z_LIBPTHREAD_SONAME,zf) argl_decl; \
-+ ret_ty VG_WRAP_FUNCTION_ZZ(VG_Z_LIBPTHREAD_SONAME,zf) argl_decl \
-+ { return implf argl; }
-+#endif
- #endif
-
- /**
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/0001-drd-tests-swapcontext-Add-SIGALRM-handler-to-avoid-s.patch b/poky/meta/recipes-devtools/valgrind/valgrind/0001-drd-tests-swapcontext-Add-SIGALRM-handler-to-avoid-s.patch
new file mode 100644
index 000000000..371c1701d
--- /dev/null
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/0001-drd-tests-swapcontext-Add-SIGALRM-handler-to-avoid-s.patch
@@ -0,0 +1,65 @@
+From 4c8c4a9c3a92300e3e6500e5a278ca37514a1fdb Mon Sep 17 00:00:00 2001
+From: Yi Fan Yu <yifan.yu@windriver.com>
+Date: Thu, 1 Apr 2021 15:31:47 -0400
+Subject: [PATCH] drd/tests/swapcontext: Add SIGALRM handler to avoid
+ stacktrace
+
+During testing for oe-core build on QEMU,
+SIGALRM can trigger during nanosleep.
+This results a different stderr output than expected.
+
+```
+==277== Process terminating with default action of signal 14 (SIGALRM)
+==277== at 0x36C74C3943: clock_nanosleep@@GLIBC_2.17 (clock_nanosleep.c:43)
+==277== by 0x36C74C8726: nanosleep (nanosleep.c:25)
+```
+
+This stacktrace printing will not occur
+if we add a handler that simply exits.
+
+https://bugs.kde.org/show_bug.cgi?id=435160
+
+Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
+---
+ drd/tests/swapcontext.c | 5 +++++
+ drd/tests/swapcontext.stderr.exp | 4 ----
+ 2 files changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/drd/tests/swapcontext.c b/drd/tests/swapcontext.c
+index 622c70bc5..2cb969a5e 100644
+--- a/drd/tests/swapcontext.c
++++ b/drd/tests/swapcontext.c
+@@ -25,6 +25,10 @@ typedef struct thread_local {
+ size_t nrsw;
+ } thread_local_t;
+
++static void sig_alrm_handler(int signo) {
++ _exit(1);
++}
++
+ static void f(void *data, int n)
+ {
+ enum { NR_SWITCHES = 200000 };
+@@ -76,6 +80,7 @@ int main(int argc, char *argv[])
+ pthread_attr_t attr;
+ int i, res;
+
++ signal(SIGALRM, sig_alrm_handler);
+ memset(tlocal, 0, sizeof(tlocal));
+
+ pthread_attr_init(&attr);
+diff --git a/drd/tests/swapcontext.stderr.exp b/drd/tests/swapcontext.stderr.exp
+index fcb5d5ed4..d18786f80 100644
+--- a/drd/tests/swapcontext.stderr.exp
++++ b/drd/tests/swapcontext.stderr.exp
+@@ -1,7 +1,3 @@
+
+
+-Process terminating with default action of signal 14 (SIGALRM)
+- at 0x........: swapcontext (in /...libc...)
+- by 0x........: f (swapcontext.c:?)
+-
+ ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+--
+2.17.1
+
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/0001-helgrind-Intercept-libc-functions.patch b/poky/meta/recipes-devtools/valgrind/valgrind/0001-helgrind-Intercept-libc-functions.patch
deleted file mode 100644
index f66df3d2d..000000000
--- a/poky/meta/recipes-devtools/valgrind/valgrind/0001-helgrind-Intercept-libc-functions.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From cdec010444df5a4328e90d07a2024fdeefcc74b5 Mon Sep 17 00:00:00 2001
-From: Paul Floyd <paulf@free.fr>
-Date: Wed, 18 Nov 2020 12:49:20 -0400
-Subject: [PATCH] helgrind: Intercept libc functions
-
-PTH_FUNC definition needs to be modified in order to
-intercept posix thread functions in both libc and
-libpthread. In order to handle this in helgrind, weak alias
-the pthread functions in glibc.
-
-Upstream-Status: Submitted
-
-Signed-off-by: Paul Floyd <paulf@free.fr>
-Signed-off-by: Stacy Gaikovaia <stacy.gaikovaia@windriver.com>
----
- helgrind/hg_intercepts.c | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
-
-diff --git a/helgrind/hg_intercepts.c b/helgrind/hg_intercepts.c
-index a10c3a4a3..316140ca6 100644
---- a/helgrind/hg_intercepts.c
-+++ b/helgrind/hg_intercepts.c
-@@ -77,6 +77,11 @@
- /*--- ---*/
- /*----------------------------------------------------------------*/
-
-+#define hg_expand(tok) #tok
-+#define hg_str(tok) hg_expand(tok)
-+# define hg_weak_alias(name, aliasname) \
-+ extern __typeof (name) aliasname __attribute__ ((weak, alias(hg_str(name))))
-+
- #if defined(VGO_solaris)
- /* On Solaris, libpthread is just a filter library on top of libc.
- * Threading and synchronization functions in runtime linker are not
-@@ -91,9 +96,16 @@
- #define CREQ_PTHREAD_T Word
- #define SEM_ERROR ret
- #else
-+#ifdef MUSL_LIBC
-+#define PTH_FUNC(ret_ty, f, args...) \
-+ ret_ty I_WRAP_SONAME_FNNAME_ZZ(VG_Z_LIBPTHREAD_SONAME,f)(args); \
-+ ret_ty I_WRAP_SONAME_FNNAME_ZZ(VG_Z_LIBPTHREAD_SONAME,f)(args)
-+#else
- #define PTH_FUNC(ret_ty, f, args...) \
- ret_ty I_WRAP_SONAME_FNNAME_ZZ(VG_Z_LIBPTHREAD_SONAME,f)(args); \
-+ hg_weak_alias(I_WRAP_SONAME_FNNAME_ZZ(VG_Z_LIBPTHREAD_SONAME,f), I_WRAP_SONAME_FNNAME_ZZ(VG_Z_LIBC_SONAME,f)); \
- ret_ty I_WRAP_SONAME_FNNAME_ZZ(VG_Z_LIBPTHREAD_SONAME,f)(args)
-+#endif
- #define CREQ_PTHREAD_T pthread_t
- #define SEM_ERROR errno
- #endif /* VGO_solaris */
---
-2.17.1
-
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/0001-lmw-lswi-and-related-PowerPC-insns-aren-t-allowed-on.patch b/poky/meta/recipes-devtools/valgrind/valgrind/0001-lmw-lswi-and-related-PowerPC-insns-aren-t-allowed-on.patch
deleted file mode 100644
index 7c6214497..000000000
--- a/poky/meta/recipes-devtools/valgrind/valgrind/0001-lmw-lswi-and-related-PowerPC-insns-aren-t-allowed-on.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 0748ed5403a75c12ad9137b3fabf9d8397206ed8 Mon Sep 17 00:00:00 2001
-From: Mark Wielaard <mark@klomp.org>
-Date: Tue, 1 Dec 2020 13:57:39 +0100
-Subject: [PATCH] lmw, lswi and related PowerPC insns aren't allowed on ppc64le
-
-lmw, lswi and related PowerPC insns aren't allowed on ppc64le
-
-Newer binutils produce an error when the assembly contains lmw, stmw,
-lswi, lswx, stswi, or stswx instructions in little-endian mode.
-
-Only build and run the lsw and ldst_multiple testcases on ppc64[be].
-
-https://bugs.kde.org/show_bug.cgi?id=427870
-Upstream-Status: Backport [https://sourceware.org/git/?p=valgrind.git;a=commit;h=74b74174d572fee4015b8f4e326db3cd949bcdc3]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- none/tests/ppc64/Makefile.am | 9 ++++++---
- none/tests/ppc64/ldst_multiple.vgtest | 1 +
- 2 files changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/none/tests/ppc64/Makefile.am b/none/tests/ppc64/Makefile.am
-index 9bc0d0a..9d1e8b7 100644
---- a/none/tests/ppc64/Makefile.am
-+++ b/none/tests/ppc64/Makefile.am
-@@ -54,16 +54,20 @@ EXTRA_DIST = \
-
- check_PROGRAMS = \
- allexec \
-- lsw jm-insns round \
-+ jm-insns round \
- test_isa_2_06_part1 test_isa_2_06_part2 test_isa_2_06_part3 \
- test_dfp1 test_dfp2 test_dfp3 test_dfp4 test_dfp5 \
- test_isa_2_07_part1 test_isa_2_07_part2 \
- test_isa_3_0 \
- subnormal_test \
-- test_tm test_touch_tm ldst_multiple data-cache-instructions \
-+ test_tm test_touch_tm data-cache-instructions \
- power6_mf_gpr std_reg_imm \
- twi_tdi tw_td power6_bcmp
-
-+# lmw, stmw, lswi, lswx, stswi, stswx compile (and run) only on big endian.
-+if VGCONF_PLATFORMS_INCLUDE_PPC64BE_LINUX
-+check_PROGRAMS += lsw ldst_multiple
-+endif
-
- AM_CFLAGS += @FLAG_M64@
- AM_CXXFLAGS += @FLAG_M64@
-@@ -175,4 +179,3 @@ test_isa_2_07_part2_LDADD = -lm
- test_tm_LDADD = -lm
- test_touch_tm_LDADD = -lm
- test_isa_3_0_LDADD = -lm
--
-diff --git a/none/tests/ppc64/ldst_multiple.vgtest b/none/tests/ppc64/ldst_multiple.vgtest
-index 87e668e..22dd46c 100644
---- a/none/tests/ppc64/ldst_multiple.vgtest
-+++ b/none/tests/ppc64/ldst_multiple.vgtest
-@@ -1 +1,2 @@
-+prereq: ../../../tests/is_ppc64_BE
- prog: ldst_multiple
---
-2.31.0
-
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/0001-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch b/poky/meta/recipes-devtools/valgrind/valgrind/0001-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch
index d641998d7..e421ac6c8 100644
--- a/poky/meta/recipes-devtools/valgrind/valgrind/0001-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/0001-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch
@@ -19,7 +19,7 @@ index 6e5a797b9..0ede1ab18 100644
@@ -25,10 +25,10 @@ Open file descriptor ...: /dev/null
- FILE DESCRIPTORS: 6 open at exit.
+ FILE DESCRIPTORS: 6 open (3 std) at exit.
-Open file descriptor ...: /tmp/data2
+Open file descriptor ...: ...
...
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/0002-context-APIs-are-not-available-on-musl.patch b/poky/meta/recipes-devtools/valgrind/valgrind/0002-context-APIs-are-not-available-on-musl.patch
index 480fe3324..7f0e38cb9 100644
--- a/poky/meta/recipes-devtools/valgrind/valgrind/0002-context-APIs-are-not-available-on-musl.patch
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/0002-context-APIs-are-not-available-on-musl.patch
@@ -1,18 +1,58 @@
-From bd4e926e7e14747b3cd4d7b2a1bd5410b22f3ea2 Mon Sep 17 00:00:00 2001
+From 26c104adf6c5162572b7aa2fac89d0835b7f8f0b Mon Sep 17 00:00:00 2001
From: Randy MacLeod <Randy.MacLeod@windriver.com>
Date: Tue, 16 Oct 2018 21:27:46 -0400
Subject: [PATCH] context APIs are not available on musl
-Upstream-Status: Pending
-
Updated patch for valgrind-3.14
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
+
+Apply same patch to drd/tests/swapcontext.c
+for valgrind-3.17.
+
+Upstream-Status: Submitted [https://bugs.kde.org/show_bug.cgi?id=434775]
+
+Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
---
+ drd/tests/swapcontext.c | 6 ++++++
memcheck/tests/linux/stack_changes.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+diff --git a/drd/tests/swapcontext.c b/drd/tests/swapcontext.c
+index 622c70bc5..5e72bb0f3 100644
+--- a/drd/tests/swapcontext.c
++++ b/drd/tests/swapcontext.c
+@@ -20,6 +20,7 @@
+
+ #define STACKSIZE (PTHREAD_STACK_MIN + 4096)
+
++#ifdef __GLIBC__
+ typedef struct thread_local {
+ ucontext_t uc[3];
+ size_t nrsw;
+@@ -67,9 +68,11 @@ void *worker(void *data)
+ swapcontext(&tlocal->uc[0], &tlocal->uc[1]);
+ return NULL;
+ }
++#endif
+
+ int main(int argc, char *argv[])
+ {
++#ifdef __GLIBC__
+ enum { NR = 32 };
+ thread_local_t tlocal[NR];
+ pthread_t thread[NR];
+@@ -94,6 +97,9 @@ int main(int argc, char *argv[])
+
+ for (i = 0; i < NR; i++)
+ pthread_join(thread[i], NULL);
++#else
++ printf("libc context call APIs e.g. getcontext() are deprecated by posix\n");
++#endif
+
+ return 0;
+ }
diff --git a/memcheck/tests/linux/stack_changes.c b/memcheck/tests/linux/stack_changes.c
index 7f97b90a5..a26cb4ae6 100644
--- a/memcheck/tests/linux/stack_changes.c
@@ -48,5 +88,5 @@ index 7f97b90a5..a26cb4ae6 100644
return 0;
}
--
-2.17.0
+2.17.1
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/fixed-perl-path.patch b/poky/meta/recipes-devtools/valgrind/valgrind/fixed-perl-path.patch
index b431d3356..db6867f62 100644
--- a/poky/meta/recipes-devtools/valgrind/valgrind/fixed-perl-path.patch
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/fixed-perl-path.patch
@@ -1,4 +1,4 @@
-From 67e7a690107efb16d6d5aebfe420b64a552accdf Mon Sep 17 00:00:00 2001
+From d85cc45e0ddeda68adf594dead715964cb32d0e7 Mon Sep 17 00:00:00 2001
From: Qing He <qing.he@intel.com>
Date: Tue, 31 Aug 2010 22:51:58 +0800
Subject: [PATCH] valgrind: fix perl scripts
@@ -22,10 +22,11 @@ Signed-off-by: Maxin B. John <maxin.john@intel.com>
cachegrind/cg_diff.in | 2 +-
massif/ms_print.in | 2 +-
perf/vg_perf.in | 2 +-
- 4 files changed, 4 insertions(+), 4 deletions(-)
+ tests/vg_regtest.in | 2 +-
+ 5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/cachegrind/cg_annotate.in b/cachegrind/cg_annotate.in
-index 69365e8..978265d 100644
+index fea114b..5e814fd 100644
--- a/cachegrind/cg_annotate.in
+++ b/cachegrind/cg_annotate.in
@@ -1,4 +1,4 @@
@@ -35,7 +36,7 @@ index 69365e8..978265d 100644
##--------------------------------------------------------------------##
##--- Cachegrind's annotator. cg_annotate.in ---##
diff --git a/cachegrind/cg_diff.in b/cachegrind/cg_diff.in
-index 395460b..05873cc 100755
+index 9d9258e..d0f0ec7 100755
--- a/cachegrind/cg_diff.in
+++ b/cachegrind/cg_diff.in
@@ -1,4 +1,4 @@
@@ -45,7 +46,7 @@ index 395460b..05873cc 100755
##--------------------------------------------------------------------##
##--- Cachegrind's differencer. cg_diff.in ---##
diff --git a/massif/ms_print.in b/massif/ms_print.in
-index e6fae89..3b85b40 100755
+index a206ce4..df1bc31 100755
--- a/massif/ms_print.in
+++ b/massif/ms_print.in
@@ -1,4 +1,4 @@
@@ -55,7 +56,7 @@ index e6fae89..3b85b40 100755
##--------------------------------------------------------------------##
##--- Massif's results printer ms_print.in ---##
diff --git a/perf/vg_perf.in b/perf/vg_perf.in
-index 7a80cb0..28f6156 100644
+index 90ee1d2..c585096 100644
--- a/perf/vg_perf.in
+++ b/perf/vg_perf.in
@@ -1,4 +1,4 @@
@@ -65,7 +66,7 @@ index 7a80cb0..28f6156 100644
##--- Valgrind performance testing script vg_perf ---##
##--------------------------------------------------------------------##
diff --git a/tests/vg_regtest.in b/tests/vg_regtest.in
-index cb05b52..032e947 100755
+index 0fe6341..1b45eb7 100755
--- a/tests/vg_regtest.in
+++ b/tests/vg_regtest.in
@@ -1,4 +1,4 @@
@@ -74,5 +75,6 @@ index cb05b52..032e947 100755
##--------------------------------------------------------------------##
##--- Valgrind regression testing script vg_regtest ---##
##--------------------------------------------------------------------##
----
-2.4.0
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64 b/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
index 93bfd45a4..a3a0c6e50 100644
--- a/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
@@ -31,6 +31,8 @@ drd/tests/annotate_static
drd/tests/annotate_trace_memory
drd/tests/annotate_trace_memory_xml
drd/tests/atomic_var
+drd/tests/bar_bad
+drd/tests/bar_bad_xml
drd/tests/bar_trivial
drd/tests/bug-235681
drd/tests/bug322621
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-all b/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-all
index d6a85c473..e69de29bb 100644
--- a/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-all
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-all
@@ -1,2 +0,0 @@
-drd/tests/bar_bad
-drd/tests/bar_bad_xml
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest b/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest
index f37780ef6..60d243276 100755
--- a/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest
@@ -7,6 +7,7 @@
# Randy MacLeod <Randy.MacLeod@windriver.com>
###############################################################
VALGRIND_LIB=@libdir@/valgrind
+VALGRIND_LIBEXECDIR=@libexecdir@/valgrind
VALGRIND_BIN=@bindir@/valgrind
LOG="${VALGRIND_LIB}/ptest/valgrind_ptest_$(date +%Y%m%d-%H%M%S).log"
@@ -33,7 +34,7 @@ fi
cd ${VALGRIND_LIB}/ptest && ./tests/vg_regtest \
--valgrind=${VALGRIND_BIN} \
- --valgrind-lib=${VALGRIND_LIB} \
+ --valgrind-lib=${VALGRIND_LIBEXECDIR} \
--yocto-ptest \
gdbserver_tests ${TOOLS} ${EXP_TOOLS} \
2>&1|tee ${LOG}
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/s390x_vec_op_t.patch b/poky/meta/recipes-devtools/valgrind/valgrind/s390x_vec_op_t.patch
index eea671da0..bde1241dc 100644
--- a/poky/meta/recipes-devtools/valgrind/valgrind/s390x_vec_op_t.patch
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/s390x_vec_op_t.patch
@@ -1,3 +1,8 @@
+From 8154d38bac5cdb3675cfdaf562ab9da01988b263 Mon Sep 17 00:00:00 2001
+From: Yi Fan Yu <yifan.yu@windriver.com>
+Date: Wed, 17 Mar 2021 12:16:31 -0400
+Subject: [PATCH 19/20] remove s390x_vec_op_t
+
s390x_vec_op_t is not needed anywhere, only elements of enum are accessed
removing it ensures that valgrind can be built with -fno-common option
@@ -6,14 +11,25 @@ ld: ../../VEX/libvex-amd64-linux.a(libvex_amd64_linux_a-guest_s390_helpers.o):/u
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
+---
+ VEX/priv/guest_s390_defs.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/VEX/priv/guest_s390_defs.h b/VEX/priv/guest_s390_defs.h
+index 9054290..dab8002 100644
--- a/VEX/priv/guest_s390_defs.h
+++ b/VEX/priv/guest_s390_defs.h
-@@ -286,7 +286,7 @@ enum {
- S390_VEC_OP_VFCHE = 18,
- S390_VEC_OP_VFTCI = 19,
- S390_VEC_OP_LAST = 20 // supposed to be the last element in enum
+@@ -284,7 +284,7 @@ typedef enum {
+ S390_VEC_OP_VBPERM,
+ S390_VEC_OP_VMSL,
+ S390_VEC_OP_LAST // supposed to be the last element in enum
-} s390x_vec_op_t;
+};
/* Arguments of s390x_dirtyhelper_vec_op(...) which are packed into one
ULong variable.
+--
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind_3.16.1.bb b/poky/meta/recipes-devtools/valgrind/valgrind_3.17.0.bb
index 2b1d18557..ebbd83dd3 100644
--- a/poky/meta/recipes-devtools/valgrind/valgrind_3.16.1.bb
+++ b/poky/meta/recipes-devtools/valgrind/valgrind_3.17.0.bb
@@ -42,14 +42,11 @@ SRC_URI = "https://sourceware.org/pub/valgrind/valgrind-${PV}.tar.bz2 \
file://s390x_vec_op_t.patch \
file://0001-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch \
file://0001-memcheck-tests-Fix-timerfd-syscall-test.patch \
- file://0001-drd-Port-to-Fedora-33.patch \
- file://0001-drd-musl-fix.patch \
- file://0001-helgrind-Intercept-libc-functions.patch \
- file://0001-Fix-nlcontrolc.vgtest-hanging-on-newer-glibc-and-or-.patch \
- file://0001-lmw-lswi-and-related-PowerPC-insns-aren-t-allowed-on.patch \
+ file://0001-Add-missing-musl.supp.patch \
+ file://0001-drd-tests-swapcontext-Add-SIGALRM-handler-to-avoid-s.patch \
"
-SRC_URI[md5sum] = "d1b153f1ab17cf1f311705e7a83ef589"
-SRC_URI[sha256sum] = "c91f3a2f7b02db0f3bc99479861656154d241d2fdb265614ba918cc6720a33ca"
+SRC_URI[md5sum] = "afe11b5572c3121a781433b7c0ab741b"
+SRC_URI[sha256sum] = "ad3aec668e813e40f238995f60796d9590eee64a16dff88421430630e69285a2"
UPSTREAM_CHECK_REGEX = "valgrind-(?P<pver>\d+(\.\d+)+)\.tar"
COMPATIBLE_HOST = '(i.86|x86_64|arm|aarch64|mips|powerpc|powerpc64).*-linux'
@@ -110,7 +107,7 @@ do_configure_prepend () {
}
do_install_append () {
- install -m 644 ${B}/default.supp ${D}/${libdir}/valgrind/
+ install -m 644 ${B}/default.supp ${D}/${libexecdir}/valgrind/
oe_multilib_header valgrind/config.h
}
@@ -125,7 +122,7 @@ VALGRINDARCH_powerpc = "ppc"
VALGRINDARCH_powerpc64 = "ppc64"
VALGRINDARCH_powerpc64el = "ppc64le"
-INHIBIT_PACKAGE_STRIP_FILES = "${PKGD}${libdir}/valgrind/vgpreload_memcheck-${VALGRINDARCH}-linux.so"
+INHIBIT_PACKAGE_STRIP_FILES = "${PKGD}${libexecdir}/valgrind/vgpreload_memcheck-${VALGRINDARCH}-linux.so"
RDEPENDS_${PN} += "perl"
@@ -137,8 +134,9 @@ RDEPENDS_${PN}-ptest += " bash coreutils file \
gdb libgomp \
perl \
perl-module-file-basename perl-module-file-glob perl-module-getopt-long \
- perl-module-overloading \
- procps sed ${PN}-dbg ${PN}-src"
+ perl-module-overloading perl-module-cwd perl-module-ipc-open3 \
+ perl-module-carp perl-module-symbol \
+ procps sed ${PN}-dbg ${PN}-src ${TCLIBC}-src gcc-runtime-dbg"
RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils"
# One of the tests contains a bogus interpreter path on purpose.
@@ -158,7 +156,7 @@ do_install_ptest() {
#
# The regression tests require scripts and data files that are not
# copied to the build directory. They must be copied from the
- # source directory.
+ # source directory.
saved_dir=$PWD
for parent_dir in ${S} ${B} ; do
cd $parent_dir
@@ -222,14 +220,22 @@ do_install_ptest() {
sed -i s:\.\./\.\./callgrind/callgrind_annotate:${bindir}/callgrind_annotate: ${D}${PTEST_PATH}/callgrind/tests/ann1.vgtest
sed -i s:\.\./\.\./callgrind/callgrind_annotate:${bindir}/callgrind_annotate: ${D}${PTEST_PATH}/callgrind/tests/ann2.vgtest
+ # point the expanded @abs_top_builddir@ of the host to PTEST_PATH
+ sed -i s:${S}:${PTEST_PATH}:g \
+ ${D}${PTEST_PATH}/memcheck/tests/linux/debuginfod-check.vgtest
+
# handle multilib
sed -i s:@libdir@:${libdir}:g ${D}${PTEST_PATH}/run-ptest
+ sed -i s:@libexecdir@:${libexecdir}:g ${D}${PTEST_PATH}/run-ptest
sed -i s:@bindir@:${bindir}:g ${D}${PTEST_PATH}/run-ptest
# This test fails on the host as well, using both 3.15 and git master (as of Jan 24 2020)
# https://bugs.kde.org/show_bug.cgi?id=402833
rm ${D}${PTEST_PATH}/memcheck/tests/overlap.vgtest
+ # This is known failure see https://bugs.kde.org/show_bug.cgi?id=435732
+ rm ${D}${PTEST_PATH}/memcheck/tests/leak_cpp_interior.vgtest
+
# As the binary isn't stripped or debug-splitted, the source file isn't fetched
# via dwarfsrcfiles either, so it needs to be installed manually.
mkdir -p ${D}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/${BP}/none/tests/
@@ -238,7 +244,7 @@ do_install_ptest() {
# avoid stripping some generated binaries otherwise some of the tests will fail
# run-strip-reloc.sh, run-strip-strmerge.sh and so on will fail
-INHIBIT_PACKAGE_STRIP_FILES = "\
+INHIBIT_PACKAGE_STRIP_FILES += "\
${PKGD}${PTEST_PATH}/none/tests/tls \
${PKGD}${PTEST_PATH}/none/tests/tls.so \
${PKGD}${PTEST_PATH}/none/tests/tls2.so \
diff --git a/poky/meta/recipes-extended/acpica/acpica_20210105.bb b/poky/meta/recipes-extended/acpica/acpica_20210331.bb
index 0188dc8a1..e17bc94c3 100644
--- a/poky/meta/recipes-extended/acpica/acpica_20210105.bb
+++ b/poky/meta/recipes-extended/acpica/acpica_20210331.bb
@@ -17,7 +17,7 @@ COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
DEPENDS = "m4-native flex-native bison-native"
SRC_URI = "https://acpica.org/sites/acpica/files/acpica-unix-${PV}.tar.gz"
-SRC_URI[sha256sum] = "a9be7b749025e60f93fde2fe531bfe0d84a33641d3e0c9b0f6049f996dbb1ff8"
+SRC_URI[sha256sum] = "b49237a2c3df58b57310612ec3a6ebee69e1a525b5efeec7152faf32a03b7068"
UPSTREAM_CHECK_URI = "https://acpica.org/downloads"
diff --git a/poky/meta/recipes-extended/bash/bash.inc b/poky/meta/recipes-extended/bash/bash.inc
index d3e1dfdb3..7350601c6 100644
--- a/poky/meta/recipes-extended/bash/bash.inc
+++ b/poky/meta/recipes-extended/bash/bash.inc
@@ -91,6 +91,9 @@ do_install_append_class-target () {
do_install_ptest () {
make INSTALL_TEST_DIR=${D}${PTEST_PATH}/tests install-test
cp ${B}/Makefile ${D}${PTEST_PATH}
+ cp ${B}/config.h ${D}${PTEST_PATH}
+ cp ${B}/version.h ${D}${PTEST_PATH}
+ cp ${S}/y.tab.[ch] ${D}${PTEST_PATH}
install -D ${WORKDIR}/run-bash-ptests ${D}${PTEST_PATH}/run-bash-ptests
sed -i -e 's/^Makefile/_Makefile/' -e "s,--sysroot=${STAGING_DIR_TARGET},,g" \
-e 's|${DEBUG_PREFIX_MAP}||g' \
diff --git a/poky/meta/recipes-extended/cups/cups.inc b/poky/meta/recipes-extended/cups/cups.inc
index 244c87001..9faac0810 100644
--- a/poky/meta/recipes-extended/cups/cups.inc
+++ b/poky/meta/recipes-extended/cups/cups.inc
@@ -6,7 +6,7 @@ document types."
HOMEPAGE = "https://www.cups.org/"
SECTION = "console/utils"
LICENSE = "Apache-2.0"
-DEPENDS = "gnutls libpng jpeg dbus zlib libusb1"
+DEPENDS = "libpng jpeg dbus zlib libusb1"
SRC_URI = "https://github.com/apple/cups/releases/download/v${PV}/${BP}-source.tar.gz \
file://0001-use-echo-only-in-init.patch \
@@ -43,12 +43,12 @@ PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi',
${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd', d)}"
PACKAGECONFIG[avahi] = "--enable-avahi,--disable-avahi,avahi"
PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl"
+PACKAGECONFIG[gnutls] = "--enable-gnutls,--disable-gnutls,gnutls"
PACKAGECONFIG[pam] = "--enable-pam --with-pam-module=unix, --disable-pam, libpam"
PACKAGECONFIG[systemd] = "--with-systemd=${systemd_system_unitdir},--without-systemd,systemd"
PACKAGECONFIG[xinetd] = "--with-xinetd=${sysconfdir}/xinetd.d,--without-xinetd,xinetd"
EXTRA_OECONF = " \
- --enable-gnutls \
--enable-dbus \
--enable-browsing \
--disable-gssapi \
diff --git a/poky/meta/recipes-extended/diffutils/diffutils/0001-c-stack-stop-using-SIGSTKSZ.patch b/poky/meta/recipes-extended/diffutils/diffutils/0001-c-stack-stop-using-SIGSTKSZ.patch
new file mode 100644
index 000000000..50e627fa3
--- /dev/null
+++ b/poky/meta/recipes-extended/diffutils/diffutils/0001-c-stack-stop-using-SIGSTKSZ.patch
@@ -0,0 +1,84 @@
+From 87b3a8f9ceb2cf0a5c8b72e460465fb9ff2d62d9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 30 Apr 2021 17:40:36 -0700
+Subject: [PATCH] c-stack: stop using SIGSTKSZ
+
+This patch is required with glibc 2.34+
+based on gnulib [1]
+
+[1] https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=f9e2b20a12a230efa30f1d479563ae07d276a94b
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/c-stack.c | 22 +++++++++++++---------
+ 1 file changed, 13 insertions(+), 9 deletions(-)
+
+diff --git a/lib/c-stack.c b/lib/c-stack.c
+index 9bbe6fe..e0874c9 100644
+--- a/lib/c-stack.c
++++ b/lib/c-stack.c
+@@ -51,13 +51,14 @@
+ typedef struct sigaltstack stack_t;
+ #endif
+ #ifndef SIGSTKSZ
+-# define SIGSTKSZ 16384
+-#elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384
++#define get_sigstksz() (16384)
++#elif HAVE_LIBSIGSEGV
+ /* libsigsegv 2.6 through 2.8 have a bug where some architectures use
+ more than the Linux default of an 8k alternate stack when deciding
+ if a fault was caused by stack overflow. */
+-# undef SIGSTKSZ
+-# define SIGSTKSZ 16384
++#define get_sigstksz() ((SIGSTKSZ) < 16384 ? 16384 : (SIGSTKSZ))
++#else
++#define get_sigstksz() ((SIGSTKSZ))
+ #endif
+
+ #include <stdlib.h>
+@@ -136,7 +137,8 @@ die (int signo)
+ /* Storage for the alternate signal stack. */
+ static union
+ {
+- char buffer[SIGSTKSZ];
++ /* allocate buffer with size from get_sigstksz() */
++ char *buffer;
+
+ /* These other members are for proper alignment. There's no
+ standard way to guarantee stack alignment, but this seems enough
+@@ -208,10 +210,11 @@ c_stack_action (void (*action) (int))
+ program_error_message = _("program error");
+ stack_overflow_message = _("stack overflow");
+
++ alternate_signal_stack.buffer = malloc(get_sigstksz());
+ /* Always install the overflow handler. */
+ if (stackoverflow_install_handler (overflow_handler,
+ alternate_signal_stack.buffer,
+- sizeof alternate_signal_stack.buffer))
++ get_sigstksz()))
+ {
+ errno = ENOTSUP;
+ return -1;
+@@ -284,14 +287,15 @@ c_stack_action (void (*action) (int))
+ stack_t st;
+ struct sigaction act;
+ st.ss_flags = 0;
++ alternate_signal_stack.buffer = malloc(get_sigstksz());
+ # if SIGALTSTACK_SS_REVERSED
+ /* Irix mistakenly treats ss_sp as the upper bound, rather than
+ lower bound, of the alternate stack. */
+- st.ss_sp = alternate_signal_stack.buffer + SIGSTKSZ - sizeof (void *);
+- st.ss_size = sizeof alternate_signal_stack.buffer - sizeof (void *);
++ st.ss_sp = alternate_signal_stack.buffer + get_sigstksz() - sizeof (void *);
++ st.ss_size = get_sigstksz() - sizeof (void *);
+ # else
+ st.ss_sp = alternate_signal_stack.buffer;
+- st.ss_size = sizeof alternate_signal_stack.buffer;
++ st.ss_size = get_sigstksz();
+ # endif
+ r = sigaltstack (&st, NULL);
+ if (r != 0)
+--
+2.31.1
+
diff --git a/poky/meta/recipes-extended/diffutils/diffutils_3.7.bb b/poky/meta/recipes-extended/diffutils/diffutils_3.7.bb
index 8111ae606..b9a54fea5 100644
--- a/poky/meta/recipes-extended/diffutils/diffutils_3.7.bb
+++ b/poky/meta/recipes-extended/diffutils/diffutils_3.7.bb
@@ -6,6 +6,7 @@ require diffutils.inc
SRC_URI = "${GNU_MIRROR}/diffutils/diffutils-${PV}.tar.xz \
file://run-ptest \
file://0001-Skip-strip-trailing-cr-test-case.patch \
+ file://0001-c-stack-stop-using-SIGSTKSZ.patch \
"
SRC_URI[md5sum] = "4824adc0e95dbbf11dfbdfaad6a1e461"
diff --git a/poky/meta/recipes-extended/ghostscript/ghostscript_9.53.3.bb b/poky/meta/recipes-extended/ghostscript/ghostscript_9.54.0.bb
index cbf60c8c8..9ace037aa 100644
--- a/poky/meta/recipes-extended/ghostscript/ghostscript_9.53.3.bb
+++ b/poky/meta/recipes-extended/ghostscript/ghostscript_9.54.0.bb
@@ -41,7 +41,7 @@ SRC_URI_class-native = "${SRC_URI_BASE} \
file://base-genht.c-add-a-preprocessor-define-to-allow-fope.patch \
"
-SRC_URI[sha256sum] = "6eaf422f26a81854a230b80fd18aaef7e8d94d661485bd2e97e695b9dce7bf7f"
+SRC_URI[sha256sum] = "0646bb97f6f4d10a763f4919c54fa28b4fbdd3dff8e7de3410431c81762cade0"
# Put something like
#
diff --git a/poky/meta/recipes-extended/groff/groff_1.22.4.bb b/poky/meta/recipes-extended/groff/groff_1.22.4.bb
index 983cb9aea..f0e9eb6a8 100644
--- a/poky/meta/recipes-extended/groff/groff_1.22.4.bb
+++ b/poky/meta/recipes-extended/groff/groff_1.22.4.bb
@@ -62,6 +62,10 @@ do_install_append() {
rm -rf ${D}${bindir}/glilypond
rm -rf ${D}${libdir}/groff/glilypond
rm -rf ${D}${mandir}/man1/glilypond*
+
+ # not ship /usr/bin/grap2graph and its releated man files
+ rm -rf ${D}${bindir}/grap2graph
+ rm -rf ${D}${mandir}/man1/grap2graph*
}
do_install_append_class-native() {
diff --git a/poky/meta/recipes-extended/hdparm/hdparm_9.60.bb b/poky/meta/recipes-extended/hdparm/hdparm_9.61.bb
index 41f70b403..459a62a83 100644
--- a/poky/meta/recipes-extended/hdparm/hdparm_9.60.bb
+++ b/poky/meta/recipes-extended/hdparm/hdparm_9.61.bb
@@ -25,8 +25,8 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/hdparm/${BP}.tar.gz \
file://wiper.sh-fix-stat-path.patch \
"
-SRC_URI[md5sum] = "25a791d47236c58801f8b27074f3ef93"
-SRC_URI[sha256sum] = "8397739c73e44d5ab96c4aef28fa9c0147276d53a1b5657ce04c4565cf6635cc"
+SRC_URI[md5sum] = "3ef06831e83890f0ba48f7a252b93325"
+SRC_URI[sha256sum] = "da1a1c3887f10b8397e8e02013caa61142e0e72cb0d73997421ca2f2f4df5343"
EXTRA_OEMAKE = 'STRIP="echo" LDFLAGS="${LDFLAGS}"'
diff --git a/poky/meta/recipes-extended/libsolv/libsolv_0.7.17.bb b/poky/meta/recipes-extended/libsolv/libsolv_0.7.19.bb
index fa6e8a3c4..98e106f6f 100644
--- a/poky/meta/recipes-extended/libsolv/libsolv_0.7.17.bb
+++ b/poky/meta/recipes-extended/libsolv/libsolv_0.7.19.bb
@@ -11,7 +11,7 @@ DEPENDS = "expat zlib"
SRC_URI = "git://github.com/openSUSE/libsolv.git \
"
-SRCREV = "4bc791c0d235eb14bfe4c5da607206bfdfa6983d"
+SRCREV = "c773294be6b0a2425f344a8999f173fb00cfd16f"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-Add-more-musl-exclusions.patch b/poky/meta/recipes-extended/ltp/ltp/0001-Add-more-musl-exclusions.patch
deleted file mode 100644
index f2fc8ee95..000000000
--- a/poky/meta/recipes-extended/ltp/ltp/0001-Add-more-musl-exclusions.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From ad8e73306cb8293f7d32841e1599fd9048801f1f Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 20 Dec 2019 13:06:05 +0100
-Subject: [PATCH] Add more musl exclusions
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-[ pvorel: rebase for 20200515: enable accept4_01 ]
-[ pvorel: rebase for 20200120: enable fanotify13, fanotify15, setxattr03 ]
-Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
----
- testcases/kernel/syscalls/timer_create/Makefile | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/testcases/kernel/syscalls/timer_create/Makefile b/testcases/kernel/syscalls/timer_create/Makefile
-index ada241fe1..d454b01e7 100644
---- a/testcases/kernel/syscalls/timer_create/Makefile
-+++ b/testcases/kernel/syscalls/timer_create/Makefile
-@@ -5,6 +5,10 @@ top_srcdir ?= ../../../..
-
- include $(top_srcdir)/include/mk/testcases.mk
-
-+ifeq ($(LIBC),musl)
-+FILTER_OUT_MAKE_TARGETS := timer_create01 timer_create03
-+endif
-+
- CPPFLAGS += -D_GNU_SOURCE -I$(abs_srcdir)/../include
-
- LDLIBS += -lpthread -lrt
---
-2.26.2
-
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-build-Add-option-to-select-libc-implementation.patch b/poky/meta/recipes-extended/ltp/ltp/0001-build-Add-option-to-select-libc-implementation.patch
deleted file mode 100644
index 29b2bf7e4..000000000
--- a/poky/meta/recipes-extended/ltp/ltp/0001-build-Add-option-to-select-libc-implementation.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From 74958c3e341de713b596c8cfd35b2391d6c7bc09 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 7 Jan 2016 18:19:03 +0000
-Subject: [PATCH] build: Add option to select libc implementation
-
-There are more than glibc for C library implementation available on
-linux now a days, uclibc cloaked like glibc but musl e.g. is very
-different and does not implement all GNU extensions.
-
-Disable tests specifically not building _yet_ on musl based systems
-
-Upstream-Status: Pending (pvorel: this is not going to be fixed, instead
-each test needs to be fixed)
-
-rt_tgsigqueueinfo fails with:
-rt_tgsigqueueinfo01.c: In function 'sigusr1_handler':
-rt_tgsigqueueinfo01.c:42:22: error: 'siginfo_t' {aka 'struct <anonymous>'} has no member named '_sifields'; did you mean '__si_fields'?
- 42 | sigval_rcv = uinfo->_sifields._rt.SI_SIGVAL.sival_ptr;
- | ^~~~~~~~~
- | __si_fields
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-[ pvorel: rebase for 20200515: enable pty, ioctl ]
-[ pvorel: rebase for 20200120: enable mallopt, profil, rpc016,
-rt_sigsuspend, sbrk_mutex, setdomainname, sethostname, sigsuspend,
-testpi-3, testpi-5, testpi-6, ustat; move rt_tgsigqueueinfo
-from 0006-rt_tgsigqueueinfo-disable-test-on-musl.patch ]
-Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
----
- Makefile | 5 +++++
- testcases/kernel/sched/Makefile | 4 +++-
- testcases/kernel/syscalls/Makefile | 4 ++++
- 3 files changed, 12 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 768ca4606..e9d679a71 100644
---- a/Makefile
-+++ b/Makefile
-@@ -41,6 +41,11 @@ vpath %.mk $(top_srcdir)/mk:$(top_srcdir)/mk/include
- UCLINUX ?= 0
- export UCLINUX
-
-+# System C library implementation (glibc,uclibc,musl etc.)
-+# default to glibc if not set
-+LIBC ?= glibc
-+export LIBC
-+
- # CLEAN_TARGETS: Targets which exist solely in clean.
- # COMMON_TARGETS: Targets which exist in all, clean, and install.
- # INSTALL_TARGETS: Targets which exist in clean and install (contains
-diff --git a/testcases/kernel/sched/Makefile b/testcases/kernel/sched/Makefile
-index 6a57d79ee..74bb93370 100644
---- a/testcases/kernel/sched/Makefile
-+++ b/testcases/kernel/sched/Makefile
-@@ -23,5 +23,7 @@
- top_srcdir ?= ../../..
-
- include $(top_srcdir)/include/mk/env_pre.mk
--
-+ifeq ($(LIBC),musl)
-+ FILTER_OUT_DIRS += process_stress
-+endif
- include $(top_srcdir)/include/mk/generic_trunk_target.mk
-diff --git a/testcases/kernel/syscalls/Makefile b/testcases/kernel/syscalls/Makefile
-index c6dc8d9e7..aa50761ea 100644
---- a/testcases/kernel/syscalls/Makefile
-+++ b/testcases/kernel/syscalls/Makefile
-@@ -15,6 +15,10 @@ FILTER_OUT_DIRS += capget capset chmod chown clone fork getcontext llseek \
- mincore mprotect nftw profil remap_file_pages sbrk
- endif
-
-+ifeq ($(LIBC),musl)
-+FILTER_OUT_DIRS += confstr fmtmsg getcontext rt_tgsigqueueinfo
-+endif
-+
- ifeq ($(UCLIBC),1)
- FILTER_OUT_DIRS += profil
- endif
---
-2.26.2
-
diff --git a/poky/meta/recipes-extended/ltp/ltp_20210121.bb b/poky/meta/recipes-extended/ltp/ltp_20210121.bb
index f58ca2eb2..ffda71076 100644
--- a/poky/meta/recipes-extended/ltp/ltp_20210121.bb
+++ b/poky/meta/recipes-extended/ltp/ltp_20210121.bb
@@ -34,9 +34,7 @@ PR = "r4"
HASHEQUIV_HASH_VERSION .= ".4"
SRC_URI = "git://github.com/linux-test-project/ltp.git \
- file://0001-build-Add-option-to-select-libc-implementation.patch \
file://0007-Fix-test_proc_kill-hanging.patch \
- file://0001-Add-more-musl-exclusions.patch \
file://0001-Remove-OOM-tests-from-runtest-mm.patch \
file://determinism.patch \
file://0001-open_posix_testsuite-generate-makefiles.sh-Avoid-inc.patch \
@@ -61,7 +59,7 @@ EXTRA_OECONF += " --without-tirpc "
do_install(){
install -d ${D}${prefix}/
- oe_runmake DESTDIR=${D} SKIP_IDCHECK=1 install
+ oe_runmake DESTDIR=${D} SKIP_IDCHECK=1 install include-install
# fixup not deploy STPfailure_report.pl to avoid confusing about it fails to run
# as it lacks dependency on some perl moudle such as LWP::Simple
@@ -78,7 +76,8 @@ do_install(){
find ${D}${prefix} -name Makefile | xargs -n 1 sed -i \
-e 's@[^ ]*-fdebug-prefix-map=[^ "]*@@g' \
-e 's@[^ ]*-fmacro-prefix-map=[^ "]*@@g' \
- -e 's@[^ ]*--sysroot=[^ "]*@@g'
+ -e 's@[^ ]*-ffile-prefix-map=[^ "]*@@g' \
+ -e 's@[^ ]*--sysroot=[^ "]*@@g'
# The controllers memcg_stree test seems to cause us hangs and takes 900s
# (maybe we expect more regular output?), anyhow, skip it
@@ -121,6 +120,26 @@ FILES_${PN} += "${prefix}/* ${prefix}/runtest/* ${prefix}/scenario_groups/* ${pr
INHIBIT_PACKAGE_STRIP_FILES = "${prefix}/testcases/bin/nm01 ${prefix}/testcases/bin/ldd01"
INSANE_SKIP_${PN} += "already-stripped staticdev"
+remove_broken_musl_sources() {
+ [ "${TCLIBC}" = "musl" ] || return 0
+
+ cd ${S}
+ echo "WARNING: remove unsupported tests (until they're fixed)"
+
+ # sync with upstream
+ # https://github.com/linux-test-project/ltp/blob/master/travis/alpine.sh#L33
+ rm -rfv \
+ testcases/kernel/sched/process_stress/process.c \
+ testcases/kernel/syscalls/confstr/confstr01.c \
+ testcases/kernel/syscalls/fmtmsg/fmtmsg01.c \
+ testcases/kernel/syscalls/getcontext/getcontext01.c \
+ testcases/kernel/syscalls/rt_tgsigqueueinfo/rt_tgsigqueueinfo01.c \
+ testcases/kernel/syscalls/timer_create/timer_create01.c \
+ testcases/kernel/syscalls/timer_create/timer_create03.c \
+ utils/benchmark/ebizzy-0.3
+}
+do_patch[postfuncs] += "remove_broken_musl_sources"
+
# Avoid file dependency scans, as LTP checks for things that may or may not
# exist on the running system. For instance it has specific checks for
# csh and ksh which are not typically part of OpenEmbedded systems (but
diff --git a/poky/meta/recipes-extended/man-pages/man-pages_5.10.bb b/poky/meta/recipes-extended/man-pages/man-pages_5.11.bb
index 8874516aa..3cd0bc525 100644
--- a/poky/meta/recipes-extended/man-pages/man-pages_5.10.bb
+++ b/poky/meta/recipes-extended/man-pages/man-pages_5.11.bb
@@ -7,7 +7,7 @@ LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://README;md5=207f70f56526417514ac46b6680e314f"
SRC_URI = "${KERNELORG_MIRROR}/linux/docs/${BPN}/${BP}.tar.gz"
-SRC_URI[sha256sum] = "f2ce94a7250c49910db91806996699e1deac656097d4d53bdf56bdab4b61f228"
+SRC_URI[sha256sum] = "3759aee7cd4a229173d3cb651fbba438777bee6206da8d75ea04caaa7c8662b0"
inherit manpages
diff --git a/poky/meta/recipes-extended/pam/libpam/pam-volatiles.conf b/poky/meta/recipes-extended/pam/libpam/pam-volatiles.conf
new file mode 100644
index 000000000..d8b8259a9
--- /dev/null
+++ b/poky/meta/recipes-extended/pam/libpam/pam-volatiles.conf
@@ -0,0 +1 @@
+d /var/run/sepermit 0755 root root - -
diff --git a/poky/meta/recipes-extended/pam/libpam/run-ptest b/poky/meta/recipes-extended/pam/libpam/run-ptest
index 69e729ce2..9c304aee4 100644
--- a/poky/meta/recipes-extended/pam/libpam/run-ptest
+++ b/poky/meta/recipes-extended/pam/libpam/run-ptest
@@ -2,9 +2,10 @@
cd tests
+export srcdir=.
+
failed=0
all=0
-
for f in tst-*; do
"./$f" > /dev/null 2>&1
case "$?" in
@@ -28,4 +29,4 @@ if [ "$failed" -eq 0 ] ; then
else
echo "$failed of $all tests failed"
fi
-
+unset srcdir
diff --git a/poky/meta/recipes-extended/pam/libpam_1.3.1.bb b/poky/meta/recipes-extended/pam/libpam_1.3.1.bb
index adc641505..674193483 100644
--- a/poky/meta/recipes-extended/pam/libpam_1.3.1.bb
+++ b/poky/meta/recipes-extended/pam/libpam_1.3.1.bb
@@ -24,6 +24,7 @@ SRC_URI = "https://github.com/linux-pam/linux-pam/releases/download/v${PV}/Linux
file://pam-security-abstract-securetty-handling.patch \
file://pam-unix-nullok-secure.patch \
file://crypt_configure.patch \
+ file://pam-volatiles.conf \
"
SRC_URI[md5sum] = "558ff53b0fc0563ca97f79e911822165"
@@ -140,8 +141,18 @@ do_install() {
# don't install /var/run when populating rootfs. Do it through volatile
rm -rf ${D}${localstatedir}
- install -d ${D}${sysconfdir}/default/volatiles
- install -m 0644 ${WORKDIR}/99_pam ${D}${sysconfdir}/default/volatiles
+
+ if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','false','true',d)}; then
+ rm -rf ${D}${sysconfdir}/init.d/
+ rm -rf ${D}${sysconfdir}/rc*
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ install -m 0644 ${WORKDIR}/pam-volatiles.conf \
+ ${D}${sysconfdir}/tmpfiles.d/pam.conf
+ else
+ install -d ${D}${sysconfdir}/default/volatiles
+ install -m 0644 ${WORKDIR}/99_pam \
+ ${D}${sysconfdir}/default/volatiles/
+ fi
install -d ${D}${sysconfdir}/pam.d/
install -m 0644 ${WORKDIR}/pam.d/* ${D}${sysconfdir}/pam.d/
@@ -158,9 +169,16 @@ do_install_ptest() {
if [ ${PTEST_ENABLED} = "1" ]; then
mkdir -p ${D}${PTEST_PATH}/tests
install -m 0755 ${B}/tests/.libs/* ${D}${PTEST_PATH}/tests
+ install -m 0644 ${S}/tests/confdir ${D}${PTEST_PATH}/tests
fi
}
+pkg_postinst_${PN}() {
+ if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then
+ /etc/init.d/populate-volatile.sh update
+ fi
+}
+
inherit features_check
REQUIRED_DISTRO_FEATURES = "pam"
diff --git a/poky/meta/recipes-extended/unzip/unzip/unzip_optimization.patch b/poky/meta/recipes-extended/unzip/unzip/unzip_optimization.patch
new file mode 100644
index 000000000..4bab7b26a
--- /dev/null
+++ b/poky/meta/recipes-extended/unzip/unzip/unzip_optimization.patch
@@ -0,0 +1,127 @@
+unzip: use optimization from bitbake
+
+Remove -O3 optimizations to use bitbake default optimization levels.
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
+
+diff -rup unix-orig/configure unix/configure
+--- a/unix-orig/configure 2021-04-16 10:25:03.120858292 +0000
++++ b/unix/configure 2021-04-16 10:46:43.292546138 +0000
+@@ -70,7 +70,7 @@ int main()
+ _EOF_
+ $CC $CFLAGS -c conftest.c > /dev/null 2>/dev/null
+ if test $? -eq 0; then
+- CFLAGS_OPT='-O3'
++ CFLAGS_OPT=''
+ echo " DEC C ($CFLAGS_OPT)"
+ else
+ # HP-UX HP C?
+@@ -111,7 +111,7 @@ int main()
+ _EOF_
+ $CC $CFLAGS -c conftest.c > /dev/null 2>/dev/null
+ if test $? -eq 0; then
+- CFLAGS_OPT='-O3'
++ CFLAGS_OPT=''
+ echo " GNU C ($CFLAGS_OPT)"
+ # Special Mac OS X shared library "ld" option?
+ if test ` uname -s 2> /dev/null ` = 'Darwin'; then
+diff -rup unix-orig/Makefile unix/Makefile
+--- a/unix-orig/Makefile 2021-04-16 10:25:03.000863878 +0000
++++ b/unix/Makefile 2021-04-16 10:47:31.658299278 +0000
+@@ -47,7 +47,7 @@ LD = $(CC)# must match, else "unresolved
+ AS = as
+ LOC = $(D_USE_BZ2) $(LOCAL_UNZIP)
+ AF = $(LOC)
+-CFLAGS = -O
++CFLAGS =
+ CF_NOOPT = -I. -I$(IZ_BZIP2) -DUNIX $(LOC)
+ CF = $(CFLAGS) $(CF_NOOPT)
+ LFLAGS1 =
+@@ -594,12 +594,12 @@ generic_shlib: unix_make
+ @echo\
+ 'which is UnZip linked with the DLL). This target is an example only.'
+ @echo ""
+- $(MAKE) objsdll CC=gcc CFLAGS="-O3 -Wall -fPIC -DDLL"
++ $(MAKE) objsdll CC=gcc CFLAGS="-Wall -fPIC -DDLL"
+ gcc -shared -Wl,-soname,libunzip.so.0 -o libunzip.so.0.4 $(OBJSDLL)
+ $(RM) libunzip.so.0 libunzip.so
+ $(LN) -s libunzip.so.0.4 libunzip.so.0
+ $(LN) -s libunzip.so.0 libunzip.so
+- gcc -c -O unzipstb.c
++ gcc -c unzipstb.c
+ gcc -o unzip_shlib unzipstb.o -L. -lunzip
+
+ #----------------------------------------------------------------------------
+@@ -775,7 +775,7 @@ freebsd: unix_make
+ # with "echo" instead).
+ #
+ gcc: unix_make
+- $(MAKE) unzips CC=gcc LD=gcc CFLAGS="-O3" LF2=""
++ $(MAKE) unzips CC=gcc LD=gcc CFLAGS="" LF2=""
+
+ # Heurikon HK68 (68010), UniPlus+ System V 5.0, Green Hills C-68000
+ hk68: unix_make
+@@ -792,7 +792,7 @@ isc: unix_make
+ isc_gcc: unix_make
+ $(MAKE) unzips AS=gcc CC=gcc LD=gcc CRCA_O=crc_gcc$O \
+ LF="-shlib $(LF)" SL="-shlib $(SL)" FL="-shlib $(FL)" LF2="" \
+- CFLAGS="-O3" LOC="-DSYSV -DASM_CRC -DNO_UID_GID -DNEED_PTEM -DNO_LCHOWN -DNO_LCHMOD $(LOC)" \
++ CFLAGS="" LOC="-DSYSV -DASM_CRC -DNO_UID_GID -DNEED_PTEM -DNO_LCHOWN -DNO_LCHMOD $(LOC)" \
+ AF="-DNO_UNDERLINE -Djecxz=jcxz -DALIGNMENT='.align 16' $(AF)"
+ $(STRIP) $(UNZIPS)
+
+@@ -808,7 +808,7 @@ isi: unix_make
+ linux: unix_make
+ @echo 'NOTE: use linux_noasm target for non-Intel Linux compiles.'
+ $(MAKE) unzips CC=gcc LD=gcc AS=gcc\
+- CFLAGS="-O3 -Wall -DASM_CRC"\
++ CFLAGS="-Wall -DASM_CRC"\
+ AF="-Di386 $(AF)" CRCA_O=crc_gcc$O
+ # GRR: this echo is pointless; if user gets this far, no difference to install
+ # @echo 'Be sure to use the install_asm target rather than the install target'
+@@ -818,14 +818,14 @@ linux_asm: linux
+ # Linux (Posix, approximately SysV): virtually any version since before 0.96,
+ # for any platform. Change "-O" to "-O3" or whatever, as desired...
+ linux_noasm: unix_make
+- $(MAKE) unzips CC=gcc LD=gcc CFLAGS="-O -Wall"
++ $(MAKE) unzips CC=gcc LD=gcc CFLAGS="-Wall"
+
+ # Linux with lcc compiler: __inline__ (stat.h) not recognized, and must edit
+ # /usr/include/gnu/types.h to get rid of "long long" if __LCC__ defined. -O3
+ # (or -O2 or -O) is ignored. [GRR 960828: test target only]
+ #
+ linux_lcc: unix_make
+- $(MAKE) unzips CC=lcc LD=lcc CFLAGS="-O3 -Wall -D__inline__= "
++ $(MAKE) unzips CC=lcc LD=lcc CFLAGS="-Wall -D__inline__= "
+
+ # Linux host with go32 (djgpp) cross-compiler (go32crs.tgz) for 32-bit DOS.
+ linux_dos: unix_make
+@@ -844,7 +844,7 @@ linux_dos: unix_make
+ # library).
+ #
+ linux_shlib: unix_make
+- $(MAKE) objsdll CC=gcc CFLAGS="-O3 -Wall -fPIC"\
++ $(MAKE) objsdll CC=gcc CFLAGS="-Wall -fPIC"\
+ LOC="-DDLL -DASM_CRC $(LOC)"\
+ AS=gcc AF="-fPIC -Di386 $(AF)" CRCA_O=crc_gcc$O
+ gcc -shared -Wl,-soname,libunzip.so.0 -o libunzip.so.0.4 $(OBJSDLL)\
+@@ -858,7 +858,7 @@ linux_shlib: unix_make
+ # instead of the original UnZip version. (libz was libgz prior to 0.94)
+ linux_shlibz: unix_make
+ $(MAKE) objsdll CC=gcc AS=gcc AF="-fPIC -Di386 $(AF)" CRCA_O=crc_gcc$O\
+- CFLAGS="-O3 -Wall -fPIC" LOC="-DDLL -DUSE_ZLIB -DASM_CRC $(LOC)"
++ CFLAGS="-Wall -fPIC" LOC="-DDLL -DUSE_ZLIB -DASM_CRC $(LOC)"
+ gcc -shared -Wl,-soname,libunzip.so.0 -o libunzip.so.0.4 $(OBJSDLL)\
+ crc_gcc.pic.o
+ ln -sf libunzip.so.0.4 libunzip.so.0
+@@ -871,7 +871,7 @@ lynx: unix_make
+
+ # Macintosh MacOS X (Unix-compatible enviroment), using standard compiler
+ macosx: unix_make
+- $(MAKE) unzips CFLAGS="-O3 -Wall -DBSD" LF2=""
++ $(MAKE) unzips CFLAGS="-Wall -DBSD" LF2=""
+ $(STRIP) $(UNZIPS)
+
+ # Macintosh MacOS X (Unix-compatible enviroment), using gcc
diff --git a/poky/meta/recipes-extended/unzip/unzip_6.0.bb b/poky/meta/recipes-extended/unzip/unzip_6.0.bb
index 0c56a39d9..ec69508ee 100644
--- a/poky/meta/recipes-extended/unzip/unzip_6.0.bb
+++ b/poky/meta/recipes-extended/unzip/unzip_6.0.bb
@@ -26,6 +26,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/infozip/UnZip%206.x%20%28latest%29/UnZip%206.0/
file://CVE-2019-13232_p1.patch \
file://CVE-2019-13232_p2.patch \
file://CVE-2019-13232_p3.patch \
+ file://unzip_optimization.patch \
"
UPSTREAM_VERSION_UNKNOWN = "1"
diff --git a/poky/meta/recipes-gnome/epiphany/epiphany_3.38.2.bb b/poky/meta/recipes-gnome/epiphany/epiphany_3.38.3.bb
index 04f340f13..ce24336ac 100644
--- a/poky/meta/recipes-gnome/epiphany/epiphany_3.38.2.bb
+++ b/poky/meta/recipes-gnome/epiphany/epiphany_3.38.3.bb
@@ -6,7 +6,7 @@ BUGTRACKER = "https://gitlab.gnome.org/GNOME/epiphany"
LICENSE = "GPLv3+"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-DEPENDS = "libsoup-2.4 webkitgtk gtk+3 iso-codes avahi libnotify gcr \
+DEPENDS = "libsoup-2.4 webkitgtk gtk+3 iso-codes avahi libnotify gcr gnutls \
gsettings-desktop-schemas libxml2-native \
glib-2.0 glib-2.0-native json-glib libdazzle libhandy libportal"
@@ -19,7 +19,7 @@ SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}
file://migrator.patch \
file://distributor.patch \
"
-SRC_URI[archive.sha256sum] = "8b05f2bcc1e80ecf4a10f6f01b3285087eb4cbdf5741dffb8c0355715ef5116d"
+SRC_URI[archive.sha256sum] = "ce62c1fa3e442a9d6131fc884a6bc9a65cf06224c30d649c49624c2ebcb0d275"
# Developer mode enables debugging
PACKAGECONFIG[developer-mode] = "-Ddeveloper_mode=true,-Ddeveloper_mode=false"
diff --git a/poky/meta/recipes-gnome/gcr/gcr/0001-gcr-meson.build-fix-one-parallel-build-failure.patch b/poky/meta/recipes-gnome/gcr/gcr/0001-gcr-meson.build-fix-one-parallel-build-failure.patch
new file mode 100644
index 000000000..81c4bdbbc
--- /dev/null
+++ b/poky/meta/recipes-gnome/gcr/gcr/0001-gcr-meson.build-fix-one-parallel-build-failure.patch
@@ -0,0 +1,37 @@
+From cb3708bad88e713e4ccf705cb8c14c5996cd9d06 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Fri, 23 Apr 2021 16:32:38 +0800
+Subject: [PATCH] gcr/meson.build: fix one parallel build failure
+
+ui/gcr-live-search.c includes gcr/gcr-marshal.h. Because missing
+dependency, following error occurred intermittently during doing parallel
+build:
+
+ -o ui/libgcr-ui-3.so.1.0.0.p/gcr-live-search.c.o -c ../gcr-3.38.1/ui/gcr-live-search.c
+../gcr-3.38.1/ui/gcr-live-search.c:32:10: fatal error: gcr/gcr-marshal.h: No such file or directory
+ 32 | #include "gcr/gcr-marshal.h"
+ | ^~~~~~~~~~~~~~~~~~~
+compilation terminated.
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gcr/-/merge_requests/68/diffs]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ gcr/meson.build | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/gcr/meson.build b/gcr/meson.build
+index 06c3a63..d9d4b8f 100644
+--- a/gcr/meson.build
++++ b/gcr/meson.build
+@@ -181,6 +181,7 @@ gcr_base_dep = declare_dependency(
+ sources: [
+ gcr_enums_gen[1],
+ gcr_oids[1],
++ gcr_marshal_gen[1],
+ ],
+ )
+
+--
+2.17.1
+
diff --git a/poky/meta/recipes-gnome/gcr/gcr_3.38.1.bb b/poky/meta/recipes-gnome/gcr/gcr_3.40.0.bb
index 563087a36..14072ef58 100644
--- a/poky/meta/recipes-gnome/gcr/gcr_3.38.1.bb
+++ b/poky/meta/recipes-gnome/gcr/gcr_3.40.0.bb
@@ -17,7 +17,9 @@ GNOMEBASEBUILDCLASS = "meson"
GTKDOC_MESON_OPTION = "gtk_doc"
inherit gnomebase gtk-icon-cache gtk-doc features_check upstream-version-is-even vala gobject-introspection gettext mime mime-xdg
-SRC_URI[archive.sha256sum] = "17fcaf9c4a93a65fb1c72b82643bb102c13344084687d5886ea66313868d9ec9"
+SRC_URI += "file://0001-gcr-meson.build-fix-one-parallel-build-failure.patch"
+
+SRC_URI[archive.sha256sum] = "b9d3645a5fd953a54285cc64d4fc046736463dbd4dcc25caf5c7b59bed3027f5"
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)}"
PACKAGECONFIG[gtk] = "-Dgtk=true,-Dgtk=false,gtk+3"
diff --git a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-and-pixdata-cross-compile-fa.patch b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-and-pixdata-cross-compile-fa.patch
new file mode 100644
index 000000000..2aa916475
--- /dev/null
+++ b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-and-pixdata-cross-compile-fa.patch
@@ -0,0 +1,95 @@
+From dcaf3106e2cca27f728a8bd26127430500a1136e Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 22 Feb 2019 13:22:06 +0100
+Subject: [PATCH] Work-around thumbnailer and pixdata cross-compile failure
+
+Use native gdk-pixbuf-print-mime-types and gdk-pixbuf-pixdata
+when generating the thumbnail metadata and resources.
+
+This works but the mime types will come from native
+loader.cache (which will only contain in-tree loaders), not from the
+target loader.cache.
+
+The upstream issue is https://bugzilla.gnome.org/show_bug.cgi?id=779057
+
+Upstream-Status: Inappropriate [workaround]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
+---
+ tests/meson.build | 11 +++++++++--
+ thumbnailer/meson.build | 23 ++++++++++++++++++++++-
+ 2 files changed, 31 insertions(+), 3 deletions(-)
+
+diff --git a/tests/meson.build b/tests/meson.build
+index 7c6cb11..07121f1 100644
+--- a/tests/meson.build
++++ b/tests/meson.build
+@@ -8,13 +8,20 @@ if enabled_loaders.contains('png') and host_system != 'windows'
+ # Resources; we cannot use gnome.compile_resources() here, because we need to
+ # override the environment in order to use the utilities we just built instead
+ # of the system ones
++
++ if not meson.is_cross_build()
++ pixdata_binary = gdk_pixbuf_pixdata.full_path()
++ else
++ pixdata_binary = 'gdk-pixbuf-pixdata'
++ endif
++
+ resources_c = custom_target('resources.c',
+ input: 'resources.gresource.xml',
+ output: 'resources.c',
+ command: [
+ gen_resources,
+ '--glib-compile-resources=@0@'.format(glib_compile_resources.full_path()),
+- '--pixdata=@0@'.format(gdk_pixbuf_pixdata.full_path()),
++ '--pixdata=@0@'.format(pixdata_binary),
+ '--loaders=@0@'.format(loaders_cache.full_path()),
+ '--sourcedir=@0@'.format(meson.current_source_dir()),
+ '--source',
+@@ -33,7 +40,7 @@ if enabled_loaders.contains('png') and host_system != 'windows'
+ command: [
+ gen_resources,
+ '--glib-compile-resources=@0@'.format(glib_compile_resources.full_path()),
+- '--pixdata=@0@'.format(gdk_pixbuf_pixdata.full_path()),
++ '--pixdata=@0@'.format(pixdata_binary),
+ '--loaders=@0@'.format(loaders_cache.full_path()),
+ '--sourcedir=@0@'.format(meson.current_source_dir()),
+ '--header',
+diff --git a/thumbnailer/meson.build b/thumbnailer/meson.build
+index 8c741e0..5a3b52a 100644
+--- a/thumbnailer/meson.build
++++ b/thumbnailer/meson.build
+@@ -14,7 +14,27 @@ gdk_pixbuf_print_mime_types = executable('gdk-pixbuf-print-mime-types',
+ install: true,
+ dependencies: gdk_pixbuf_deps + [ gdkpixbuf_dep ])
+
+-custom_target('thumbnailer',
++if meson.is_cross_build()
++ custom_target('thumbnailer',
++ input: 'gdk-pixbuf-thumbnailer.thumbnailer.in',
++ output: 'gdk-pixbuf-thumbnailer.thumbnailer',
++ command: [
++ gen_thumbnailer,
++ '--printer=gdk-pixbuf-print-mime-types',
++ '--pixdata=@0@'.format(gdk_pixbuf_pixdata.full_path()),
++ '--loaders=@0@'.format(loaders_cache.full_path()),
++ '--bindir=@0@'.format(gdk_pixbuf_bindir),
++ '@INPUT@',
++ '@OUTPUT@',
++ ],
++ depends: [
++ gdk_pixbuf_print_mime_types,
++ gdk_pixbuf_pixdata,
++ ],
++ install: true,
++ install_dir: join_paths(gdk_pixbuf_datadir, 'thumbnailers'))
++else
++ custom_target('thumbnailer',
+ input: 'gdk-pixbuf-thumbnailer.thumbnailer.in',
+ output: 'gdk-pixbuf-thumbnailer.thumbnailer',
+ command: [
+@@ -33,3 +53,4 @@ custom_target('thumbnailer',
+ ],
+ install: true,
+ install_dir: join_paths(gdk_pixbuf_datadir, 'thumbnailers'))
++endif
diff --git a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0003-target-only-Work-around-thumbnailer-cross-compile-fa.patch b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0003-target-only-Work-around-thumbnailer-cross-compile-fa.patch
deleted file mode 100644
index a9c7600eb..000000000
--- a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0003-target-only-Work-around-thumbnailer-cross-compile-fa.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From 2d1b65bd1272ad63b7fbd4babd9a8e8c296d15b5 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 22 Feb 2019 13:22:06 +0100
-Subject: [PATCH] (target only) Work-around thumbnailer and pixdata
- cross-compile failure
-
-Use native gdk-pixbuf-print-mime-types and gdk-pixbuf-pixdata
-when generating the thumbnail metadata and resources.
-
-This works but the mime types will come from native
-loader.cache (which will only contain in-tree loaders), not from the
-target loader.cache.
-
-The upstream issue is https://bugzilla.gnome.org/show_bug.cgi?id=779057
-
-Upstream-Status: Inappropriate [workaround]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- build-aux/gen-thumbnailer.py | 2 --
- tests/meson.build | 11 +++++++++--
- thumbnailer/meson.build | 5 +----
- 3 files changed, 10 insertions(+), 8 deletions(-)
-
-diff --git a/build-aux/gen-thumbnailer.py b/build-aux/gen-thumbnailer.py
-index 05ac821..c5b99ab 100644
---- a/build-aux/gen-thumbnailer.py
-+++ b/build-aux/gen-thumbnailer.py
-@@ -20,8 +20,6 @@ argparser.add_argument('output', help='Output file')
- args = argparser.parse_args()
-
- newenv = os.environ.copy()
--newenv['GDK_PIXBUF_PIXDATA'] = args.pixdata
--newenv['GDK_PIXBUF_MODULE_FILE'] = args.loaders
- # 'nt': NT-based Windows, see https://docs.python.org/3/library/os.html
- if os.name == 'nt':
- gdk_pixbuf_dll_buildpath = os.path.dirname(args.pixdata)
-diff --git a/tests/meson.build b/tests/meson.build
-index 8ed7cc1..e011b77 100644
---- a/tests/meson.build
-+++ b/tests/meson.build
-@@ -1,12 +1,19 @@
- # Resources; we cannot use gnome.compile_resources() here, because we need to
- # override the environment in order to use the utilities we just built instead
- # of the system ones
-+
-+if not meson.is_cross_build()
-+pixdata_binary = gdk_pixbuf_pixdata.full_path()
-+else
-+pixdata_binary = 'gdk-pixbuf-pixdata'
-+endif
-+
- resources_c = custom_target('resources.c',
- input: 'resources.gresource.xml',
- output: 'resources.c',
- command: [
- gen_resources,
-- '--pixdata=@0@'.format(gdk_pixbuf_pixdata.full_path()),
-+ '--pixdata=@0@'.format(pixdata_binary),
- '--loaders=@0@'.format(loaders_cache.full_path()),
- '--sourcedir=@0@'.format(meson.current_source_dir()),
- '--source',
-@@ -24,7 +31,7 @@ resources_h = custom_target('resources.h',
- output: 'resources.h',
- command: [
- gen_resources,
-- '--pixdata=@0@'.format(gdk_pixbuf_pixdata.full_path()),
-+ '--pixdata=@0@'.format(pixdata_binary),
- '--loaders=@0@'.format(loaders_cache.full_path()),
- '--sourcedir=@0@'.format(meson.current_source_dir()),
- '--header',
-diff --git a/thumbnailer/meson.build b/thumbnailer/meson.build
-index aaafec8..71bd61b 100644
---- a/thumbnailer/meson.build
-+++ b/thumbnailer/meson.build
-@@ -18,9 +18,7 @@ custom_target('thumbnailer',
- output: 'gdk-pixbuf-thumbnailer.thumbnailer',
- command: [
- gen_thumbnailer,
-- '--printer=@0@'.format(gdk_pixbuf_print_mime_types.full_path()),
-- '--pixdata=@0@'.format(gdk_pixbuf_pixdata.full_path()),
-- '--loaders=@0@'.format(loaders_cache.full_path()),
-+ '--printer=gdk-pixbuf-print-mime-types',
- '--bindir=@0@'.format(gdk_pixbuf_bindir),
- '@INPUT@',
- '@OUTPUT@',
-@@ -28,7 +26,6 @@ custom_target('thumbnailer',
- depends: [
- gdk_pixbuf_print_mime_types,
- gdk_pixbuf_pixdata,
-- loaders_cache,
- ],
- install: true,
- install_dir: join_paths(gdk_pixbuf_datadir, 'thumbnailers'))
diff --git a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0004-Do-not-run-tests-when-building.patch b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0004-Do-not-run-tests-when-building.patch
deleted file mode 100644
index 96c546f27..000000000
--- a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0004-Do-not-run-tests-when-building.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 3c4a6c147ae8a0962ba9194373d8a41d14eed44f Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 22 Feb 2019 13:23:55 +0100
-Subject: [PATCH] Do not run tests when building
-
-Upstream-Status: Inappropriate [cross-compile specific]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- tests/meson.build | 17 -----------------
- 1 file changed, 17 deletions(-)
-
-diff --git a/tests/meson.build b/tests/meson.build
-index 4fa3fbc..6ef7884 100644
---- a/tests/meson.build
-+++ b/tests/meson.build
-@@ -138,23 +138,6 @@ foreach t: installed_tests
- install_dir: installed_test_bindir,
- )
-
-- # Two particularly slow tests
-- if test_suites.contains('slow')
-- timeout = 300
-- else
-- timeout = 30
-- endif
--
-- test(test_name, test_bin,
-- suite: test_suites,
-- args: [ '-k', '--tap' ],
-- env: [
-- 'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()),
-- 'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir()),
-- 'GDK_PIXBUF_MODULE_FILE=@0@'.format(loaders_cache.full_path()),
-- ],
-- timeout: timeout,
-- )
- endforeach
-
- executable('pixbuf-read',
diff --git a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch
index 0fe13a387..cd9f88bef 100644
--- a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch
+++ b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch
@@ -1,19 +1,20 @@
-From 1a532e090c558a830de9503f56e23414e880bb95 Mon Sep 17 00:00:00 2001
+From d02a8e202d2fe5caf3449683e0ccdf84a482a325 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Wed, 5 Jun 2019 14:17:55 +0200
Subject: [PATCH] Build thumbnailer and tests also in cross builds.
Upstream-Status: Inappropriate [relies on oe-core specific hacks]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
---
meson.build | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/meson.build b/meson.build
-index d104cea..7acb88a 100644
+index 73034d1..d114016 100644
--- a/meson.build
+++ b/meson.build
-@@ -397,10 +397,8 @@ endif
+@@ -378,10 +378,8 @@ subdir('gdk-pixbuf')
# i18n
subdir('po')
@@ -25,4 +26,4 @@ index d104cea..7acb88a 100644
+subdir('thumbnailer')
# Documentation
- subdir('docs')
+ build_docs = get_option('gtk_doc') or get_option('docs')
diff --git a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/CVE-2020-29385.patch b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/CVE-2020-29385.patch
deleted file mode 100644
index 3fef2bc1e..000000000
--- a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/CVE-2020-29385.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From bdd3acbd48a575d418ba6bf1b32d7bda2fae1c81 Mon Sep 17 00:00:00 2001
-From: Robert Ancell <robert.ancell@canonical.com>
-Date: Mon, 30 Nov 2020 12:26:12 +1300
-Subject: [PATCH 02/13] gif: Fix LZW decoder accepting invalid LZW code.
-
-The code value after a reset wasn't being validated, which means we would
-accept invalid codes. This could cause an infinite loop in the decoder.
-
-Fixes CVE-2020-29385
-
-Fixes https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/issues/164
-
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/commit/bdd3acbd48a575d418ba6bf1b32d7bda2fae1c81]
-CVE: CVE-2020-29385
-Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
-
----
- gdk-pixbuf/lzw.c | 13 +++++++------
- 1 files changed, 7 insertions(+), 6 deletions(-)
- create mode 100644 tests/test-images/fail/hang_114.gif
-
-diff --git a/gdk-pixbuf/lzw.c b/gdk-pixbuf/lzw.c
-index 9e052a6f7..105daf2b1 100644
---- a/gdk-pixbuf/lzw.c
-+++ b/gdk-pixbuf/lzw.c
-@@ -195,19 +195,20 @@ lzw_decoder_feed (LZWDecoder *self,
- if (self->last_code != self->clear_code && self->code_table_size < MAX_CODES) {
- if (self->code < self->code_table_size)
- add_code (self, self->code);
-- else if (self->code == self->code_table_size)
-+ else
- add_code (self, self->last_code);
-- else {
-- /* Invalid code received - just stop here */
-- self->last_code = self->eoi_code;
-- return output_length;
-- }
-
- /* When table is full increase code size */
- if (self->code_table_size == (1 << self->code_size) && self->code_size < LZW_CODE_MAX)
- self->code_size++;
- }
-
-+ /* Invalid code received - just stop here */
-+ if (self->code >= self->code_table_size) {
-+ self->last_code = self->eoi_code;
-+ return output_length;
-+ }
-+
- /* Convert codeword into indexes */
- n_written += write_indexes (self, output + n_written, output_length - n_written);
- }
---
-2.25.1
-
diff --git a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/missing-test-data.patch b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/missing-test-data.patch
deleted file mode 100644
index 6c758fd61..000000000
--- a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/missing-test-data.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From d8d231c01ef2e59856da8a5c26ace955e5f29370 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@intel.com>
-Date: Mon, 25 Nov 2019 17:05:46 +0000
-Subject: [PATCH] tests: install circular-table.gif
-
-This test data was added for the pixbuf-gif-circular-table test (added October
-2018 in 0b9d004) but because the file was never actually installed the installed
-test suite never passes.
----
- tests/meson.build | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/tests/meson.build b/tests/meson.build
-index 5116fc2b9..80ed3e8b2 100644
---- a/tests/meson.build
-+++ b/tests/meson.build
-@@ -97,6 +97,7 @@ test_data = [
- 'bug775693.pixdata',
- 'bug775229.pixdata',
- 'aero.gif',
-+ 'circular-table.gif'
- ]
-
- installed_test_bindir = join_paths(gdk_pixbuf_libexecdir, 'installed-tests', meson.project_name())
---
-2.20.1
-
diff --git a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.40.0.bb b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.6.bb
index 226e1c7b8..2734a11f9 100644
--- a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.40.0.bb
+++ b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.6.bb
@@ -22,41 +22,30 @@ SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
file://fatal-loader.patch \
file://0001-Work-around-thumbnailer-cross-compile-failure.patch \
file://0001-Fix-a-couple-of-decisions-around-cross-compilation.patch \
- file://0004-Do-not-run-tests-when-building.patch \
file://0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch \
- file://missing-test-data.patch \
- file://CVE-2020-29385.patch \
+ file://0001-Work-around-thumbnailer-and-pixdata-cross-compile-fa.patch \
"
-SRC_URI_append_class-target = " \
- file://0003-target-only-Work-around-thumbnailer-cross-compile-fa.patch \
- "
-SRC_URI_append_class-nativesdk = " \
- file://0003-target-only-Work-around-thumbnailer-cross-compile-fa.patch \
- "
-
-SRC_URI[md5sum] = "05eb1ebc258ba905f1c8644ef49de064"
-SRC_URI[sha256sum] = "1582595099537ca8ff3b99c6804350b4c058bb8ad67411bbaae024ee7cead4e6"
+SRC_URI[sha256sum] = "c4a6b75b7ed8f58ca48da830b9fa00ed96d668d3ab4b1f723dcf902f78bde77f"
inherit meson pkgconfig gettext pixbufcache ptest-gnome upstream-version-is-even gobject-introspection gtk-doc lib_package
-GIR_MESON_OPTION = 'gir'
+GIR_MESON_OPTION = 'introspection'
+GIR_MESON_ENABLE_FLAG = "enabled"
+GIR_MESON_DISABLE_FLAG = "disabled"
LIBV = "2.10.0"
GDK_PIXBUF_LOADERS ?= "png jpeg"
PACKAGECONFIG = "${GDK_PIXBUF_LOADERS} \
- ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} \
${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
PACKAGECONFIG_class-native = "${GDK_PIXBUF_LOADERS}"
PACKAGECONFIG[png] = "-Dpng=true,-Dpng=false,libpng"
PACKAGECONFIG[jpeg] = "-Djpeg=true,-Djpeg=false,jpeg"
PACKAGECONFIG[tiff] = "-Dtiff=true,-Dtiff=false,tiff"
-PACKAGECONFIG[jpeg2000] = "-Djasper=true,-Djasper=false,jasper"
PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false"
-PACKAGECONFIG[x11] = "-Dx11=true,-Dx11=false,virtual/libx11"
PACKAGES =+ "${PN}-xlib"
diff --git a/poky/meta/recipes-gnome/libdazzle/libdazzle_3.38.0.bb b/poky/meta/recipes-gnome/libdazzle/libdazzle_3.40.0.bb
index a2a1aed7b..ff9088a62 100644
--- a/poky/meta/recipes-gnome/libdazzle/libdazzle_3.38.0.bb
+++ b/poky/meta/recipes-gnome/libdazzle/libdazzle_3.40.0.bb
@@ -12,7 +12,7 @@ inherit gnomebase upstream-version-is-even vala features_check gobject-introspec
DEPENDS = "glib-2.0-native glib-2.0 gtk+3"
-SRC_URI[archive.sha256sum] = "e18af28217943bcec106585298a91ec3da48aa3ad62fd0992f23f0c70cd1678f"
+SRC_URI[archive.sha256sum] = "dba99a7e65fa6662c012b306e5d0f99ff3b466a46059ea7aa0104aaf65ce4ba5"
GIR_MESON_OPTION = 'with_introspection'
diff --git a/poky/meta/recipes-gnome/libhandy/libhandy_1.2.0.bb b/poky/meta/recipes-gnome/libhandy/libhandy_1.2.2.bb
index 1e37feb20..9652948a3 100644
--- a/poky/meta/recipes-gnome/libhandy/libhandy_1.2.0.bb
+++ b/poky/meta/recipes-gnome/libhandy/libhandy_1.2.2.bb
@@ -10,7 +10,7 @@ LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
SRC_URI = "git://gitlab.gnome.org/GNOME/libhandy.git;protocol=https"
-SRCREV = "7b38a860ffcec6c2ad28153358cc3d037ddb618f"
+SRCREV = "09f36006b26f41a2bb383b0c853e954c5792cfe1"
S = "${WORKDIR}/git"
GIR_MESON_ENABLE_FLAG = 'enabled'
diff --git a/poky/meta/recipes-gnome/libportal/libportal_0.3.bb b/poky/meta/recipes-gnome/libportal/libportal_0.4.bb
index bc4ff3784..03e681f58 100644
--- a/poky/meta/recipes-gnome/libportal/libportal_0.3.bb
+++ b/poky/meta/recipes-gnome/libportal/libportal_0.4.bb
@@ -7,7 +7,7 @@ LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
SRC_URI = "git://github.com/flatpak/${BPN}.git;protocol=https"
-SRCREV = "a609e06d0c4adc5c510cf9ac7b060db3d368e78f"
+SRCREV = "f68764e288ede516d902b131cc4fadded3804059"
S = "${WORKDIR}/git"
GTKDOC_MESON_OPTION = 'gtk_doc'
diff --git a/poky/meta/recipes-graphics/drm/libdrm/0001-meson-Also-search-for-rst2man.py.patch b/poky/meta/recipes-graphics/drm/libdrm/0001-meson-Also-search-for-rst2man.py.patch
deleted file mode 100644
index 67fafd40c..000000000
--- a/poky/meta/recipes-graphics/drm/libdrm/0001-meson-Also-search-for-rst2man.py.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 4129a8c6911b6b0ef3665cb167da6b635c29614d Mon Sep 17 00:00:00 2001
-From: Wang Mingyu <wangmy@cn.fujitsu.com>
-Date: Mon, 8 Feb 2021 17:30:52 +0900
-Subject: [PATCH] meson: Also search for rst2man.py
-
-That's what upstream docutils installs by default.
-
-Upstream-Status: Backport [https://gitlab.freedesktop.org/mesa/drm/-/commit/62b9a3eee9bdaafa766e92d5bebeb4e59845c45a]
-
-Signed-off-by: Heiko Becker's avatarHeiko Becker <heirecka@exherbo.org>
----
- meson.build | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index a4d8d70..07d2e08 100644
---- a/meson.build
-+++ b/meson.build
-@@ -261,7 +261,7 @@ else
- endif
-
- with_man_pages = get_option('man-pages')
--prog_rst2man = find_program('rst2man', required: with_man_pages == 'true')
-+prog_rst2man = find_program('rst2man', 'rst2man.py', required: with_man_pages == 'true')
- with_man_pages = with_man_pages != 'false' and prog_rst2man.found()
-
- config.set10('HAVE_VISIBILITY',
---
-2.25.1
-
diff --git a/poky/meta/recipes-graphics/drm/libdrm_2.4.104.bb b/poky/meta/recipes-graphics/drm/libdrm_2.4.105.bb
index ff869d6db..8cb82ad12 100644
--- a/poky/meta/recipes-graphics/drm/libdrm_2.4.104.bb
+++ b/poky/meta/recipes-graphics/drm/libdrm_2.4.105.bb
@@ -11,10 +11,9 @@ PROVIDES = "drm"
DEPENDS = "libpthread-stubs"
SRC_URI = "http://dri.freedesktop.org/libdrm/${BP}.tar.xz \
- file://0001-meson-Also-search-for-rst2man.py.patch \
"
-SRC_URI[sha256sum] = "d66ad8b5c2441015ac1333e40137bb803c3bde3612ff040286fcc12158ea1bcb"
+SRC_URI[sha256sum] = "1d1d024b7cadc63e2b59cddaca94f78864940ab440843841113fbac6afaf2a46"
inherit meson pkgconfig manpages
diff --git a/poky/meta/recipes-graphics/glslang/glslang/0001-generate-glslang-pkg-config.patch b/poky/meta/recipes-graphics/glslang/glslang/0001-generate-glslang-pkg-config.patch
index ef092f17a..cddd33097 100644
--- a/poky/meta/recipes-graphics/glslang/glslang/0001-generate-glslang-pkg-config.patch
+++ b/poky/meta/recipes-graphics/glslang/glslang/0001-generate-glslang-pkg-config.patch
@@ -34,14 +34,14 @@ index 00000000..64b6882d
--- /dev/null
+++ b/glslang/glslang.pc.cmake.in
@@ -0,0 +1,11 @@
-+ prefix=@CMAKE_INSTALL_PREFIX@
-+ exec_prefix=@CMAKE_INSTALL_PREFIX@
-+ libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
-+ includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
-+
-+ Name: @PROJECT_NAME@
-+ Description: OpenGL and OpenGL ES shader front end and validator
-+ Requires:
-+ Version: @GLSLANG_VERSION@
-+ Libs: -L${libdir} -lglslang -lOSDependent -lHLSL -lOGLCompiler -lSPVRemapper
-+ Cflags: -I${includedir}
++prefix=@CMAKE_INSTALL_PREFIX@
++exec_prefix=@CMAKE_INSTALL_PREFIX@
++libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
++includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
++
++Name: @PROJECT_NAME@
++Description: OpenGL and OpenGL ES shader front end and validator
++Requires:
++Version: @GLSLANG_VERSION@
++Libs: -L${libdir} -lglslang -lOSDependent -lHLSL -lOGLCompiler -lSPVRemapper
++Cflags: -I${includedir}
diff --git a/poky/meta/recipes-graphics/glslang/glslang_11.2.0.bb b/poky/meta/recipes-graphics/glslang/glslang_11.4.0.bb
index 902f7345f..fd4cf6d53 100644
--- a/poky/meta/recipes-graphics/glslang/glslang_11.2.0.bb
+++ b/poky/meta/recipes-graphics/glslang/glslang_11.4.0.bb
@@ -8,7 +8,7 @@ HOMEPAGE = "https://www.khronos.org/opengles/sdk/tools/Reference-Compiler"
LICENSE = "BSD-3-Clause & BSD-2-Clause & MIT & Apache-2.0 & GPL-3-with-bison-exception"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c5ce49c0456e9b413b98a4368c378229"
-SRCREV = "5421877c380d5f92c1965c7a94620dac861297dd"
+SRCREV = "18eef33bd7a4bf5ad8c69f99cb72022608cf6e73"
SRC_URI = "git://github.com/KhronosGroup/glslang.git;protocol=https \
file://0001-generate-glslang-pkg-config.patch"
UPSTREAM_CHECK_GITTAGREGEX = "^(?P<pver>\d+(\.\d+)+)$"
diff --git a/poky/meta/recipes-graphics/images/core-image-weston-ptest-all.bb b/poky/meta/recipes-graphics/images/core-image-weston-ptest-all.bb
new file mode 100644
index 000000000..a622779e6
--- /dev/null
+++ b/poky/meta/recipes-graphics/images/core-image-weston-ptest-all.bb
@@ -0,0 +1,21 @@
+require core-image-weston-sdk.bb
+require conf/distro/include/ptest-packagelists.inc
+
+DESCRIPTION += "Also includes ptest packages."
+
+# Include the full set of ptests
+IMAGE_INSTALL += "${PTESTS_FAST} ${PTESTS_SLOW}"
+
+# This image is sufficiently large (~1.8GB) that we need to be careful that it fits in a live
+# image (which has a 4GB limit), so nullify the overhead factor (1.3x out of the
+# box) and explicitly add just 1100MB.
+# strace-ptest in particular needs more than 500MB
+IMAGE_OVERHEAD_FACTOR = "1.0"
+IMAGE_ROOTFS_EXTRA_SPACE = "1124288"
+
+# ptests need more memory than standard to avoid the OOM killer
+# also lttng-tools needs /tmp that has at least 1G
+QB_MEM = "-m 2048"
+
+# Sadly at the moment the full set of ptests is not robust enough and sporadically fails in random places
+PTEST_EXPECT_FAILURE = "1"
diff --git a/poky/meta/recipes-graphics/images/core-image-weston-ptest-fast.bb b/poky/meta/recipes-graphics/images/core-image-weston-ptest-fast.bb
new file mode 100644
index 000000000..df02befb6
--- /dev/null
+++ b/poky/meta/recipes-graphics/images/core-image-weston-ptest-fast.bb
@@ -0,0 +1,20 @@
+require core-image-weston-sdk.bb
+require conf/distro/include/ptest-packagelists.inc
+
+# Include only fast (< 30 sec) ptests
+IMAGE_INSTALL += "${PTESTS_FAST}"
+
+DESCRIPTION += "Also includes ptest packages with fast execution times to allow for more automated QA."
+
+# This image is sufficiently large (~1.8GB) that it can't actually fit in a live
+# image (which has a 4GB limit), so nullify the overhead factor (1.3x out of the
+# box) and explicitly add just 1500MB.
+# strace-ptest in particular needs more than 500MB
+IMAGE_OVERHEAD_FACTOR = "1.0"
+IMAGE_ROOTFS_EXTRA_SPACE = "1524288"
+
+# ptests need more memory than standard to avoid the OOM killer
+QB_MEM = "-m 1024"
+
+# Sadly at the moment the fast set of ptests is not robust enough and sporadically fails in a couple of places
+PTEST_EXPECT_FAILURE = "1"
diff --git a/poky/meta/recipes-graphics/images/core-image-weston-sdk.bb b/poky/meta/recipes-graphics/images/core-image-weston-sdk.bb
new file mode 100644
index 000000000..f5f7dade5
--- /dev/null
+++ b/poky/meta/recipes-graphics/images/core-image-weston-sdk.bb
@@ -0,0 +1,11 @@
+require core-image-weston.bb
+
+DESCRIPTION = "Image with Weston support that includes everything within \
+core-image-weston plus meta-toolchain, development headers and libraries to \
+form a standalone SDK."
+
+IMAGE_FEATURES += "dev-pkgs tools-sdk \
+ tools-debug eclipse-debug tools-profile tools-testapps debug-tweaks ssh-server-openssh"
+
+IMAGE_INSTALL += "kernel-devsrc"
+
diff --git a/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.6.bb b/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.6.bb
index b6efc6bca..0bd6af8db 100644
--- a/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.6.bb
+++ b/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.6.bb
@@ -29,7 +29,7 @@ RCONFLICTS_${PN} += "jpeg"
inherit cmake pkgconfig
-export NASMENV = "--debug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
+export NASMENV = "--reproducible --debug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
# Add nasm-native dependency consistently for all build arches is hard
EXTRA_OECMAKE_append_class-native = " -DWITH_SIMD=False"
diff --git a/poky/meta/recipes-graphics/libva/libva-initial_2.10.0.bb b/poky/meta/recipes-graphics/libva/libva-initial_2.11.0.bb
index 5c6abeafe..5c6abeafe 100644
--- a/poky/meta/recipes-graphics/libva/libva-initial_2.10.0.bb
+++ b/poky/meta/recipes-graphics/libva/libva-initial_2.11.0.bb
diff --git a/poky/meta/recipes-graphics/libva/libva-utils_2.10.0.bb b/poky/meta/recipes-graphics/libva/libva-utils_2.11.1.bb
index 828f4fb31..096d80b68 100644
--- a/poky/meta/recipes-graphics/libva/libva-utils_2.10.0.bb
+++ b/poky/meta/recipes-graphics/libva/libva-utils_2.11.1.bb
@@ -14,8 +14,8 @@ SECTION = "x11"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=b148fc8adf19dc9aec17cf9cd29a9a5e"
-SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.10-branch"
-SRCREV = "f112ee75fcd1472131b20f901b93f6ac1d293fad"
+SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.11-branch"
+SRCREV = "c0145a895ebe9b24cde5c441733f90482f1e3d71"
S = "${WORKDIR}/git"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))$"
diff --git a/poky/meta/recipes-graphics/libva/libva.inc b/poky/meta/recipes-graphics/libva/libva.inc
index d251afa12..43d916cd1 100644
--- a/poky/meta/recipes-graphics/libva/libva.inc
+++ b/poky/meta/recipes-graphics/libva/libva.inc
@@ -18,7 +18,7 @@ LICENSE = "MIT"
SRC_URI = "https://github.com/intel/libva/releases/download/${PV}/libva-${PV}.tar.bz2"
LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f"
-SRC_URI[sha256sum] = "fa81e35b50d9818fce5ec9eeeeff08a24a8864ceeb9a5c8e7ae4446eacfc0236"
+SRC_URI[sha256sum] = "6e361117038b571ad4741d38c9280db8c140b17e76e8c01fc7a4d608d3ed7d5d"
S = "${WORKDIR}/libva-${PV}"
diff --git a/poky/meta/recipes-graphics/libva/libva_2.10.0.bb b/poky/meta/recipes-graphics/libva/libva_2.11.0.bb
index 4d3fa5096..4d3fa5096 100644
--- a/poky/meta/recipes-graphics/libva/libva_2.10.0.bb
+++ b/poky/meta/recipes-graphics/libva/libva_2.11.0.bb
diff --git a/poky/meta/recipes-graphics/mesa/mesa-gl_21.0.1.bb b/poky/meta/recipes-graphics/mesa/mesa-gl_21.0.3.bb
index dff79f0be..dff79f0be 100644
--- a/poky/meta/recipes-graphics/mesa/mesa-gl_21.0.1.bb
+++ b/poky/meta/recipes-graphics/mesa/mesa-gl_21.0.3.bb
diff --git a/poky/meta/recipes-graphics/mesa/mesa.inc b/poky/meta/recipes-graphics/mesa/mesa.inc
index caf3c62ad..a85f94c75 100644
--- a/poky/meta/recipes-graphics/mesa/mesa.inc
+++ b/poky/meta/recipes-graphics/mesa/mesa.inc
@@ -21,7 +21,7 @@ SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \
file://0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch \
"
-SRC_URI[sha256sum] = "379fc984459394f2ab2d84049efdc3a659869dc1328ce72ef0598506611712bb"
+SRC_URI[sha256sum] = "565c6f4bd2d5747b919454fc1d439963024fc78ca56fd05158c3b2cde2f6912b"
UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)"
diff --git a/poky/meta/recipes-graphics/mesa/mesa_21.0.1.bb b/poky/meta/recipes-graphics/mesa/mesa_21.0.3.bb
index 8c584d8e9..8c584d8e9 100644
--- a/poky/meta/recipes-graphics/mesa/mesa_21.0.1.bb
+++ b/poky/meta/recipes-graphics/mesa/mesa_21.0.3.bb
diff --git a/poky/meta/recipes-graphics/pango/pango_1.48.2.bb b/poky/meta/recipes-graphics/pango/pango_1.48.2.bb
index 1dcb43b5e..aa279bb50 100644
--- a/poky/meta/recipes-graphics/pango/pango_1.48.2.bb
+++ b/poky/meta/recipes-graphics/pango/pango_1.48.2.bb
@@ -18,6 +18,8 @@ inherit gnomebase gtk-doc ptest-gnome upstream-version-is-even gobject-introspec
GIR_MESON_ENABLE_FLAG = "enabled"
GIR_MESON_DISABLE_FLAG = "disabled"
+SRC_URI += "file://run-ptest"
+
SRC_URI[archive.sha256sum] = "d21f8b30dc8abdfc55de25656ecb88dc1105eeeb315e5e2a980dcef8010c2c80"
DEPENDS = "glib-2.0 glib-2.0-native fontconfig freetype virtual/libiconv cairo harfbuzz fribidi"
diff --git a/poky/meta/recipes-graphics/vulkan/assimp_5.0.1.bb b/poky/meta/recipes-graphics/vulkan/assimp_5.0.1.bb
index 5a8c62e64..4eb0cefff 100644
--- a/poky/meta/recipes-graphics/vulkan/assimp_5.0.1.bb
+++ b/poky/meta/recipes-graphics/vulkan/assimp_5.0.1.bb
@@ -21,3 +21,5 @@ S = "${WORKDIR}/git"
inherit cmake
EXTRA_OECMAKE = "-DASSIMP_BUILD_ASSIMP_TOOLS=OFF -DASSIMP_BUILD_TESTS=OFF -DASSIMP_LIB_INSTALL_DIR=${baselib}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/wayland/weston/0001-meson.build-fix-incorrect-header.patch b/poky/meta/recipes-graphics/wayland/weston/0001-meson.build-fix-incorrect-header.patch
new file mode 100644
index 000000000..06e0f7bae
--- /dev/null
+++ b/poky/meta/recipes-graphics/wayland/weston/0001-meson.build-fix-incorrect-header.patch
@@ -0,0 +1,32 @@
+From a2ba4714a6872e547621d29d9ddcb0f374b88cf6 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Tue, 20 Apr 2021 20:42:18 -0700
+Subject: [PATCH] meson.build: fix incorrect header
+
+The wayland.c actually include 'xdg-shell-client-protocol.h' instead of
+the server one, so fix it. Otherwise, it's possible to get build failure
+due to race condition.
+
+Upstream-Status: Pending
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ libweston/backend-wayland/meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libweston/backend-wayland/meson.build b/libweston/backend-wayland/meson.build
+index 7e82513..29270b5 100644
+--- a/libweston/backend-wayland/meson.build
++++ b/libweston/backend-wayland/meson.build
+@@ -10,7 +10,7 @@ srcs_wlwl = [
+ fullscreen_shell_unstable_v1_protocol_c,
+ presentation_time_protocol_c,
+ presentation_time_server_protocol_h,
+- xdg_shell_server_protocol_h,
++ xdg_shell_client_protocol_h,
+ xdg_shell_protocol_c,
+ ]
+
+--
+2.30.2
+
diff --git a/poky/meta/recipes-graphics/wayland/weston/xwayland.weston-start b/poky/meta/recipes-graphics/wayland/weston/xwayland.weston-start
index b483c97cf..db384b1a5 100644
--- a/poky/meta/recipes-graphics/wayland/weston/xwayland.weston-start
+++ b/poky/meta/recipes-graphics/wayland/weston/xwayland.weston-start
@@ -2,6 +2,4 @@
if type Xwayland >/dev/null 2>/dev/null; then
mkdir -p /tmp/.X11-unix
-
- add_weston_argument "--modules=xwayland.so"
fi
diff --git a/poky/meta/recipes-graphics/wayland/weston_9.0.0.bb b/poky/meta/recipes-graphics/wayland/weston_9.0.0.bb
index 50fbfa613..ce2b7d4f3 100644
--- a/poky/meta/recipes-graphics/wayland/weston_9.0.0.bb
+++ b/poky/meta/recipes-graphics/wayland/weston_9.0.0.bb
@@ -11,6 +11,7 @@ SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
file://xwayland.weston-start \
file://0001-weston-launch-Provide-a-default-version-that-doesn-t.patch \
file://0001-tests-include-fcntl.h-for-open-O_RDWR-O_CLOEXEC-and-.patch \
+ file://0001-meson.build-fix-incorrect-header.patch \
"
SRC_URI_append_libc-musl = " file://dont-use-plane-add-prop.patch "
@@ -124,7 +125,7 @@ SUMMARY_libweston-${WESTON_MAJOR_VERSION} = "Helper library for implementing 'wa
FILES_${PN}-examples = "${bindir}/*"
FILES_${PN}-xwayland = "${libdir}/libweston-${WESTON_MAJOR_VERSION}/xwayland.so"
-RDEPENDS_${PN}-xwayland += "xserver-xorg-xwayland"
+RDEPENDS_${PN}-xwayland += "xwayland"
RDEPENDS_${PN} += "xkeyboard-config"
RRECOMMENDS_${PN} = "weston-init liberation-fonts"
diff --git a/poky/meta/recipes-graphics/xorg-lib/libxshmfence/0001-xshmfence_futex.h-Define-SYS_futex-if-it-does-not-ex.patch b/poky/meta/recipes-graphics/xorg-lib/libxshmfence/0001-xshmfence_futex.h-Define-SYS_futex-if-it-does-not-ex.patch
new file mode 100644
index 000000000..3e87794d2
--- /dev/null
+++ b/poky/meta/recipes-graphics/xorg-lib/libxshmfence/0001-xshmfence_futex.h-Define-SYS_futex-if-it-does-not-ex.patch
@@ -0,0 +1,39 @@
+From 5827f6389a227157958d14a687fb29223cb3a03a Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Wed, 7 Apr 2021 07:48:42 +0000
+Subject: [PATCH] xshmfence_futex.h: Define SYS_futex if it does not exist
+
+_NR_futex is not defines by newer architectures e.g. riscv32 as
+they only have 64bit variant of time_t. Glibc defines SYS_futex
+interface based on __NR_futex, since this is used in applications,
+such applications start to fail to build for these newer architectures.
+This patch defines a fallback to alias __NR_futex to __NR_futex_time64
+to make SYS_futex keep working.
+
+Reference: https://git.openembedded.org/openembedded-core/commit/?id=7a218adf9990f5e18d0b6a33eb34091969f979c7
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ src/xshmfence_futex.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/xshmfence_futex.h b/src/xshmfence_futex.h
+index 673ac0e..a71efa5 100644
+--- a/src/xshmfence_futex.h
++++ b/src/xshmfence_futex.h
+@@ -53,6 +53,10 @@ static inline int futex_wait(int32_t *addr, int32_t value) {
+ #include <sys/time.h>
+ #include <sys/syscall.h>
+
++#if !defined(SYS_futex) && defined(SYS_futex_time64)
++#define SYS_futex SYS_futex_time64
++#endif
++
+ static inline long sys_futex(void *addr1, int op, int val1, struct timespec *timeout, void *addr2, int val3)
+ {
+ return syscall(SYS_futex, addr1, op, val1, timeout, addr2, val3);
+--
+2.29.2
+
diff --git a/poky/meta/recipes-graphics/xorg-lib/libxshmfence_1.3.bb b/poky/meta/recipes-graphics/xorg-lib/libxshmfence_1.3.bb
index cc4569653..d153c7a60 100644
--- a/poky/meta/recipes-graphics/xorg-lib/libxshmfence_1.3.bb
+++ b/poky/meta/recipes-graphics/xorg-lib/libxshmfence_1.3.bb
@@ -13,7 +13,9 @@ DEPENDS += "virtual/libx11"
EXTRA_OECONF += "--with-shared-memory-dir=/dev/shm"
-BBCLASSEXTEND = "native nativesdk"
+SRC_URI += "file://0001-xshmfence_futex.h-Define-SYS_futex-if-it-does-not-ex.patch"
SRC_URI[md5sum] = "42dda8016943dc12aff2c03a036e0937"
SRC_URI[sha256sum] = "b884300d26a14961a076fbebc762a39831cb75f92bed5ccf9836345b459220c7"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
index b3e03744c..da025171d 100644
--- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
+++ b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
@@ -122,7 +122,6 @@ EXTRA_OECONF += "--with-fop=no \
OPENGL_PKGCONFIGS = "dri glx glamor dri3 xshmfence"
PACKAGECONFIG ??= "dga dri2 udev ${XORG_CRYPTO} \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', '${OPENGL_PKGCONFIGS}', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'opengl wayland', 'xwayland', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-logind', '', d)} \
"
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/CVE-2021-3472.patch b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/CVE-2021-3472.patch
new file mode 100644
index 000000000..5480f7187
--- /dev/null
+++ b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/CVE-2021-3472.patch
@@ -0,0 +1,43 @@
+From 7aaf54a1884f71dc363f0b884e57bcb67407a6cd Mon Sep 17 00:00:00 2001
+From: Matthieu Herrb <matthieu@herrb.eu>
+Date: Sun, 21 Mar 2021 18:38:57 +0100
+Subject: [PATCH] Fix XChangeFeedbackControl() request underflow
+
+CVE-2021-3472 / ZDI-CAN-1259
+
+This vulnerability was discovered by:
+Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
+
+Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
+
+Upstream-Status: Backport
+CVE: CVE-2021-3472
+
+Reference to upstream patch:
+[https://gitlab.freedesktop.org/xorg/xserver/-/commit/7aaf54a1884f71dc363f0b884e57bcb67407a6cd]
+
+Signed-off-by: Stefan Ghinea <stefan.ghinea@windriver.com>
+---
+ Xi/chgfctl.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/Xi/chgfctl.c b/Xi/chgfctl.c
+index 1de4da9..7a597e4 100644
+--- a/Xi/chgfctl.c
++++ b/Xi/chgfctl.c
+@@ -464,8 +464,11 @@ ProcXChangeFeedbackControl(ClientPtr client)
+ break;
+ case StringFeedbackClass:
+ {
+- xStringFeedbackCtl *f = ((xStringFeedbackCtl *) &stuff[1]);
++ xStringFeedbackCtl *f;
+
++ REQUEST_AT_LEAST_EXTRA_SIZE(xChangeFeedbackControlReq,
++ sizeof(xStringFeedbackCtl));
++ f = ((xStringFeedbackCtl *) &stuff[1]);
+ if (client->swapped) {
+ if (len < bytes_to_int32(sizeof(xStringFeedbackCtl)))
+ return BadLength;
+--
+2.17.1
+
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.10.bb b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.10.bb
index 5c6dbac4d..755a762a7 100644
--- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.10.bb
+++ b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.10.bb
@@ -7,6 +7,7 @@ SRC_URI += "file://0001-xf86pciBus.c-use-Intel-ddx-only-for-pre-gen4-hardwar.pat
file://0001-drmmode_display.c-add-missing-mi.h-include.patch \
file://0001-Avoid-duplicate-definitions-of-IOPortBase.patch \
file://0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch \
+ file://CVE-2021-3472.patch \
"
SRC_URI[sha256sum] = "977420c082450dc808de301ef56af4856d653eea71519a973c3490a780cb7c99"
diff --git a/poky/meta/recipes-graphics/xwayland/xwayland_21.1.1.bb b/poky/meta/recipes-graphics/xwayland/xwayland_21.1.1.bb
new file mode 100644
index 000000000..8b1c96fc4
--- /dev/null
+++ b/poky/meta/recipes-graphics/xwayland/xwayland_21.1.1.bb
@@ -0,0 +1,26 @@
+SUMMARY = "XWayland is an X Server that runs under Wayland."
+DESCRIPTION = "XWayland is an X Server running as a Wayland client, \
+and thus is capable of displaying native X11 client applications in a \
+Wayland compositor environment. The goal of XWayland is to facilitate \
+the transition from X Window System to Wayland environments, providing \
+a way to run unported applications in the meantime."
+HOMEPAGE = "https://fedoraproject.org/wiki/Changes/XwaylandStandalone"
+
+LICENSE = "MIT-X"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5df87950af51ac2c5822094553ea1880"
+
+SRC_URI = "https://www.x.org/archive/individual/xserver/xwayland-${PV}.tar.xz"
+SRC_URI[sha256sum] = "31f261ce51bbee76a6ca3ec02aa367ffa2b5efa2b98412df57ccefd7a19003ce"
+
+inherit meson features_check
+REQUIRED_DISTRO_FEATURES = "x11 opengl"
+
+DEPENDS += "xorgproto xtrans pixman libxkbfile libxfont2 wayland wayland-native wayland-protocols libdrm libepoxy"
+
+do_install_append() {
+ # remove files not needed and clashing with xserver-xorg
+ rm -rf ${D}/${libdir}/xorg/
+}
+
+FILES_${PN} += "${libdir}/xorg/protocol.txt"
+
diff --git a/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb b/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
index 1d900d85f..70b851830 100644
--- a/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
+++ b/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://tools/kgit;beginline=5;endline=9;md5=9c30e971d435e249
DEPENDS = "git-native"
-SRCREV = "8f6aaab7f64c6de30d267e31a73f7c3bb30125a9"
+SRCREV = "00dfcab64b85bcb61208724a1588662184ebdd59"
PR = "r12"
PV = "0.2+git${SRCPV}"
diff --git a/poky/meta/recipes-kernel/kmod/kmod.inc b/poky/meta/recipes-kernel/kmod/kmod.inc
index ccda9f2b7..ba5ec7f65 100644
--- a/poky/meta/recipes-kernel/kmod/kmod.inc
+++ b/poky/meta/recipes-kernel/kmod/kmod.inc
@@ -26,7 +26,6 @@ SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git \
S = "${WORKDIR}/git"
-EXTRA_AUTORECONF += "--install --symlink"
EXTRA_OECONF +=" --enable-tools --with-zlib"
PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20210208.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20210208.bb
index 78856cbf6..a751b92a2 100644
--- a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20210208.bb
+++ b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20210208.bb
@@ -229,6 +229,7 @@ PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \
${PN}-sd8887 ${PN}-sd8897 ${PN}-sd8997 ${PN}-usb8997 \
${PN}-ti-connectivity-license ${PN}-wlcommon ${PN}-wl12xx ${PN}-wl18xx \
${PN}-vt6656-license ${PN}-vt6656 \
+ ${PN}-rs9113 ${PN}-rs9116 \
${PN}-rtl-license ${PN}-rtl8188 ${PN}-rtl8192cu ${PN}-rtl8192ce ${PN}-rtl8192su ${PN}-rtl8723 ${PN}-rtl8821 \
${PN}-rtl8168 \
${PN}-cypress-license \
@@ -529,6 +530,16 @@ RDEPENDS_${PN}-nvidia-gpu += "${PN}-nvidia-license"
RDEPENDS_${PN}-nvidia-tegra += "${PN}-nvidia-license"
RDEPENDS_${PN}-nvidia-tegra-k1 += "${PN}-nvidia-license"
+# For RSI RS911x WiFi
+LICENSE_${PN}-rs9113 = "WHENCE"
+LICENSE_${PN}-rs9116 = "WHENCE"
+
+FILES_${PN}-rs9113 = " ${nonarch_base_libdir}/firmware/rsi/rs9113*.rps "
+FILES_${PN}-rs9116 = " ${nonarch_base_libdir}/firmware/rsi/rs9116*.rps "
+
+RDEPENDS_${PN}-rs9113 += "${PN}-whence-license"
+RDEPENDS_${PN}-rs9116 += "${PN}-whence-license"
+
# For rtl
LICENSE_${PN}-rtl8188 = "Firmware-rtlwifi_firmware"
LICENSE_${PN}-rtl8192cu = "Firmware-rtlwifi_firmware"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
index 8725473d1..ee41d612f 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
@@ -50,5 +50,7 @@ KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc
KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}"
+KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}"
+KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc", "", d)}"
KERNEL_VERSION_SANITY_SKIP = "1"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb
index cb34887cd..08314ea03 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb
@@ -11,13 +11,13 @@ python () {
raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
}
-SRCREV_machine ?= "be2935bce35f9adb6d0e735d42651e81a5094adf"
-SRCREV_meta ?= "031f6c76e488a3563f35258c72ff1de3e25a512e"
+SRCREV_machine ?= "400fbf5b14a0c88afb7c31d65be56fb9d6214c81"
+SRCREV_meta ?= "38eb7ca3f4b59339c57a04c310f20809b198fa91"
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.10;destsuffix=${KMETA}"
-LINUX_VERSION ?= "5.10.25"
+LINUX_VERSION ?= "5.10.34"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb
index 2ffc8ed54..939bef0ca 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb
@@ -11,13 +11,13 @@ python () {
raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
}
-SRCREV_machine ?= "65bbe689d98a007848008be2c8edeb5fa8066829"
-SRCREV_meta ?= "19738ca97b999a3b150e2d34232bb44b6537348f"
+SRCREV_machine ?= "b62ae8bedb024e67e7c5cda51840454a4170c858"
+SRCREV_meta ?= "cf20a3c44f5ef181b16ed80e9c2683f76b1ead20"
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}"
-LINUX_VERSION ?= "5.4.107"
+LINUX_VERSION ?= "5.4.116"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb
index 83e59b0eb..8bd674f11 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb
@@ -6,7 +6,7 @@ KCONFIG_MODE = "--allnoconfig"
require recipes-kernel/linux/linux-yocto.inc
-LINUX_VERSION ?= "5.10.25"
+LINUX_VERSION ?= "5.10.34"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -15,9 +15,9 @@ DEPENDS += "openssl-native util-linux-native"
KMETA = "kernel-meta"
KCONF_BSP_AUDIT_LEVEL = "2"
-SRCREV_machine_qemuarm ?= "0f87ec9fea7a5695cd063d9d11d89751efa53ddd"
-SRCREV_machine ?= "cf5b0320cf4544d3db9ce3ddd6ddb7553a610651"
-SRCREV_meta ?= "031f6c76e488a3563f35258c72ff1de3e25a512e"
+SRCREV_machine_qemuarm ?= "bf33b78f5136873b6d2ec6274908cf688341bc9e"
+SRCREV_machine ?= "85c17ad073e9249f261cc550e8ada89a900d7d9a"
+SRCREV_meta ?= "38eb7ca3f4b59339c57a04c310f20809b198fa91"
PV = "${LINUX_VERSION}+git${SRCPV}"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb
index 2b6e35a69..e3750dd7f 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb
@@ -6,7 +6,7 @@ KCONFIG_MODE = "--allnoconfig"
require recipes-kernel/linux/linux-yocto.inc
-LINUX_VERSION ?= "5.4.107"
+LINUX_VERSION ?= "5.4.116"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -15,9 +15,9 @@ DEPENDS += "openssl-native util-linux-native"
KMETA = "kernel-meta"
KCONF_BSP_AUDIT_LEVEL = "2"
-SRCREV_machine_qemuarm ?= "ac3cbab1d6692d4a032dfffe0a604f39a634d18a"
-SRCREV_machine ?= "cf76c5c0dc0edd51ae4a75a1f8701a2675e87c72"
-SRCREV_meta ?= "19738ca97b999a3b150e2d34232bb44b6537348f"
+SRCREV_machine_qemuarm ?= "80bd6016a9bdaed4b66ddffffa8c8e62d7c1f8a6"
+SRCREV_machine ?= "ea7a54fa402727f3c4bc4a1904d4a9590e7c8b85"
+SRCREV_meta ?= "cf20a3c44f5ef181b16ed80e9c2683f76b1ead20"
PV = "${LINUX_VERSION}+git${SRCPV}"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.10.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.10.bb
index 026e69511..2e7a45249 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_5.10.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.10.bb
@@ -13,17 +13,17 @@ KBRANCH_qemux86 ?= "v5.10/standard/base"
KBRANCH_qemux86-64 ?= "v5.10/standard/base"
KBRANCH_qemumips64 ?= "v5.10/standard/mti-malta64"
-SRCREV_machine_qemuarm ?= "d8551cae1ccdbe062a5c6068ce39ea8f4e1c72db"
-SRCREV_machine_qemuarm64 ?= "cf5b0320cf4544d3db9ce3ddd6ddb7553a610651"
-SRCREV_machine_qemumips ?= "7f1f1ad2f2d90b1b070c6b0a82f0add9aa492e37"
-SRCREV_machine_qemuppc ?= "cf5b0320cf4544d3db9ce3ddd6ddb7553a610651"
-SRCREV_machine_qemuriscv64 ?= "cf5b0320cf4544d3db9ce3ddd6ddb7553a610651"
-SRCREV_machine_qemuriscv32 ?= "cf5b0320cf4544d3db9ce3ddd6ddb7553a610651"
-SRCREV_machine_qemux86 ?= "cf5b0320cf4544d3db9ce3ddd6ddb7553a610651"
-SRCREV_machine_qemux86-64 ?= "cf5b0320cf4544d3db9ce3ddd6ddb7553a610651"
-SRCREV_machine_qemumips64 ?= "fd5ac097b891642eea13659bea536f3ec5910d6d"
-SRCREV_machine ?= "cf5b0320cf4544d3db9ce3ddd6ddb7553a610651"
-SRCREV_meta ?= "031f6c76e488a3563f35258c72ff1de3e25a512e"
+SRCREV_machine_qemuarm ?= "78e8e722eec4434024c5db3e0d59da0b128c7647"
+SRCREV_machine_qemuarm64 ?= "85c17ad073e9249f261cc550e8ada89a900d7d9a"
+SRCREV_machine_qemumips ?= "b5c0852a90709e77f7a3d185d1745e6a1f66b77c"
+SRCREV_machine_qemuppc ?= "85c17ad073e9249f261cc550e8ada89a900d7d9a"
+SRCREV_machine_qemuriscv64 ?= "85c17ad073e9249f261cc550e8ada89a900d7d9a"
+SRCREV_machine_qemuriscv32 ?= "85c17ad073e9249f261cc550e8ada89a900d7d9a"
+SRCREV_machine_qemux86 ?= "85c17ad073e9249f261cc550e8ada89a900d7d9a"
+SRCREV_machine_qemux86-64 ?= "85c17ad073e9249f261cc550e8ada89a900d7d9a"
+SRCREV_machine_qemumips64 ?= "bf264e264d2141a4fb61d515573c27935e67ecfa"
+SRCREV_machine ?= "85c17ad073e9249f261cc550e8ada89a900d7d9a"
+SRCREV_meta ?= "38eb7ca3f4b59339c57a04c310f20809b198fa91"
# remap qemuarm to qemuarma15 for the 5.8 kernel
# KMACHINE_qemuarm ?= "qemuarma15"
@@ -32,7 +32,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.10;destsuffix=${KMETA}"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-LINUX_VERSION ?= "5.10.25"
+LINUX_VERSION ?= "5.10.34"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
DEPENDS += "openssl-native util-linux-native"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb
index 245c3d574..38404a193 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb
@@ -12,16 +12,16 @@ KBRANCH_qemux86 ?= "v5.4/standard/base"
KBRANCH_qemux86-64 ?= "v5.4/standard/base"
KBRANCH_qemumips64 ?= "v5.4/standard/mti-malta64"
-SRCREV_machine_qemuarm ?= "ea4097dbff5a148265018e1a998e02b5a05e3d27"
-SRCREV_machine_qemuarm64 ?= "cf76c5c0dc0edd51ae4a75a1f8701a2675e87c72"
-SRCREV_machine_qemumips ?= "230ca33504faef6f40c5d3b24901aaacb901c9a6"
-SRCREV_machine_qemuppc ?= "cf76c5c0dc0edd51ae4a75a1f8701a2675e87c72"
-SRCREV_machine_qemuriscv64 ?= "cf76c5c0dc0edd51ae4a75a1f8701a2675e87c72"
-SRCREV_machine_qemux86 ?= "cf76c5c0dc0edd51ae4a75a1f8701a2675e87c72"
-SRCREV_machine_qemux86-64 ?= "cf76c5c0dc0edd51ae4a75a1f8701a2675e87c72"
-SRCREV_machine_qemumips64 ?= "84e071a893ef9cea8a8ffbcd233b47a2bc9056b5"
-SRCREV_machine ?= "cf76c5c0dc0edd51ae4a75a1f8701a2675e87c72"
-SRCREV_meta ?= "19738ca97b999a3b150e2d34232bb44b6537348f"
+SRCREV_machine_qemuarm ?= "e71df0530eefcac1b3248329e385bcefbad6336e"
+SRCREV_machine_qemuarm64 ?= "ea7a54fa402727f3c4bc4a1904d4a9590e7c8b85"
+SRCREV_machine_qemumips ?= "07445052fdd15e60b30dc5ae9d162c2e6bba47d1"
+SRCREV_machine_qemuppc ?= "ea7a54fa402727f3c4bc4a1904d4a9590e7c8b85"
+SRCREV_machine_qemuriscv64 ?= "ea7a54fa402727f3c4bc4a1904d4a9590e7c8b85"
+SRCREV_machine_qemux86 ?= "ea7a54fa402727f3c4bc4a1904d4a9590e7c8b85"
+SRCREV_machine_qemux86-64 ?= "ea7a54fa402727f3c4bc4a1904d4a9590e7c8b85"
+SRCREV_machine_qemumips64 ?= "b36d79d6f2aaf9dadec352f611e7b9becf2b9a55"
+SRCREV_machine ?= "ea7a54fa402727f3c4bc4a1904d4a9590e7c8b85"
+SRCREV_meta ?= "cf20a3c44f5ef181b16ed80e9c2683f76b1ead20"
# remap qemuarm to qemuarma15 for the 5.4 kernel
# KMACHINE_qemuarm ?= "qemuarma15"
@@ -30,7 +30,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
-LINUX_VERSION ?= "5.4.107"
+LINUX_VERSION ?= "5.4.116"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
DEPENDS += "openssl-native util-linux-native"
diff --git a/poky/meta/recipes-kernel/lttng/babeltrace2_2.0.3.bb b/poky/meta/recipes-kernel/lttng/babeltrace2_2.0.4.bb
index 32ba75bf3..7fb524eeb 100644
--- a/poky/meta/recipes-kernel/lttng/babeltrace2_2.0.3.bb
+++ b/poky/meta/recipes-kernel/lttng/babeltrace2_2.0.4.bb
@@ -12,7 +12,7 @@ SRC_URI = "git://git.efficios.com/babeltrace.git;branch=stable-2.0 \
file://0001-tests-do-not-run-test-applications-from-.libs.patch \
file://0001-Make-manpages-multilib-identical.patch \
"
-SRCREV = "91d154476e66735d705adda9ca5cbf5b5eea5940"
+SRCREV = "23e8cf4e6fdc1d0b230e964dafac08a57e6228e6"
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>2(\.\d+)+)$"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.3.bb b/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.3.bb
index 7074096ee..6132daf1a 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.3.bb
+++ b/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.3.bb
@@ -69,7 +69,7 @@ do_install_append () {
}
do_install_ptest () {
- for f in Makefile tests/Makefile tests/utils/utils.sh tests/regression/tools/save-load/load-42*.lttng tests/regression/tools/save-load/configuration/load-42*.lttng tests/regression/tools/health/test_health.sh tests/regression/tools/metadata/utils.sh tests/regression/tools/rotation/rotate_utils.sh; do
+ for f in Makefile tests/Makefile tests/utils/utils.sh tests/regression/tools/save-load/*.lttng tests/regression/tools/save-load/configuration/load-42*.lttng tests/regression/tools/health/test_health.sh tests/regression/tools/metadata/utils.sh tests/regression/tools/rotation/rotate_utils.sh; do
install -D "${B}/$f" "${D}${PTEST_PATH}/$f"
done
@@ -155,7 +155,7 @@ do_install_ptest () {
-i ${D}${PTEST_PATH}/tests/unit/Makefile
# Fix hardcoded build path
- sed -e 's#TESTAPP_PATH=.*/tests/regression/#TESTAPP_PATH=${PTEST_PATH}/tests/regression/#' \
+ sed -e 's#TESTAPP_PATH=.*/tests/regression/#TESTAPP_PATH="${PTEST_PATH}/tests/regression/#' \
-i ${D}${PTEST_PATH}/tests/regression/ust/python-logging/test_python_logging
# Substitute links to installed binaries.
diff --git a/poky/meta/recipes-kernel/modutils-initscripts/files/modutils.sh b/poky/meta/recipes-kernel/modutils-initscripts/files/modutils.sh
index 28fe6f92d..67e1dcd99 100755
--- a/poky/meta/recipes-kernel/modutils-initscripts/files/modutils.sh
+++ b/poky/meta/recipes-kernel/modutils-initscripts/files/modutils.sh
@@ -13,6 +13,7 @@
LOAD_MODULE=modprobe
[ -f /proc/modules ] || exit 0
+[ -d /lib/modules/`uname -r` ] || exit 0
# Test if modules.dep exists and has a size greater than zero
if [ ! -s /lib/modules/`uname -r`/modules.dep ]; then
diff --git a/poky/meta/recipes-kernel/perf/perf.bb b/poky/meta/recipes-kernel/perf/perf.bb
index b4683720a..28d0c6a2a 100644
--- a/poky/meta/recipes-kernel/perf/perf.bb
+++ b/poky/meta/recipes-kernel/perf/perf.bb
@@ -322,7 +322,7 @@ PACKAGES =+ "${PN}-archive ${PN}-tests ${PN}-perl ${PN}-python"
RDEPENDS_${PN} += "elfutils bash"
RDEPENDS_${PN}-archive =+ "bash"
-RDEPENDS_${PN}-python =+ "bash python3 python3-modules ${@bb.utils.contains('PACKAGECONFIG', 'audit', 'audit-python3', '', d)}"
+RDEPENDS_${PN}-python =+ "bash python3 python3-modules ${@bb.utils.contains('PACKAGECONFIG', 'audit', 'audit-python', '', d)}"
RDEPENDS_${PN}-perl =+ "bash perl perl-modules"
RDEPENDS_${PN}-tests =+ "python3 bash"
diff --git a/poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2020.11.20.bb b/poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2021.04.21.bb
index b3567bca9..f79c0b29e 100644
--- a/poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2020.11.20.bb
+++ b/poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2021.04.21.bb
@@ -5,7 +5,7 @@ LICENSE = "ISC"
LIC_FILES_CHKSUM = "file://LICENSE;md5=07c4f6dea3845b02a18dc00c8c87699c"
SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz"
-SRC_URI[sha256sum] = "b4164490d82ff7b0086e812ac42ab27baf57be24324d4c0ee1c5dd6ba27f2a52"
+SRC_URI[sha256sum] = "9e4c02b2a9710df4dbdb327c39612e8cbbae6495987afeddaebab28c1ea3d8fa"
inherit bin_package allarch
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.4.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.4.bb
index ce2082ee3..96f01391b 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.4.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.4.bb
@@ -28,8 +28,8 @@ PACKAGECONFIG ??= " \
${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \
- bz2 closedcaption curl dash dtls hls rsvg sbc smoothstreaming sndfile \
- ttml uvch264 webp \
+ bz2 closedcaption curl dash dtls hls openssl rsvg sbc smoothstreaming \
+ sndfile ttml uvch264 webp \
"
PACKAGECONFIG[aom] = "-Daom=enabled,-Daom=disabled,aom"
@@ -45,7 +45,11 @@ PACKAGECONFIG[dtls] = "-Ddtls=enabled,-Ddtls=disabled,openssl"
PACKAGECONFIG[faac] = "-Dfaac=enabled,-Dfaac=disabled,faac"
PACKAGECONFIG[faad] = "-Dfaad=enabled,-Dfaad=disabled,faad2"
PACKAGECONFIG[fluidsynth] = "-Dfluidsynth=enabled,-Dfluidsynth=disabled,fluidsynth"
-PACKAGECONFIG[hls] = "-Dhls=enabled -Dhls-crypto=nettle,-Dhls=disabled,nettle"
+PACKAGECONFIG[hls] = "-Dhls=enabled,-Dhls=disabled,"
+# Pick atleast one crypto backend below when enabling hls
+PACKAGECONFIG[nettle] = "-Dhls-crypto=nettle,,nettle"
+PACKAGECONFIG[openssl] = "-Dhls-crypto=openssl,,openssl"
+PACKAGECONFIG[gcrypt] = "-Dhls-crypto=libgcrypt,,libgcrypt"
# the gl packageconfig enables OpenGL elements that haven't been ported
# to -base yet. They depend on the gstgl library in -base, so we do
# not add GL dependencies here, since these are taken care of in -base.
@@ -148,4 +152,3 @@ FILES_${PN}-freeverb += "${datadir}/gstreamer-1.0/presets/GstFreeverb.prs"
FILES_${PN}-opencv += "${datadir}/gst-plugins-bad/1.0/opencv*"
FILES_${PN}-transcode += "${datadir}/gstreamer-1.0/encoding-profiles"
FILES_${PN}-voamrwbenc += "${datadir}/gstreamer-1.0/presets/GstVoAmrwbEnc.prs"
-
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.4.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.4.bb
index 728a99e08..beddfb038 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.4.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.4.bb
@@ -65,12 +65,9 @@ PACKAGECONFIG[egl] = ",,virtual/egl"
PACKAGECONFIG[gbm] = ",,virtual/libgbm libgudev libdrm"
PACKAGECONFIG[wayland] = ",,wayland-native wayland wayland-protocols libdrm"
PACKAGECONFIG[dispmanx] = ",,virtual/libomxil"
+PACKAGECONFIG[viv-fb] = ",,virtual/libgles2 virtual/libg2d"
-OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'x11', ' x11', '', d)}"
-OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'gbm', ' gbm', '', d)}"
-OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'wayland', ' wayland', '', d)}"
-OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'dispmanx', ' dispmanx', '', d)}"
-OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'egl', ' egl', '', d)}"
+OPENGL_WINSYS = "${@bb.utils.filter('PACKAGECONFIG', 'x11 gbm wayland dispmanx egl viv-fb', d)}"
EXTRA_OEMESON += " \
-Ddoc=disabled \
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc
deleted file mode 100644
index b69806704..000000000
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc
+++ /dev/null
@@ -1,23 +0,0 @@
-inherit ptest-gnome
-
-TEST_FILES_PATH = "${datadir}/installed-tests/gstreamer-1.0/test-files"
-RUN_PTEST_FILE = "${D}${PTEST_PATH}/run-ptest"
-
-EXTRA_OEMESON += "-Dtest-files-path=${TEST_FILES_PATH}"
-
-GST_TEST_SUITE_NAME ?= "gstreamer-1.0"
-
-# Using do_install_ptest_base instead of do_install_ptest, since
-# the default do_install_ptest_base is hardcoded to expect Makefiles.
-do_install_ptest_base() {
- # Generate run-ptest file
- echo "#!/usr/bin/env sh" > "${RUN_PTEST_FILE}"
- echo "gnome-desktop-testing-runner ${GST_TEST_SUITE_NAME}" >> "${RUN_PTEST_FILE}"
- chmod 0755 "${RUN_PTEST_FILE}"
-
- # Install additional files required by tests
- if [ -d "${S}/tests/files" ] ; then
- install -d "${D}/${TEST_FILES_PATH}"
- install -m 0644 "${S}/tests/files"/* "${D}/${TEST_FILES_PATH}"
- fi
-}
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch
index fe58e718a..23ebd5c60 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch
@@ -12,7 +12,10 @@ environemnts, regardless of whether one pointed to by the env var succeeded or f
taken from:
http://cgit.openembedded.org/openembedded-core/commit/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch?id=0db7ba34ca41b107042306d13a6f0162885c123b
-Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/669]
+Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/669>
+
+Upstream-Status: Backport [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/9f958058697e6fbf5bde325228034572331d1a3a]
+
Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
---
gst/gstpluginloader.c | 15 +++++++--------
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-option-for-installed-tests.patch b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-option-for-installed-tests.patch
deleted file mode 100644
index bf5e57249..000000000
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-option-for-installed-tests.patch
+++ /dev/null
@@ -1,257 +0,0 @@
-From cf8077a7e3ab0ae236ebde79b7fc0b02eac658de Mon Sep 17 00:00:00 2001
-From: Carlos Rafael Giani <crg7475@mailbox.org>
-Date: Fri, 25 Oct 2019 00:06:26 +0200
-Subject: [PATCH 3/3] meson: Add option for installed tests
-
-This adds an option for producing installed versions of the unit tests.
-These versions don't need meson to run (only a small shell script). This
-makes it easier to run cross compiled tests on a target machine.
-
-Upstream-Status: Pending
-
-Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
----
- build-aux/gen-installed-test-desc.py | 18 ++++++
- build-aux/gen-installed-test-shscript.py | 25 ++++++++
- meson_options.txt | 2 +
- tests/check/meson.build | 46 +++++++++++++-
- tests/files/testfile | 80 ++++++++++++++++++++++++
- 5 files changed, 170 insertions(+), 1 deletion(-)
- create mode 100644 build-aux/gen-installed-test-desc.py
- create mode 100644 build-aux/gen-installed-test-shscript.py
- create mode 100644 tests/files/testfile
-
-diff --git a/build-aux/gen-installed-test-desc.py b/build-aux/gen-installed-test-desc.py
-new file mode 100644
-index 000000000..69e8a0faf
---- /dev/null
-+++ b/build-aux/gen-installed-test-desc.py
-@@ -0,0 +1,18 @@
-+import sys
-+import os
-+import argparse
-+
-+def write_template(filename, data):
-+ with open(filename, 'w') as f:
-+ f.write(data)
-+
-+def build_template(testdir, testname):
-+ return "[Test]\nType=session\nExec={}\n".format(os.path.join(testdir, testname))
-+
-+argparser = argparse.ArgumentParser(description='Generate installed-test data.')
-+argparser.add_argument('--test-execdir', metavar='dir', required=True, help='Installed test directory')
-+argparser.add_argument('--testname', metavar='name', required=True, help='Installed test name')
-+argparser.add_argument('--output', metavar='file', required=True, help='Output file')
-+args = argparser.parse_args()
-+
-+write_template(args.output, build_template(args.test_execdir, args.testname))
-diff --git a/build-aux/gen-installed-test-shscript.py b/build-aux/gen-installed-test-shscript.py
-new file mode 100644
-index 000000000..5da86fb37
---- /dev/null
-+++ b/build-aux/gen-installed-test-shscript.py
-@@ -0,0 +1,25 @@
-+import sys
-+import os
-+import argparse
-+
-+def write_template(filename, data):
-+ with open(filename, 'w') as f:
-+ f.write(data)
-+
-+def build_template(testdir, testname):
-+ return ''.join([
-+ "#!/usr/bin/env sh\n",
-+ "export GST_STATE_IGNORE_ELEMENTS=''\n",
-+ "export CK_DEFAULT_TIMEOUT=20\n",
-+ "export GST_PLUGIN_LOADING_WHITELIST='gstreamer'\n",
-+ "{}\n".format(os.path.join(testdir, testname)),
-+ ])
-+
-+argparser = argparse.ArgumentParser(description='Generate installed-test data.')
-+argparser.add_argument('--test-execdir', metavar='dir', required=True, help='Installed test directory')
-+argparser.add_argument('--testname', metavar='name', required=True, help='Installed test name')
-+argparser.add_argument('--output', metavar='file', required=True, help='Output file')
-+args = argparser.parse_args()
-+
-+write_template(args.output, build_template(args.test_execdir, args.testname))
-+os.chmod(args.output, 0o755)
-diff --git a/meson_options.txt b/meson_options.txt
-index 72c3997e2..346c423d4 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -15,6 +15,8 @@ option('poisoning', type : 'boolean', value : false, description : 'Enable poiso
- option('memory-alignment', type: 'combo',
- choices : ['1', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', 'malloc', 'pagesize'],
- value: 'malloc')
-+option('installed-tests', type : 'boolean', value : false, description : 'enable installed tests')
-+option('test-files-path', type : 'string', description : 'Path where to find test files')
-
- # Feature options
- option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries')
-diff --git a/tests/check/meson.build b/tests/check/meson.build
-index a617cf159..e629131c5 100644
---- a/tests/check/meson.build
-+++ b/tests/check/meson.build
-@@ -120,11 +120,17 @@ if add_languages('cpp', native: false, required: false)
- ]
- endif
-
-+test_files_path = get_option('test-files-path')
-+if test_files_path == ''
-+ test_files_path = meson.current_source_dir() + '/../files'
-+endif
-+message('Using path "@0@" as the path to read test files from'.format(test_files_path))
-+
- test_defines = [
- '-UG_DISABLE_ASSERT',
- '-UG_DISABLE_CAST_CHECKS',
- '-DGST_CHECK_TEST_ENVIRONMENT_BEACON="GST_STATE_IGNORE_ELEMENTS"',
-- '-DTESTFILE="' + meson.current_source_dir() + '/meson.build"',
-+ '-DTESTFILE="@0@"'.format(test_files_path + '/testfile'),
- '-DGST_DISABLE_DEPRECATED',
- ]
-
-@@ -138,6 +144,14 @@ endif
- glib_deps = [gio_dep, gobject_dep, gmodule_dep, glib_dep]
- gst_deps = [gst_dep, gst_base_dep, gst_check_dep, gst_net_dep, gst_controller_dep]
-
-+installed_tests_datadir = join_paths(prefix, get_option('datadir'), 'installed-tests', 'gstreamer-1.0')
-+installed_tests_execdir = join_paths(prefix, libexecdir, 'installed-tests', 'gstreamer-1.0')
-+installed_tests_enabled = get_option('installed-tests')
-+
-+python = import('python').find_installation()
-+gen_installed_test_desc = files('../../build-aux/gen-installed-test-desc.py')
-+gen_installed_test_shscript = files('../../build-aux/gen-installed-test-shscript.py')
-+
- foreach t : core_tests
- fname = t[0]
- test_name = fname.split('.')[0].underscorify()
-@@ -151,8 +165,38 @@ foreach t : core_tests
- include_directories : [configinc],
- link_with : link_with_libs,
- dependencies : test_deps + glib_deps + gst_deps,
-+ install_dir: installed_tests_execdir,
-+ install: installed_tests_enabled
- )
-
-+ if installed_tests_enabled
-+ installed_test_shscript = test_name + '.sh'
-+ shscript = custom_target (test_name + '_shscript',
-+ output: installed_test_shscript,
-+ command: [
-+ python,
-+ gen_installed_test_shscript,
-+ '--test-execdir=@0@'.format(installed_tests_execdir),
-+ '--testname=@0@'.format(test_name),
-+ '--output=@0@'.format(join_paths('@OUTDIR@', installed_test_shscript)),
-+ ],
-+ install: true,
-+ install_dir: installed_tests_execdir)
-+
-+ installed_test_desc = test_name + '.test'
-+ data = custom_target(test_name + '_desc',
-+ output: installed_test_desc,
-+ command: [
-+ python,
-+ gen_installed_test_desc,
-+ '--test-execdir=@0@'.format(installed_tests_execdir),
-+ '--testname=@0@'.format(installed_test_shscript),
-+ '--output=@0@'.format(join_paths('@OUTDIR@', installed_test_desc)),
-+ ],
-+ install: true,
-+ install_dir: installed_tests_datadir)
-+ endif
-+
- env = environment()
- env.set('GST_PLUGIN_PATH_1_0', meson.build_root())
- env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '')
-diff --git a/tests/files/testfile b/tests/files/testfile
-new file mode 100644
-index 000000000..89954e0e2
---- /dev/null
-+++ b/tests/files/testfile
-@@ -0,0 +1,80 @@
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
---
-2.29.2
-
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch
index e0e64e2c7..e0e64e2c7 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch
new file mode 100644
index 000000000..6f571a12d
--- /dev/null
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch
@@ -0,0 +1,36 @@
+From 122e5ac3dd16a461b6ae595605490c8f5d1c3a9d Mon Sep 17 00:00:00 2001
+From: Jose Quaresma <quaresma.jose@gmail.com>
+Date: Sun, 11 Apr 2021 19:48:13 +0100
+Subject: [PATCH 1/4] tests: respect the idententaion used in meson
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
+
+Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
+---
+ tests/check/meson.build | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/tests/check/meson.build b/tests/check/meson.build
+index a617cf159..b2636714b 100644
+--- a/tests/check/meson.build
++++ b/tests/check/meson.build
+@@ -146,11 +146,11 @@ foreach t : core_tests
+
+ if not skip_test
+ exe = executable(test_name, fname,
+- c_args : gst_c_args + test_defines,
+- cpp_args : gst_c_args + test_defines,
+- include_directories : [configinc],
+- link_with : link_with_libs,
+- dependencies : test_deps + glib_deps + gst_deps,
++ c_args : gst_c_args + test_defines,
++ cpp_args : gst_c_args + test_defines,
++ include_directories : [configinc],
++ link_with : link_with_libs,
++ dependencies : test_deps + glib_deps + gst_deps,
+ )
+
+ env = environment()
+--
+2.31.1
+
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch
new file mode 100644
index 000000000..b77fb5797
--- /dev/null
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch
@@ -0,0 +1,110 @@
+From c9e93c7a3e4d2773abef4f5e1464af24f36700b3 Mon Sep 17 00:00:00 2001
+From: Jose Quaresma <quaresma.jose@gmail.com>
+Date: Sun, 11 Apr 2021 19:48:13 +0100
+Subject: [PATCH 2/4] tests: add support for install the tests
+
+This will provide to run the tests using the gnome-desktop-testing [1]
+
+[1] https://wiki.gnome.org/Initiatives/GnomeGoals/InstalledTests
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
+
+Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
+---
+ meson.build | 5 +++++
+ meson_options.txt | 1 +
+ template.test.in | 3 +++
+ tests/check/meson.build | 22 +++++++++++++++++++++-
+ 4 files changed, 30 insertions(+), 1 deletion(-)
+ create mode 100644 template.test.in
+
+diff --git a/meson.build b/meson.build
+index c4e8774f5..1abf4eb26 100644
+--- a/meson.build
++++ b/meson.build
+@@ -562,6 +562,11 @@ if bashcomp_dep.found()
+ endif
+ endif
+
++installed_tests_metadir = join_paths(datadir, 'installed-tests', meson.project_name())
++installed_tests_execdir = join_paths(libexecdir, 'installed-tests', meson.project_name())
++installed_tests_enabled = get_option('installed-tests')
++installed_tests_template = files('template.test.in')
++
+ plugins_install_dir = join_paths(get_option('libdir'), 'gstreamer-1.0')
+
+ pkgconfig = import('pkgconfig')
+diff --git a/meson_options.txt b/meson_options.txt
+index c8cee3762..b5da40eaa 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -15,6 +15,7 @@ option('poisoning', type : 'boolean', value : false, description : 'Enable poiso
+ option('memory-alignment', type: 'combo',
+ choices : ['1', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', 'malloc', 'pagesize'],
+ value: 'malloc')
++option('installed-tests', type : 'boolean', value : false, description : 'Enable installed tests')
+
+ # Feature options
+ option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries')
+diff --git a/template.test.in b/template.test.in
+new file mode 100644
+index 000000000..f701627f8
+--- /dev/null
++++ b/template.test.in
+@@ -0,0 +1,3 @@
++[Test]
++Type=session
++Exec=@installed_tests_dir@/@program@
+diff --git a/tests/check/meson.build b/tests/check/meson.build
+index b2636714b..a697a7b06 100644
+--- a/tests/check/meson.build
++++ b/tests/check/meson.build
+@@ -124,10 +124,16 @@ test_defines = [
+ '-UG_DISABLE_ASSERT',
+ '-UG_DISABLE_CAST_CHECKS',
+ '-DGST_CHECK_TEST_ENVIRONMENT_BEACON="GST_STATE_IGNORE_ELEMENTS"',
+- '-DTESTFILE="' + meson.current_source_dir() + '/meson.build"',
+ '-DGST_DISABLE_DEPRECATED',
+ ]
+
++testfile = meson.current_source_dir() + '/meson.build'
++if installed_tests_enabled
++ install_data(testfile, install_dir : installed_tests_metadir, rename : 'testfile')
++ testfile = installed_tests_metadir + '/testfile'
++endif
++test_defines += '-DTESTFILE="@0@"'.format(testfile)
++
+ # sanity checking
+ if get_option('check').disabled()
+ if get_option('tests').enabled()
+@@ -151,6 +157,8 @@ foreach t : core_tests
+ include_directories : [configinc],
+ link_with : link_with_libs,
+ dependencies : test_deps + glib_deps + gst_deps,
++ install_dir: installed_tests_execdir,
++ install: installed_tests_enabled,
+ )
+
+ env = environment()
+@@ -162,6 +170,18 @@ foreach t : core_tests
+ env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner')
+ env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer')
+
++ if installed_tests_enabled
++ test_conf = configuration_data()
++ test_conf.set('installed_tests_dir', join_paths(prefix, installed_tests_execdir))
++ test_conf.set('program', test_name)
++ configure_file(
++ input: installed_tests_template,
++ output: test_name + '.test',
++ install_dir: installed_tests_metadir,
++ configuration: test_conf
++ )
++ endif
++
+ test(test_name, exe, env: env, timeout : 3 * 60)
+ endif
+ endforeach
+--
+2.31.1
+
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch
new file mode 100644
index 000000000..46813cec3
--- /dev/null
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch
@@ -0,0 +1,48 @@
+From e82dedec1803922656e92285fc1bb75b2cdc0aad Mon Sep 17 00:00:00 2001
+From: Jose Quaresma <quaresma.jose@gmail.com>
+Date: Sat, 24 Apr 2021 10:34:47 +0100
+Subject: [PATCH 3/4] tests: use a dictionaries for environment
+
+meson environment() can't be passed to configure_file and it is needed for installed_tests,
+use a dictionary as this is simplest solution to install the environment.
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
+
+Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
+---
+ tests/check/meson.build | 19 +++++++++++--------
+ 1 file changed, 11 insertions(+), 8 deletions(-)
+
+diff --git a/tests/check/meson.build b/tests/check/meson.build
+index a697a7b06..f64524904 100644
+--- a/tests/check/meson.build
++++ b/tests/check/meson.build
+@@ -161,14 +161,17 @@ foreach t : core_tests
+ install: installed_tests_enabled,
+ )
+
+- env = environment()
+- env.set('GST_PLUGIN_PATH_1_0', meson.build_root())
+- env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '')
+- env.set('GST_STATE_IGNORE_ELEMENTS', '')
+- env.set('CK_DEFAULT_TIMEOUT', '20')
+- env.set('GST_REGISTRY', '@0@/@1@.registry'.format(meson.current_build_dir(), test_name))
+- env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner')
+- env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer')
++ # environment() can't be passed to configure_file and it is needed for installed_tests
++ # use a dictionary as this is simplest solution to install the environment
++ env = {
++ 'GST_PLUGIN_PATH_1_0': meson.build_root(),
++ 'GST_PLUGIN_SYSTEM_PATH_1_0': '',
++ 'GST_STATE_IGNORE_ELEMENTS': '',
++ 'CK_DEFAULT_TIMEOUT': '20',
++ 'GST_REGISTRY': '@0@/@1@.registry'.format(meson.current_build_dir(), test_name),
++ 'GST_PLUGIN_SCANNER_1_0': gst_scanner_dir + '/gst-plugin-scanner',
++ 'GST_PLUGIN_LOADING_WHITELIST': 'gstreamer',
++ }
+
+ if installed_tests_enabled
+ test_conf = configuration_data()
+--
+2.31.1
+
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch
new file mode 100644
index 000000000..eabe7bcbe
--- /dev/null
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch
@@ -0,0 +1,58 @@
+From 57d2965e979f886e03eecd7e351bf01812053971 Mon Sep 17 00:00:00 2001
+From: Jose Quaresma <quaresma.jose@gmail.com>
+Date: Sun, 2 May 2021 01:58:01 +0100
+Subject: [PATCH 4/4] tests: install the environment for installed_tests
+
+- adapt the test environment for installed_tests
+- install the test environment for installed_tests
+- run the tests using the installed environment
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
+
+Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
+---
+ template.test.in | 2 +-
+ tests/check/meson.build | 18 ++++++++++++++++++
+ 2 files changed, 19 insertions(+), 1 deletion(-)
+
+diff --git a/template.test.in b/template.test.in
+index f701627f8..9a3fbdd09 100644
+--- a/template.test.in
++++ b/template.test.in
+@@ -1,3 +1,3 @@
+ [Test]
+ Type=session
+-Exec=@installed_tests_dir@/@program@
++Exec=sh -c 'set -aex && source @installed_tests_dir@/@program@.env && exec @installed_tests_dir@/@program@'
+diff --git a/tests/check/meson.build b/tests/check/meson.build
+index f64524904..a67e0f8dd 100644
+--- a/tests/check/meson.build
++++ b/tests/check/meson.build
+@@ -183,6 +183,24 @@ foreach t : core_tests
+ install_dir: installed_tests_metadir,
+ configuration: test_conf
+ )
++
++ env += {'GST_REGISTRY': '~/.cache/gstreamer-1.0/@0@.registry'.format(test_name)}
++ configure_file(
++ output: test_name + '.env',
++ install_dir: installed_tests_execdir,
++ configuration : env,
++ )
++ # helper to convert a meson environment dictionay object exported with configure_file
++ # this also remove not needed variables for the installed tests
++ meson.add_postconf_script('sed', '-i',
++ '-e', '/^#define/!d',
++ '-e', 's/^#define //g',
++ '-e', '/^GST_PLUGIN_PATH_1_0/d',
++ '-e', '/^GST_PLUGIN_SYSTEM_PATH_1_0/d',
++ '-e', '/^GST_PLUGIN_SCANNER_1_0/d',
++ '-e', 's/ /=/',
++ join_paths(meson.current_build_dir(), test_name + '.env')
++ )
+ endif
+
+ test(test_name, exe, env: env, timeout : 3 * 60)
+--
+2.31.1
+
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
new file mode 100755
index 000000000..0cfa955f0
--- /dev/null
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
@@ -0,0 +1,2 @@
+#!/usr/bin/env sh
+gnome-desktop-testing-runner gstreamer
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb
index 856207096..8f135b383 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb
@@ -8,7 +8,7 @@ LICENSE = "LGPLv2+"
DEPENDS = "glib-2.0 glib-2.0-native libxml2 bison-native flex-native"
-inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection
+inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection ptest-gnome
LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d"
@@ -16,10 +16,14 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
S = "${WORKDIR}/gstreamer-${PV}"
SRC_URI = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \
+ file://run-ptest \
file://0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch \
file://0002-Remove-unused-valgrind-detection.patch \
- file://0003-meson-Add-option-for-installed-tests.patch \
- file://0001-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch \
+ file://0003-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch \
+ file://0004-tests-respect-the-idententaion-used-in-meson.patch \
+ file://0005-tests-add-support-for-install-the-tests.patch \
+ file://0006-tests-use-a-dictionaries-for-environment.patch \
+ file://0007-tests-install-the-environment-for-installed_tests.patch \
"
SRC_URI[sha256sum] = "9aeec99b38e310817012aa2d1d76573b787af47f8a725a65b833880a094dfbc5"
@@ -68,4 +72,4 @@ FILES_${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb"
CVE_PRODUCT = "gstreamer"
-require gstreamer1.0-ptest.inc
+PTEST_BUILD_HOST_FILES = ""
diff --git a/poky/meta/recipes-multimedia/libid3tag/libid3tag/cflags_filter.patch b/poky/meta/recipes-multimedia/libid3tag/libid3tag/cflags_filter.patch
index 0d1d0dc38..1895748d1 100644
--- a/poky/meta/recipes-multimedia/libid3tag/libid3tag/cflags_filter.patch
+++ b/poky/meta/recipes-multimedia/libid3tag/libid3tag/cflags_filter.patch
@@ -4,15 +4,13 @@ flags. We need those to generate reproducible binaries. Allow them through.
Upstream-Status: Pending
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-Index: libid3tag-0.15.1b/configure.ac
-===================================================================
---- libid3tag-0.15.1b.orig/configure.ac
-+++ libid3tag-0.15.1b/configure.ac
+--- a/configure.ac
++++ b/configure.ac
@@ -99,6 +99,10 @@ do
-mno-cygwin)
shift
;;
-+ -fmacro-prefix-map*|-fdebug-prefix-map*)
++ -fmacro-prefix-map*|-fdebug-prefix-map*|-ffile-prefix-map*)
+ CFLAGS="$CFLAGS $1"
+ shift
+ ;;
diff --git a/poky/meta/recipes-multimedia/libtiff/tiff_4.2.0.bb b/poky/meta/recipes-multimedia/libtiff/tiff_4.3.0.bb
index ea8580a25..abf0a6774 100644
--- a/poky/meta/recipes-multimedia/libtiff/tiff_4.2.0.bb
+++ b/poky/meta/recipes-multimedia/libtiff/tiff_4.3.0.bb
@@ -10,7 +10,7 @@ CVE_PRODUCT = "libtiff"
SRC_URI = "http://download.osgeo.org/libtiff/tiff-${PV}.tar.gz \
"
-SRC_URI[sha256sum] = "eb0484e568ead8fa23b513e9b0041df7e327f4ee2d22db5a533929dfc19633cb"
+SRC_URI[sha256sum] = "0e46e5acb087ce7d1ac53cf4f56a09b221537fc86dfc5daaad1c2e89e1b37ac8"
# exclude betas
UPSTREAM_CHECK_REGEX = "tiff-(?P<pver>\d+(\.\d+)+).tar"
diff --git a/poky/meta/recipes-multimedia/mpg123/mpg123_1.26.4.bb b/poky/meta/recipes-multimedia/mpg123/mpg123_1.26.5.bb
index 35cad6ffc..7207bd1dd 100644
--- a/poky/meta/recipes-multimedia/mpg123/mpg123_1.26.4.bb
+++ b/poky/meta/recipes-multimedia/mpg123/mpg123_1.26.5.bb
@@ -10,7 +10,7 @@ LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=e7b9c15fcfb986abb4cc5e8400a24169"
SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2"
-SRC_URI[sha256sum] = "081991540df7a666b29049ad870f293cfa28863b36488ab4d58ceaa7b5846454"
+SRC_URI[sha256sum] = "502a97e0d935be7e37d987338021d8f301bae35c2884f2a83d59c4b52466ef06"
UPSTREAM_CHECK_REGEX = "mpg123-(?P<pver>\d+(\.\d+)+)\.tar"
diff --git a/poky/meta/recipes-rt/rt-tests/rt-tests.inc b/poky/meta/recipes-rt/rt-tests/rt-tests.inc
index 9358f13d0..0c89bad91 100644
--- a/poky/meta/recipes-rt/rt-tests/rt-tests.inc
+++ b/poky/meta/recipes-rt/rt-tests/rt-tests.inc
@@ -1,5 +1,5 @@
# Version 1.8
-SRCREV = "32819581cc0509c9d58c33c3061f57abe0c40c88"
+SRCREV = "6af88067da16c6e69243b376c3b6454ec694460b"
PE = "1"
SRC_URI = "git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git;branch=unstable/devel/latest"
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/0001-Extend-atomics-check-to-include-1-byte-CAS-test.patch b/poky/meta/recipes-sato/webkit/webkitgtk/0001-Extend-atomics-check-to-include-1-byte-CAS-test.patch
index 93bda4d75..68195f846 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk/0001-Extend-atomics-check-to-include-1-byte-CAS-test.patch
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/0001-Extend-atomics-check-to-include-1-byte-CAS-test.patch
@@ -8,7 +8,7 @@ it can reflect broader range which is now checked
Rename ATOMIC_INT64_IS_BUILTIN to ATOMICS_ARE_BUILTIN
-Upstream-Status: Submitted [https://bugs.webkit.org/attachment.cgi?bugid=222959]
+Upstream-Status: Accepted [https://bugs.webkit.org/attachment.cgi?bugid=222959]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Source/JavaScriptCore/CMakeLists.txt | 2 +-
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-with-musl.patch b/poky/meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-with-musl.patch
index a13b394fd..1ccef1fdc 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-with-musl.patch
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-with-musl.patch
@@ -3,7 +3,7 @@ From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Fri, 6 Oct 2017 17:00:08 +0300
Subject: [PATCH] Fix build with musl
-Upstream-Status: Pending
+Upstream-Status: Accepted
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/0001-MiniBrowser-Fix-reproduciblity.patch b/poky/meta/recipes-sato/webkit/webkitgtk/0001-MiniBrowser-Fix-reproduciblity.patch
new file mode 100644
index 000000000..98d2d1ded
--- /dev/null
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/0001-MiniBrowser-Fix-reproduciblity.patch
@@ -0,0 +1,31 @@
+From dcf9ae0dc0b4510eddbeeea09e11edfb123f95af Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 2 May 2021 13:10:49 -0700
+Subject: [PATCH] MiniBrowser: Fix reproduciblity
+
+Do not emit references to source dir in generated sourcecode
+
+Upstream-Status: Submitted [https://bugs.webkit.org/show_bug.cgi?id=225283]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Tools/MiniBrowser/gtk/CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Tools/MiniBrowser/gtk/CMakeLists.txt b/Tools/MiniBrowser/gtk/CMakeLists.txt
+index 93b62521..482d3b00 100644
+--- a/Tools/MiniBrowser/gtk/CMakeLists.txt
++++ b/Tools/MiniBrowser/gtk/CMakeLists.txt
+@@ -51,8 +51,8 @@ add_custom_command(
+ OUTPUT ${MiniBrowser_DERIVED_SOURCES_DIR}/BrowserMarshal.c
+ ${MiniBrowser_DERIVED_SOURCES_DIR}/BrowserMarshal.h
+ MAIN_DEPENDENCY ${MiniBrowser_DIR}/browser-marshal.list
+- COMMAND glib-genmarshal --prefix=browser_marshal ${MiniBrowser_DIR}/browser-marshal.list --body > ${MiniBrowser_DERIVED_SOURCES_DIR}/BrowserMarshal.c
+- COMMAND glib-genmarshal --prefix=browser_marshal ${MiniBrowser_DIR}/browser-marshal.list --header > ${MiniBrowser_DERIVED_SOURCES_DIR}/BrowserMarshal.h
++ COMMAND glib-genmarshal --prefix=browser_marshal ${MiniBrowser_DIR}/browser-marshal.list --body --skip-source > ${MiniBrowser_DERIVED_SOURCES_DIR}/BrowserMarshal.c
++ COMMAND glib-genmarshal --prefix=browser_marshal ${MiniBrowser_DIR}/browser-marshal.list --header --skip-source > ${MiniBrowser_DERIVED_SOURCES_DIR}/BrowserMarshal.h
+ VERBATIM)
+
+ if (USE_GTK4)
+--
+2.31.1
+
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/musl-lower-stack-usage.patch b/poky/meta/recipes-sato/webkit/webkitgtk/musl-lower-stack-usage.patch
index dc3a71d93..5033de419 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk/musl-lower-stack-usage.patch
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/musl-lower-stack-usage.patch
@@ -13,7 +13,7 @@ setting DEFAULT_THREAD_STACK_SIZE_IN_KB alone is not enough either
This patch only changes behavior when using musl, the defaults for
glibc in OE remains same
-Upstream-Status: Pending
+Upstream-Status: Accepted
Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- a/Source/JavaScriptCore/runtime/OptionsList.h
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk_2.30.5.bb b/poky/meta/recipes-sato/webkit/webkitgtk_2.30.6.bb
index cdc3f9b58..7d0d0fc16 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk_2.30.5.bb
+++ b/poky/meta/recipes-sato/webkit/webkitgtk_2.30.6.bb
@@ -20,9 +20,10 @@ SRC_URI = "https://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \
file://reduce-memory-overheads.patch \
file://0001-Extend-atomics-check-to-include-1-byte-CAS-test.patch \
file://musl-lower-stack-usage.patch \
+ file://0001-MiniBrowser-Fix-reproduciblity.patch \
"
-SRC_URI[sha256sum] = "7d0dab08e3c5ae07bec80b2822ef42e952765d5724cac86eb23999bfed5a7f1f"
+SRC_URI[sha256sum] = "50736ec7a91770b5939d715196e5fe7209b93efcdeef425b24dc51fb8e9d7c1e"
inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gtk-doc
diff --git a/poky/meta/recipes-sato/webkit/wpebackend-fdo_1.8.0.bb b/poky/meta/recipes-sato/webkit/wpebackend-fdo_1.8.3.bb
index 344aa9717..d27111a45 100644
--- a/poky/meta/recipes-sato/webkit/wpebackend-fdo_1.8.0.bb
+++ b/poky/meta/recipes-sato/webkit/wpebackend-fdo_1.8.3.bb
@@ -13,7 +13,7 @@ inherit meson features_check
REQUIRED_DISTRO_FEATURES = "opengl"
SRC_URI = "https://wpewebkit.org/releases/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "9652a99c75fe1c6eab0585b6395f4e104b2427e4d1f42969f1f77df29920d253"
+SRC_URI[sha256sum] = "3d0b4282a1bd9e0664d7a20abe14e982f3285296ac62de56cae2a404b9d28b9e"
# This is a tweak of upstream-version-is-even needed because
# ipstream directory contains tarballs for other components as well.
diff --git a/poky/meta/recipes-support/atk/at-spi2-core_2.38.0.bb b/poky/meta/recipes-support/atk/at-spi2-core_2.40.0.bb
index a74e4cd5c..e80fa260f 100644
--- a/poky/meta/recipes-support/atk/at-spi2-core_2.38.0.bb
+++ b/poky/meta/recipes-support/atk/at-spi2-core_2.40.0.bb
@@ -11,7 +11,7 @@ MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "84e36c3fe66862133f5fe229772b76aa2526e10de5014a3778f2fa46ce550da5"
+SRC_URI[sha256sum] = "4196a7d30a0051e52a67b8ce4283fe79ae5e4e14a725719934565adf1d333429"
X11DEPENDS = "virtual/libx11 libxi libxtst"
diff --git a/poky/meta/recipes-support/boost/boost-1.75.0.inc b/poky/meta/recipes-support/boost/boost-1.76.0.inc
index e5a8488c5..eb5d48497 100644
--- a/poky/meta/recipes-support/boost/boost-1.75.0.inc
+++ b/poky/meta/recipes-support/boost/boost-1.76.0.inc
@@ -12,9 +12,9 @@ BOOST_MAJ = "${@"_".join(d.getVar("PV").split(".")[0:2])}"
BOOST_P = "boost_${BOOST_VER}"
SRC_URI = "https://dl.bintray.com/boostorg/release/${PV}/source/${BOOST_P}.tar.bz2"
-SRC_URI[sha256sum] = "953db31e016db7bb207f11432bef7df100516eeb746843fa0486a222e3fd49cb"
+SRC_URI[sha256sum] = "f0397ba6e982c4450f27bf32a2a83292aba035b827a5623a14636ea583318c41"
UPSTREAM_CHECK_URI = "http://www.boost.org/users/download/"
-UPSTREAM_CHECK_REGEX = "boostorg/release/(?P<pver>.*)/source/"
+UPSTREAM_CHECK_REGEX = "release/(?P<pver>.*)/source/"
S = "${WORKDIR}/${BOOST_P}"
diff --git a/poky/meta/recipes-support/boost/boost-build-native_4.3.0.bb b/poky/meta/recipes-support/boost/boost-build-native_4.4.1.bb
index 19e991e65..ad675ce73 100644
--- a/poky/meta/recipes-support/boost/boost-build-native_4.3.0.bb
+++ b/poky/meta/recipes-support/boost/boost-build-native_4.4.1.bb
@@ -7,7 +7,7 @@ LICENSE = "BSL-1.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
SRC_URI = "git://github.com/boostorg/build;protocol=https"
-SRCREV = "632ea768f3eb225b4472c5ed6d20afee708724ad"
+SRCREV = "76da80f33187a3d9e5336157cdfae12ce82e37eb"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+){2,}))"
diff --git a/poky/meta/recipes-support/boost/boost_1.75.0.bb b/poky/meta/recipes-support/boost/boost_1.76.0.bb
index 23b0ffc67..23b0ffc67 100644
--- a/poky/meta/recipes-support/boost/boost_1.75.0.bb
+++ b/poky/meta/recipes-support/boost/boost_1.76.0.bb
diff --git a/poky/meta/recipes-support/ca-certificates/ca-certificates_20210119.bb b/poky/meta/recipes-support/ca-certificates/ca-certificates_20210119.bb
index 888a235c1..7dcc86fdc 100644
--- a/poky/meta/recipes-support/ca-certificates/ca-certificates_20210119.bb
+++ b/poky/meta/recipes-support/ca-certificates/ca-certificates_20210119.bb
@@ -83,8 +83,8 @@ do_install_append_class-native () {
SYSROOT="${D}${base_prefix}" ${D}${sbindir}/update-ca-certificates
}
-RDEPENDS_${PN}_class-target = "openssl-bin"
-RDEPENDS_${PN}_class-native = "openssl-native"
-RDEPENDS_${PN}_class-nativesdk = "nativesdk-openssl-bin"
+RDEPENDS_${PN}_append_class-target = " openssl-bin openssl"
+RDEPENDS_${PN}_append_class-native = " openssl-native"
+RDEPENDS_${PN}_append_class-nativesdk = " nativesdk-openssl-bin nativesdk-openssl"
BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/curl/curl_7.75.0.bb b/poky/meta/recipes-support/curl/curl_7.76.0.bb
index 7666c7b60..db6318148 100644
--- a/poky/meta/recipes-support/curl/curl_7.75.0.bb
+++ b/poky/meta/recipes-support/curl/curl_7.76.0.bb
@@ -13,14 +13,14 @@ SRC_URI = "https://curl.haxx.se/download/curl-${PV}.tar.bz2 \
file://0001-replace-krb5-config-with-pkg-config.patch \
"
-SRC_URI[sha256sum] = "50552d4501c178e4cc68baaecc487f466a3d6d19bbf4e50a01869effb316d026"
+SRC_URI[sha256sum] = "e29bfe3633701590d75b0071bbb649ee5ca4ca73f00649268bd389639531c49a"
# Curl has used many names over the years...
CVE_PRODUCT = "haxx:curl haxx:libcurl curl:curl curl:libcurl libcurl:libcurl daniel_stenberg:curl"
inherit autotools pkgconfig binconfig multilib_header
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} gnutls libidn proxy threaded-resolver verbose zlib"
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} ssl libidn proxy threaded-resolver verbose zlib"
PACKAGECONFIG_class-native = "ipv6 proxy ssl threaded-resolver verbose zlib"
PACKAGECONFIG_class-nativesdk = "ipv6 proxy ssl threaded-resolver verbose zlib"
@@ -36,6 +36,7 @@ PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5"
PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,"
PACKAGECONFIG[ldaps] = "--enable-ldaps,--disable-ldaps,"
+PACKAGECONFIG[libgsasl] = "--with-libgsasl,--without-libgsasl,libgsasl"
PACKAGECONFIG[libidn] = "--with-libidn2,--without-libidn2,libidn2"
PACKAGECONFIG[libssh2] = "--with-libssh2,--without-libssh2,libssh2"
PACKAGECONFIG[mbedtls] = "--with-mbedtls=${STAGING_DIR_TARGET},--without-mbedtls,mbedtls"
diff --git a/poky/meta/recipes-support/diffoscope/diffoscope_172.bb b/poky/meta/recipes-support/diffoscope/diffoscope_172.bb
index bf4726e77..86dd5d8d7 100644
--- a/poky/meta/recipes-support/diffoscope/diffoscope_172.bb
+++ b/poky/meta/recipes-support/diffoscope/diffoscope_172.bb
@@ -23,6 +23,7 @@ do_install_append_class-native() {
create_wrapper ${D}${bindir}/diffoscope \
MAGIC=${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc \
RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm \
+ LD_LIBRARY_PATH=${STAGING_LIBDIR_NATIVE} \
RPM_ETCCONFIGDIR=${STAGING_DIR_NATIVE}
}
diff --git a/poky/meta/recipes-support/gnutls/gnutls_3.7.1.bb b/poky/meta/recipes-support/gnutls/gnutls_3.7.1.bb
index 51d472c82..350d0a018 100644
--- a/poky/meta/recipes-support/gnutls/gnutls_3.7.1.bb
+++ b/poky/meta/recipes-support/gnutls/gnutls_3.7.1.bb
@@ -27,11 +27,11 @@ SRC_URI[sha256sum] = "3777d7963eca5e06eb315686163b7b3f5045e2baac5e54e038ace9835e
inherit autotools texinfo pkgconfig gettext lib_package gtk-doc
-PACKAGECONFIG ??= "libidn"
+PACKAGECONFIG ??= "libidn ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', d)}"
# You must also have CONFIG_SECCOMP enabled in the kernel for
# seccomp to work.
-PACKAGECONFIG[seccomp] = "ac_cv_libseccomp=yes,ac_cv_libseccomp=no,libseccomp"
+PACKAGECONFIG[seccomp] = "--with-libseccomp-prefix=${STAGING_EXECPREFIXDIR},ac_cv_libseccomp=no,libseccomp"
PACKAGECONFIG[libidn] = "--with-idn,--without-idn,libidn2"
PACKAGECONFIG[libtasn1] = "--with-included-libtasn1=no,--with-included-libtasn1,libtasn1"
PACKAGECONFIG[p11-kit] = "--with-p11-kit,--without-p11-kit,p11-kit"
diff --git a/poky/meta/recipes-support/icu/icu/0001-icu-Added-armeb-support.patch b/poky/meta/recipes-support/icu/icu/0001-icu-Added-armeb-support.patch
index 145efc0e0..c5dc0611c 100644
--- a/poky/meta/recipes-support/icu/icu/0001-icu-Added-armeb-support.patch
+++ b/poky/meta/recipes-support/icu/icu/0001-icu-Added-armeb-support.patch
@@ -13,7 +13,7 @@ Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/i18n/double-conversion-utils.h b/i18n/double-conversion-utils.h
-index 8c6a0e1..cf89907 100644
+index c937463..feaad0f 100644
--- a/i18n/double-conversion-utils.h
+++ b/i18n/double-conversion-utils.h
@@ -115,7 +115,7 @@ int main(int argc, char** argv) {
@@ -24,7 +24,7 @@ index 8c6a0e1..cf89907 100644
+ defined(__arm__) || defined(__avr32__) || defined(_M_ARM) || defined(_M_ARM64) || \
defined(__hppa__) || defined(__ia64__) || \
defined(__mips__) || \
- defined(__nios2__) || \
+ defined(__nios2__) || defined(__ghs) || \
--
-2.7.4
+2.25.1
diff --git a/poky/meta/recipes-support/icu/icu_68.2.bb b/poky/meta/recipes-support/icu/icu_69.1.bb
index 1ca87feee..bfeea8d2f 100644
--- a/poky/meta/recipes-support/icu/icu_68.2.bb
+++ b/poky/meta/recipes-support/icu/icu_69.1.bb
@@ -112,8 +112,8 @@ SRC_URI = "${BASE_SRC_URI};name=code \
SRC_URI_append_class-target = "\
file://0001-Disable-LDFLAGSICUDT-for-Linux.patch \
"
-SRC_URI[code.sha256sum] = "c79193dee3907a2199b8296a93b52c5cb74332c26f3d167269487680d479d625"
-SRC_URI[data.sha256sum] = "2989b466fa010edc41297e12fdd5ae47c2610ad68b63af1a0bd2a1acfaf497f3"
+SRC_URI[code.sha256sum] = "4cba7b7acd1d3c42c44bb0c14be6637098c7faf2b330ce876bc5f3b915d09745"
+SRC_URI[data.sha256sum] = "4fc2d8cfc3343673123586fca3967404abd4e346fba5515829204533b3bae4bf"
UPSTREAM_CHECK_REGEX = "icu4c-(?P<pver>\d+(_\d+)+)-src"
UPSTREAM_CHECK_URI = "https://github.com/unicode-org/icu/releases"
diff --git a/poky/meta/recipes-support/libassuan/libassuan/libassuan-add-pkgconfig-support.patch b/poky/meta/recipes-support/libassuan/libassuan/libassuan-add-pkgconfig-support.patch
index 0e81454c6..fe811254d 100644
--- a/poky/meta/recipes-support/libassuan/libassuan/libassuan-add-pkgconfig-support.patch
+++ b/poky/meta/recipes-support/libassuan/libassuan/libassuan-add-pkgconfig-support.patch
@@ -8,17 +8,20 @@ Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
forward ported to 2.4.4
Signed-off-by: Armin Kuster <akuster@mvista.com>
+---
+ src/libassuan.m4 | 81 ++----------------------------------------------
+ 1 file changed, 3 insertions(+), 78 deletions(-)
-Index: libassuan-2.5.2/src/libassuan.m4
-===================================================================
---- libassuan-2.5.2.orig/src/libassuan.m4
-+++ libassuan-2.5.2/src/libassuan.m4
-@@ -16,27 +16,6 @@ dnl Returns ok set to yes or no.
+diff --git a/src/libassuan.m4 b/src/libassuan.m4
+index df50484..380a48a 100644
+--- a/src/libassuan.m4
++++ b/src/libassuan.m4
+@@ -17,27 +17,6 @@ dnl Returns ok set to yes or no.
dnl
AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON],
[ AC_REQUIRE([AC_CANONICAL_HOST])
- AC_ARG_WITH(libassuan-prefix,
-- AC_HELP_STRING([--with-libassuan-prefix=PFX],
+- AS_HELP_STRING([--with-libassuan-prefix=PFX],
- [prefix where LIBASSUAN is installed (optional)]),
- libassuan_config_prefix="$withval", libassuan_config_prefix="")
- if test x$libassuan_config_prefix != x ; then
@@ -41,10 +44,11 @@ Index: libassuan-2.5.2/src/libassuan.m4
tmp=ifelse([$1], ,1:0.9.2,$1)
if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
-@@ -47,58 +26,11 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON],
+@@ -47,59 +26,11 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON],
+ req_libassuan_api=0
min_libassuan_version="$tmp"
fi
-
+-
- AC_MSG_CHECKING(for LIBASSUAN - version >= $min_libassuan_version)
- ok=no
- if test "$LIBASSUAN_CONFIG" != "no"; then
@@ -102,7 +106,7 @@ Index: libassuan-2.5.2/src/libassuan.m4
if test "$tmp" -gt 0 ; then
AC_MSG_CHECKING([LIBASSUAN API version])
if test "$req_libassuan_api" -eq "$tmp" ; then
-@@ -114,9 +46,7 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON],
+@@ -115,9 +46,7 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON],
if test $ok = yes; then
if test x"$host" != x ; then
if test -z "$use_gpgrt_config"; then
@@ -113,7 +117,7 @@ Index: libassuan-2.5.2/src/libassuan.m4
fi
if test x"$libassuan_config_host" != xnone ; then
if test x"$libassuan_config_host" != x"$host" ; then
-@@ -158,12 +88,8 @@ dnl
+@@ -159,12 +88,8 @@ dnl
AC_DEFUN([AM_PATH_LIBASSUAN],
[ _AM_PATH_LIBASSUAN_COMMON($1)
if test $ok = yes; then
@@ -126,3 +130,6 @@ Index: libassuan-2.5.2/src/libassuan.m4
ifelse([$3], , :, [$3])
fi
AC_SUBST(LIBASSUAN_CFLAGS)
+--
+2.25.1
+
diff --git a/poky/meta/recipes-support/libassuan/libassuan_2.5.4.bb b/poky/meta/recipes-support/libassuan/libassuan_2.5.5.bb
index d44b95aa0..3d12ea09e 100644
--- a/poky/meta/recipes-support/libassuan/libassuan_2.5.4.bb
+++ b/poky/meta/recipes-support/libassuan/libassuan_2.5.5.bb
@@ -20,7 +20,7 @@ SRC_URI = "${GNUPG_MIRROR}/libassuan/libassuan-${PV}.tar.bz2 \
file://libassuan-add-pkgconfig-support.patch \
"
-SRC_URI[sha256sum] = "c080ee96b3bd519edd696cfcebdecf19a3952189178db9887be713ccbcb5fbf0"
+SRC_URI[sha256sum] = "8e8c2fcc982f9ca67dcbb1d95e2dc746b1739a4668bc20b3a3c5be632edb34e4"
BINCONFIG = "${bindir}/libassuan-config"
diff --git a/poky/meta/recipes-support/libcap/libcap_2.48.bb b/poky/meta/recipes-support/libcap/libcap_2.49.bb
index a12738d63..3f4a9256c 100644
--- a/poky/meta/recipes-support/libcap/libcap_2.48.bb
+++ b/poky/meta/recipes-support/libcap/libcap_2.49.bb
@@ -5,7 +5,7 @@ users, without giving them full root permissions."
HOMEPAGE = "http://sites.google.com/site/fullycapable/"
# no specific GPL version required
LICENSE = "BSD | GPLv2"
-LIC_FILES_CHKSUM = "file://License;md5=3f84fd6f29d453a56514cb7e4ead25f1"
+LIC_FILES_CHKSUM = "file://License;md5=e2370ba375efe9e1a095c26d37e483b8"
DEPENDS = "hostperl-runtime-native gperf-native"
@@ -14,7 +14,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/libs/security/linux-privs/${BPN}2/${BPN}-${
file://0002-tests-do-not-run-target-executables.patch \
file://0001-tests-do-not-statically-link-a-test.patch \
"
-SRC_URI[sha256sum] = "4de9590ee09a87c282d558737ffb5b6175ccbfd26d580add10df44d0f047f6c2"
+SRC_URI[sha256sum] = "e98bc4d93645082ec787730b0fd1a712b38882465c505777de17c338831ee181"
UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/linux/libs/security/linux-privs/${BPN}2/"
diff --git a/poky/meta/recipes-support/libevent/libevent/0002-test-regress.h-Increase-default-timeval-tolerance-50.patch b/poky/meta/recipes-support/libevent/libevent/0002-test-regress.h-Increase-default-timeval-tolerance-50.patch
new file mode 100644
index 000000000..0b20eda3c
--- /dev/null
+++ b/poky/meta/recipes-support/libevent/libevent/0002-test-regress.h-Increase-default-timeval-tolerance-50.patch
@@ -0,0 +1,33 @@
+From dff8fd27edb23bc1486809186c6a4fe1f75f2179 Mon Sep 17 00:00:00 2001
+From: Yi Fan Yu <yifan.yu@windriver.com>
+Date: Thu, 22 Apr 2021 22:35:59 -0400
+Subject: [PATCH] test/regress.h: Increase default timeval tolerance 50 ms ->
+ 100 ms
+
+The default timeout tolerance is 50 ms,
+which causes intermittent failure in many the
+related tests in arm64 QEMU.
+
+See: https://bugzilla.yoctoproject.org/show_bug.cgi?id=14163
+(The root cause seems to be a heavy load)
+
+Upstream-Status: Submitted [https://github.com/libevent/libevent/pull/1157]
+
+Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
+---
+ test/regress.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/regress.h b/test/regress.h
+index f06a7669..829af4a7 100644
+--- a/test/regress.h
++++ b/test/regress.h
+@@ -127,7 +127,7 @@ int test_ai_eq_(const struct evutil_addrinfo *ai, const char *sockaddr_port,
+ tt_int_op(labs(timeval_msec_diff((tv1), (tv2)) - diff), <=, tolerance)
+
+ #define test_timeval_diff_eq(tv1, tv2, diff) \
+- test_timeval_diff_leq((tv1), (tv2), (diff), 50)
++ test_timeval_diff_leq((tv1), (tv2), (diff), 100)
+
+ long timeval_msec_diff(const struct timeval *start, const struct timeval *end);
+
diff --git a/poky/meta/recipes-support/libevent/libevent_2.1.12.bb b/poky/meta/recipes-support/libevent/libevent_2.1.12.bb
index dd4533cce..6d53fea5a 100644
--- a/poky/meta/recipes-support/libevent/libevent_2.1.12.bb
+++ b/poky/meta/recipes-support/libevent/libevent_2.1.12.bb
@@ -15,6 +15,7 @@ SRC_URI = "https://github.com/libevent/libevent/releases/download/release-${PV}-
file://Makefile-missing-test-dir.patch \
file://run-ptest \
file://0001-test-regress_dns.c-patch-out-tests-that-require-a-wo.patch \
+ file://0002-test-regress.h-Increase-default-timeval-tolerance-50.patch \
"
SRC_URI[sha256sum] = "92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb"
diff --git a/poky/meta/recipes-support/libical/libical_3.0.9.bb b/poky/meta/recipes-support/libical/libical_3.0.10.bb
index 4c7027d14..30d6bbfd0 100644
--- a/poky/meta/recipes-support/libical/libical_3.0.9.bb
+++ b/poky/meta/recipes-support/libical/libical_3.0.10.bb
@@ -14,7 +14,7 @@ SECTION = "libs"
SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz \
"
-SRC_URI[sha256sum] = "bd26d98b7fcb2eb0cd5461747bbb02024ebe38e293ca53a7dfdcb2505265a728"
+SRC_URI[sha256sum] = "f933b3e6cf9d56a35bb5625e8e4a9c3a50239a85aea05ed842932c1a1dc336b4"
UPSTREAM_CHECK_URI = "https://github.com/libical/libical/releases"
inherit cmake pkgconfig
diff --git a/poky/meta/recipes-support/libjitterentropy/libjitterentropy_3.0.1.bb b/poky/meta/recipes-support/libjitterentropy/libjitterentropy_3.0.2.bb
index 197bb787a..8e39974ef 100644
--- a/poky/meta/recipes-support/libjitterentropy/libjitterentropy_3.0.1.bb
+++ b/poky/meta/recipes-support/libjitterentropy/libjitterentropy_3.0.2.bb
@@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c69090e97c8fd6372d03099c0a5bc382 \
file://COPYING.bsd;md5=66a5cedaf62c4b2637025f049f9b826f \
"
SRC_URI = "git://github.com/smuellerDD/jitterentropy-library.git"
-SRCREV = "747bf030b0ea9c44548b4e29bcfab7ae416675fc"
+SRCREV = "a0c51e21c2d4322681a320a22de5e2ef13c08196"
S = "${WORKDIR}/git"
do_configure[noexec] = "1"
diff --git a/poky/meta/recipes-support/libksba/libksba_1.5.0.bb b/poky/meta/recipes-support/libksba/libksba_1.5.1.bb
index 8d7043fc0..aa296c6b9 100644
--- a/poky/meta/recipes-support/libksba/libksba_1.5.0.bb
+++ b/poky/meta/recipes-support/libksba/libksba_1.5.1.bb
@@ -24,7 +24,7 @@ UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \
file://ksba-add-pkgconfig-support.patch"
-SRC_URI[sha256sum] = "ae4af129216b2d7fdea0b5bf2a788cd458a79c983bb09a43f4d525cc87aba0ba"
+SRC_URI[sha256sum] = "b0f4c65e4e447d9a2349f6b8c0e77a28be9531e4548ba02c545d1f46dc7bf921"
do_configure_prepend () {
# Else these could be used in preference to those in aclocal-copy
diff --git a/poky/meta/recipes-support/libmicrohttpd/libmicrohttpd_0.9.73.bb b/poky/meta/recipes-support/libmicrohttpd/libmicrohttpd_0.9.73.bb
new file mode 100644
index 000000000..219f0c44d
--- /dev/null
+++ b/poky/meta/recipes-support/libmicrohttpd/libmicrohttpd_0.9.73.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "A small C library that is supposed to make it easy to run an HTTP server as part of another application"
+HOMEPAGE = "http://www.gnu.org/software/libmicrohttpd/"
+LICENSE = "LGPL-2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=57d09285feac8a64efa878e692b14f36"
+SECTION = "net"
+
+DEPENDS = "file"
+
+SRC_URI = "${GNU_MIRROR}/libmicrohttpd/${BPN}-${PV}.tar.gz"
+SRC_URI[md5sum] = "2b15949b1633e4fa487e08cdcc97f0e3"
+SRC_URI[sha256sum] = "a37b2f1b88fd1bfe74109586be463a434d34e773530fc2a74364cfcf734c032e"
+
+inherit autotools lib_package pkgconfig gettext
+
+CFLAGS += "-pthread -D_REENTRANT"
+
+EXTRA_OECONF += "--disable-static --with-gnutls=${STAGING_LIBDIR}/../"
+
+PACKAGECONFIG ?= "curl https"
+PACKAGECONFIG_append_class-target = "\
+ ${@bb.utils.filter('DISTRO_FEATURES', 'largefile', d)} \
+"
+PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,,"
+PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl,"
+PACKAGECONFIG[https] = "--enable-https,--disable-https,libgcrypt gnutls,"
+
+do_compile_append() {
+ sed -i s:-L${STAGING_LIBDIR}::g libmicrohttpd.pc
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libpsl/libpsl_0.21.1.bb b/poky/meta/recipes-support/libpsl/libpsl_0.21.1.bb
index db4b3a599..4fc0ad8ac 100644
--- a/poky/meta/recipes-support/libpsl/libpsl_0.21.1.bb
+++ b/poky/meta/recipes-support/libpsl/libpsl_0.21.1.bb
@@ -16,11 +16,10 @@ SRC_URI[sha256sum] = "ac6ce1e1fbd4d0254c4ddb9d37f1fa99dec83619c1253328155206b896
UPSTREAM_CHECK_URI = "https://github.com/rockdaboot/libpsl/releases"
-DEPENDS = "libidn2"
-
inherit autotools gettext gtk-doc manpages pkgconfig lib_package
-PACKAGECONFIG ??= ""
+PACKAGECONFIG ?= "icu"
PACKAGECONFIG[manpages] = "--enable-man,--disable-man,libxslt-native"
-
+PACKAGECONFIG[icu] = "--enable-runtime=libicu --enable-builtin=libicu,,icu"
+PACKAGECONFIG[idn2] = "--enable-runtime=libidn2 --enable-builtin=libidn2,,libidn2 libunistring"
BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libseccomp/files/run-ptest b/poky/meta/recipes-support/libseccomp/files/run-ptest
new file mode 100644
index 000000000..54b4a63cd
--- /dev/null
+++ b/poky/meta/recipes-support/libseccomp/files/run-ptest
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+cd tests
+./regression -a
diff --git a/poky/meta/recipes-support/libseccomp/libseccomp_2.5.1.bb b/poky/meta/recipes-support/libseccomp/libseccomp_2.5.1.bb
new file mode 100644
index 000000000..8fe102390
--- /dev/null
+++ b/poky/meta/recipes-support/libseccomp/libseccomp_2.5.1.bb
@@ -0,0 +1,54 @@
+SUMMARY = "interface to seccomp filtering mechanism"
+DESCRIPTION = "The libseccomp library provides and easy to use, platform independent,interface to the Linux Kernel's syscall filtering mechanism: seccomp."
+HOMEPAGE = "https://github.com/seccomp/libseccomp"
+SECTION = "security"
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://LICENSE;beginline=0;endline=1;md5=8eac08d22113880357ceb8e7c37f989f"
+
+DEPENDS += "gperf-native"
+
+SRCREV = "4bf70431a339a2886ab8c82e9a45378f30c6e6c7"
+
+SRC_URI = "git://github.com/seccomp/libseccomp.git;branch=release-2.5 \
+ file://run-ptest \
+ "
+
+COMPATIBLE_HOST_riscv32 = "null"
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep pkgconfig ptest features_check
+
+REQUIRED_DISTRO_FEATURES = "seccomp"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[python] = "--enable-python, --disable-python, python3"
+
+DISABLE_STATIC = ""
+
+do_compile_ptest() {
+ oe_runmake -C tests check-build
+}
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ install -d ${D}${PTEST_PATH}/tools
+ for file in $(find tests/* -executable -type f); do
+ install -m 744 ${S}/${file} ${D}/${PTEST_PATH}/tests
+ done
+ for file in $(find tests/*.tests -type f); do
+ install -m 744 ${S}/${file} ${D}/${PTEST_PATH}/tests
+ done
+ for file in $(find tools/* -executable -type f); do
+ install -m 744 ${S}/${file} ${D}/${PTEST_PATH}/tools
+ done
+ # Overwrite libtool wrappers with real executables
+ for file in $(find tools/.libs/* -executable -type f); do
+ install -m 744 ${S}/${file} ${D}/${PTEST_PATH}/tools
+ done
+}
+
+FILES_${PN} = "${bindir} ${libdir}/${BPN}.so*"
+FILES_${PN}-dbg += "${libdir}/${PN}/tests/.debug/* ${libdir}/${PN}/tools/.debug"
+
+RDEPENDS_${PN}-ptest = "coreutils bash"
diff --git a/poky/meta/recipes-support/libssh2/files/0001-kex.c-move-EC-macro-outside-of-if-check-549-550.patch b/poky/meta/recipes-support/libssh2/files/0001-kex.c-move-EC-macro-outside-of-if-check-549-550.patch
new file mode 100644
index 000000000..b331c1bf8
--- /dev/null
+++ b/poky/meta/recipes-support/libssh2/files/0001-kex.c-move-EC-macro-outside-of-if-check-549-550.patch
@@ -0,0 +1,112 @@
+From 1f76151c92e1b52e9c24ebf06adc77fbd6c062bc Mon Sep 17 00:00:00 2001
+From: Will Cosgrove <will@panic.com>
+Date: Tue, 26 Jan 2021 11:41:21 -0800
+Subject: [PATCH] kex.c: move EC macro outside of if check #549 (#550)
+
+File: kex.c
+
+Notes:
+Moved the macro LIBSSH2_KEX_METHOD_EC_SHA_HASH_CREATE_VERIFY outside of the LIBSSH2_ECDSA since it's also now used by the ED25519 code.
+
+Sha 256, 384 and 512 need to be defined for all backends now even if they aren't used directly. I believe this is already the case, but just a heads up.
+
+Credit:
+Stefan-Ghinea
+
+Upstream-Status: Backport
+
+Reference to upstream patch:
+https://github.com/libssh2/libssh2/commit/1f76151c92e1b52e9c24ebf06adc77fbd6c062bc
+
+Signed-off-by: Stefan Ghinea <stefan.ghinea@windriver.com>
+---
+ src/kex.c | 66 +++++++++++++++++++++++++++----------------------------
+ 1 file changed, 33 insertions(+), 33 deletions(-)
+
+diff --git a/src/kex.c b/src/kex.c
+index cb16639..19ab6ec 100644
+--- a/src/kex.c
++++ b/src/kex.c
+@@ -1885,39 +1885,6 @@ kex_method_diffie_hellman_group_exchange_sha256_key_exchange
+ }
+
+
+-#if LIBSSH2_ECDSA
+-
+-/* kex_session_ecdh_curve_type
+- * returns the EC curve type by name used in key exchange
+- */
+-
+-static int
+-kex_session_ecdh_curve_type(const char *name, libssh2_curve_type *out_type)
+-{
+- int ret = 0;
+- libssh2_curve_type type;
+-
+- if(name == NULL)
+- return -1;
+-
+- if(strcmp(name, "ecdh-sha2-nistp256") == 0)
+- type = LIBSSH2_EC_CURVE_NISTP256;
+- else if(strcmp(name, "ecdh-sha2-nistp384") == 0)
+- type = LIBSSH2_EC_CURVE_NISTP384;
+- else if(strcmp(name, "ecdh-sha2-nistp521") == 0)
+- type = LIBSSH2_EC_CURVE_NISTP521;
+- else {
+- ret = -1;
+- }
+-
+- if(ret == 0 && out_type) {
+- *out_type = type;
+- }
+-
+- return ret;
+-}
+-
+-
+ /* LIBSSH2_KEX_METHOD_EC_SHA_HASH_CREATE_VERIFY
+ *
+ * Macro that create and verifies EC SHA hash with a given digest bytes
+@@ -2027,6 +1994,39 @@ kex_session_ecdh_curve_type(const char *name, libssh2_curve_type *out_type)
+ } \
+
+
++#if LIBSSH2_ECDSA
++
++/* kex_session_ecdh_curve_type
++ * returns the EC curve type by name used in key exchange
++ */
++
++static int
++kex_session_ecdh_curve_type(const char *name, libssh2_curve_type *out_type)
++{
++ int ret = 0;
++ libssh2_curve_type type;
++
++ if(name == NULL)
++ return -1;
++
++ if(strcmp(name, "ecdh-sha2-nistp256") == 0)
++ type = LIBSSH2_EC_CURVE_NISTP256;
++ else if(strcmp(name, "ecdh-sha2-nistp384") == 0)
++ type = LIBSSH2_EC_CURVE_NISTP384;
++ else if(strcmp(name, "ecdh-sha2-nistp521") == 0)
++ type = LIBSSH2_EC_CURVE_NISTP521;
++ else {
++ ret = -1;
++ }
++
++ if(ret == 0 && out_type) {
++ *out_type = type;
++ }
++
++ return ret;
++}
++
++
+ /* ecdh_sha2_nistp
+ * Elliptic Curve Diffie Hellman Key Exchange
+ */
+--
+2.17.1
+
diff --git a/poky/meta/recipes-support/libssh2/libssh2_1.9.0.bb b/poky/meta/recipes-support/libssh2/libssh2_1.9.0.bb
index 0b8ccbd21..a5451628e 100644
--- a/poky/meta/recipes-support/libssh2/libssh2_1.9.0.bb
+++ b/poky/meta/recipes-support/libssh2/libssh2_1.9.0.bb
@@ -11,6 +11,7 @@ SRC_URI = "http://www.libssh2.org/download/${BP}.tar.gz \
file://CVE-2019-17498.patch \
file://0001-configure-Conditionally-undefine-backend-m4-macro.patch \
file://run-ptest \
+ file://0001-kex.c-move-EC-macro-outside-of-if-check-549-550.patch \
"
SRC_URI_append_ptest = " file://0001-Don-t-let-host-enviroment-to-decide-if-a-test-is-bui.patch"
diff --git a/poky/meta/recipes-support/lz4/lz4_1.9.3.bb b/poky/meta/recipes-support/lz4/lz4_1.9.3.bb
index effc530b9..3905ef7db 100644
--- a/poky/meta/recipes-support/lz4/lz4_1.9.3.bb
+++ b/poky/meta/recipes-support/lz4/lz4_1.9.3.bb
@@ -22,7 +22,7 @@ S = "${WORKDIR}/git"
# Fixed in r118, which is larger than the current version.
CVE_CHECK_WHITELIST += "CVE-2014-4715"
-EXTRA_OEMAKE = "PREFIX=${prefix} CC='${CC}' DESTDIR=${D} LIBDIR=${libdir} INCLUDEDIR=${includedir} BUILD_STATIC=no"
+EXTRA_OEMAKE = "PREFIX=${prefix} CC='${CC}' CFLAGS='${CFLAGS}' DESTDIR=${D} LIBDIR=${libdir} INCLUDEDIR=${includedir} BUILD_STATIC=no"
do_install() {
oe_runmake install
diff --git a/poky/meta/recipes-support/nettle/nettle_3.7.1.bb b/poky/meta/recipes-support/nettle/nettle_3.7.2.bb
index 3bbcf17c7..f8f336008 100644
--- a/poky/meta/recipes-support/nettle/nettle_3.7.1.bb
+++ b/poky/meta/recipes-support/nettle/nettle_3.7.2.bb
@@ -24,7 +24,7 @@ SRC_URI_append_class-target = "\
file://dlopen-test.patch \
"
-SRC_URI[sha256sum] = "156621427c7b00a75ff9b34b770b95d34f80ef7a55c3407de94b16cbf436c42e"
+SRC_URI[sha256sum] = "8d2a604ef1cde4cd5fb77e422531ea25ad064679ff0adf956e78b3352e0ef162"
UPSTREAM_CHECK_REGEX = "nettle-(?P<pver>\d+(\.\d+)+)\.tar"
diff --git a/poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.1.bb b/poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.1.bb
index 57a3ae005..6bd10d2fe 100644
--- a/poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.1.bb
+++ b/poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.1.bb
@@ -26,3 +26,5 @@ do_compile () {
do_install () {
install -D -m 0755 ${S}/ptest-runner ${D}${bindir}/ptest-runner
}
+
+RDEPENDS_${PN}_append_libc-glibc = " libgcc"
diff --git a/poky/meta/recipes-support/re2c/re2c_2.0.3.bb b/poky/meta/recipes-support/re2c/re2c_2.1.1.bb
index ce04fd39e..1da944e90 100644
--- a/poky/meta/recipes-support/re2c/re2c_2.0.3.bb
+++ b/poky/meta/recipes-support/re2c/re2c_2.1.1.bb
@@ -8,7 +8,7 @@ LICENSE = "PD"
LIC_FILES_CHKSUM = "file://LICENSE;md5=64eca4d8a3b67f9dc7656094731a2c8d"
SRC_URI = "https://github.com/skvadrik/re2c/releases/download/${PV}/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "b2bc1eb8aaaa21ff2fcd26507b7e6e72c5e3d887e58aa515c2155fb17d744278"
+SRC_URI[sha256sum] = "036ee264fafd5423141ebd628890775aa9447a4c4068a6307385d7366fe711f8"
UPSTREAM_CHECK_URI = "https://github.com/skvadrik/re2c/releases"
BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/sqlite/sqlite3_3.35.0.bb b/poky/meta/recipes-support/sqlite/sqlite3_3.35.3.bb
index 127065bbc..459dcbd4c 100644
--- a/poky/meta/recipes-support/sqlite/sqlite3_3.35.0.bb
+++ b/poky/meta/recipes-support/sqlite/sqlite3_3.35.3.bb
@@ -4,7 +4,7 @@ LICENSE = "PD"
LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66"
SRC_URI = "http://www.sqlite.org/2021/sqlite-autoconf-${SQLITE_PV}.tar.gz"
-SRC_URI[sha256sum] = "3dfb3f143c83695a555c7dd9e06ed924f9d273c287989874e102656724baf2d0"
+SRC_URI[sha256sum] = "ecbccdd440bdf32c0e1bb3611d635239e3b5af268248d130d0445a32daf0274b"
# -19242 is only an issue in specific development branch commits
CVE_CHECK_WHITELIST += "CVE-2019-19242"
diff --git a/poky/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch b/poky/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch
index a1d2e7ff2..b4100fc38 100644
--- a/poky/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch
+++ b/poky/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch
@@ -17,20 +17,19 @@ Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
src/widget.cc | 1 +
2 files changed, 5 insertions(+)
-diff --git a/src/missing.hh b/src/missing.hh
-index 0742270..30ede62 100644
--- a/src/missing.hh
+++ b/src/missing.hh
-@@ -33,3 +33,7 @@ int fdwalk(int (*cb)(void* data, int fd),
- char* strchrnul(char const* s,
- int c);
+@@ -24,6 +24,10 @@
+ #define NSIG (8 * sizeof(sigset_t))
#endif
-+
+
+#ifndef W_EXITCODE
+#define W_EXITCODE(ret, sig) ((ret) << 8 | (sig))
+#endif
-diff --git a/src/widget.cc b/src/widget.cc
-index 44a2271..0668735 100644
++
+ #ifndef HAVE_FDWALK
+ int fdwalk(int (*cb)(void* data, int fd),
+ void* data);
--- a/src/widget.cc
+++ b/src/widget.cc
@@ -21,6 +21,7 @@
diff --git a/poky/meta/recipes-support/vte/vte_0.62.2.bb b/poky/meta/recipes-support/vte/vte_0.64.0.bb
index a2164f43d..fc7d3014a 100644
--- a/poky/meta/recipes-support/vte/vte_0.62.2.bb
+++ b/poky/meta/recipes-support/vte/vte_0.64.0.bb
@@ -2,13 +2,13 @@ SUMMARY = "Virtual terminal emulator GTK+ widget library"
DESCRIPTION = "VTE provides a virtual terminal widget for GTK applications."
HOMEPAGE = "https://wiki.gnome.org/Apps/Terminal/VTE"
BUGTRACKER = "https://bugzilla.gnome.org/buglist.cgi?product=vte"
-LICENSE = "GPLv3 & LGPLv3+ & LGPLv2.1+"
+LICENSE = "GPLv3 & LGPLv3+ & MIT-X"
LICENSE_libvte = "LGPLv3+"
LIC_FILES_CHKSUM = " \
- file://COPYING.GPL3;md5=2f31b266d3440dd7ee50f92cf67d8e6c \
- file://COPYING.LGPL2;md5=4fbd65380cdd255951079008b364516c \
+ file://COPYING.GPL3;md5=cc702cf3444d1f19680c794cc61948f9 \
file://COPYING.LGPL3;md5=b52f2d57d10c4f7ee67a7eb9615d5d24 \
+ file://COPYING.XTERM;md5=d7fc3a23c16c039afafe2e042030f057 \
"
DEPENDS = "glib-2.0 gtk+3 libpcre2 libxml2-native gperf-native icu"
@@ -20,7 +20,7 @@ inherit gnomebase gtk-doc features_check upstream-version-is-even gobject-intros
# vapigen.m4 is required when vala is not present (but the one from vala should be used normally)
SRC_URI += "file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch"
-SRC_URI[archive.sha256sum] = "b0300bbcf0c02df5812a10a3cb8e4fff723bab92c08c97a0a90c167cf543aff0"
+SRC_URI[archive.sha256sum] = "c0c60b8dc343167437c86d984b0cf134df86034180ed70513f683006ada3ec41"
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
@@ -56,4 +56,6 @@ FILES_${PN}-prompt = " \
${libexecdir}/vte-urlencode-cwd \
"
+FILES_${PN}-dev += "${datadir}/glade/"
+
BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/scripts/combo-layer b/poky/scripts/combo-layer
index a634dd69d..045de6564 100755
--- a/poky/scripts/combo-layer
+++ b/poky/scripts/combo-layer
@@ -508,7 +508,7 @@ def check_patch(patchfile):
f.close()
if of:
of.close()
- os.rename(patchfile + '.tmp', patchfile)
+ bb.utils.rename(patchfile + '.tmp', patchfile)
def drop_to_shell(workdir=None):
if not sys.stdin.isatty():
diff --git a/poky/scripts/contrib/image-manifest b/poky/scripts/contrib/image-manifest
new file mode 100755
index 000000000..3c07a73a4
--- /dev/null
+++ b/poky/scripts/contrib/image-manifest
@@ -0,0 +1,523 @@
+#!/usr/bin/env python3
+
+# Script to extract information from image manifests
+#
+# Copyright (C) 2018 Intel Corporation
+# Copyright (C) 2021 Wind River Systems, Inc.
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
+import sys
+import os
+import argparse
+import logging
+import json
+import shutil
+import tempfile
+import tarfile
+from collections import OrderedDict
+
+scripts_path = os.path.dirname(__file__)
+lib_path = scripts_path + '/../lib'
+sys.path = sys.path + [lib_path]
+
+import scriptutils
+logger = scriptutils.logger_create(os.path.basename(__file__))
+
+import argparse_oe
+import scriptpath
+bitbakepath = scriptpath.add_bitbake_lib_path()
+if not bitbakepath:
+ logger.error("Unable to find bitbake by searching parent directory of this script or PATH")
+ sys.exit(1)
+logger.debug('Using standard bitbake path %s' % bitbakepath)
+scriptpath.add_oe_lib_path()
+
+import bb.tinfoil
+import bb.utils
+import oe.utils
+import oe.recipeutils
+
+def get_pkg_list(manifest):
+ pkglist = []
+ with open(manifest, 'r') as f:
+ for line in f:
+ linesplit = line.split()
+ if len(linesplit) == 3:
+ # manifest file
+ pkglist.append(linesplit[0])
+ elif len(linesplit) == 1:
+ # build dependency file
+ pkglist.append(linesplit[0])
+ return sorted(pkglist)
+
+def list_packages(args):
+ pkglist = get_pkg_list(args.manifest)
+ for pkg in pkglist:
+ print('%s' % pkg)
+
+def pkg2recipe(tinfoil, pkg):
+ if "-native" in pkg:
+ logger.info('skipping %s' % pkg)
+ return None
+
+ pkgdata_dir = tinfoil.config_data.getVar('PKGDATA_DIR')
+ pkgdatafile = os.path.join(pkgdata_dir, 'runtime-reverse', pkg)
+ logger.debug('pkgdatafile %s' % pkgdatafile)
+ try:
+ f = open(pkgdatafile, 'r')
+ for line in f:
+ if line.startswith('PN:'):
+ recipe = line.split(':', 1)[1].strip()
+ return recipe
+ except Exception:
+ logger.warning('%s is missing' % pkgdatafile)
+ return None
+
+def get_recipe_list(manifest, tinfoil):
+ pkglist = get_pkg_list(manifest)
+ recipelist = []
+ for pkg in pkglist:
+ recipe = pkg2recipe(tinfoil,pkg)
+ if recipe:
+ if not recipe in recipelist:
+ recipelist.append(recipe)
+
+ return sorted(recipelist)
+
+def list_recipes(args):
+ import bb.tinfoil
+ with bb.tinfoil.Tinfoil() as tinfoil:
+ tinfoil.logger.setLevel(logger.getEffectiveLevel())
+ tinfoil.prepare(config_only=True)
+ recipelist = get_recipe_list(args.manifest, tinfoil)
+ for recipe in sorted(recipelist):
+ print('%s' % recipe)
+
+def list_layers(args):
+
+ def find_git_repo(pth):
+ checkpth = pth
+ while checkpth != os.sep:
+ if os.path.exists(os.path.join(checkpth, '.git')):
+ return checkpth
+ checkpth = os.path.dirname(checkpth)
+ return None
+
+ def get_git_remote_branch(repodir):
+ try:
+ stdout, _ = bb.process.run(['git', 'rev-parse', '--abbrev-ref', '--symbolic-full-name', '@{u}'], cwd=repodir)
+ except bb.process.ExecutionError as e:
+ stdout = None
+ if stdout:
+ return stdout.strip()
+ else:
+ return None
+
+ def get_git_head_commit(repodir):
+ try:
+ stdout, _ = bb.process.run(['git', 'rev-parse', 'HEAD'], cwd=repodir)
+ except bb.process.ExecutionError as e:
+ stdout = None
+ if stdout:
+ return stdout.strip()
+ else:
+ return None
+
+ def get_git_repo_url(repodir, remote='origin'):
+ import bb.process
+ # Try to get upstream repo location from origin remote
+ try:
+ stdout, _ = bb.process.run(['git', 'remote', '-v'], cwd=repodir)
+ except bb.process.ExecutionError as e:
+ stdout = None
+ if stdout:
+ for line in stdout.splitlines():
+ splitline = line.split()
+ if len(splitline) > 1:
+ if splitline[0] == remote and scriptutils.is_src_url(splitline[1]):
+ return splitline[1]
+ return None
+
+ with bb.tinfoil.Tinfoil() as tinfoil:
+ tinfoil.logger.setLevel(logger.getEffectiveLevel())
+ tinfoil.prepare(config_only=False)
+ layers = OrderedDict()
+ for layerdir in tinfoil.config_data.getVar('BBLAYERS').split():
+ layerdata = OrderedDict()
+ layername = os.path.basename(layerdir)
+ logger.debug('layername %s, layerdir %s' % (layername, layerdir))
+ if layername in layers:
+ logger.warning('layername %s is not unique in configuration' % layername)
+ layername = os.path.basename(os.path.dirname(layerdir)) + '_' + os.path.basename(layerdir)
+ logger.debug('trying layername %s' % layername)
+ if layername in layers:
+ logger.error('Layer name %s is not unique in configuration' % layername)
+ sys.exit(2)
+ repodir = find_git_repo(layerdir)
+ if repodir:
+ remotebranch = get_git_remote_branch(repodir)
+ remote = 'origin'
+ if remotebranch and '/' in remotebranch:
+ rbsplit = remotebranch.split('/', 1)
+ layerdata['actual_branch'] = rbsplit[1]
+ remote = rbsplit[0]
+ layerdata['vcs_url'] = get_git_repo_url(repodir, remote)
+ if os.path.abspath(repodir) != os.path.abspath(layerdir):
+ layerdata['vcs_subdir'] = os.path.relpath(layerdir, repodir)
+ commit = get_git_head_commit(repodir)
+ if commit:
+ layerdata['vcs_commit'] = commit
+ layers[layername] = layerdata
+
+ json.dump(layers, args.output, indent=2)
+
+def get_recipe(args):
+ with bb.tinfoil.Tinfoil() as tinfoil:
+ tinfoil.logger.setLevel(logger.getEffectiveLevel())
+ tinfoil.prepare(config_only=True)
+
+ recipe = pkg2recipe(tinfoil, args.package)
+ print(' %s package provided by %s' % (args.package, recipe))
+
+def pkg_dependencies(args):
+ def get_recipe_info(tinfoil, recipe):
+ try:
+ info = tinfoil.get_recipe_info(recipe)
+ except Exception:
+ logger.error('Failed to get recipe info for: %s' % recipe)
+ sys.exit(1)
+ if not info:
+ logger.warning('No recipe info found for: %s' % recipe)
+ sys.exit(1)
+ append_files = tinfoil.get_file_appends(info.fn)
+ appends = True
+ data = tinfoil.parse_recipe_file(info.fn, appends, append_files)
+ data.pn = info.pn
+ data.pv = info.pv
+ return data
+
+ def find_dependencies(tinfoil, assume_provided, recipe_info, packages, rn, order):
+ spaces = ' ' * order
+ data = recipe_info[rn]
+ if args.native:
+ logger.debug('%s- %s' % (spaces, data.pn))
+ elif "-native" not in data.pn:
+ if "cross" not in data.pn:
+ logger.debug('%s- %s' % (spaces, data.pn))
+
+ depends = []
+ for dep in data.depends:
+ if dep not in assume_provided:
+ depends.append(dep)
+
+ # First find all dependencies not in package list.
+ for dep in depends:
+ if dep not in packages:
+ packages.append(dep)
+ dep_data = get_recipe_info(tinfoil, dep)
+ # Do this once now to reduce the number of bitbake calls.
+ dep_data.depends = dep_data.getVar('DEPENDS').split()
+ recipe_info[dep] = dep_data
+
+ # Then recursively analyze all of the dependencies for the current recipe.
+ for dep in depends:
+ find_dependencies(tinfoil, assume_provided, recipe_info, packages, dep, order + 1)
+
+ with bb.tinfoil.Tinfoil() as tinfoil:
+ tinfoil.logger.setLevel(logger.getEffectiveLevel())
+ tinfoil.prepare()
+
+ assume_provided = tinfoil.config_data.getVar('ASSUME_PROVIDED').split()
+ logger.debug('assumed provided:')
+ for ap in sorted(assume_provided):
+ logger.debug(' - %s' % ap)
+
+ recipe = pkg2recipe(tinfoil, args.package)
+ data = get_recipe_info(tinfoil, recipe)
+ data.depends = []
+ depends = data.getVar('DEPENDS').split()
+ for dep in depends:
+ if dep not in assume_provided:
+ data.depends.append(dep)
+
+ recipe_info = dict([(recipe, data)])
+ packages = []
+ find_dependencies(tinfoil, assume_provided, recipe_info, packages, recipe, order=1)
+
+ print('\nThe following packages are required to build %s' % recipe)
+ for p in sorted(packages):
+ data = recipe_info[p]
+ if "-native" not in data.pn:
+ if "cross" not in data.pn:
+ print(" %s (%s)" % (data.pn,p))
+
+ if args.native:
+ print('\nThe following native packages are required to build %s' % recipe)
+ for p in sorted(packages):
+ data = recipe_info[p]
+ if "-native" in data.pn:
+ print(" %s(%s)" % (data.pn,p))
+ if "cross" in data.pn:
+ print(" %s(%s)" % (data.pn,p))
+
+def default_config():
+ vlist = OrderedDict()
+ vlist['PV'] = 'yes'
+ vlist['SUMMARY'] = 'no'
+ vlist['DESCRIPTION'] = 'no'
+ vlist['SECTION'] = 'no'
+ vlist['LICENSE'] = 'yes'
+ vlist['HOMEPAGE'] = 'no'
+ vlist['BUGTRACKER'] = 'no'
+ vlist['PROVIDES'] = 'no'
+ vlist['BBCLASSEXTEND'] = 'no'
+ vlist['DEPENDS'] = 'no'
+ vlist['PACKAGECONFIG'] = 'no'
+ vlist['SRC_URI'] = 'yes'
+ vlist['SRCREV'] = 'yes'
+ vlist['EXTRA_OECONF'] = 'no'
+ vlist['EXTRA_OESCONS'] = 'no'
+ vlist['EXTRA_OECMAKE'] = 'no'
+ vlist['EXTRA_OEMESON'] = 'no'
+
+ clist = OrderedDict()
+ clist['variables'] = vlist
+ clist['filepath'] = 'no'
+ clist['sha256sum'] = 'no'
+ clist['layerdir'] = 'no'
+ clist['layer'] = 'no'
+ clist['inherits'] = 'no'
+ clist['source_urls'] = 'no'
+ clist['packageconfig_opts'] = 'no'
+ clist['patches'] = 'no'
+ clist['packagedir'] = 'no'
+ return clist
+
+def dump_config(args):
+ config = default_config()
+ f = open('default_config.json', 'w')
+ json.dump(config, f, indent=2)
+ logger.info('Default config list dumped to default_config.json')
+
+def export_manifest_info(args):
+
+ def handle_value(value):
+ if value:
+ return oe.utils.squashspaces(value)
+ else:
+ return value
+
+ if args.config:
+ logger.debug('config: %s' % args.config)
+ f = open(args.config, 'r')
+ config = json.load(f, object_pairs_hook=OrderedDict)
+ else:
+ config = default_config()
+ if logger.isEnabledFor(logging.DEBUG):
+ print('Configuration:')
+ json.dump(config, sys.stdout, indent=2)
+ print('')
+
+ tmpoutdir = tempfile.mkdtemp(prefix=os.path.basename(__file__)+'-')
+ logger.debug('tmp dir: %s' % tmpoutdir)
+
+ # export manifest
+ shutil.copy2(args.manifest,os.path.join(tmpoutdir, "manifest"))
+
+ with bb.tinfoil.Tinfoil(tracking=True) as tinfoil:
+ tinfoil.logger.setLevel(logger.getEffectiveLevel())
+ tinfoil.prepare(config_only=False)
+
+ pkglist = get_pkg_list(args.manifest)
+ # export pkg list
+ f = open(os.path.join(tmpoutdir, "pkgs"), 'w')
+ for pkg in pkglist:
+ f.write('%s\n' % pkg)
+ f.close()
+
+ recipelist = []
+ for pkg in pkglist:
+ recipe = pkg2recipe(tinfoil,pkg)
+ if recipe:
+ if not recipe in recipelist:
+ recipelist.append(recipe)
+ recipelist.sort()
+ # export recipe list
+ f = open(os.path.join(tmpoutdir, "recipes"), 'w')
+ for recipe in recipelist:
+ f.write('%s\n' % recipe)
+ f.close()
+
+ try:
+ rvalues = OrderedDict()
+ for pn in sorted(recipelist):
+ logger.debug('Package: %s' % pn)
+ rd = tinfoil.parse_recipe(pn)
+
+ rvalues[pn] = OrderedDict()
+
+ for varname in config['variables']:
+ if config['variables'][varname] == 'yes':
+ rvalues[pn][varname] = handle_value(rd.getVar(varname))
+
+ fpth = rd.getVar('FILE')
+ layerdir = oe.recipeutils.find_layerdir(fpth)
+ if config['filepath'] == 'yes':
+ rvalues[pn]['filepath'] = os.path.relpath(fpth, layerdir)
+ if config['sha256sum'] == 'yes':
+ rvalues[pn]['sha256sum'] = bb.utils.sha256_file(fpth)
+
+ if config['layerdir'] == 'yes':
+ rvalues[pn]['layerdir'] = layerdir
+
+ if config['layer'] == 'yes':
+ rvalues[pn]['layer'] = os.path.basename(layerdir)
+
+ if config['inherits'] == 'yes':
+ gr = set(tinfoil.config_data.getVar("__inherit_cache") or [])
+ lr = set(rd.getVar("__inherit_cache") or [])
+ rvalues[pn]['inherits'] = sorted({os.path.splitext(os.path.basename(r))[0] for r in lr if r not in gr})
+
+ if config['source_urls'] == 'yes':
+ rvalues[pn]['source_urls'] = []
+ for url in (rd.getVar('SRC_URI') or '').split():
+ if not url.startswith('file://'):
+ url = url.split(';')[0]
+ rvalues[pn]['source_urls'].append(url)
+
+ if config['packageconfig_opts'] == 'yes':
+ rvalues[pn]['packageconfig_opts'] = OrderedDict()
+ for key in rd.getVarFlags('PACKAGECONFIG').keys():
+ if key == 'doc':
+ continue
+ rvalues[pn]['packageconfig_opts'][key] = rd.getVarFlag('PACKAGECONFIG', key, True)
+
+ if config['patches'] == 'yes':
+ patches = oe.recipeutils.get_recipe_patches(rd)
+ rvalues[pn]['patches'] = []
+ if patches:
+ recipeoutdir = os.path.join(tmpoutdir, pn, 'patches')
+ bb.utils.mkdirhier(recipeoutdir)
+ for patch in patches:
+ # Patches may be in other layers too
+ patchlayerdir = oe.recipeutils.find_layerdir(patch)
+ # patchlayerdir will be None for remote patches, which we ignore
+ # (since currently they are considered as part of sources)
+ if patchlayerdir:
+ rvalues[pn]['patches'].append((os.path.basename(patchlayerdir), os.path.relpath(patch, patchlayerdir)))
+ shutil.copy(patch, recipeoutdir)
+
+ if config['packagedir'] == 'yes':
+ pn_dir = os.path.join(tmpoutdir, pn)
+ bb.utils.mkdirhier(pn_dir)
+ f = open(os.path.join(pn_dir, 'recipe.json'), 'w')
+ json.dump(rvalues[pn], f, indent=2)
+ f.close()
+
+ with open(os.path.join(tmpoutdir, 'recipes.json'), 'w') as f:
+ json.dump(rvalues, f, indent=2)
+
+ if args.output:
+ outname = os.path.basename(args.output)
+ else:
+ outname = os.path.splitext(os.path.basename(args.manifest))[0]
+ if outname.endswith('.tar.gz'):
+ outname = outname[:-7]
+ elif outname.endswith('.tgz'):
+ outname = outname[:-4]
+
+ tarfn = outname
+ if tarfn.endswith(os.sep):
+ tarfn = tarfn[:-1]
+ if not tarfn.endswith(('.tar.gz', '.tgz')):
+ tarfn += '.tar.gz'
+ with open(tarfn, 'wb') as f:
+ with tarfile.open(None, "w:gz", f) as tar:
+ tar.add(tmpoutdir, outname)
+ finally:
+ shutil.rmtree(tmpoutdir)
+
+
+def main():
+ parser = argparse_oe.ArgumentParser(description="Image manifest utility",
+ epilog="Use %(prog)s <subcommand> --help to get help on a specific command")
+ parser.add_argument('-d', '--debug', help='Enable debug output', action='store_true')
+ parser.add_argument('-q', '--quiet', help='Print only errors', action='store_true')
+ subparsers = parser.add_subparsers(dest="subparser_name", title='subcommands', metavar='<subcommand>')
+ subparsers.required = True
+
+ # get recipe info
+ parser_get_recipes = subparsers.add_parser('recipe-info',
+ help='Get recipe info',
+ description='Get recipe information for a package')
+ parser_get_recipes.add_argument('package', help='Package name')
+ parser_get_recipes.set_defaults(func=get_recipe)
+
+ # list runtime dependencies
+ parser_pkg_dep = subparsers.add_parser('list-depends',
+ help='List dependencies',
+ description='List dependencies required to build the package')
+ parser_pkg_dep.add_argument('--native', help='also print native and cross packages', action='store_true')
+ parser_pkg_dep.add_argument('package', help='Package name')
+ parser_pkg_dep.set_defaults(func=pkg_dependencies)
+
+ # list recipes
+ parser_recipes = subparsers.add_parser('list-recipes',
+ help='List recipes producing packages within an image',
+ description='Lists recipes producing the packages that went into an image, using the manifest and pkgdata')
+ parser_recipes.add_argument('manifest', help='Manifest file')
+ parser_recipes.set_defaults(func=list_recipes)
+
+ # list packages
+ parser_packages = subparsers.add_parser('list-packages',
+ help='List packages within an image',
+ description='Lists packages that went into an image, using the manifest')
+ parser_packages.add_argument('manifest', help='Manifest file')
+ parser_packages.set_defaults(func=list_packages)
+
+ # list layers
+ parser_layers = subparsers.add_parser('list-layers',
+ help='List included layers',
+ description='Lists included layers')
+ parser_layers.add_argument('-o', '--output', help='Output file - defaults to stdout if not specified',
+ default=sys.stdout, type=argparse.FileType('w'))
+ parser_layers.set_defaults(func=list_layers)
+
+ # dump default configuration file
+ parser_dconfig = subparsers.add_parser('dump-config',
+ help='Dump default config',
+ description='Dump default config to default_config.json')
+ parser_dconfig.set_defaults(func=dump_config)
+
+ # export recipe info for packages in manifest
+ parser_export = subparsers.add_parser('manifest-info',
+ help='Export recipe info for a manifest',
+ description='Export recipe information using the manifest')
+ parser_export.add_argument('-c', '--config', help='load config from json file')
+ parser_export.add_argument('-o', '--output', help='Output file (tarball) - defaults to manifest name if not specified')
+ parser_export.add_argument('manifest', help='Manifest file')
+ parser_export.set_defaults(func=export_manifest_info)
+
+ args = parser.parse_args()
+
+ if args.debug:
+ logger.setLevel(logging.DEBUG)
+ logger.debug("Debug Enabled")
+ elif args.quiet:
+ logger.setLevel(logging.ERROR)
+
+ ret = args.func(args)
+
+ return ret
+
+
+if __name__ == "__main__":
+ try:
+ ret = main()
+ except Exception:
+ ret = 1
+ import traceback
+ traceback.print_exc()
+ sys.exit(ret)
diff --git a/poky/scripts/lib/devtool/standard.py b/poky/scripts/lib/devtool/standard.py
index f364a4528..5eba2191d 100644
--- a/poky/scripts/lib/devtool/standard.py
+++ b/poky/scripts/lib/devtool/standard.py
@@ -746,7 +746,7 @@ def _check_preserve(config, recipename):
os.remove(removefile)
else:
tf.write(line)
- os.rename(newfile, origfile)
+ bb.utils.rename(newfile, origfile)
def get_staging_kver(srcdir):
# Kernel version from work-shared
@@ -1094,10 +1094,10 @@ def rename(args, config, basepath, workspace):
# Rename bbappend
logger.info('Renaming %s to %s' % (append, newappend))
- os.rename(append, newappend)
+ bb.utils.rename(append, newappend)
# Rename recipe file
logger.info('Renaming %s to %s' % (recipefile, newfile))
- os.rename(recipefile, newfile)
+ bb.utils.rename(recipefile, newfile)
# Rename source tree if it's the default path
appendmd5 = None
@@ -1333,7 +1333,7 @@ def _export_patches(srctree, rd, start_rev, destdir, changed_revs=None):
if match_name:
# Rename patch files
if new_patch != match_name:
- os.rename(os.path.join(destdir, new_patch),
+ bb.utils.rename(os.path.join(destdir, new_patch),
os.path.join(destdir, match_name))
# Need to pop it off the list now before checking changed_revs
oldpath = existing_patches.pop(old_patch)
diff --git a/poky/scripts/lib/devtool/upgrade.py b/poky/scripts/lib/devtool/upgrade.py
index 5a057e95f..24e3700ec 100644
--- a/poky/scripts/lib/devtool/upgrade.py
+++ b/poky/scripts/lib/devtool/upgrade.py
@@ -71,7 +71,8 @@ def _rename_recipe_dirs(oldpv, newpv, path):
if oldfile.find(oldpv) != -1:
newfile = oldfile.replace(oldpv, newpv)
if oldfile != newfile:
- os.rename(os.path.join(path, oldfile), os.path.join(path, newfile))
+ bb.utils.rename(os.path.join(path, oldfile),
+ os.path.join(path, newfile))
def _rename_recipe_file(oldrecipe, bpn, oldpv, newpv, path):
oldrecipe = os.path.basename(oldrecipe)
diff --git a/poky/scripts/lib/wic/plugins/imager/direct.py b/poky/scripts/lib/wic/plugins/imager/direct.py
index ea709e8c5..96168aadb 100644
--- a/poky/scripts/lib/wic/plugins/imager/direct.py
+++ b/poky/scripts/lib/wic/plugins/imager/direct.py
@@ -616,5 +616,5 @@ class PartitionedImage():
part.start + part.size_sec - 1, part.size_sec)
partimage = self.path + '.p%d' % part.num
- os.rename(source, partimage)
+ bb.utils.rename(source, partimage)
self.partimages.append(partimage)
diff --git a/poky/scripts/oe-buildenv-internal b/poky/scripts/oe-buildenv-internal
index ba0a9b44d..e0d920f2f 100755
--- a/poky/scripts/oe-buildenv-internal
+++ b/poky/scripts/oe-buildenv-internal
@@ -88,6 +88,10 @@ if [ ! -d "$BITBAKEDIR" ]; then
return 1
fi
+# Add BitBake's library to PYTHONPATH
+PYTHONPATH=$BITBAKEDIR/lib:$PYTHONPATH
+export PYTHONPATH
+
# Make sure our paths are at the beginning of $PATH
for newpath in "$BITBAKEDIR/bin" "$OEROOT/scripts"; do
# Remove any existences of $newpath from $PATH
diff --git a/poky/scripts/oe-debuginfod b/poky/scripts/oe-debuginfod
index 967dd5807..556076988 100755
--- a/poky/scripts/oe-debuginfod
+++ b/poky/scripts/oe-debuginfod
@@ -20,12 +20,7 @@ if __name__ == "__main__":
package_classes_var = "DEPLOY_DIR_" + tinfoil.config_data.getVar("PACKAGE_CLASSES").split()[0].replace("package_", "").upper()
feed_dir = tinfoil.config_data.getVar(package_classes_var, expand=True)
- try:
- if package_classes_var == "DEPLOY_DIR_RPM":
- subprocess.check_output(subprocess.run(['oe-run-native', 'elfutils-native', 'debuginfod', '--verbose', '-R', feed_dir]))
- else:
- subprocess.check_output(subprocess.run(['oe-run-native', 'elfutils-native', 'debuginfod', '--verbose', '-U', feed_dir]))
- except subprocess.CalledProcessError:
- print("\nTo use the debuginfod server Please ensure that this variable PACKAGECONFIG_pn-elfutils-native = \"debuginfod libdebuginfod\" is set in the local.conf")
- except KeyboardInterrupt:
- sys.exit(1)
+ subprocess.call(['bitbake', '-c', 'addto_recipe_sysroot', 'elfutils-native'])
+
+ subprocess.call(['oe-run-native', 'elfutils-native', 'debuginfod', '--verbose', '-R', '-U', feed_dir])
+ print("\nTo use the debuginfod server please ensure that this variable PACKAGECONFIG_pn-elfutils-native = \"debuginfod libdebuginfod\" is set in the local.conf")
diff --git a/poky/scripts/oe-time-dd-test.sh b/poky/scripts/oe-time-dd-test.sh
index 970a86dff..46b218b76 100644..100755
--- a/poky/scripts/oe-time-dd-test.sh
+++ b/poky/scripts/oe-time-dd-test.sh
@@ -13,11 +13,17 @@ usage() {
echo "Usage: $0 <count>"
}
+TIMEOUT=15
+
if [ $# -ne 1 ]; then
usage
exit 1
fi
uptime
-/usr/bin/time -f "%e" dd if=/dev/zero of=foo bs=1024 count=$1 conv=fsync
-top -b -n 1 | grep -v "0 0 0" | grep -E ' [RSD] ' | cut -c 46-47 | sort | uniq -c
+timeout ${TIMEOUT} dd if=/dev/zero of=oe-time-dd-test.dat bs=1024 count=$1 conv=fsync
+if [ $? -ne 0 ]; then
+ echo "Timeout used: ${TIMEOUT}"
+ top -c -b -n1 -w 512
+ tail -30 tmp*/log/cooker/*/console-latest.log
+fi
diff --git a/poky/scripts/pybootchartgui/pybootchartgui/draw.py b/poky/scripts/pybootchartgui/pybootchartgui/draw.py
index 53324b9f8..29eb7505b 100644
--- a/poky/scripts/pybootchartgui/pybootchartgui/draw.py
+++ b/poky/scripts/pybootchartgui/pybootchartgui/draw.py
@@ -271,7 +271,7 @@ def draw_chart(ctx, color, fill, chart_bounds, data, proc_tree, data_range):
# If data_range is given, scale the chart so that the value range in
# data_range matches the chart bounds exactly.
# Otherwise, scale so that the actual data matches the chart bounds.
- if data_range:
+ if data_range and (data_range[1] - data_range[0]):
yscale = float(chart_bounds[3]) / (data_range[1] - data_range[0])
ybase = data_range[0]
else:
diff --git a/poky/scripts/runqemu b/poky/scripts/runqemu
index ba0b701af..edd17d09c 100755
--- a/poky/scripts/runqemu
+++ b/poky/scripts/runqemu
@@ -145,7 +145,6 @@ class BaseConfig(object):
self.qemu_opt = ''
self.qemu_opt_script = ''
self.qemuparams = ''
- self.clean_nfs_dir = False
self.nfs_server = ''
self.rootfs = ''
# File name(s) of a OVMF firmware file or variable store,
@@ -210,6 +209,8 @@ class BaseConfig(object):
self.qemupid = None
# avoid cleanup twice
self.cleaned = False
+ # Files to cleanup after run
+ self.cleanup_files = []
def acquire_taplock(self, error=True):
logger.debug("Acquiring lockfile %s..." % self.taplock)
@@ -1020,8 +1021,9 @@ class BaseConfig(object):
logger.info('Running %s...' % str(cmd))
if subprocess.call(cmd) != 0:
raise RunQemuError('Failed to run %s' % cmd)
- self.clean_nfs_dir = True
self.rootfs = dest
+ self.cleanup_files.append(self.rootfs)
+ self.cleanup_files.append('%s.pseudo_state' % self.rootfs)
# Start the userspace NFS server
cmd = ('runqemu-export-rootfs', 'start', self.rootfs)
@@ -1204,6 +1206,7 @@ class BaseConfig(object):
self.rootfs = newrootfs
# Don't need a second copy now!
self.snapshot = False
+ self.cleanup_files.append(newrootfs)
qb_rootfs_opt = self.get('QB_ROOTFS_OPT')
if qb_rootfs_opt:
@@ -1476,10 +1479,13 @@ class BaseConfig(object):
if self.saved_stty:
subprocess.check_call(("stty", self.saved_stty))
- if self.clean_nfs_dir:
- logger.info('Removing %s' % self.rootfs)
- shutil.rmtree(self.rootfs)
- shutil.rmtree('%s.pseudo_state' % self.rootfs)
+ if self.cleanup_files:
+ for ent in self.cleanup_files:
+ logger.info('Removing %s' % ent)
+ if os.path.isfile(ent):
+ os.remove(ent)
+ else:
+ shutil.rmtree(ent)
self.cleaned = True
diff --git a/poky/scripts/yocto-check-layer b/poky/scripts/yocto-check-layer
index b7c83c8b5..44e77b73d 100755
--- a/poky/scripts/yocto-check-layer
+++ b/poky/scripts/yocto-check-layer
@@ -112,7 +112,7 @@ def main():
% layer['name'])
layers.remove(layer)
elif layer['type'] == LayerType.ERROR_NO_LAYER_CONF:
- logger.error("%s: Don't have conf/layer.conf file."\
+ logger.info("%s: Doesn't have conf/layer.conf file, so ignoring"\
% layer['name'])
layers.remove(layer)
else:
@@ -138,6 +138,9 @@ def main():
layer['type'] == LayerType.ERROR_BSP_DISTRO:
continue
+ # Reset to a clean backup copy for each run
+ shutil.copyfile(bblayersconf + '.backup', bblayersconf)
+
if check_bblayers(bblayersconf, layer['path'], logger):
logger.info("%s already in %s. To capture initial signatures, layer under test should not present "
"in BBLAYERS. Please remove %s from BBLAYERS." % (layer['name'], bblayersconf, layer['name']))