poky: subtree update:9d1b332292..2834c2f853

Alex Stewart (3):
      opkg-utils: upgrade to version 0.4.5
      opkg: upgrade to version 0.4.5
      opkg: add QA check for openssl feed verification

Alexander Kanavin (37):
      virglrenderer: explicitly depend on libgbm
      elfutils: update 0.183 -> 0.185
      libcap: update 2.49 -> 2.50
      perl: split perl-cross into its own recipe
      perl-cross: 1.3.5 -> 1.3.6
      perl: update 5.32.1 -> 5.34.0
      libgcrypt: upgrade 1.9.2 -> 1.9.3
      erofs-utils: correct upstream version check
      m4: correct ptest failures
      ovmf: update 2021.02 -> 2021.05
      apt: update 2.2.3 -> 2.2.4
      util-linux: update 2.36.2 -> 2.37
      cross-canadian: correct the location of pkg-config files
      nettle: update 3.7.2 -> 3.7.3
      glib-2.0: update 2.68.2 -> 2.68.3
      meson: upgrade 0.58.0 -> 0.58.1
      ell: upgrade 0.40 -> 0.41
      erofs-utils: upgrade 1.2.1 -> 1.3
      grub: upgrade 2.04+2.06~rc1 -> 2.06
      gptfdisk: upgrade 1.0.7 -> 1.0.8
      connman: update 1.39 -> 1.40
      libksba: upgrade 1.5.1 -> 1.6.0
      libnss-mdns: upgrade 0.15 -> 0.15.1
      libwpe: upgrade 1.10.0 -> 1.10.1
      puzzles: upgrade to latest revision
      rng-tools: upgrade 6.12 -> 6.13
      stress-ng: upgrade 0.12.09 -> 0.12.10
      python3-magic: upgrade 0.4.23 -> 0.4.24
      sudo: upgrade 1.9.7 -> 1.9.7p1
      wpebackend-fdo: upgrade 1.8.4 -> 1.10.0
      xkeyboard-config: upgrade 2.32 -> 2.33
      bitbake.conf: enable debuginfod in native/nativesdk
      gdb-cross: enable debuginfod
      util-linux: backport a patch to address mkswap hangs
      selftest: do not hardcode /tmp/sdk
      glibc: do not enable memory tagging on aarch64 just yet
      mesa: enable gallium intel drivers when building for x86

Alexandre Belloni (1):
      runqemu: time the copy to tmpfs

Alexey Brodkin (3):
      gcc: Fixes for ARC
      gdb: Add native GDB support for ARC
      gcc: Apply multilib fix to ARC as well

Alistair Francis (3):
      recipes-bsp/opensbi: Disable FW_PIC
      recipes-bsp/u-boot: Allow deploying the u-boot DTB
      recipes-bsp/opensbi: Add support for specifying a device tree

Anders Wallin (1):
      coreutils: remove NOSTAT_LEAF_OPTIMIZATION

Andrea Adami (1):
      kernel.bbclass: fix do_sizecheck() comparison

Andreas Müller (19):
      mesa: upgrade 21.1.1 -> 21.1.2
      systemd: Add more ugly casts to fix build with musl
      alsa-lib: upgrade 1.2.4 -> 1.2.5
      alsa-plugins: upgrade 1.2.2 -> 1.2.5
      alsa-tools: upgrade 1.2.2 -> 1.2.5
      alsa-topology-conf: upgrade 1.2.4 -> 1.2.5
      alsa-ucm-conf: upgrade 1.2.4 -> 1.2.5
      alsa-utils(-scripts): upgrade 1.2.4 -> 1.2.5
      libinput: upgrade 1.17.3 -> 1.18.0
      xf86-input-libinput: upgrade 0.30.0 -> 1.0.1
      epiphany: upgrade 40.1 -> 40.2
      vala: upgrade 0.52.3 -> 0.52.4
      p11-kit: upgrade 0.23.22 -> 0.23.24
      xorgproto: upgrade 2021.4.99.1 -> 2021.4.99.2
      mpg123: 1.27.2 -> 1.28.0
      libx11: upgrade 1.7.1 -> 1.7.2
      libx11: remove CPPFLAGS_FOR_BUILD += "-D_GNU_SOURCE"
      libpcap: upgrade 1.10.0 -> 1.10.1
      mesa: upgrade 21.1.2 -> 21.1.3

Bruce Ashfield (10):
      linux-yocto/5.10: update to v5.10.42
      linux-yocto/5.10: temporarily revert aufs
      linux-yocto-dev: base AUTOREV on specified version
      linux-yocto/5.4: update to v5.4.124
      linux-yocto/5.10: restore aufs
      linux-yocto/5.10: update to v5.10.43
      linux-yocto/5.4: update to v5.4.125
      linux-yocto/5.10: cgroup1: fix leaked context root causing sporadic NULL deref in LTP
      btrfs-tools: include linux/const.h to fix build with 5.12+ headers
      bsps/5.10: update to v5.10.43

Changqing Li (1):
      libjpeg-turbo: fix do_compile error on arm

Chris Laplante (1):
      bitbake: build: warn on setting noexec/nostamp/fakeroot flag to any value besides '1'

Daniel Wagenknecht (5):
      ref-manual: variables: update examples refering to DEPLOY_DIR_IMAGE
      ref-manual: variables: document IMGDEPLOYDIR
      ref-manual: migration-2.2: add note about IMGDEPLOYDIR
      ref-manual: variables: fixup example in IMAGE_CMD
      ref-manual: variables: fixup class reference in IMAGE_MANIFEST

Joe Slater (1):
      tcf-agent: change license to EPL/EDL

Joshua Watt (2):
      classes/buildhistory: Add option to strip path prefix
      classes/reproducible_build: Use atomic rename for SDE file

Justin Bronder (1):
      populate_sdk_ext: copy BBMULTICONFIG files

Kai Kang (1):
      valgrind: fix a typo

