summaryrefslogtreecommitdiff
path: root/poky/meta/recipes-devtools/binutils
diff options
context:
space:
mode:
authorAndrew Geissler <geissonator@yahoo.com>2022-09-30 21:13:31 +0300
committerAndrew Geissler <andrew@geissonator.com>2022-10-03 05:08:14 +0300
commit87f5cff0cfca11f43851cb3d7d49dd96ced7fe03 (patch)
tree5a748b271a6f682219155ce8292ca034c1b0411c /poky/meta/recipes-devtools/binutils
parent251ad11cced0e148ba7529369597bf1d8d851032 (diff)
downloadopenbmc-87f5cff0cfca11f43851cb3d7d49dd96ced7fe03.tar.xz
subtree updates
meta-raspberrypi: c57b464b88..45d56d82b7: Andrei Gherzan (8): linux-firmware-rpidistro: Fix wireless on Raspberry Pi 4 sdcard_image-rpi.bbclass: Move SDIMG_KERNELIMAGE definitions to their machines raspberrypi0-2w.conf: Include the RPi 0-2w dtb for all 32-bit machines rpi-base.inc: Split IMAGE_BOOT_FILES for kernel image Add support for a ARMv7 machine supporting multiple Raspberry Pi boards ci: Add raspberrypi-armv7 to the build matrix Add support for a ARMv8 machine supporting multiple Raspberry Pi boards ci: Add raspberrypi-armv8 to the build matrix Chris Blättermann (1): meta-raspberrypi: Include the device tree for Raspberry Pi CM4S Khem Raj (2): rpidistro-vlc,rpidistro-ffmpeg: Limit scope to just rpi machines layers: Add langdale to LAYERSERIES_COMPAT Vincent Davis Jr (4): raspidistro-ffmpeg: add support for building raspidistro ffmpeg rpidistro-vlc: add rpidistro VLC build (with MMAL enabled) Add support for optional selection of vlc and ffmpeg docs: add info for raspberrypi distro vlc Vinicius Aquino (1): raspberrypi-firmware: Update to 20220830 snapshot meta-openembedded: a755af4fb5..0782ea454a: Adrian Freihofer (1): networkmanager: update 1.38.0 -> 1.40.0 Alejandro Enedino Hernandez Samaniego (1): emacs: Update to version 28.2 Alex Kiernan (2): libcoap: Fix gnutls/openssl/mbedtls PACKAGECONFIG conflicts libcoap: Upgrade 4.3.0 -> 4.3.1 Alexander Kanavin (7): mozjs-91: update to 91.13.0 collectd: add a python PACKAGECONFIG, off by default zbar: disable python3 support as incompatible with py 3.11 libsigrockdecode: add python 3.11 compatibility minifi-cpp: disable python support as incompatible with python 3.11 mozjs-91: backport a python 3.11 compatibility patch mozjs-78: remove the recipe Andreas Müller (1): octave: upgrade 7.1.0 -> 7.2.0 Andrej Kozemcak (1): squid: upgrade 4.15 -> 5.7 Andres Beltran (1): Make graph dependencies optional Bernhard Messerklinger (1): libconfig-tiny-perl: add recipe Chen Qi (2): passwdqc: fix the libpasswdqc FILES setting polkit: refresh patch Frank de Brabander (1): ntp: add missing runtime dependency on libgcc for sntp Gianfranco Costamagna (1): vboxguestdrivers: upgrade 6.1.36 -> 6.1.38 Hitendra Prajapati (1): wireshark: CVE-2022-3190 Infinite loop in legacy style dissector Howard Cochran (1): ufw: Fix "could not find required binary 'iptables'" Ivan Maidanski (1): bdwgc: Fix typo in EXTRA_OECONF and remove unneeded extra CFLAGS Jan Vermaete (1): makeself: upate anonymous git access and dropped man page. Khem Raj (140): gtk+: Fix function signature of create_menu() ippool: Fix build with clang15 corosync: Upgrade to 3.1.6 dlm: Upgrade to 4.1.1 dante: Upgrade to 1.4.3 ez-ipupdate: Fix build with clang openflow: Include sys/stat.h for fchmod nautilus: Backport a patch to fix build with clang-15 mctp: Update to latest tip of trunk ypbind-mt: Upgrade to 2.7.2 packagegroup-meta-networking: Remove ypbind-mt on musl fping: Fix build with musl iscsi-initiator-utils: Upgrade to 2.1.7 radvd: Fix build on musl linux-atm: Include missing string.h memcached: Upgrade to 1.6.17 openlldp: Upgrade to 1.1.0 ettercap: Pass -D_GNU_SOURCE rdma-core: Fix build with musl openl2tp: Provide prototype for l2tp_api_rpc_check_request iscsi-initiator-utils: Avoid hardcoding sed to /usr/bin/sed toybox: Remove mount.h conflict fix libuser: Upgrade to 0.63 gnome-keyring: Upgrade to 42.1 folks: Disable LTO and implicit-function-declaration as error libgtop: Fix build with clang ot-daemon,ot-br-posix: Fix mbedtls module builds libcurses-perl: Fix main prototype in testtyp.c rasdaemon: Upgrade to 0.6.8 psqlodbc: Upgrade to 13.02.0000 soci: Fix build with clang 15 geany-plugins: Fix type error found with clang 15 nlohmann-fifo: Update to tip of trunk xfce4-dev-tools: Fix configure check for libX11 frr: Fix configure check for libreadline quagga: Fix AC_CHECK_LIB for libreadline libutempter: Upgrade to 1.2.2-alt1 libuio: Update to latest tip of trunk serial-forward: Correct typo in specifying string.h header mcelog: Upgrade to v189 fvwm: Disable int-conversion and implicit-int warnings as errors hddtemp: Add missing prototype for ata_get_powermode in sata.c nana: Include stdlib.h form exit() and abort() functions libsmi: Fix build with clang 15 ckermit: Fix build with clang linuxptp: Include string.h for strncpy() wifi-test-suite: Fix build with clang xf86-video-nouveau: Do not treat implicit-function-declaration as error android-tools: Add protoype declaration for b64_pton libio-pty-perl: Fix build on musl xrdp: Fix build with clang-15 libpwquality: Do not use fgetpwent_r on musl lmbench: Add patch to fix typo including string.h header lxdm: Fix msghdr initialization on musl zabbix: Upgrade to 6.2.2 epeg: Fix AC_CHECK_LIB for libjpeg and libexif gensio: Fix AC_CHECK_LIB for libwrap pam-plugin-ccreds: Fix AC_CHECK_LIB for libdb sblim-sfcb: Fix AC_CHECK_LIB tests for various libraries rdfind: Fix AC_CHECK_LIB for libnettle srecord: Fix AC_CHECK_LIB for gpg-error tokyocabinet: Fix AC_CHECK_LIB test functions libcereal: Do not use uniform_int_distribution<char> template raptor2: Match reutrn type from RAPTOR_ASSERT_OBJECT_POINTER_RETURN_VALUE pam-ssh-agent-auth: Fix __progname configure check daemontools: Fix build with clang15 and musl pmtools: Update patch to include string.h and function prototype for main uw-imap: Fix build with clang/musl libx86: Fix pointer typecasting in assignment obconf: Add fixes for missing function prototypes sblim-sfcc: Fix build with clang sblim-sfcb: Add missing headers file for clang/musl sanlock: Add missing prototype for mem* functions geis: Add missing prototypes to functions libgxim: Enable debug mode hplip: Upgrade to 3.22.6 scsirastools: Pass -D_LARGEFILE64_SOURCE via CFLAGS con2fbmap: Include string.h for strerror directfb-examples: Fix pthread_t assignment type uml-utilities: Add missing headers for exit and str+ functions oprofile: Fix configure check for perf_events support libmcrypt: Suppress implicit-int warnings as errors gtkperf: Define prototype for setup_appdata cyrus-sasl: Fix time.h detection logic in configure enscript: Include string.h form str* function prototypes glm: Disable clang specific warnings mg: Upgrade to 20220614 release gphoto2: Upgrade to 2.5.28 ipmiutil: Add missing headers for protypes of free/malloc/atoi cdrkit: Add missing header for function prototypes fluentbit: Drop redundant patch minifi-cpp: Disable gnu extention of strerror_r when using musl augeas: Check for __GLIBC__ to use gnu extention for strerror_r nlohmann-fifo: Disable cpp11 shuffle with clang/libc++ ipmitool: Update to 1.8.19 autofs: Backport innetgr and strerror_r musl patches linux-atm: Remove AC_CHECK_LIB for libresolv hdf5: Upgrade to 1.13.2 openldap: Fix configure check for pthread_detach libimobiledevice: Explicitly pass -D_GNU_SOURCE via cflags jq: Upgrade to latest and fix configure tests lcdproc: Fix build on non-x86 and arm architectures libsmi: Define _DEFAULT_SOURCE for timegm API tftp-hpa: Fix includes for bsd_signal() sblim-sfcb: Include config.h before using CONFIG_ERROR_H minifi-cpp: Disable lto. ntp: Fix check for pthread_detach netkit-telnet: Add time.h from strftime/time prototypes passwdqc: Upgrade to 2.0.2 lmbench: Fix build time tests and use the scripts/build mcpp: Fix build with clang ot-br-posix: Fix unused variable error sthttpd: Define _GNU_SOURCE if HAVE_SIGSET is set libesmtp: Enable gnu strerror_r on glibc android-tools: Use local strlcpy implementation on glibc uw-imap: Avoid programs using gets() matplotlib: Upgrade to 3.5.3 cockpit: Update to 276 geary: Fix build with clang toybox: Fix build on 32bit arches with 64bit time_t defaults libcdio: Define _LARGEFILE64_SOURCE rocksdb: Upgrade to 7.5.3 release fwupd: Upgrade to 1.8.4 luajit: Use builtin for __clear_cache on clang kexec-tools-klibc: Fix type mismatch in calls to dtb_set_initrd on mips minifi-cpp: Fix build on musl aom: Provide missing function prototypes vulkan-cts,opengl-es-cts: Upgrade to1.3.3.1 and 3.2.8 respectively python3-lxml: Delete fwupd: Fix tostring() call to not have xml_declaration param sox: Enable -D_FILE_OFFSET_BITS=64 and depend on libtool rdfind: Fix patch-fuzz warnings fwupd: Drop sqlite3 from default deps sqlite: Drop sqlite2 recipe wvstreams: Add missing dependency on boost jack: Upgrade to 1.19.21 python3-grpcio-tools: Disable clang's musttail attribute on mips fwupd: Replace python3.7 patch with upstreamed one mdio-tools,mdio-netlink: Upgrade recipes to 1.2.0 python3-requests-unixsocket: Fix override syntax Lei Maohui (5): fltk: Fix buildpaths warning. exiv2: Fix buildpaths warning. tracker-miners: Fix buildpaths warning. gexiv2: Fix buildpaths warning. mariadb: Fix buildpaths warning. Leon Anavi (24): python3-imageio: Upgrade 2.21.1 -> 2.21.2 python3-prompt-toolkit: Upgrade 3.0.30 -> 3.0.31 python3-haversine: Upgrade 2.6.0 -> 2.7.0 python3-transitions: Upgrade 0.8.11 -> 0.9.0 python3-astroid: Upgrade 2.12.5 -> 2.12.9 python3-imageio: Upgrade 2.21.2 -> 2.21.3 python3-portion: Upgrade 2.2.0 -> 2.3.0 python3-networkx: Upgrade 2.8.5 -> 2.8.6 python3-prettytable: Upgrade 3.3.0 -> 3.4.1 python3-pydantic: Upgrade 1.9.1 -> 1.10.2 python3-soupsieve: Upgrade 2.3.1 -> 2.3.2.post1 python3-awesomeversion: Upgrade 22.8.0 -> 22.9.0 python3-ujson: Upgrade 5.4.0 -> 5.5.0 python3-marshmallow: Upgrade 3.17.1 -> 3.18.0 python3-elementpath: Upgrade 3.0.1 -> 3.0.2 python3-traitlets: Upgrade 5.3.0 -> 5.4.0 python3-joblib: Upgrade 1.1.0 -> 1.2.0 python3-astroid: Upgrade 2.12.9 -> 2.12.10 python3-imageio: Upgrade 2.21.3 -> 2.22.0 python3-email-validator: Upgrade 1.2.1 -> 1.3.0 python3-termcolor: Upgrade 1.1.0 -> 2.0.1 python3-aiohttp: Upgrade 3.8.1 -> 3.8.3 python3-pytz-deprecation-shim: Runtime dependencies python3-license-expression: Upgrade 21.6.14 -> 30.0.0 Luca Boccassi (1): dbus-broker: update to v32 Markus Volk (4): pipewire: update 0.3.56 -> 0.3.57 flatbuffers: upgrade 2.0.6 -> 2.0.8 appstream-glib: fix manpage generation jansson: use cmake instead of autotools Martin Jansa (2): lvm2: use bfd even with ld-is-gold in DISTRO_FEATURES libcec: fix runtime dependencies for ${PN}-examples Ming Liu (1): libusbgx: add PACKAGECONFIG to make build predicable Mingli Yu (2): python3-pyzmq: Fix buildpaths issue python3-pyzmq: Add RDEPENDS for python3-pyzmq-ptest Naveen Saini (1): ocl-icd: add nativesdk support Ovidiu Panait (1): redis: build with USE_SYSTEMD=yes when systemd is enabled Patrick Williams (1): unifex: remove recipe Philippe Coval (3): lvgl: Add dialog-lvgl recipe as demo example pim435: Relocate sources to eclipse ot-br-posix: Add dep to ipset as used by firewall Riyaz Khan (2): sdbus-c++: Upgrade sdbus-c++ 1.1.0 to 1.2.0 sdbus-c++-tools: Upgrade sdbus-c++-tools 1.1.0 to 1.2.0 Sergio Prado (1): polkit: refresh patch to fix warning Steffen Olsen (1): postgreql: Fix pg_config not working after buildpaths patch Vincent Davis Jr (1): cglm: New recipe for cglm-0.8.5 Wang Mingyu (16): abseil-cpp: upgrade 20220623.0 -> 20220623.1 chrony: upgrade 4.2 -> 4.3 ctags: upgrade 5.9.20220821.0 -> 5.9.20220828.0 fio: upgrade 3.31 -> 3.32 libblockdev: upgrade 2.26 -> 2.27 libdev-checklib-perl: upgrade 1.14 -> 1.16 lvm2/libdevmapper: upgrade 2.03.11 -> 2.03.16 libforms: upgrade 1.2.3 -> 1.2.4 python3-astroid: upgrade 2.12.4 -> 2.12.5 python3-colorlog: upgrade 6.6.0 -> 6.7.0 python3-django: upgrade 3.2.12 -> 4.1 python3-google-api-core: upgrade 2.8.2 -> 2.10.0 python3-google-api-python-client: upgrade 2.57.0 -> 2.58.0 python3-grpcio: upgrade 1.48.0 -> 1.48.1 python3-grpcio-tools: upgrade 1.48.0 -> 1.48.1 cli11: upgrade 1.9.1 -> 2.2.0 Xu Huan (5): python3-greenlet: upgrade 1.1.2 -> 1.1.3 python3-marshmallow: upgrade 3.17.0 -> 3.17.1 python3-pyudev: upgrade 0.23.2 -> 0.24.0 python3-websocket-client: upgrade 1.3.3 -> 1.4.0 python3-xmlschema: upgrade 2.0.2 -> 2.0.3 Yi Zhao (1): tcpreplay: fix buildpaths issue Zheng Qiu (2): jq: add ptest rsyslog: update 8.2206->8.2208 hongxu (1): python3-h5py: fix wrong file driver version wangmy (78): fuse3: upgrade 3.11.0 -> 3.12.0 xfstests: upgrade 2022.08.07 -> 2022.08.21 gnome-bluetooth: upgrade 42.3 -> 42.4 libadwaita: upgrade 1.1.4 -> 1.1.5 networkmanager-openvpn: upgrade 1.8.18 -> 1.10.0 open-isns: upgrade 0.101 -> 0.102 boost-sml: upgrade 1.1.5 -> 1.1.6 ctags: upgrade 5.9.20220828.0 -> 5.9.20220904.0 hwdata: upgrade 0.361 -> 0.362 modemmanager: upgrade 1.18.10 -> 1.18.12 php: upgrade 8.1.9 -> 8.1.10 poppler: upgrade 22.08.0 -> 22.09.0 syslog-ng: upgrade 3.37.1 -> 3.38.1 libio-socket-ssl-perl: upgrade 2.074 -> 2.075 python3-aiofiles: upgrade 0.8.0 -> 22.1.0 python3-antlr4-runtime: upgrade 4.10 -> 4.11.1 python3-croniter: upgrade 1.3.5 -> 1.3.7 python3-google-api-python-client: upgrade 2.58.0 -> 2.60.0 python3-langtable: upgrade 0.0.58 -> 0.0.59 python3-oauthlib: upgrade 3.2.0 -> 3.2.1 python3-pymetno: upgrade 0.9.0 -> 0.10.0 python3-sqlalchemy: upgrade 1.4.40 -> 1.4.41 python3-twisted: upgrade 22.4.0 -> 22.8.0 python3-websocket-client: upgrade 1.4.0 -> 1.4.1 python3-xmlschema: upgrade 2.0.3 -> 2.0.4 libadwaita: upgrade 1.1.5 -> 1.2.0 bats: upgrade 1.7.0 -> 1.8.0 ctags: upgrade 5.9.20220904.0 -> 5.9.20220911.0 iceauth: upgrade 1.0.8 -> 1.0.9 iwd: upgrade 1.29 -> 1.30 libblockdev: upgrade 2.27 -> 2.28 libjcat: upgrade 0.1.11 -> 0.1.12 libpfm4: upgrade 4.11.0 -> 4.12.0 libxmlb: upgrade 0.3.9 -> 0.3.10 neon: upgrade 0.32.2 -> 0.32.4 setxkbmap: upgrade 1.3.2 -> 1.3.3 xclock: upgrade 1.0.9 -> 1.1.1 xkbutils: upgrade 1.0.4 -> 1.0.5 xlsfonts: upgrade 1.0.6 -> 1.0.7 xmag: upgrade 1.0.6 -> 1.0.7 xwud: upgrade 1.0.5 -> 1.0.6 python3-cachecontrol: upgrade 0.12.11 -> 0.12.12 python3-cantools: upgrade 37.1.2 -> 37.2.0 python3-eth-typing: upgrade 3.1.0 -> 3.2.0 python3-fasteners: upgrade 0.17.3 -> 0.18 python3-flask-socketio: upgrade 5.3.0 -> 5.3.1 python3-google-api-core: upgrade 2.10.0 -> 2.10.1 python3-google-api-python-client: upgrade 2.60.0 -> 2.61.0 python3-grpcio-tools: upgrade 1.48.1 -> 1.49.0 python3-grpcio: upgrade 1.48.1 -> 1.49.0 python3-jsonrpcserver: upgrade 5.0.8 -> 5.0.9 python3-protobuf: upgrade 4.21.5 -> 4.21.6 xfstests: upgrade 2022.08.21 -> 2022.09.04 gnome-font-viewer: upgrade 42.0 -> 43.0 tracker: upgrade 3.3.3 -> 3.4.0 yelp-xsl: upgrade 42.0 -> 42.1 dnsmasq: upgrade 2.86 -> 2.87 unbound: upgrade 1.16.2 -> 1.16.3 cairomm-1.16: upgrade 1.16.1 -> 1.16.2 ctags: upgrade 5.9.20220911.0 -> 5.9.20220925.0 libgee: upgrade 0.20.5 -> 0.20.6 libpeas: upgrade 1.32.0 -> 1.34.0 opencl-headers: upgrade 2022.05.18 -> 2022.09.23 pangomm-2.48: upgrade 2.50.0 -> 2.50.1 thrift: upgrade 0.16.0 -> 0.17.0 zabbix: upgrade 6.2.2 -> 6.2.3 python3-djangorestframework: upgrade 3.13.1 -> 3.14.0 python3-google-api-python-client: upgrade 2.61.0 -> 2.62.0 python3-google-auth: upgrade 2.11.0 -> 2.11.1 python3-grpcio-tools: upgrade 1.49.0 -> 1.49.1 python3-grpcio: upgrade 1.49.0 -> 1.49.1 python3-h11: upgrade 0.13.0 -> 0.14.0 python3-humanize: upgrade 4.3.0 -> 4.4.0 python3-langtable: upgrade 0.0.59 -> 0.0.60 python3-ldap: upgrade 3.4.2 -> 3.4.3 python3-pandas: upgrade 1.4.4 -> 1.5.0 python3-path: upgrade 16.4.0 -> 16.5.0 python3-xmlschema: upgrade 2.0.4 -> 2.1.0 zhengrq.fnst (8): python3-astroid: upgrade 2.12.2 -> 2.12.4 python3-flatbuffers: upgrade 2.0.6 -> 2.0.7 python3-flask-socketio: upgrade 5.2.0 -> 5.3.0 python3-gnupg: upgrade 0.4.9 -> 0.5.0 python3-natsort: upgrade 8.1.0 -> 8.2.0 python3-sympy: upgrade 1.10.1 -> 1.11.1 python3-pandas: upgrade 1.4.3 -> 1.4.4 python3-parsimonious: upgrade 0.9.0 -> 0.10.0 zhengruoqin (15): wolfssl: upgrade 5.4.0 -> 5.5.0 ser2net: upgrade 4.3.7 -> 4.3.8 tree: upgrade 2.0.3 -> 2.0.4 xorgxrdp: upgrade 0.2.18 -> 0.9.19 python3-zeroconf: upgrade 0.39.0 -> 0.39.1 smarty: upgrade 4.2.0 -> 4.2.1 python3-pycocotools: upgrade 2.0.4 -> 2.0.5 python3-pyproj: upgrade 3.3.1 -> 3.4.0 python3-pyzmq: upgrade 23.2.1 -> 24.0.0 python3-regex: upgrade 2022.8.17 -> 2022.9.13 python3-pyjwt: upgrade 2.4.0 -> 2.5.0 python3-pyscaffold: upgrade 4.3 -> 4.3.1 python3-pyzmq: upgrade 24.0.0 -> 24.0.1 python3-sqlparse: upgrade 0.4.2 -> 0.4.3 python3-web3: upgrade 5.30.0 -> 5.31.0 meta-security: 10fdc2b13a..824d2762f6: Armin Kuster (4): suricata: fix compile issue cryptmount: fix systemd service install update sssd to 2.7.4 update chipsec to 1.8.8 poky: 9b1db65e7d..5200799866: Alejandro Hernandez Samaniego (1): rootfs.py: dont try to list installed packages for baremetal images Alexander Kanavin (15): selftest/cases/bblayers.py: build python3-jsonschema only once oe-setup-builddir: do not suggest local.conf as a source of examples init-system-helpers: exclude experimental tags from version check ref-manual: correct the location of default configuration template dev-manual: common-tasks.rst: drop the output of 'bitbake-layers --help' common-tasks.rst: describe the layer setup tooling dev-manual: common-tasks.rst: describe the newly added layer setup and template config commands dev-manual: common-tasks.rst: rewrite the section about configuration templates github-releases: add a class that consolidates version checks meta: fix version checks in all github recipes using the github-releases class virglrenderer: use https for fetching from gitlab local.conf.sample: correct the location of public hashserv scripts/oe-setup-builddir: do not read TEMPLATECONF from templateconf.cfg rpm: update 4.18.0-rc1 -> 4.18.0-release tzdata: update to 2022d Alexandre Belloni (2): runqemu: display host uptime when starting oeqa/runtime/dnf: fix typo Andrei Gherzan (6): depmodwrapper-cross: Take into consideration kernel package name kernel.bbclass: Pass the kernel package name to depmodwrapper kernel-module-split.bbclass: Pass the kernel package name to depmodwrapper rootfs.py: Run depmod(wrapper) against each compiled kernel rootfs.py: Drop FAKEROOT support in exec function grub: Allow build on armv7ve/a with softfp Aryaman Gupta (1): bitbake: doc: bitbake-user-manual: Add definition for BB_PRESSURE_MAX variables Bob Henz (1): systemd-systemctl: Fix WantedBy processing Bruce Ashfield (11): linux-yocto/5.15: update to v5.15.63 linux-yocto/5.19: update to v5.19.5 linux-yocto/5.19: update to v5.19.7 linux-yocto/5.15: update to v5.15.65 kern-tools: fix queue processing in relative TOPDIR configurations kern-tools: allow 'y' or 'm' to avoid config audit warnings linux-yocto/5.19: update to v5.19.9 linux-yocto/5.15: update to v5.15.68 linux-yocto/5.19: cfg: fix ACPI warnings for -tiny linux-yocto/5.15: cfg: fix ACPI warnings for -tiny linux-yocto/5.19: fix gcc-11 warning Changhyeok Bae (2): iproute2: Unset CLEANBROKEN iproute2: merge .inc into .bb Changqing Li (1): parselogs.py: ignore systemd-logind warning message Chen Qi (2): shadow-securetty: allow ttyS4 for amd-snowyowl-64 useradd-example: do not use unsupported clear text password Daniel Gomez (3): rootfs-postcommands: Remove dropbear inconsistent comment gtk-icon-cache: Fix GTKIC_CMD if-else condition dropbear: Add enable-x11-forwarding PACKAGECONFIG option Daniel McGregor (2): coreutils: add openssl PACKAGECONFIG gcc: set the default target arch Denys Dmytriyenko (1): glibc-locale: explicitly remove empty dirs in ${libdir} Dmitry Baryshkov (2): linux-firmware: upgrade 20220708 -> 20220913 linux-firmware: package new Qualcomm firmware Etienne Cordonnier (2): python3: add PACKAGECONFIG[editline] opkg: add option for zstd support Fabio Estevam (1): README.hardware.md: Fix the tftp example Florin Diaconescu (1): expat: upgrade 2.4.8 -> 2.4.9 He Zhe (2): lttng-tools: Disable on qemuriscv32 lttng-tools: Disable on riscv32 Johan Korsnes (1): ref-manual: variables: document KERNEL_IMAGETYPES John Edward Broadbent (1): externalsrc: git submodule--helper list unsupported Jose Quaresma (2): bitbake: lib/bb: warning when the debug message is invalid bitbake: fetch2/crate fixup c212b0f3 loglevel Joshua Watt (2): oeqa: qemurunner: Report UNIX Epoch timestamp on login bitbake: bitbake: Fix a few more logger debug() calls Kai Kang (2): binutils: handle symlink files for gprofng binutils: another way to clear GPROFNG_ALTS for clang and musl Khem Raj (20): autoconf: Update K & R stype functions webkitgtk: Update to 2.6.37 rust: Use variable to specify extra tools to install boost: Refrain bjam from poking into host includes gobject-introspection: Do not hardcode objdump name binutils-cross-canadian: Do not package gprofng.rc webkitgtk: Fix build on 32bit arm python3-lxml: Add recipe bitbake.conf: Define TC_CXX_RUNTIME rust: Use libc++ runtime when using clang with llvm runtime glibc: Upgrade to tip of 2.36 branch binutils: Ignore CVE-2022-38126 CVE-2022-38127 inetutils: Fix remote DoS vulnerability in inetutils-telnetd curl: Add missing perl modules in ptest rdepends elfutils: Enable ptests on musl targets grub: Apply backports to fix build with clang on x86 apt: Fix type mismatches and ptest builds linux-yocto: Enable mdio for qemu gcompat: Add __getauxval wrapper needed on aarch64 ref-manual: Define TC_CXX_RUNTIME Konrad Weihmann (1): python3-idna: migrate to flit-core Kristian Amlie (1): externalsrc: Don't wipe out src dir when EXPORT_FUNCTIONS is used. Leon Anavi (1): python3-manifest.json: Add zoneinfo Markus Volk (5): squashfs-tools: build with lzo support libsdl2: update 2.0.22 -> 2.24.0 libdrm: upgrade 2.4.112 -> 2.4.113 mesa: upgrade 22.1.6 -> 22.2.0 virglrenderer: upgrade 0.9.1 -> 0.10.3 Martin Jansa (3): webkitgtk: fix gstreamer include paths libxml2: Port gentest.py to Python-3 create-pull-request: don't switch the git remote protocol to git:// Mattias Jernberg (1): bitbake: utils: Add enable_loopback_networking() Michael Opdenacker (8): bitbake: bitbake-user-manual: mention pydevshell in OE dev-manual: common-tasks.rst: refer to Python functions in BitBake manual ref-manual: features.rst: add missing default distro features ref-manual: variables.rst: remove BBPATH ref-manual: structure.rst: add reference to the contents of the build directory ref-manual: structure.rst: improve information about build/cache/ ref-manual: variables.rst: correct templateconf.cfg file name ref-manual: structure.rst: add more subsection levels Mikko Rapeli (7): u-boot: switch from append to += in SRC_URI glibc-tests: use += instead of :append go-native: switch from SRC_URI:append to SRC_URI += python3-rfc3986-validator: switch from SRC_URI:append to SRC_URI += linux-libc-headers: switch from SRC_URI:append to SRC_URI += common-tasks.rst: remove SRC_URI:append from examples kernel-dev/common.rst: remove SRC_URI:append from examples Mingli Yu (1): busybox: add devmem 128-bit support Otavio Salvador (2): bitbake: toaster: fix kirkstone version rust-hello-world: move to recipes-extended Pascal Bach (1): bitbake: fetch2/ssh.py: fix checkstatus Paulo Neves (2): watchdog: Remove unneeded tirpc dependency bitbake: fetch2: Remove unneeded conditional Pavel Zhukov (1): core-image.bbclass: Exclude openssh complementary packages Peter Bergin (1): rootfs-postcommands.bbclass: avoid moving ssh host keys if etc is writable Peter Kjellerstedt (6): cairo: Adapt the license information based on what is being built oe-setup-builddir: Correct when validation of the templates dir is run oe-setup-builddir: Simplify error handling oe-setup-builddir: Avoid shellcheck warnings oe-setup-builddir: Keep templateconf.cfg relative if $TEMPLATECONF is oe-setup-builddir: Always update templateconf.cfg Petr Vorel (1): ltp: Update list of tests not buildable on musl Richard Purdie (54): bitbake: wget: Avoid bad checksum race issues bitbake: asyncrpc/client: Fix unix domain socket chdir race issues build-appliance-image: Update to master head revision sstate: Fix sstate file mirroring checksum issue bitbake: fetch2: Ensure mirror tarballs don't enforce checksum qemu: Upgrade 7.0.0 -> 7.1.0 qemurunner: Update to match qmp changes build-appliance-image: Update to master head revision vim: Upgrade 9.0.0341 -> 9.0.0453 selftest/qemurunner: Work around possible control character contamination oetest: Drop unused variable oetest: Drop getResults usage from oeRuntimeTest oeqa/utils/decorators: Drop unused decorators oeqa/utils/decorators: Drop getResults autoconf-archive: upgrade 2022.02.11 -> 2022.09.03 ofono: upgrade 1.34 -> 2.0 ccache: upgrade 4.6.2 -> 4.6.3 btrfs-tools: upgrade 5.19 -> 5.19.1 dnf: upgrade 4.13.0 -> 4.14.0 git: upgrade 2.37.2 -> 2.37.3 ell: upgrade 0.52 -> 0.53 file: upgrade 5.42 -> 5.43 ninja: upgrade 1.11.0 -> 1.11.1 libcomps: upgrade 0.1.18 -> 0.1.19 python3-hatchling: upgrade 1.8.1 -> 1.9.0 meson: upgrade 0.63.1 -> 0.63.2 python3-idna: upgrade 3.3 -> 3.4 librepo: upgrade 1.14.4 -> 1.14.5 python3-hypothesis: upgrade 6.46.11 -> 6.54.5 python3-numpy: upgrade 1.23.2 -> 1.23.3 libdnf: upgrade 0.68.0 -> 0.69.0 python3-psutil: upgrade 5.9.1 -> 5.9.2 ffmpeg: upgrade 5.1 -> 5.1.1 repo: upgrade 2.29.1 -> 2.29.2 nghttp2: upgrade 1.48.0 -> 1.49.0 libjitterentropy: upgrade 3.4.0 -> 3.4.1 sqlite3: upgrade 3.39.2 -> 3.39.3 diffoscope: upgrade 220 -> 221 python3-certifi: upgrade 2022.6.15 -> 2022.9.14 libpng: upgrade 1.6.37 -> 1.6.38 numactl: upgrade 2.0.14 -> 2.0.15 rpm: Upgrade 4.17.1 -> 4.18rc1 perf: Fix for recent kernel upgrades oeqa/runtime/virgl: Update test to match new mesa version vim: Upgrade 9.0.453 -> 9.0.541 vim: Upgrade 9.0.0541 -> 9.0.0598 qemu: Add patch to address arm qemu upgrade issues layer.conf: Update to use langdale as the core layer name poky: Update to 4.1 version poky: Update to match poky version numbers bitbake: bitbake: Bump to version 2.2.0 build-appliance-image: Update to master head revision go: Fix reproducibility failures build-appliance-image: Update to master head revision Robert Joslyn (6): xorg-lib-common: Add variable to set tarball type libxfont2: Update 2.0.5 to 2.0.6 libxau: Update 1.0.9 to 1.0.10 libfontenc: Update 1.1.4 to 1.1.6 flac: Update 1.3.4 to 1.4.0 tzdata: Update from 2022b to 2022c Ross Burton (16): meta-selftest/poison: improve sysroot poisoning test case gcc-cross: pass -Werror=poison-system-directories to compiler stages gcc: remove obsolete 0012-export-CPP.patch xmlto: remove redundant patches tiff: backport fix for CVE-2022-2953 gcc: remove obsolete poisoned calloc workaround gcc: remove obsolete MinGW patch oeqa/selftest/debuginfod: don't re-use the database libgcrypt: disable bench-slope test case libxml2: don't override XML_CATALOG_FILES in xmllint wrapper if already set glibc: mark a CVE where we have merged the fix qemu: re-add the fix for CVE-2022-1050 qemu: fix CVE-2022-2962 dnf: add dummy packages for testing oeqa/runtime/dnf: use dnf-test packages Revert "wic/plugins/images/direct: Allow changes in fstab on rootfs" Ruiqiang Hao (1): tune-neoversen2: support tune-neoversen2 base on armv9a Samuli Piippo (2): Revert "gcc-cross-canadian: Add symlink to real-ld alongside other symlinks" gcc-cross-canadian: add default plugin linker Stefano Babic (1): libubootenv: upgrade 0.3.2 -> 0.3.3 Sundeep KOKKONDA (1): rust-cross-canadian: Fix for the issue caused by using sdk shell Teoh Jay Shen (1): bind: upgrade 9.18.6 -> 9.18.7 Tom Hochstein (2): cmake: Fix CMAKE_SYSTEM_PROCESSOR setting for SDK connman: Drop redundant nfsroot handling Ulrich Ölmann (5): icecc.bbclass: fix typos icecc.bbclass: delete 'rm' command manuals: fix paths to default templates & clean up whitespaces icecc.bbclass: fix filename of recipe in comment manuals: fix typos in the context of 'icecc' & clean up whitespaces Vyacheslav Yurkov (5): oeqa/selftest: drop image_feature test from overlayfs classes: Update overlayfs classes to use new bitbake functionality files: overlayfs-etc: refactor preinit template classes: files: Extend overlayfs-etc class oeqa/selftest: Add lower layer test for overlayfs-etc niko.mauno@vaisala.com (2): systemd: Add 'no-dns-fallback' PACKAGECONFIG option systemd: Fix unwritable /var/lock when no sysvinit handling pgowda (4): rust: Add linker configurations for cross compilation rust: Enable verbose-tests to get the test results in readable format binutils : CVE-2022-38533 binutils : Fix CVE-2022-38128 wangmy (9): cracklib: upgrade 2.9.7 -> 2.9.8 kmscube: upgrade to latest revision piglit: upgrade to latest revision python3-dtschema: upgrade 2022.8.1 -> 2022.8.3 python3-mako: upgrade 1.2.1 -> 1.2.2 python3-pathspec: upgrade 0.9.0 -> 0.10.1 python3-pytest: upgrade 7.1.2 -> 7.1.3 vala: upgrade 0.56.2 -> 0.56.3 less: upgrade 600 -> 608 Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Change-Id: I1705b78d8a5ef5762fe770a69ed9b866fac52ccf
Diffstat (limited to 'poky/meta/recipes-devtools/binutils')
-rw-r--r--poky/meta/recipes-devtools/binutils/binutils-2.39.inc8
-rw-r--r--poky/meta/recipes-devtools/binutils/binutils-cross-canadian.inc6
-rw-r--r--poky/meta/recipes-devtools/binutils/binutils.inc19
-rw-r--r--poky/meta/recipes-devtools/binutils/binutils/0013-CVE-2022-38533.patch36
-rw-r--r--poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-1.patch350
-rw-r--r--poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-2.patch536
-rw-r--r--poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-3.patch95
7 files changed, 1047 insertions, 3 deletions
diff --git a/poky/meta/recipes-devtools/binutils/binutils-2.39.inc b/poky/meta/recipes-devtools/binutils/binutils-2.39.inc
index 89612a3eae..b040e57037 100644
--- a/poky/meta/recipes-devtools/binutils/binutils-2.39.inc
+++ b/poky/meta/recipes-devtools/binutils/binutils-2.39.inc
@@ -31,5 +31,13 @@ SRC_URI = "\
file://0010-sync-with-OE-libtool-changes.patch \
file://0011-Check-for-clang-before-checking-gcc-version.patch \
file://0012-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch \
+ file://0013-CVE-2022-38533.patch \
+ file://0014-CVE-2022-38128-1.patch \
+ file://0014-CVE-2022-38128-2.patch \
+ file://0014-CVE-2022-38128-3.patch \
"
S = "${WORKDIR}/git"
+# Already in 2.39 branch
+# - https://sourceware.org/bugzilla/show_bug.cgi?id=29289
+# - https://sourceware.org/bugzilla/show_bug.cgi?id=29290
+CVE_CHECK_IGNORE += "CVE-2022-38126 CVE-2022-38127"
diff --git a/poky/meta/recipes-devtools/binutils/binutils-cross-canadian.inc b/poky/meta/recipes-devtools/binutils/binutils-cross-canadian.inc
index 4e8f10c1c4..12e7d77d8d 100644
--- a/poky/meta/recipes-devtools/binutils/binutils-cross-canadian.inc
+++ b/poky/meta/recipes-devtools/binutils/binutils-cross-canadian.inc
@@ -23,10 +23,10 @@ do_install () {
rm -f ${D}${libdir}/libiberty*
rm -f ${D}${libdir}/libopcodes*
rm -f ${D}${includedir}/*.h
-
+ rm -f ${D}${sysconfdir}/gprofng.rc
+ rmdir ${D}${sysconfdir} || :
+
cross_canadian_bindirlinks
}
-FILES:${PN} += "${sysconfdir}/gprofng.rc"
-
BBCLASSEXTEND = ""
diff --git a/poky/meta/recipes-devtools/binutils/binutils.inc b/poky/meta/recipes-devtools/binutils/binutils.inc
index 789c8bec21..98acf0a222 100644
--- a/poky/meta/recipes-devtools/binutils/binutils.inc
+++ b/poky/meta/recipes-devtools/binutils/binutils.inc
@@ -36,6 +36,24 @@ FILES:${PN}-dev = " \
# Rather than duplicating multiple entries for these, make one
# list and reuse it.
+GPROFNGS = " \
+ gp-archive \
+ gp-collect-app \
+ gp-display-html \
+ gp-display-src \
+ gp-display-text \
+ gprofng \
+"
+
+# it disables gprofng for clang and musl in the bb file
+GPROFNGS:toolchain-clang = ""
+GPROFNGS:libc-musl = ""
+
+GPROFNG_ALTS ?= ""
+GPROFNG_ALTS:x86 = "${GPROFNGS}"
+GPROFNG_ALTS:x86-64 = "${GPROFNGS}"
+GPROFNG_ALTS:aarch64 = "${GPROFNGS}"
+
LDGOLD_ALTS ?= "ld.gold dwp"
LDGOLD_ALTS:riscv64 = ""
LDGOLD_ALTS:riscv32 = ""
@@ -48,6 +66,7 @@ USE_ALTERNATIVES_FOR = " \
c++filt \
elfedit \
gprof \
+ ${GPROFNG_ALTS} \
ld \
ld.bfd \
${LDGOLD_ALTS} \
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0013-CVE-2022-38533.patch b/poky/meta/recipes-devtools/binutils/binutils/0013-CVE-2022-38533.patch
new file mode 100644
index 0000000000..5d9ac2cb1f
--- /dev/null
+++ b/poky/meta/recipes-devtools/binutils/binutils/0013-CVE-2022-38533.patch
@@ -0,0 +1,36 @@
+From ef186fe54aa6d281a3ff8a9528417e5cc614c797 Mon Sep 17 00:00:00 2001
+From: Alan Modra <amodra@gmail.com>
+Date: Sat, 13 Aug 2022 15:32:47 +0930
+Subject: [PATCH] PR29482 - strip: heap-buffer-overflow
+
+ PR 29482
+ * coffcode.h (coff_set_section_contents): Sanity check _LIB.
+
+Upstream-Status: Backport [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=ef186fe54aa6d281a3ff8a9528417e5cc614c797]
+
+Signed-off-by: Pgowda <pgowda.cve@gmail.com>
+
+---
+ bfd/coffcode.h | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/bfd/coffcode.h b/bfd/coffcode.h
+index 67aaf158ca1..52027981c3f 100644
+--- a/bfd/coffcode.h
++++ b/bfd/coffcode.h
+@@ -4302,10 +4302,13 @@ coff_set_section_contents (bfd * abfd,
+
+ rec = (bfd_byte *) location;
+ recend = rec + count;
+- while (rec < recend)
++ while (recend - rec >= 4)
+ {
++ size_t len = bfd_get_32 (abfd, rec);
++ if (len == 0 || len > (size_t) (recend - rec) / 4)
++ break;
++ rec += len * 4;
+ ++section->lma;
+- rec += bfd_get_32 (abfd, rec) * 4;
+ }
+
+ BFD_ASSERT (rec == recend);
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-1.patch b/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-1.patch
new file mode 100644
index 0000000000..0a490d86b3
--- /dev/null
+++ b/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-1.patch
@@ -0,0 +1,350 @@
+From f07c08e115e27cddf5a0030dc6332bbee1bd9c6a Mon Sep 17 00:00:00 2001
+From: Alan Modra <amodra@gmail.com>
+Date: Thu, 21 Jul 2022 08:38:14 +0930
+Subject: [PATCH] binutils/dwarf.c: abbrev caching
+
+I'm inclined to think that abbrev caching is counter-productive. The
+time taken to search the list of abbrevs converted to internal form is
+non-zero, and it's easy to decode the raw abbrevs. It's especially
+silly to cache empty lists of decoded abbrevs (happens with zero
+padding in .debug_abbrev), or abbrevs as they are displayed when there
+is no further use of those abbrevs. This patch stops caching in those
+cases.
+
+ * dwarf.c (record_abbrev_list_for_cu): Add free_list param.
+ Put abbrevs on abbrev_lists here.
+ (new_abbrev_list): Delete function.
+ (process_abbrev_set): Return newly allocated list. Move
+ abbrev base, offset and size checking to..
+ (find_and_process_abbrev_set): ..here, new function. Handle
+ lookup of cached abbrevs here, and calculate start and end
+ for process_abbrev_set. Return free_list if newly alloc'd.
+ (process_debug_info): Consolidate cached list lookup, new list
+ alloc and processing into find_and_process_abbrev_set call.
+ Free list when not cached.
+ (display_debug_abbrev): Similarly.
+
+Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=f07c08e115e27cddf5a0030dc6332bbee1bd9c6a]
+
+Signed-off-by: Pgowda <pgowda.cve@gmail.com>
+---
+ binutils/dwarf.c | 208 +++++++++++++++++++++++++----------------------
+ 1 file changed, 110 insertions(+), 98 deletions(-)
+
+diff --git a/binutils/dwarf.c b/binutils/dwarf.c
+index 267ed3bb382..2fc352f74c5 100644
+--- a/binutils/dwarf.c
++++ b/binutils/dwarf.c
+@@ -882,8 +882,15 @@ static unsigned long next_free_abbrev_m
+ #define ABBREV_MAP_ENTRIES_INCREMENT 8
+
+ static void
+-record_abbrev_list_for_cu (dwarf_vma start, dwarf_vma end, abbrev_list * list)
++record_abbrev_list_for_cu (dwarf_vma start, dwarf_vma end,
++ abbrev_list *list, abbrev_list *free_list)
+ {
++ if (free_list != NULL)
++ {
++ list->next = abbrev_lists;
++ abbrev_lists = list;
++ }
++
+ if (cu_abbrev_map == NULL)
+ {
+ num_abbrev_map_entries = INITIAL_NUM_ABBREV_MAP_ENTRIES;
+@@ -936,20 +943,6 @@ free_all_abbrevs (void)
+ }
+
+ static abbrev_list *
+-new_abbrev_list (dwarf_vma abbrev_base, dwarf_vma abbrev_offset)
+-{
+- abbrev_list * list = (abbrev_list *) xcalloc (sizeof * list, 1);
+-
+- list->abbrev_base = abbrev_base;
+- list->abbrev_offset = abbrev_offset;
+-
+- list->next = abbrev_lists;
+- abbrev_lists = list;
+-
+- return list;
+-}
+-
+-static abbrev_list *
+ find_abbrev_list_by_abbrev_offset (dwarf_vma abbrev_base,
+ dwarf_vma abbrev_offset)
+ {
+@@ -966,7 +959,7 @@ find_abbrev_list_by_abbrev_offset (dwarf
+ /* Find the abbreviation map for the CU that includes OFFSET.
+ OFFSET is an absolute offset from the start of the .debug_info section. */
+ /* FIXME: This function is going to slow down readelf & objdump.
+- Consider using a better algorithm to mitigate this effect. */
++ Not caching abbrevs is likely the answer. */
+
+ static abbrev_map *
+ find_abbrev_map_by_offset (dwarf_vma offset)
+@@ -1033,40 +1026,18 @@ add_abbrev_attr (unsigned long attrib
+ list->last_abbrev->last_attr = attr;
+ }
+
+-/* Processes the (partial) contents of a .debug_abbrev section.
+- Returns NULL if the end of the section was encountered.
+- Returns the address after the last byte read if the end of
+- an abbreviation set was found. */
++/* Return processed (partial) contents of a .debug_abbrev section.
++ Returns NULL on errors. */
+
+-static unsigned char *
++static abbrev_list *
+ process_abbrev_set (struct dwarf_section *section,
+- dwarf_vma abbrev_base,
+- dwarf_vma abbrev_size,
+- dwarf_vma abbrev_offset,
+- abbrev_list *list)
++ unsigned char *start,
++ unsigned char *end)
+ {
+- if (abbrev_base >= section->size
+- || abbrev_size > section->size - abbrev_base)
+- {
+- /* PR 17531: file:4bcd9ce9. */
+- warn (_("Debug info is corrupted, abbrev size (%lx) is larger than "
+- "abbrev section size (%lx)\n"),
+- (unsigned long) (abbrev_base + abbrev_size),
+- (unsigned long) section->size);
+- return NULL;
+- }
+- if (abbrev_offset >= abbrev_size)
+- {
+- warn (_("Debug info is corrupted, abbrev offset (%lx) is larger than "
+- "abbrev section size (%lx)\n"),
+- (unsigned long) abbrev_offset,
+- (unsigned long) abbrev_size);
+- return NULL;
+- }
++ abbrev_list *list = xmalloc (sizeof (*list));
++ list->first_abbrev = NULL;
++ list->last_abbrev = NULL;
+
+- unsigned char *start = section->start + abbrev_base;
+- unsigned char *end = start + abbrev_size;
+- start += abbrev_offset;
+ while (start < end)
+ {
+ unsigned long entry;
+@@ -1079,14 +1050,18 @@ process_abbrev_set (struct dwarf_section
+ /* A single zero is supposed to end the set according
+ to the standard. If there's more, then signal that to
+ the caller. */
+- if (start == end)
+- return NULL;
+- if (entry == 0)
+- return start;
++ if (start == end || entry == 0)
++ {
++ list->start_of_next_abbrevs = start != end ? start : NULL;
++ return list;
++ }
+
+ READ_ULEB (tag, start, end);
+ if (start == end)
+- return NULL;
++ {
++ free (list);
++ return NULL;
++ }
+
+ children = *start++;
+
+@@ -1121,9 +1096,67 @@ process_abbrev_set (struct dwarf_section
+ /* Report the missing single zero which ends the section. */
+ error (_(".debug_abbrev section not zero terminated\n"));
+
++ free (list);
+ return NULL;
+ }
+
++/* Return a sequence of abbrevs in SECTION starting at ABBREV_BASE
++ plus ABBREV_OFFSET and finishing at ABBREV_BASE + ABBREV_SIZE.
++ If FREE_LIST is non-NULL search the already decoded abbrevs on
++ abbrev_lists first and if found set *FREE_LIST to NULL. If
++ searching doesn't find a matching abbrev, set *FREE_LIST to the
++ newly allocated list. If FREE_LIST is NULL, no search is done and
++ the returned abbrev_list is always newly allocated. */
++
++static abbrev_list *
++find_and_process_abbrev_set (struct dwarf_section *section,
++ dwarf_vma abbrev_base,
++ dwarf_vma abbrev_size,
++ dwarf_vma abbrev_offset,
++ abbrev_list **free_list)
++{
++ if (free_list)
++ *free_list = NULL;
++
++ if (abbrev_base >= section->size
++ || abbrev_size > section->size - abbrev_base)
++ {
++ /* PR 17531: file:4bcd9ce9. */
++ warn (_("Debug info is corrupted, abbrev size (%lx) is larger than "
++ "abbrev section size (%lx)\n"),
++ (unsigned long) (abbrev_base + abbrev_size),
++ (unsigned long) section->size);
++ return NULL;
++ }
++ if (abbrev_offset >= abbrev_size)
++ {
++ warn (_("Debug info is corrupted, abbrev offset (%lx) is larger than "
++ "abbrev section size (%lx)\n"),
++ (unsigned long) abbrev_offset,
++ (unsigned long) abbrev_size);
++ return NULL;
++ }
++
++ unsigned char *start = section->start + abbrev_base + abbrev_offset;
++ unsigned char *end = section->start + abbrev_base + abbrev_size;
++ abbrev_list *list = NULL;
++ if (free_list)
++ list = find_abbrev_list_by_abbrev_offset (abbrev_base, abbrev_offset);
++ if (list == NULL)
++ {
++ list = process_abbrev_set (section, start, end);
++ if (list)
++ {
++ list->abbrev_base = abbrev_base;
++ list->abbrev_offset = abbrev_offset;
++ list->next = NULL;
++ }
++ if (free_list)
++ *free_list = list;
++ }
++ return list;
++}
++
+ static const char *
+ get_TAG_name (unsigned long tag)
+ {
+@@ -3670,7 +3703,6 @@ process_debug_info (struct dwarf_section
+ dwarf_vma cu_offset;
+ unsigned int offset_size;
+ struct cu_tu_set * this_set;
+- abbrev_list * list;
+ unsigned char *end_cu;
+
+ hdrptr = start;
+@@ -3726,22 +3758,18 @@ process_debug_info (struct dwarf_section
+ abbrev_size = this_set->section_sizes [DW_SECT_ABBREV];
+ }
+
+- list = find_abbrev_list_by_abbrev_offset (abbrev_base,
+- compunit.cu_abbrev_offset);
+- if (list == NULL)
+- {
+- unsigned char * next;
+-
+- list = new_abbrev_list (abbrev_base,
+- compunit.cu_abbrev_offset);
+- next = process_abbrev_set (&debug_displays[abbrev_sec].section,
+- abbrev_base, abbrev_size,
+- compunit.cu_abbrev_offset, list);
+- list->start_of_next_abbrevs = next;
+- }
+-
++ abbrev_list *list;
++ abbrev_list *free_list;
++ list = find_and_process_abbrev_set (&debug_displays[abbrev_sec].section,
++ abbrev_base, abbrev_size,
++ compunit.cu_abbrev_offset,
++ &free_list);
+ start = end_cu;
+- record_abbrev_list_for_cu (cu_offset, start - section_begin, list);
++ if (list != NULL && list->first_abbrev != NULL)
++ record_abbrev_list_for_cu (cu_offset, start - section_begin,
++ list, free_list);
++ else if (free_list != NULL)
++ free_abbrev_list (free_list);
+ }
+
+ for (start = section_begin, unit = 0; start < end; unit++)
+@@ -3757,7 +3785,6 @@ process_debug_info (struct dwarf_section
+ struct cu_tu_set *this_set;
+ dwarf_vma abbrev_base;
+ size_t abbrev_size;
+- abbrev_list * list = NULL;
+ unsigned char *end_cu;
+
+ hdrptr = start;
+@@ -3936,20 +3963,10 @@ process_debug_info (struct dwarf_section
+ }
+
+ /* Process the abbrevs used by this compilation unit. */
+- list = find_abbrev_list_by_abbrev_offset (abbrev_base,
+- compunit.cu_abbrev_offset);
+- if (list == NULL)
+- {
+- unsigned char *next;
+-
+- list = new_abbrev_list (abbrev_base,
+- compunit.cu_abbrev_offset);
+- next = process_abbrev_set (&debug_displays[abbrev_sec].section,
+- abbrev_base, abbrev_size,
+- compunit.cu_abbrev_offset, list);
+- list->start_of_next_abbrevs = next;
+- }
+-
++ abbrev_list *list;
++ list = find_and_process_abbrev_set (&debug_displays[abbrev_sec].section,
++ abbrev_base, abbrev_size,
++ compunit.cu_abbrev_offset, NULL);
+ level = 0;
+ last_level = level;
+ saved_level = -1;
+@@ -4128,6 +4145,8 @@ process_debug_info (struct dwarf_section
+ if (entry->children)
+ ++level;
+ }
++ if (list != NULL)
++ free_abbrev_list (list);
+ }
+
+ /* Set num_debug_info_entries here so that it can be used to check if
+@@ -6353,24 +6372,15 @@ display_debug_abbrev (struct dwarf_secti
+
+ do
+ {
+- abbrev_list * list;
+- dwarf_vma offset;
+-
+- offset = start - section->start;
+- list = find_abbrev_list_by_abbrev_offset (0, offset);
++ dwarf_vma offset = start - section->start;
++ abbrev_list *list = find_and_process_abbrev_set (section, 0,
++ section->size, offset,
++ NULL);
+ if (list == NULL)
+- {
+- list = new_abbrev_list (0, offset);
+- start = process_abbrev_set (section, 0, section->size, offset, list);
+- list->start_of_next_abbrevs = start;
+- }
+- else
+- start = list->start_of_next_abbrevs;
+-
+- if (list->first_abbrev == NULL)
+- continue;
++ break;
+
+- printf (_(" Number TAG (0x%lx)\n"), (long) offset);
++ if (list->first_abbrev)
++ printf (_(" Number TAG (0x%lx)\n"), (long) offset);
+
+ for (entry = list->first_abbrev; entry; entry = entry->next)
+ {
+@@ -6391,6 +6401,8 @@ display_debug_abbrev (struct dwarf_secti
+ putchar ('\n');
+ }
+ }
++ start = list->start_of_next_abbrevs;
++ free_abbrev_list (list);
+ }
+ while (start);
+
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-2.patch b/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-2.patch
new file mode 100644
index 0000000000..e30b4d86e1
--- /dev/null
+++ b/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-2.patch
@@ -0,0 +1,536 @@
+From 175b91507b83ad42607d2f6dadaf55b7b511bdbe Mon Sep 17 00:00:00 2001
+From: Alan Modra <amodra@gmail.com>
+Date: Wed, 20 Jul 2022 18:28:50 +0930
+Subject: [PATCH] miscellaneous dwarf.c tidies
+
+ * dwarf.c: Leading and trailing whitespace fixes.
+ (free_abbrev_list): New function.
+ (free_all_abbrevs): Use the above. Free cu_abbrev_map here too.
+ (process_abbrev_set): Print actual section name on error.
+ (get_type_abbrev_from_form): Add overflow check.
+ (free_debug_memory): Don't free cu_abbrev_map here..
+ (process_debug_info): ..or here. Warn on another case of not
+ finding a neeeded abbrev.
+
+Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=175b91507b83ad42607d2f6dadaf55b7b511bdbe]
+
+Signed-off-by: Pgowda <pgowda.cve@gmail.com>
+---
+ binutils/dwarf.c | 216 +++++++++++++++++++++++------------------------
+ 1 file changed, 106 insertions(+), 110 deletions(-)
+
+diff --git a/binutils/dwarf.c b/binutils/dwarf.c
+index 2b1eec49422..267ed3bb382 100644
+--- a/binutils/dwarf.c
++++ b/binutils/dwarf.c
+@@ -806,7 +806,7 @@ fetch_indexed_value (dwarf_vma idx,
+ pointer_size = 4;
+ bias = 12;
+ }
+-
++
+ dwarf_vma offset = idx * pointer_size;
+
+ /* Offsets are biased by the size of the section header
+@@ -908,38 +908,41 @@ record_abbrev_list_for_cu (dwarf_vma sta
+ next_free_abbrev_map_entry ++;
+ }
+
+-static void
+-free_all_abbrevs (void)
++static abbrev_list *
++free_abbrev_list (abbrev_list *list)
+ {
+- abbrev_list * list;
++ abbrev_entry *abbrv = list->first_abbrev;
+
+- for (list = abbrev_lists; list != NULL;)
++ while (abbrv)
+ {
+- abbrev_list * next = list->next;
+- abbrev_entry * abbrv;
++ abbrev_attr *attr = abbrv->first_attr;
+
+- for (abbrv = list->first_abbrev; abbrv != NULL;)
++ while (attr)
+ {
+- abbrev_entry * next_abbrev = abbrv->next;
+- abbrev_attr * attr;
+-
+- for (attr = abbrv->first_attr; attr;)
+- {
+- abbrev_attr *next_attr = attr->next;
+-
+- free (attr);
+- attr = next_attr;
+- }
+-
+- free (abbrv);
+- abbrv = next_abbrev;
++ abbrev_attr *next_attr = attr->next;
++ free (attr);
++ attr = next_attr;
+ }
+
+- free (list);
+- list = next;
++ abbrev_entry *next_abbrev = abbrv->next;
++ free (abbrv);
++ abbrv = next_abbrev;
+ }
+
+- abbrev_lists = NULL;
++ abbrev_list *next = list->next;
++ free (list);
++ return next;
++}
++
++static void
++free_all_abbrevs (void)
++{
++ while (abbrev_lists)
++ abbrev_lists = free_abbrev_list (abbrev_lists);
++
++ free (cu_abbrev_map);
++ cu_abbrev_map = NULL;
++ next_free_abbrev_map_entry = 0;
+ }
+
+ static abbrev_list *
+@@ -971,7 +974,7 @@ find_abbrev_map_by_offset (dwarf_vma off
+ && cu_abbrev_map[i].end > offset)
+ return cu_abbrev_map + i;
+
+- return NULL;
++ return NULL;
+ }
+
+ static void
+@@ -1094,7 +1097,7 @@ process_abbrev_set (struct dwarf_section
+ }
+
+ /* Report the missing single zero which ends the section. */
+- error (_(".debug_abbrev section not zero terminated\n"));
++ error (_("%s section not zero terminated\n"), section->name);
+
+ free (list);
+ return NULL;
+@@ -1875,7 +1878,7 @@ fetch_alt_indirect_string (dwarf_vma off
+ dwarf_vmatoa ("x", offset));
+ return _("<offset is too big>");
+ }
+-
++
+ static const char *
+ get_AT_name (unsigned long attribute)
+ {
+@@ -2157,7 +2160,8 @@ get_type_abbrev_from_form (unsigned long
+ case DW_FORM_ref4:
+ case DW_FORM_ref8:
+ case DW_FORM_ref_udata:
+- if (uvalue + cu_offset > (size_t) (cu_end - section->start))
++ if (uvalue + cu_offset < uvalue
++ || uvalue + cu_offset > (size_t) (cu_end - section->start))
+ {
+ warn (_("Unable to resolve ref form: uvalue %lx + cu_offset %lx > CU size %lx\n"),
+ uvalue, (long) cu_offset, (long) (cu_end - section->start));
+@@ -2194,7 +2198,7 @@ get_type_abbrev_from_form (unsigned long
+ else
+ *map_return = NULL;
+ }
+-
++
+ READ_ULEB (abbrev_number, data, section->start + section->size);
+
+ for (entry = map->list->first_abbrev; entry != NULL; entry = entry->next)
+@@ -2783,10 +2787,10 @@ read_and_display_attr_value (unsigned lo
+ if (form == DW_FORM_loclistx)
+ {
+ if (dwo)
+- {
+- index = fetch_indexed_value (uvalue, loclists_dwo, 0);
+- index += (offset_size == 8) ? 20 : 12;
+- }
++ {
++ index = fetch_indexed_value (uvalue, loclists_dwo, 0);
++ index += (offset_size == 8) ? 20 : 12;
++ }
+ else if (debug_info_p == NULL)
+ {
+ index = fetch_indexed_value (uvalue, loclists, 0);
+@@ -2804,21 +2808,21 @@ read_and_display_attr_value (unsigned lo
+ else if (form == DW_FORM_rnglistx)
+ {
+ if (dwo)
+- {
+- index = fetch_indexed_value (uvalue, rnglists_dwo, 0);
+- index += (offset_size == 8) ? 20 : 12;
+- }
++ {
++ index = fetch_indexed_value (uvalue, rnglists_dwo, 0);
++ index += (offset_size == 8) ? 20 : 12;
++ }
+ else
+- {
+- if (debug_info_p == NULL)
+- base = 0;
+- else
+- base = debug_info_p->rnglists_base;
+- /* We do not have a cached value this time, so we perform the
+- computation manually. */
+- index = fetch_indexed_value (uvalue, rnglists, base);
+- index += base;
+- }
++ {
++ if (debug_info_p == NULL)
++ base = 0;
++ else
++ base = debug_info_p->rnglists_base;
++ /* We do not have a cached value this time, so we perform the
++ computation manually. */
++ index = fetch_indexed_value (uvalue, rnglists, base);
++ index += base;
++ }
+ }
+ else
+ {
+@@ -2844,7 +2848,7 @@ read_and_display_attr_value (unsigned lo
+ if (!do_loc)
+ printf ("%c<0x%s>", delimiter, dwarf_vmatoa ("x", uvalue + cu_offset));
+ break;
+-
++
+ default:
+ warn (_("Unrecognized form: 0x%lx\n"), form);
+ /* What to do? Consume a byte maybe? */
+@@ -2869,9 +2873,9 @@ read_and_display_attr_value (unsigned lo
+ case DW_AT_rnglists_base:
+ if (debug_info_p->rnglists_base)
+ warn (_("CU @ 0x%s has multiple rnglists_base values (0x%s and 0x%s)"),
+- dwarf_vmatoa ("x", debug_info_p->cu_offset),
+- dwarf_vmatoa ("x", debug_info_p->rnglists_base),
+- dwarf_vmatoa ("x", uvalue));
++ dwarf_vmatoa ("x", debug_info_p->cu_offset),
++ dwarf_vmatoa ("x", debug_info_p->rnglists_base),
++ dwarf_vmatoa ("x", uvalue));
+ debug_info_p->rnglists_base = uvalue;
+ break;
+ case DW_AT_str_offsets_base:
+@@ -3021,7 +3025,7 @@ read_and_display_attr_value (unsigned lo
+ case DW_FORM_strx3:
+ case DW_FORM_strx4:
+ add_dwo_name (fetch_indexed_string (uvalue, this_set, offset_size, false,
+- debug_info_p->str_offsets_base),
++ debug_info_p->str_offsets_base),
+ cu_offset);
+ break;
+ case DW_FORM_string:
+@@ -3055,7 +3059,7 @@ read_and_display_attr_value (unsigned lo
+ case DW_FORM_strx3:
+ case DW_FORM_strx4:
+ add_dwo_dir (fetch_indexed_string (uvalue, this_set, offset_size, false,
+- debug_info_p->str_offsets_base),
++ debug_info_p->str_offsets_base),
+ cu_offset);
+ break;
+ case DW_FORM_string:
+@@ -3686,11 +3690,8 @@ process_debug_info (struct dwarf_section
+ introduce (section, false);
+
+ free_all_abbrevs ();
+- free (cu_abbrev_map);
+- cu_abbrev_map = NULL;
+- next_free_abbrev_map_entry = 0;
+
+- /* In order to be able to resolve DW_FORM_ref_attr forms we need
++ /* In order to be able to resolve DW_FORM_ref_addr forms we need
+ to load *all* of the abbrevs for all CUs in this .debug_info
+ section. This does effectively mean that we (partially) read
+ every CU header twice. */
+@@ -4045,12 +4046,11 @@ process_debug_info (struct dwarf_section
+
+ /* Scan through the abbreviation list until we reach the
+ correct entry. */
+- if (list == NULL)
+- continue;
+-
+- for (entry = list->first_abbrev; entry != NULL; entry = entry->next)
+- if (entry->number == abbrev_number)
+- break;
++ entry = NULL;
++ if (list != NULL)
++ for (entry = list->first_abbrev; entry != NULL; entry = entry->next)
++ if (entry->number == abbrev_number)
++ break;
+
+ if (entry == NULL)
+ {
+@@ -4074,7 +4074,7 @@ process_debug_info (struct dwarf_section
+ break;
+ case DW_TAG_compile_unit:
+ case DW_TAG_skeleton_unit:
+- need_base_address = 1;
++ need_base_address = 1;
+ need_dwo_info = do_loc;
+ break;
+ case DW_TAG_entry_point:
+@@ -4459,7 +4459,7 @@ display_debug_sup (struct dwarf_section
+
+ SAFE_BYTE_GET_AND_INC (is_supplementary, start, 1, end);
+ if (is_supplementary != 0 && is_supplementary != 1)
+- warn (_("corrupt .debug_sup section: is_supplementary not 0 or 1\n"));
++ warn (_("corrupt .debug_sup section: is_supplementary not 0 or 1\n"));
+
+ sup_filename = start;
+ if (is_supplementary && sup_filename[0] != 0)
+@@ -5638,7 +5638,7 @@ display_debug_lines_decoded (struct dwar
+ printf ("%s %11d %#18" DWARF_VMA_FMT "x",
+ newFileName, state_machine_regs.line,
+ state_machine_regs.address);
+- }
++ }
+ else
+ {
+ if (xop == -DW_LNE_end_sequence)
+@@ -6092,7 +6092,7 @@ display_debug_macro (struct dwarf_sectio
+ load_debug_section_with_follow (str, file);
+ load_debug_section_with_follow (line, file);
+ load_debug_section_with_follow (str_index, file);
+-
++
+ introduce (section, false);
+
+ while (curr < end)
+@@ -6537,7 +6537,7 @@ display_loc_list (struct dwarf_section *
+
+ /* Check base address specifiers. */
+ if (is_max_address (begin, pointer_size)
+- && !is_max_address (end, pointer_size))
++ && !is_max_address (end, pointer_size))
+ {
+ base_address = end;
+ print_dwarf_vma (begin, pointer_size);
+@@ -6715,7 +6715,7 @@ display_loclists_list (struct dwarf_sect
+ case DW_LLE_default_location:
+ begin = end = 0;
+ break;
+-
++
+ case DW_LLE_offset_pair:
+ READ_ULEB (begin, start, section_end);
+ begin += base_address;
+@@ -7011,7 +7011,7 @@ display_offset_entry_loclists (struct dw
+ unsigned char * start = section->start;
+ unsigned char * const end = start + section->size;
+
+- introduce (section, false);
++ introduce (section, false);
+
+ do
+ {
+@@ -7060,14 +7060,14 @@ display_offset_entry_loclists (struct dw
+ section->name, segment_selector_size);
+ return 0;
+ }
+-
++
+ if (offset_entry_count == 0)
+ {
+ warn (_("The %s section contains a table without offset\n"),
+ section->name);
+ return 0;
+ }
+-
++
+ printf (_("\n Offset Entries starting at 0x%lx:\n"),
+ (long)(start - section->start));
+
+@@ -8229,7 +8229,7 @@ display_debug_rnglists (struct dwarf_sec
+ start = display_debug_rnglists_list
+ (start, end, address_size, offset, 0, offset_size);
+ if (start >= end)
+- break;
++ break;
+ }
+
+ start = end;
+@@ -8347,12 +8347,12 @@ display_debug_ranges (struct dwarf_secti
+ next = section_begin + offset + debug_info_p->rnglists_base;
+
+ /* If multiple DWARF entities reference the same range then we will
+- have multiple entries in the `range_entries' list for the same
+- offset. Thanks to the sort above these will all be consecutive in
+- the `range_entries' list, so we can easily ignore duplicates
+- here. */
++ have multiple entries in the `range_entries' list for the same
++ offset. Thanks to the sort above these will all be consecutive in
++ the `range_entries' list, so we can easily ignore duplicates
++ here. */
+ if (i > 0 && last_offset == offset)
+- continue;
++ continue;
+ last_offset = offset;
+
+ if (dwarf_check != 0 && i > 0)
+@@ -10286,7 +10286,7 @@ display_debug_names (struct dwarf_sectio
+ printf (_("Out of %lu items there are %zu bucket clashes"
+ " (longest of %zu entries).\n"),
+ (unsigned long) name_count, hash_clash_count, longest_clash);
+-
++
+ if (name_count != buckets_filled + hash_clash_count)
+ warn (_("The name_count (%lu) is not the same as the used bucket_count (%lu) + the hash clash count (%lu)"),
+ (unsigned long) name_count,
+@@ -10390,7 +10390,7 @@ display_debug_names (struct dwarf_sectio
+ break;
+ if (tagno >= 0)
+ printf ("%s<%lu>",
+- (tagno == 0 && second_abbrev_tag == 0 ? " " : "\n\t"),
++ (tagno == 0 && second_abbrev_tag == 0 ? " " : "\n\t"),
+ (unsigned long) abbrev_tag);
+
+ for (entry = abbrev_lookup;
+@@ -10919,7 +10919,7 @@ process_cu_tu_index (struct dwarf_sectio
+ Check for integer overflow (can occur when size_t is 32-bit)
+ with overlarge ncols or nused values. */
+ if (nused == -1u
+- || _mul_overflow ((size_t) ncols, 4, &temp)
++ || _mul_overflow ((size_t) ncols, 4, &temp)
+ || _mul_overflow ((size_t) nused + 1, temp, &total)
+ || total > (size_t) (limit - ppool))
+ {
+@@ -10927,7 +10927,7 @@ process_cu_tu_index (struct dwarf_sectio
+ section->name);
+ return 0;
+ }
+-
++
+ if (do_display)
+ {
+ printf (_(" Offset table\n"));
+@@ -11431,8 +11431,8 @@ add_separate_debug_file (const char * fi
+
+ static bool
+ debuginfod_fetch_separate_debug_info (struct dwarf_section * section,
+- char ** filename,
+- void * file)
++ char ** filename,
++ void * file)
+ {
+ size_t build_id_len;
+ unsigned char * build_id;
+@@ -11450,14 +11450,14 @@ debuginfod_fetch_separate_debug_info (st
+
+ filelen = strnlen ((const char *)section->start, section->size);
+ if (filelen == section->size)
+- /* Corrupt debugaltlink. */
+- return false;
++ /* Corrupt debugaltlink. */
++ return false;
+
+ build_id = section->start + filelen + 1;
+ build_id_len = section->size - (filelen + 1);
+
+ if (build_id_len == 0)
+- return false;
++ return false;
+ }
+ else
+ return false;
+@@ -11469,25 +11469,25 @@ debuginfod_fetch_separate_debug_info (st
+
+ client = debuginfod_begin ();
+ if (client == NULL)
+- return false;
++ return false;
+
+ /* Query debuginfod servers for the target file. If found its path
+- will be stored in filename. */
++ will be stored in filename. */
+ fd = debuginfod_find_debuginfo (client, build_id, build_id_len, filename);
+ debuginfod_end (client);
+
+ /* Only free build_id if we allocated space for a hex string
+- in get_build_id (). */
++ in get_build_id (). */
+ if (build_id_len == 0)
+- free (build_id);
++ free (build_id);
+
+ if (fd >= 0)
+- {
+- /* File successfully retrieved. Close fd since we want to
+- use open_debug_file () on filename instead. */
+- close (fd);
+- return true;
+- }
++ {
++ /* File successfully retrieved. Close fd since we want to
++ use open_debug_file () on filename instead. */
++ close (fd);
++ return true;
++ }
+ }
+
+ return false;
+@@ -11500,7 +11500,7 @@ load_separate_debug_info (const char *
+ parse_func_type parse_func,
+ check_func_type check_func,
+ void * func_data,
+- void * file ATTRIBUTE_UNUSED)
++ void * file ATTRIBUTE_UNUSED)
+ {
+ const char * separate_filename;
+ char * debug_filename;
+@@ -11616,11 +11616,11 @@ load_separate_debug_info (const char *
+ & tmp_filename,
+ file))
+ {
+- /* File successfully downloaded from server, replace
+- debug_filename with the file's path. */
+- free (debug_filename);
+- debug_filename = tmp_filename;
+- goto found;
++ /* File successfully downloaded from server, replace
++ debug_filename with the file's path. */
++ free (debug_filename);
++ debug_filename = tmp_filename;
++ goto found;
+ }
+ }
+ #endif
+@@ -11787,12 +11787,12 @@ load_build_id_debug_file (const char * m
+ /* In theory we should extract the contents of the section into
+ a note structure and then check the fields. For now though
+ just use hard coded offsets instead:
+-
++
+ Field Bytes Contents
+ NSize 0...3 4
+ DSize 4...7 8+
+ Type 8..11 3 (NT_GNU_BUILD_ID)
+- Name 12.15 GNU\0
++ Name 12.15 GNU\0
+ Data 16.... */
+
+ /* FIXME: Check the name size, name and type fields. */
+@@ -11804,7 +11804,7 @@ load_build_id_debug_file (const char * m
+ warn (_(".note.gnu.build-id data size is too small\n"));
+ return;
+ }
+-
++
+ if (build_id_size > (section->size - 16))
+ {
+ warn (_(".note.gnu.build-id data size is too bug\n"));
+@@ -12100,10 +12100,6 @@ free_debug_memory (void)
+
+ free_all_abbrevs ();
+
+- free (cu_abbrev_map);
+- cu_abbrev_map = NULL;
+- next_free_abbrev_map_entry = 0;
+-
+ free (shndx_pool);
+ shndx_pool = NULL;
+ shndx_pool_size = 0;
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-3.patch b/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-3.patch
new file mode 100644
index 0000000000..04d06ed6b6
--- /dev/null
+++ b/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-3.patch
@@ -0,0 +1,95 @@
+From 695c6dfe7e85006b98c8b746f3fd5f913c94ebff Mon Sep 17 00:00:00 2001
+From: Alan Modra <amodra@gmail.com>
+Date: Thu, 21 Jul 2022 09:56:15 +0930
+Subject: [PATCH] PR29370, infinite loop in display_debug_abbrev
+
+The PR29370 testcase is a fuzzed object file with multiple
+.trace_abbrev sections. Multiple .trace_abbrev or .debug_abbrev
+sections are not a violation of the DWARF standard. The DWARF5
+standard even gives an example of multiple .debug_abbrev sections
+contained in groups. Caching and lookup of processed abbrevs thus
+needs to be done by section and offset rather than base and offset.
+(Why base anyway?) Or, since section contents are kept, by a pointer
+into the contents.
+
+ PR 29370
+ * dwarf.c (struct abbrev_list): Replace abbrev_base and
+ abbrev_offset with raw field.
+ (find_abbrev_list_by_abbrev_offset): Delete.
+ (find_abbrev_list_by_raw_abbrev): New function.
+ (process_abbrev_set): Set list->raw and list->next.
+ (find_and_process_abbrev_set): Replace abbrev list lookup with
+ new function. Don't set list abbrev_base, abbrev_offset or next.
+
+Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h=695c6dfe7e85006b98c8b746f3fd5f913c94ebff]
+
+Signed-off-by: Pgowda <pgowda.cve@gmail.com>
+---
+ binutils/dwarf.c | 19 ++++++-------------
+ 1 file changed, 6 insertions(+), 13 deletions(-)
+
+diff --git a/binutils/dwarf.c b/binutils/dwarf.c
+index 2fc352f74c5..99fb3566994 100644
+--- a/binutils/dwarf.c
++++ b/binutils/dwarf.c
+@@ -856,8 +856,7 @@ typedef struct abbrev_list
+ {
+ abbrev_entry * first_abbrev;
+ abbrev_entry * last_abbrev;
+- dwarf_vma abbrev_base;
+- dwarf_vma abbrev_offset;
++ unsigned char * raw;
+ struct abbrev_list * next;
+ unsigned char * start_of_next_abbrevs;
+ }
+@@ -946,14 +945,12 @@ free_all_abbrevs (void)
+ }
+
+ static abbrev_list *
+-find_abbrev_list_by_abbrev_offset (dwarf_vma abbrev_base,
+- dwarf_vma abbrev_offset)
++find_abbrev_list_by_raw_abbrev (unsigned char *raw)
+ {
+ abbrev_list * list;
+
+ for (list = abbrev_lists; list != NULL; list = list->next)
+- if (list->abbrev_base == abbrev_base
+- && list->abbrev_offset == abbrev_offset)
++ if (list->raw == raw)
+ return list;
+
+ return NULL;
+@@ -1040,6 +1037,7 @@ process_abbrev_set (struct dwarf_section
+ abbrev_list *list = xmalloc (sizeof (*list));
+ list->first_abbrev = NULL;
+ list->last_abbrev = NULL;
++ list->raw = start;
+
+ while (start < end)
+ {
+@@ -1055,6 +1053,7 @@ process_abbrev_set (struct dwarf_section
+ the caller. */
+ if (start == end || entry == 0)
+ {
++ list->next = NULL;
+ list->start_of_next_abbrevs = start != end ? start : NULL;
+ return list;
+ }
+@@ -1144,16 +1143,10 @@ find_and_process_abbrev_set (struct dwar
+ unsigned char *end = section->start + abbrev_base + abbrev_size;
+ abbrev_list *list = NULL;
+ if (free_list)
+- list = find_abbrev_list_by_abbrev_offset (abbrev_base, abbrev_offset);
++ list = find_abbrev_list_by_raw_abbrev (start);
+ if (list == NULL)
+ {
+ list = process_abbrev_set (section, start, end);
+- if (list)
+- {
+- list->abbrev_base = abbrev_base;
+- list->abbrev_offset = abbrev_offset;
+- list->next = NULL;
+- }
+ if (free_list)
+ *free_list = list;
+ }