Khem Raj (14):
      harfbuzz: Fix unused-variable warning
      arch-armv4: Allow -march=armv4
      ffmpeg: Link in libatomic on riscv32
      libssp-nonshared: Use a different implementation for __stack_chk_fail
      qemuriscv: Enable 4 core emulation
      gcompat: Add recipe
      musl: Do not package glibc loader
      musl: Set UPSTREAM_CHECK_COMMITS
      Revert "libgcc-initial: Do not build fp128 to decimal ppc functions"
      qemu: Provide float128 via hwcaps2 on ppc64le
      linuxloader: Be aware of riscv32 ldso
      linuxloader.bbclass: Add entry for ppc64 LE glibc loader
      gcompat: Create symlinks to glibc ldso locations
      sdk: Enable do_populate_sdk with multilibs

Luca Boccassi (1):
      systemd: install new sysext tool via systemd-extra-utils

Marcus Comstedt (1):
      conf/machine-sdk: Add ppc64 SDK machine

Matt Spencer (1):
      systemd-conf: Prevent systemd-network from managing veth interfaces

Michael Halstead (1):
      releases: update to include 3.1.8

Michael Opdenacker (12):
      bitbake: docs: Add BB_HASHSERVE definition to glossary
      bitbake: doc: bitbake-user-manual: fix erroneous statement in glossary intro
      manuals: fix epub export warnings
      ref-manual: move migration guides to separate document
      releases: clarify supported and outdated releases
      releases: put release number after "Release Series"
      sdk-manual: fix broken references
      migration guides: remove index reference to BB_SETSCENE_VERIFY_FUNCTION2
      manuals: fix issues related to trailing dots
      sdk-manual: add missing quoting around "devtool upgrade"
      sdk-manual: fix wrong word
      sdk-manual: add missing index references

Ming Liu (2):
      u-boot-tools: fix a mkimage signature issue
      uboot-sign.bbclass: fix some install commands

Mingli Yu (2):
      sysstat: make the service start automatically
      boost: fix wrong type for mutex in regex v5

Nicolas Dechesne (3):
      index: remove the link/section to 'mega manual' from main page
      index: remove links to releases manual and index
      index: split releases manuals and indexes into two sections in the tree

Paul Barker (2):
      bitbake: asyncrpc: Add ping method
      bitbake: asyncrpc: Reduce verbosity

Quentin Schulz (6):
      docs: ref-manual: migration-3.0: remove reference to non-existing BB_SETSCENE_VERIFY_FUNCTION2
      docs: ref-manual: variables: add missing links to terms glossary
      bitbake: doc: user-manual: remove mentions to BBVERSIONS
      bitbake: doc: user-manual: ref-manual: remove mentions to BB_SETSCENE_VERIFY_FUNCTION2
      documentation: Makefile: turn warnings into errors by default
      docs: replace ``FOO`` by :term:`FOO` where possible

Richard Purdie (11):
      lttng-tools: upgrade 2.12.3 -> 2.12.4
      qemurunner: Try to ensure mmap'd libs are paged in
      qemurunner: Increase startup timeout 120 -> 300
      build-appliance-image: Update to master head revision
      test-manual: add initial reproducible builds documentation
      test-manual: Add initial YP Compatible documentation
      README: Tweak as the website isn't really new now
      README: Move to using markdown as the format
      perf: Use python3targetconfig to ensure we use target libraries
      ltp: Reinstate 'hanging' tests for evaluation
      README.poky: Formatting and content cleanup

Richard Weinberger (1):
      Document erofs filesystem targets

Robert P. J. Day (2):
      ref-manual: add SRCTREECOVEREDTASKS to variable glossary
      ref-manual: add glossary entry for NON_MULTILIB_RECIPES

Ross Burton (11):
      mx: remove from Openembedded Core
      core-image-weston: remove Clutter examples
      Remove Clutter and Cogl
      oeqa: remove Clutter usage
      meta-poky: remove clutter references
      Remove Clutter references
      gcc: enable branch protection by standard
      image_types: add zsync conversions
      avahi: apply fix for CVE-2021-3468
      qemu: fix virtio vhost-user-gpu CVEs
      gcc: replace gdb helper install revert with the upstream fix

Sakib Sajal (3):
      oeqa/core/target/qemu.py: display contents of dumped files
      oe-time-dd-test.sh: improve output formatting
      oe-time-dd-test.sh: add iostat command

Saul Wold (1):
      qemurunner: add second qmp port

Scott Weaver (1):
      bitbake: fetch2: add check for empty SRC_URI hash string

Tim Orling (8):
      maintainers.inc: update email address
      python3-scons: upgrade 3.1.2 -> 4.1.0; simplify
      python3-hypothesis: upgrade 6.13.7 -> 6.13.14
      at-spi2-core: upgrade 2.40.1 -> 2.40.2
      python3-importlib-metadata: upgrade 4.4.0 -> 4.5.0
      python3-manifest: add statistics subpackage
      python3-hypothesis: upgrade 6.13.14 -> 6.14.0
      python3: skip tests requiring tools-sdk

Tony Battersby (1):
      glibc: fix path to place zdump in the tzcode package

Tony Tascioglu (3):
      valgrind: Improve non-deterministic ptest reliability
      valgrind: remove buggy ptest from arm64
      valgrind: Actually install list of non-deterministic ptests

hongxu (1):
      nativesdk-libdnf: fix installed and not shipped files

wangmy (21):
      cmake: upgrade 3.20.2 -> 3.20.3
      mtools: upgrade 4.0.27 -> 4.0.29
      python3-magic: upgrade 0.4.22 -> 0.4.23
      less: upgrade 586 -> 589
      python3-libarchive-c: upgrade 3.0 -> 3.1
      diffoscope: upgrade 175 -> 177
      dtc: upgrade 1.6.0 -> 1.6.1
      git: upgrade 2.31.1 -> 2.32.0
      gnutls: upgrade 3.7.1 -> 3.7.2
      go: upgrade 1.16.4 -> 1.16.5
      less: upgrade 589 -> 590
      ethtool: upgrade 5.10 -> 5.12
      m4: upgrade 1.4.18 -> 1.4.19
      alsa-lib: upgrade 1.2.5 -> 1.2.5.1
      alsa-utils: upgrade 1.2.5 -> 1.2.5.1
      alsa-topology-conf: upgrade 1.2.5 -> 1.2.5.1
      alsa-ucm-conf: upgrade 1.2.5 -> 1.2.5.1
      blktrace: upgrade 1.2.0 -> 1.3.0
      enchant2: upgrade 2.2.15 -> 2.3.0
      librepo: upgrade 1.14.0 -> 1.14.1
      createrepo-c: upgrade 0.17.2 -> 0.17.3

zangrc (1):
      python3-pycairo: upgrade 1.20.0 -> 1.20.1

zhengruoqin (6):
      python3-importlib-metadata: upgrade 4.3.0 -> 4.4.0
      libogg: upgrade 1.3.4 -> 1.3.5
      liburcu: upgrade 0.12.2 -> 0.13.0
      libcomps: upgrade 0.1.16 -> 0.1.17
      python3-dbusmock: upgrade 0.23.0 -> 0.23.1
      nfs-utils: upgrade 2.5.3 -> 2.5.4

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: Iac124e214336beb9cab7fb3b67a6968d4e34d06f
diff --git a/poky/meta/recipes-devtools/gcc/gcc-11.1.inc b/poky/meta/recipes-devtools/gcc/gcc-11.1.inc
index bf29879..c21242a 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-11.1.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-11.1.inc
@@ -68,7 +68,10 @@
            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-Revert-libstdc-Install-libstdc-gdb.py-more-robustly-.patch \
+           file://0001-libstdc-Fix-installation-of-python-hooks-PR-99453.patch \
+           file://0038-arc-Update-64bit-move-split-patterns.patch \
+           file://0039-arc-Fix-u-maddhisi-patterns.patch \
+           file://0040-arc-Update-doloop_end-patterns.patch \
 "
 SRC_URI[sha256sum] = "4c4a6fb8a8396059241c2e674b85b351c26a5d678274007f076957afa1cc9ddf"
 SRC_URI[backports.sha256sum] = "69274bebd6c069a13443d4af61070e854740a639ec4d66eedf3e80070363587b"
diff --git a/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc b/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc
index a64c4ca..dc7f458 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc
@@ -40,6 +40,7 @@
     ${@get_gcc_mips_plt_setting(bb, d)} \
     ${@get_gcc_ppc_plt_settings(bb, d)} \
     ${@get_gcc_multiarch_setting(bb, d)} \
+	--enable-standard-branch-protection \
 "
 
 # glibc version is a minimum controlling whether features are enabled. 
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0001-Revert-libstdc-Install-libstdc-gdb.py-more-robustly-.patch b/poky/meta/recipes-devtools/gcc/gcc/0001-Revert-libstdc-Install-libstdc-gdb.py-more-robustly-.patch
deleted file mode 100644
index a3e31e4..0000000
--- a/poky/meta/recipes-devtools/gcc/gcc/0001-Revert-libstdc-Install-libstdc-gdb.py-more-robustly-.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-This change breaks installation on baremetal targets, so whilst the cause is
-investigated revert the commit.
-
-Upstream-Status: Inappropriate
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-From 8ec52bd0ba2141ef0bcc6f93e26a23d662b40f78 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@arm.com>
-Date: Wed, 26 May 2021 19:54:29 +0100
-Subject: [PATCH] Revert "libstdc++: Install libstdc++*-gdb.py more robustly
- [PR 99453]"
-
-This reverts commit dbb87d6a9c37c8eca80d77782717a8144515c16d.
----
- libstdc++-v3/python/Makefile.am | 20 ++++++++++++++++----
- libstdc++-v3/python/Makefile.in | 14 ++++++++++++--
- 2 files changed, 28 insertions(+), 6 deletions(-)
-
-diff --git a/libstdc++-v3/python/Makefile.am b/libstdc++-v3/python/Makefile.am
-index 0c2b207b86e..01517a2a522 100644
---- a/libstdc++-v3/python/Makefile.am
-+++ b/libstdc++-v3/python/Makefile.am
-@@ -44,9 +44,21 @@ gdb.py: hook.in Makefile
- install-data-local: gdb.py
- 	@$(mkdir_p) $(DESTDIR)$(toolexeclibdir)
- ## We want to install gdb.py as SOMETHING-gdb.py.  SOMETHING is the
--## full name of the final library.  We use the libtool .la file to get
--## the correct name.
--	@libname=`sed -ne "/^library_names=/{s/.*='//;s/'$$//;s/ .*//;p;}" \
--	          $(DESTDIR)$(toolexeclibdir)/libstdc++.la`; \
-+## full name of the final library.  We want to ignore symlinks, the
-+## .la file, and any previous -gdb.py file.  This is inherently
-+## fragile, but there does not seem to be a better option, because
-+## libtool hides the real names from us.
-+	@here=`pwd`; cd $(DESTDIR)$(toolexeclibdir); \
-+	  for file in libstdc++.*; do \
-+	    case $$file in \
-+	      *-gdb.py) ;; \
-+	      *.la) ;; \
-+	      *) if test -h $$file; then \
-+	           continue; \
-+	         fi; \
-+	         libname=$$file;; \
-+	    esac; \
-+	  done; \
-+	cd $$here; \
- 	echo " $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py"; \
- 	$(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py
-diff --git a/libstdc++-v3/python/Makefile.in b/libstdc++-v3/python/Makefile.in
-index 2efe0b96a19..c35dbe55961 100644
---- a/libstdc++-v3/python/Makefile.in
-+++ b/libstdc++-v3/python/Makefile.in
-@@ -607,8 +607,18 @@ gdb.py: hook.in Makefile
- 
- install-data-local: gdb.py
- 	@$(mkdir_p) $(DESTDIR)$(toolexeclibdir)
--	@libname=`sed -ne "/^library_names=/{s/.*='//;s/'$$//;s/ .*//;p;}" \
--	          $(DESTDIR)$(toolexeclibdir)/libstdc++.la`; \
-+	@here=`pwd`; cd $(DESTDIR)$(toolexeclibdir); \
-+	  for file in libstdc++.*; do \
-+	    case $$file in \
-+	      *-gdb.py) ;; \
-+	      *.la) ;; \
-+	      *) if test -h $$file; then \
-+	           continue; \
-+	         fi; \
-+	         libname=$$file;; \
-+	    esac; \
-+	  done; \
-+	cd $$here; \
- 	echo " $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py"; \
- 	$(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py
- 
--- 
-2.25.1
-
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0001-libstdc-Fix-installation-of-python-hooks-PR-99453.patch b/poky/meta/recipes-devtools/gcc/gcc/0001-libstdc-Fix-installation-of-python-hooks-PR-99453.patch
new file mode 100644
index 0000000..d82f533
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc/0001-libstdc-Fix-installation-of-python-hooks-PR-99453.patch
@@ -0,0 +1,57 @@
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From ad4c21f0f59b52357019148ec94d767aa2acd8f2 Mon Sep 17 00:00:00 2001
+From: Jonathan Wakely <jwakely@redhat.com>
+Date: Tue, 1 Jun 2021 11:00:16 +0100
+Subject: [PATCH] libstdc++: Fix installation of python hooks [PR 99453]
+
+When no shared library is installed, the new code to determine the name
+of the -gdb.py file yields an empty string. Use the name of the static
+library in that case.
+
+libstdc++-v3/ChangeLog:
+
+	PR libstdc++/99453
+	* python/Makefile.am: Use archive name for printer hook if no
+	dynamic library name is available.
+	* python/Makefile.in: Regenerate.
+
+(cherry picked from commit 9f7bc160b4a0f27dce248d1226e3ae7104b0e67b)
+---
+ libstdc++-v3/python/Makefile.am | 4 ++++
+ libstdc++-v3/python/Makefile.in | 4 ++++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/libstdc++-v3/python/Makefile.am b/libstdc++-v3/python/Makefile.am
+index 0c2b207b86e..8efefa5725c 100644
+--- a/libstdc++-v3/python/Makefile.am
++++ b/libstdc++-v3/python/Makefile.am
+@@ -48,5 +48,9 @@ install-data-local: gdb.py
+ ## the correct name.
+ 	@libname=`sed -ne "/^library_names=/{s/.*='//;s/'$$//;s/ .*//;p;}" \
+ 	          $(DESTDIR)$(toolexeclibdir)/libstdc++.la`; \
++	if [ -z "$$libname" ]; then \
++	  libname=`sed -ne "/^old_library=/{s/.*='//;s/'$$//;s/ .*//;p;}" \
++		  $(DESTDIR)$(toolexeclibdir)/libstdc++.la`; \
++	fi; \
+ 	echo " $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py"; \
+ 	$(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py
+diff --git a/libstdc++-v3/python/Makefile.in b/libstdc++-v3/python/Makefile.in
+index 2efe0b96a19..9904a9197de 100644
+--- a/libstdc++-v3/python/Makefile.in
++++ b/libstdc++-v3/python/Makefile.in
+@@ -609,6 +609,10 @@ install-data-local: gdb.py
+ 	@$(mkdir_p) $(DESTDIR)$(toolexeclibdir)
+ 	@libname=`sed -ne "/^library_names=/{s/.*='//;s/'$$//;s/ .*//;p;}" \
+ 	          $(DESTDIR)$(toolexeclibdir)/libstdc++.la`; \
++	if [ -z "$$libname" ]; then \
++	  libname=`sed -ne "/^old_library=/{s/.*='//;s/'$$//;s/ .*//;p;}" \
++		  $(DESTDIR)$(toolexeclibdir)/libstdc++.la`; \
++	fi; \
+ 	echo " $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py"; \
+ 	$(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py
+ 
+-- 
+2.25.1
+
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 789f573..8184e68 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 28e7c312b1292ca216d4b54ec9f6b7ac055907a8 Mon Sep 17 00:00:00 2001
+From 2fa5c93641b75a662839c1b6eee172b6c481c70e 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.
@@ -19,7 +19,7 @@
 don't have such code at this point. This is something the target gcc recipe should do
 and override these platform defaults in its build config.
 
-Do same for riscv64 and aarch64
+Do same for riscv64, aarch64 & arc
 
 RP 15/8/11
 
@@ -30,11 +30,12 @@
 Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
 ---
  gcc/config/aarch64/t-aarch64-linux |  8 ++++----
+ gcc/config/arc/t-multilib-linux    |  4 ++--
  gcc/config/i386/t-linux64          |  6 ++----
  gcc/config/mips/t-linux64          | 10 +++-------
  gcc/config/riscv/t-linux           |  6 ++++--
  gcc/config/rs6000/t-linux64        |  5 ++---
- 5 files changed, 15 insertions(+), 20 deletions(-)
+ 6 files changed, 17 insertions(+), 22 deletions(-)
 
 diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux
 index 241b0ef20b6..a7dadb2d64f 100644
@@ -53,6 +54,22 @@
  
 -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/arc/t-multilib-linux b/gcc/config/arc/t-multilib-linux
+index fc3fff640a2..d58e28f6df8 100644
+--- a/gcc/config/arc/t-multilib-linux
++++ b/gcc/config/arc/t-multilib-linux
+@@ -16,9 +16,9 @@
+ # along with GCC; see the file COPYING3.  If not see
+ # <http://www.gnu.org/licenses/>.
+ 
+-MULTILIB_OPTIONS = mcpu=hs/mcpu=archs/mcpu=hs38/mcpu=hs38_linux/mcpu=arc700/mcpu=nps400
++#MULTILIB_OPTIONS = mcpu=hs/mcpu=archs/mcpu=hs38/mcpu=hs38_linux/mcpu=arc700/mcpu=nps400
+ 
+-MULTILIB_DIRNAMES = hs archs hs38 hs38_linux arc700 nps400
++#MULTILIB_DIRNAMES = hs archs hs38 hs38_linux arc700 nps400
+ 
+ # Aliases:
+ MULTILIB_MATCHES += mcpu?arc700=mA7
 diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64
 index d288b093522..7b5980a9d21 100644
 --- a/gcc/config/i386/t-linux64
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0038-arc-Update-64bit-move-split-patterns.patch b/poky/meta/recipes-devtools/gcc/gcc/0038-arc-Update-64bit-move-split-patterns.patch
new file mode 100644
index 0000000..37fe95d
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc/0038-arc-Update-64bit-move-split-patterns.patch
@@ -0,0 +1,290 @@
+From 0061fabeb9393c362601486105202cfe837a5a68 Mon Sep 17 00:00:00 2001
+From: Claudiu Zissulescu <claziss@synopsys.com>
+Date: Wed, 9 Jun 2021 12:12:57 +0300
+Subject: [PATCH] arc: Update 64bit move split patterns.
+
+ARCv2HS can use a limited number of instructions to implement 64bit
+moves. The VADD2 is used as a 64bit move, the LDD/STD are 64 bit loads
+and stores. All those instructions are not baseline, hence we need to
+provide alternatives when they are not available or cannot be generate
+due to instruction restriction.
+
+This patch is cleaning up those move patterns, and updates splits
+instruction lengths.
+
+This is a backport from mainline gcc.
+
+gcc/
+2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
+
+	* config/arc/arc-protos.h (arc_split_move_p): New prototype.
+	* config/arc/arc.c (arc_split_move_p): New function.
+	(arc_split_move): Clean up.
+	* config/arc/arc.md (movdi_insn): Clean up, use arc_split_move_p.
+	(movdf_insn): Likewise.
+	* config/arc/simdext.md (mov<VWH>_insn): Likewise.
+
+Upstream-Status: Backport [https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=0061fabeb9393c362601486105202cfe837a5a68]
+
+Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
+(cherry picked from commit c0ba7a8af5366c37241f20e8be41e362f7260389)
+Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
+---
+ gcc/config/arc/arc-protos.h |  1 +
+ gcc/config/arc/arc.c        | 44 ++++++++++++----------
+ gcc/config/arc/arc.md       | 91 +++++++++------------------------------------
+ gcc/config/arc/simdext.md   | 38 ++++---------------
+ 4 files changed, 52 insertions(+), 122 deletions(-)
+
+diff --git a/gcc/config/arc/arc-protos.h b/gcc/config/arc/arc-protos.h
+index 1f56a0d82e4..62d7e45d29d 100644
+--- a/gcc/config/arc/arc-protos.h
++++ b/gcc/config/arc/arc-protos.h
+@@ -50,6 +50,7 @@ extern void arc_split_ior (rtx *);
+ extern bool arc_check_mov_const (HOST_WIDE_INT );
+ extern bool arc_split_mov_const (rtx *);
+ extern bool arc_can_use_return_insn (void);
++extern bool arc_split_move_p (rtx *);
+ #endif /* RTX_CODE */
+ 
+ extern bool arc_ccfsm_branch_deleted_p (void);
+diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
+index 3201c3fefd7..db541bc11f5 100644
+--- a/gcc/config/arc/arc.c
++++ b/gcc/config/arc/arc.c
+@@ -10129,6 +10129,31 @@ arc_process_double_reg_moves (rtx *operands)
+   return true;
+ }
+ 
++
++/* Check if we need to split a 64bit move.  We do not need to split it if we can
++   use vadd2 or ldd/std instructions.  */
++
++bool
++arc_split_move_p (rtx *operands)
++{
++  machine_mode mode = GET_MODE (operands[0]);
++
++  if (TARGET_LL64
++      && ((memory_operand (operands[0], mode)
++	   && (even_register_operand (operands[1], mode)
++	       || satisfies_constraint_Cm3 (operands[1])))
++	  || (memory_operand (operands[1], mode)
++	      && even_register_operand (operands[0], mode))))
++    return false;
++
++  if (TARGET_PLUS_QMACW
++      && even_register_operand (operands[0], mode)
++      && even_register_operand (operands[1], mode))
++    return false;
++
++  return true;
++}
++
+ /* operands 0..1 are the operands of a 64 bit move instruction.
+    split it into two moves with operands 2/3 and 4/5.  */
+ 
+@@ -10146,25 +10171,6 @@ arc_split_move (rtx *operands)
+       return;
+   }
+ 
+-  if (TARGET_LL64
+-      && ((memory_operand (operands[0], mode)
+-	   && (even_register_operand (operands[1], mode)
+-	       || satisfies_constraint_Cm3 (operands[1])))
+-	  || (memory_operand (operands[1], mode)
+-	      && even_register_operand (operands[0], mode))))
+-    {
+-      emit_move_insn (operands[0], operands[1]);
+-      return;
+-    }
+-
+-  if (TARGET_PLUS_QMACW
+-      && even_register_operand (operands[0], mode)
+-      && even_register_operand (operands[1], mode))
+-    {
+-      emit_move_insn (operands[0], operands[1]);
+-      return;
+-    }
+-
+   if (TARGET_PLUS_QMACW
+       && GET_CODE (operands[1]) == CONST_VECTOR)
+     {
+diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md
+index 7a52551eef5..91a838a38e4 100644
+--- a/gcc/config/arc/arc.md
++++ b/gcc/config/arc/arc.md
+@@ -1329,47 +1329,20 @@ core_3, archs4x, archs4xd, archs4xd_slow"
+   "register_operand (operands[0], DImode)
+    || register_operand (operands[1], DImode)
+    || (satisfies_constraint_Cm3 (operands[1])
+-      && memory_operand (operands[0], DImode))"
+-  "*
+-{
+-  switch (which_alternative)
+-    {
+-    default:
+-      return \"#\";
+-
+-    case 0:
+-    if (TARGET_PLUS_QMACW
+-	&& even_register_operand (operands[0], DImode)
+-	&& even_register_operand (operands[1], DImode))
+-      return \"vadd2%?\\t%0,%1,0\";
+-    return \"#\";
+-
+-    case 2:
+-    if (TARGET_LL64
+-        && memory_operand (operands[1], DImode)
+-	&& even_register_operand (operands[0], DImode))
+-      return \"ldd%U1%V1 %0,%1%&\";
+-    return \"#\";
+-
+-    case 3:
+-    if (TARGET_LL64
+-	&& memory_operand (operands[0], DImode)
+-	&& (even_register_operand (operands[1], DImode)
+-	    || satisfies_constraint_Cm3 (operands[1])))
+-     return \"std%U0%V0 %1,%0\";
+-    return \"#\";
+-    }
+-}"
+-  "&& reload_completed"
++       && memory_operand (operands[0], DImode))"
++  "@
++   vadd2\\t%0,%1,0
++   #
++   ldd%U1%V1\\t%0,%1
++   std%U0%V0\\t%1,%0"
++  "&& reload_completed && arc_split_move_p (operands)"
+   [(const_int 0)]
+   {
+    arc_split_move (operands);
+    DONE;
+   }
+   [(set_attr "type" "move,move,load,store")
+-   ;; ??? The ld/st values could be 4 if it's [reg,bignum].
+-   (set_attr "length" "8,16,*,*")])
+-
++   (set_attr "length" "8,16,16,16")])
+ 
+ ;; Floating point move insns.
+ 
+@@ -1408,50 +1381,22 @@ core_3, archs4x, archs4xd, archs4xd_slow"
+ (define_insn_and_split "*movdf_insn"
+   [(set (match_operand:DF 0 "move_dest_operand"      "=D,r,r,r,r,m")
+ 	(match_operand:DF 1 "move_double_src_operand" "r,D,r,E,m,r"))]
+-  "register_operand (operands[0], DFmode)
+-   || register_operand (operands[1], DFmode)"
+-  "*
+-{
+- switch (which_alternative)
+-   {
+-    default:
+-      return \"#\";
+-
+-    case 2:
+-    if (TARGET_PLUS_QMACW
+-	&& even_register_operand (operands[0], DFmode)
+-	&& even_register_operand (operands[1], DFmode))
+-      return \"vadd2%?\\t%0,%1,0\";
+-    return \"#\";
+-
+-    case 4:
+-    if (TARGET_LL64
+-	&& ((even_register_operand (operands[0], DFmode)
+-	     && memory_operand (operands[1], DFmode))
+-	    || (memory_operand (operands[0], DFmode)
+-	        && even_register_operand (operands[1], DFmode))))
+-      return \"ldd%U1%V1 %0,%1%&\";
+-    return \"#\";
+-
+-    case 5:
+-    if (TARGET_LL64
+-	&& ((even_register_operand (operands[0], DFmode)
+-	     && memory_operand (operands[1], DFmode))
+-	    || (memory_operand (operands[0], DFmode)
+-		&& even_register_operand (operands[1], DFmode))))
+-     return \"std%U0%V0 %1,%0\";
+-    return \"#\";
+-   }
+-}"
+-  "reload_completed"
++  "(register_operand (operands[0], DFmode)
++    || register_operand (operands[1], DFmode))"
++  "@
++   #
++   #
++   vadd2\\t%0,%1,0
++   #
++   ldd%U1%V1\\t%0,%1
++   std%U0%V0\\t%1,%0"
++  "&& reload_completed && arc_split_move_p (operands)"
+   [(const_int 0)]
+   {
+    arc_split_move (operands);
+    DONE;
+   }
+   [(set_attr "type" "move,move,move,move,load,store")
+-   (set_attr "predicable" "no,no,no,yes,no,no")
+-   ;; ??? The ld/st values could be 16 if it's [reg,bignum].
+    (set_attr "length" "4,16,8,16,16,16")])
+ 
+ (define_insn_and_split "*movdf_insn_nolrsr"
+diff --git a/gcc/config/arc/simdext.md b/gcc/config/arc/simdext.md
+index f0900757452..36f41a5c3d0 100644
+--- a/gcc/config/arc/simdext.md
++++ b/gcc/config/arc/simdext.md
+@@ -1402,41 +1402,19 @@
+ 	(match_operand:VWH 1 "general_operand"    "i,r,m,r"))]
+   "(register_operand (operands[0], <MODE>mode)
+        || register_operand (operands[1], <MODE>mode))"
+-  "*
+-{
+-  switch (which_alternative)
+-    {
+-     default:
+-       return \"#\";
+-
+-     case 1:
+-       if (TARGET_PLUS_QMACW
+-           && even_register_operand (operands[0], <MODE>mode)
+-	   && even_register_operand (operands[1], <MODE>mode))
+-         return \"vadd2%?\\t%0,%1,0\";
+-       return \"#\";
+-
+-     case 2:
+-       if (TARGET_LL64)
+-         return \"ldd%U1%V1 %0,%1\";
+-       return \"#\";
+-
+-     case 3:
+-       if (TARGET_LL64)
+-	   return \"std%U0%V0 %1,%0\";
+-	 return \"#\";
+-    }
+-}"
+-  "reload_completed"
++  "@
++   #
++   vadd2\\t%0,%1,0
++   ldd%U1%V1\\t%0,%1
++   std%U0%V0\\t%1,%0"
++  "&& reload_completed && arc_split_move_p (operands)"
+   [(const_int 0)]
+   {
+    arc_split_move (operands);
+    DONE;
+   }
+-  [(set_attr "type" "move,multi,load,store")
+-   (set_attr "predicable" "no,no,no,no")
+-   (set_attr "iscompact"  "false,false,false,false")
+-   ])
++  [(set_attr "type" "move,move,load,store")
++   (set_attr "length" "16,8,16,16")])
+ 
+ (define_expand "movmisalign<mode>"
+  [(set (match_operand:VWH 0 "general_operand" "")
+-- 
+2.16.2
+
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0039-arc-Fix-u-maddhisi-patterns.patch b/poky/meta/recipes-devtools/gcc/gcc/0039-arc-Fix-u-maddhisi-patterns.patch
new file mode 100644
index 0000000..9c5a2b8
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc/0039-arc-Fix-u-maddhisi-patterns.patch
@@ -0,0 +1,127 @@
+From 4186b7e93be73f8d68dc0fcc00a4cc8cc83e99a8 Mon Sep 17 00:00:00 2001
+From: Claudiu Zissulescu <claziss@synopsys.com>
+Date: Wed, 9 Jun 2021 12:12:57 +0300
+Subject: [PATCH] arc: Fix (u)maddhisi patterns
+
+Rework the (u)maddhisi4 patterns and use VMAC2H(U) instruction instead
+of the 64bit MAC(U) instruction.
+This fixes the next execute.exp failures:
+     arith-rand-ll.c   -O2  execution test
+     arith-rand-ll.c   -O3  execution test
+     pr78726.c   -O2  execution test
+     pr78726.c   -O3  execution test
+
+gcc/
+2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
+
+	* config/arc/arc.md (maddhisi4): Use VMAC2H instruction.
+	(machi): New pattern.
+	(umaddhisi4): Use VMAC2HU instruction.
+	(umachi): New pattern.
+
+Upstream-Status: Backport [https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=4186b7e93be73f8d68dc0fcc00a4cc8cc83e99a8]
+
+Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
+(cherry picked from commit dd4778a59b4693777c732075021375e19eee6a76)
+Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
+---
+ gcc/config/arc/arc.md | 66 ++++++++++++++++++++++++++++++++-------------------
+ 1 file changed, 41 insertions(+), 25 deletions(-)
+
+diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md
+index 91a838a38e4..2a7e087ff72 100644
+--- a/gcc/config/arc/arc.md
++++ b/gcc/config/arc/arc.md
+@@ -6053,48 +6053,64 @@ core_3, archs4x, archs4xd, archs4xd_slow"
+ 
+ ;; MAC and DMPY instructions
+ 
+-; Use MAC instruction to emulate 16bit mac.
++; Use VMAC2H(U) instruction to emulate scalar 16bit mac.
+ (define_expand "maddhisi4"
+   [(match_operand:SI 0 "register_operand" "")
+    (match_operand:HI 1 "register_operand" "")
+    (match_operand:HI 2 "extend_operand"   "")
+    (match_operand:SI 3 "register_operand" "")]
+-  "TARGET_PLUS_DMPY"
++  "TARGET_PLUS_MACD"
+   "{
+-   rtx acc_reg = gen_rtx_REG (DImode, ACC_REG_FIRST);
+-   rtx tmp1 = gen_reg_rtx (SImode);
+-   rtx tmp2 = gen_reg_rtx (SImode);
+-   rtx accl = gen_lowpart (SImode, acc_reg);
+-
+-   emit_move_insn (accl, operands[3]);
+-   emit_insn (gen_rtx_SET (tmp1, gen_rtx_SIGN_EXTEND (SImode, operands[1])));
+-   emit_insn (gen_rtx_SET (tmp2, gen_rtx_SIGN_EXTEND (SImode, operands[2])));
+-   emit_insn (gen_mac (tmp1, tmp2));
+-   emit_move_insn (operands[0], accl);
++   rtx acc_reg = gen_rtx_REG (SImode, ACC_REG_FIRST);
++
++   emit_move_insn (acc_reg, operands[3]);
++   emit_insn (gen_machi (operands[1], operands[2]));
++   emit_move_insn (operands[0], acc_reg);
+    DONE;
+   }")
+ 
+-; The same for the unsigned variant, but using MACU instruction.
++(define_insn "machi"
++  [(set (reg:SI ARCV2_ACC)
++	(plus:SI
++	 (mult:SI (sign_extend:SI (match_operand:HI 0 "register_operand" "%r"))
++		  (sign_extend:SI (match_operand:HI 1 "register_operand" "r")))
++	 (reg:SI ARCV2_ACC)))]
++  "TARGET_PLUS_MACD"
++  "vmac2h\\t0,%0,%1"
++  [(set_attr "length" "4")
++   (set_attr "type" "multi")
++   (set_attr "predicable" "no")
++   (set_attr "cond" "nocond")])
++
++; The same for the unsigned variant, but using VMAC2HU instruction.
+ (define_expand "umaddhisi4"
+   [(match_operand:SI 0 "register_operand" "")
+    (match_operand:HI 1 "register_operand" "")
+-   (match_operand:HI 2 "extend_operand"   "")
++   (match_operand:HI 2 "register_operand" "")
+    (match_operand:SI 3 "register_operand" "")]
+-  "TARGET_PLUS_DMPY"
++  "TARGET_PLUS_MACD"
+   "{
+-   rtx acc_reg = gen_rtx_REG (DImode, ACC_REG_FIRST);
+-   rtx tmp1 = gen_reg_rtx (SImode);
+-   rtx tmp2 = gen_reg_rtx (SImode);
+-   rtx accl = gen_lowpart (SImode, acc_reg);
+-
+-   emit_move_insn (accl, operands[3]);
+-   emit_insn (gen_rtx_SET (tmp1, gen_rtx_ZERO_EXTEND (SImode, operands[1])));
+-   emit_insn (gen_rtx_SET (tmp2, gen_rtx_ZERO_EXTEND (SImode, operands[2])));
+-   emit_insn (gen_macu (tmp1, tmp2));
+-   emit_move_insn (operands[0], accl);
++   rtx acc_reg = gen_rtx_REG (SImode, ACC_REG_FIRST);
++
++   emit_move_insn (acc_reg, operands[3]);
++   emit_insn (gen_umachi (operands[1], operands[2]));
++   emit_move_insn (operands[0], acc_reg);
+    DONE;
+   }")
+ 
++(define_insn "umachi"
++  [(set (reg:SI ARCV2_ACC)
++	(plus:SI
++	 (mult:SI (zero_extend:SI (match_operand:HI 0 "register_operand" "%r"))
++		  (zero_extend:SI (match_operand:HI 1 "register_operand" "r")))
++	 (reg:SI ARCV2_ACC)))]
++  "TARGET_PLUS_MACD"
++  "vmac2hu\\t0,%0,%1"
++  [(set_attr "length" "4")
++   (set_attr "type" "multi")
++   (set_attr "predicable" "no")
++   (set_attr "cond" "nocond")])
++
+ (define_expand "maddsidi4"
+   [(match_operand:DI 0 "register_operand" "")
+    (match_operand:SI 1 "register_operand" "")
+-- 
+2.16.2
+
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0040-arc-Update-doloop_end-patterns.patch b/poky/meta/recipes-devtools/gcc/gcc/0040-arc-Update-doloop_end-patterns.patch
new file mode 100644
index 0000000..5f0bf8d
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc/0040-arc-Update-doloop_end-patterns.patch
@@ -0,0 +1,105 @@
+From 5a9b6a004f89fdd95b0470e1324dc4dee8c41d24 Mon Sep 17 00:00:00 2001
+From: Claudiu Zissulescu <claziss@synopsys.com>
+Date: Wed, 9 Jun 2021 12:12:57 +0300
+Subject: [PATCH] arc: Update doloop_end patterns
+
+ARC processor can use LP instruction to implement zero overlay loops.
+The current inplementation doesn't handle the unlikely situation when
+the loop iterator is located in memory.  Refurbish the loop_end insn
+pattern into a define_insn_and_split pattern.
+
+gcc/
+2021-07-09  Claudiu Zissulescu  <claziss@synopsys.com>
+
+	* config/arc/arc.md (loop_end): Change it to
+	define_insn_and_split.
+
+Upstream-Status: Backport [https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=5a9b6a004f89fdd95b0470e1324dc4dee8c41d24]
+
+Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
+(cherry picked from commit 174e75a210753b68de0f2c398a13ace0f512e35b)
+Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
+---
+ gcc/config/arc/arc.md | 46 ++++++++++++++++++++--------------------------
+ 1 file changed, 20 insertions(+), 26 deletions(-)
+
+diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md
+index 2a7e087ff72..d704044c13f 100644
+--- a/gcc/config/arc/arc.md
++++ b/gcc/config/arc/arc.md
+@@ -4986,7 +4986,7 @@ core_3, archs4x, archs4xd, archs4xd_slow"
+ (define_expand "doloop_end"
+   [(parallel [(set (pc)
+ 		   (if_then_else
+-		    (ne (match_operand 0 "" "")
++		    (ne (match_operand 0 "nonimmediate_operand")
+ 			(const_int 1))
+ 		    (label_ref (match_operand 1 "" ""))
+ 		    (pc)))
+@@ -5012,44 +5012,38 @@ core_3, archs4x, archs4xd, archs4xd_slow"
+ 
+ ;; if by any chance the lp_count is not used, then use an 'r'
+ ;; register, instead of going to memory.
+-(define_insn "loop_end"
+-  [(set (pc)
+-	(if_then_else (ne (match_operand:SI 2 "nonimmediate_operand" "0,m")
+-			  (const_int 1))
+-		      (label_ref (match_operand 1 "" ""))
+-		      (pc)))
+-   (set (match_operand:SI 0 "nonimmediate_operand" "=r,m")
+-	(plus (match_dup 2) (const_int -1)))
+-   (unspec [(const_int 0)] UNSPEC_ARC_LP)
+-   (clobber (match_scratch:SI 3 "=X,&r"))]
+-  ""
+-  "; ZOL_END, begins @%l1"
+-  [(set_attr "length" "0")
+-   (set_attr "predicable" "no")
+-   (set_attr "type" "loop_end")])
+-
+ ;; split pattern for the very slim chance when the loop register is
+ ;; memory.
+-(define_split
++(define_insn_and_split "loop_end"
+   [(set (pc)
+-	(if_then_else (ne (match_operand:SI 0 "memory_operand")
++	(if_then_else (ne (match_operand:SI 0 "nonimmediate_operand" "+r,!m")
+ 			  (const_int 1))
+-		      (label_ref (match_operand 1 ""))
++		      (label_ref (match_operand 1 "" ""))
+ 		      (pc)))
+    (set (match_dup 0) (plus (match_dup 0) (const_int -1)))
+    (unspec [(const_int 0)] UNSPEC_ARC_LP)
+-   (clobber (match_scratch:SI 2))]
+-  "memory_operand (operands[0], SImode)"
++   (clobber (match_scratch:SI 2 "=X,&r"))]
++  ""
++  "@
++   ; ZOL_END, begins @%l1
++   #"
++  "reload_completed && memory_operand (operands[0], Pmode)"
+   [(set (match_dup 2) (match_dup 0))
+-   (set (match_dup 2) (plus:SI (match_dup 2) (const_int -1)))
++   (parallel
++    [(set (reg:CC_ZN CC_REG)
++	  (compare:CC_ZN (plus:SI (match_dup 2) (const_int -1))
++			 (const_int 0)))
++     (set (match_dup 2) (plus:SI (match_dup 2) (const_int -1)))])
+    (set (match_dup 0) (match_dup 2))
+-   (set (reg:CC CC_REG) (compare:CC (match_dup 2) (const_int 0)))
+    (set (pc)
+-	(if_then_else (ne (reg:CC CC_REG)
++	(if_then_else (ne (reg:CC_ZN CC_REG)
+ 			  (const_int 0))
+ 		      (label_ref (match_dup 1))
+ 		      (pc)))]
+-  "")
++  ""
++  [(set_attr "length" "0,24")
++   (set_attr "predicable" "no")
++   (set_attr "type" "loop_end")])
+ 
+ (define_insn "loop_fail"
+   [(set (reg:SI LP_COUNT)
+-- 
+2.16.2
+
diff --git a/poky/meta/recipes-devtools/gcc/libgcc-initial.inc b/poky/meta/recipes-devtools/gcc/libgcc-initial.inc
index f7d8041..06bf224 100644
--- a/poky/meta/recipes-devtools/gcc/libgcc-initial.inc
+++ b/poky/meta/recipes-devtools/gcc/libgcc-initial.inc
@@ -51,8 +51,6 @@
 
 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 () {