diff --git a/.elfutils.metadata b/.elfutils.metadata
index 47e5453..05a788a 100644
--- a/.elfutils.metadata
+++ b/.elfutils.metadata
@@ -1 +1 @@
-c1ed871515b0f7fcdf2d94fea23e4b8ba67e8fe3 SOURCES/elfutils-0.180.tar.bz2
+3efc2253564a2ca8be0a5cf9aba3e4b5f544ee22 SOURCES/elfutils-0.182.tar.bz2
diff --git a/.gitignore b/.gitignore
index 7da1245..617df92 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/elfutils-0.180.tar.bz2
+SOURCES/elfutils-0.182.tar.bz2
diff --git a/SOURCES/elfutils-0.182-debuginfod-test-fix.patch b/SOURCES/elfutils-0.182-debuginfod-test-fix.patch
new file mode 100644
index 0000000..62efd07
--- /dev/null
+++ b/SOURCES/elfutils-0.182-debuginfod-test-fix.patch
@@ -0,0 +1,43 @@
+commit f172a31c56405750114924eba0786999bccc501f
+Author: Mark Wielaard <mark@klomp.org>
+Date:   Mon Nov 2 15:20:54 2020 +0100
+
+    tests: Create bogus R/nothing.rpm with cyclic symlink.
+    
+    We used to try to trigger an error during debuginfod scanning using
+    a chmod 000 file. But this doesn't always result in an error. Create
+    a cyclic symlink instead, which always results in a failure to open/read.
+    
+    Signed-off-by: Mark Wielaard <mark@klomp.org>
+
+diff --git a/tests/ChangeLog b/tests/ChangeLog
+index 57fc4c8e..2f8b75c3 100644
+--- a/tests/ChangeLog
++++ b/tests/ChangeLog
+@@ -1,3 +1,8 @@
++2020-11-02  Mark Wielaard  <mark@klomp.org>
++
++	* run-debuginfod-find.sh: Create bogus R/nothing.rpm with cyclic
++	symlink instead of chmod 000.
++
+ 2020-10-31  Mark Wielaard  <mark@klomp.org>
+ 
+ 	* dwfl-proc-attach.c (dlopen): New external function override.
+diff --git a/tests/run-debuginfod-find.sh b/tests/run-debuginfod-find.sh
+index 48dbc7d4..5af45667 100755
+--- a/tests/run-debuginfod-find.sh
++++ b/tests/run-debuginfod-find.sh
+@@ -95,9 +95,10 @@ wait_ready()
+   fi
+ }
+ 
+-# create a 000 empty .rpm file to evoke a metric-visible error
+-touch R/nothing.rpm
+-chmod 000 R/nothing.rpm
++# create a bogus .rpm file to evoke a metric-visible error
++# Use a cyclic symlink instead of chmod 000 to make sure even root
++# would see an error (running the testsuite under root is NOT encouraged).
++ln -s R/nothing.rpm R/nothing.rpm
+ 
+ env LD_LIBRARY_PATH=$ldpath DEBUGINFOD_URLS= ${abs_builddir}/../debuginfod/debuginfod $VERBOSE -F -R -d $DB -p $PORT1 -t0 -g0 --fdcache-fds 1 --fdcache-mbs 2 -Z .tar.xz -Z .tar.bz2=bzcat -v R F Z L > vlog4 2>&1 &
+ PID1=$!
diff --git a/SOURCES/elfutils-0.182-s390-pid_memory_read.patch b/SOURCES/elfutils-0.182-s390-pid_memory_read.patch
new file mode 100644
index 0000000..2c056cb
--- /dev/null
+++ b/SOURCES/elfutils-0.182-s390-pid_memory_read.patch
@@ -0,0 +1,39 @@
+commit e4d985a3c1c873f77d20fa0cd421458cc2824996
+Author: Andreas Krebbel <krebbel@linux.ibm.com>
+Date:   Thu Nov 19 20:32:24 2020 +0100
+
+    IBM Z: Fix endianess problem in pid_memory_read
+    
+    The cached reads lack the big endian adjustments done in the fallback
+    path.
+    
+    Signed-off-by: Andreas Krebbel <krebbel@linux.ibm.com>
+
+diff --git a/libdwfl/linux-pid-attach.c b/libdwfl/linux-pid-attach.c
+index 3a6af997..b23139d9 100644
+--- a/libdwfl/linux-pid-attach.c
++++ b/libdwfl/linux-pid-attach.c
+@@ -193,14 +193,22 @@ pid_memory_read (Dwfl *dwfl, Dwarf_Addr addr, Dwarf_Word *result, void *arg)
+ {
+   struct __libdwfl_pid_arg *pid_arg = arg;
+   pid_t tid = pid_arg->tid_attached;
++  Dwfl_Process *process = dwfl->process;
+   assert (tid > 0);
+ 
+ #ifdef HAVE_PROCESS_VM_READV
+   if (read_cached_memory (pid_arg, addr, result))
++    {
++#if SIZEOF_LONG == 8
++# if BYTE_ORDER == BIG_ENDIAN
++      if (ebl_get_elfclass (process->ebl) == ELFCLASS32)
++	*result >>= 32;
++# endif
++#endif
+     return true;
++    }
+ #endif
+ 
+-  Dwfl_Process *process = dwfl->process;
+   if (ebl_get_elfclass (process->ebl) == ELFCLASS64)
+     {
+ #if SIZEOF_LONG == 8
diff --git a/SPECS/elfutils.spec b/SPECS/elfutils.spec
index 54d1b2e..df8247c 100644
--- a/SPECS/elfutils.spec
+++ b/SPECS/elfutils.spec
@@ -1,6 +1,6 @@
 Name: elfutils
-Version: 0.180
-%global baserelease 1
+Version: 0.182
+%global baserelease 3
 Release: %{baserelease}%{?dist}
 URL: http://elfutils.org/
 %global source_url ftp://sourceware.org/pub/elfutils/%{version}/
@@ -31,6 +31,7 @@ BuildRequires: flex
 BuildRequires: zlib-devel
 BuildRequires: bzip2-devel
 BuildRequires: xz-devel
+BuildRequires: libzstd-devel
 
 # For debuginfod
 BuildRequires: pkgconfig(libmicrohttpd) >= 0.9.33
@@ -40,7 +41,8 @@ BuildRequires: pkgconfig(libarchive) >= 3.1.2
 
 # For tests need to bunzip2 test files.
 BuildRequires: bzip2
-# For the run-debuginfod-find.sh test case in %check for /usr/sbin/ss
+BuildRequires: zstd
+# For the run-debuginfod-find.sh test case in %%check for /usr/sbin/ss
 BuildRequires: iproute
 BuildRequires: bsdtar
 BuildRequires: curl
@@ -55,6 +57,8 @@ BuildRequires: curl
 %endif
 
 # Patches
+Patch1: elfutils-0.182-debuginfod-test-fix.patch
+Patch2: elfutils-0.182-s390-pid_memory_read.patch
 
 %description
 Elfutils is a collection of utilities, including stack (to show
@@ -246,6 +250,8 @@ such servers to download those files on demand.
 %setup -q
 
 # Apply patches
+%patch1 -p1 -b .debuginfod_test_fix
+%patch2 -p1
 
 # In case the above patches added any new test scripts, make sure they
 # are executable.
@@ -264,14 +270,18 @@ RPM_OPT_FLAGS="${RPM_OPT_FLAGS} -Wformat"
 trap 'cat config.log' EXIT
 %configure CFLAGS="$RPM_OPT_FLAGS -fexceptions"
 trap '' EXIT
-make -s %{?_smp_mflags}
+%make_build -s
 
 %install
 rm -rf ${RPM_BUILD_ROOT}
-make -s install DESTDIR=${RPM_BUILD_ROOT}
+%make_install -s
 
 chmod +x ${RPM_BUILD_ROOT}%{_prefix}/%{_lib}/lib*.so*
 
+# We don't have standard DEBUGINFOD_URLS yet.
+rm ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d/debuginfod.sh
+rm ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d/debuginfod.csh
+
 %find_lang %{name}
 
 %if %{provide_yama_scope}
@@ -287,7 +297,7 @@ touch ${RPM_BUILD_ROOT}%{_localstatedir}/cache/debuginfod/debuginfod.sqlite
 # Record some build root versions in build.log
 uname -r; rpm -q binutils gcc glibc
 
-make -s %{?_smp_mflags} check || (cat tests/test-suite.log; false)
+%make_build -s check || (cat tests/test-suite.log; false)
 
 # Only the latest Fedora and EPEL have these scriptlets,
 # older Fedora and plain RHEL don't.
@@ -401,13 +411,13 @@ fi
 %files debuginfod
 %defattr(-,root,root)
 %{_bindir}/debuginfod
-%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/sysconfig/debuginfod
+%config(noreplace) %{_sysconfdir}/sysconfig/debuginfod
 %{_unitdir}/debuginfod.service
 %{_sysconfdir}/sysconfig/debuginfod
 %{_mandir}/man8/debuginfod.8*
 
 %dir %attr(0700,debuginfod,debuginfod) %{_localstatedir}/cache/debuginfod
-%verify(not md5 size mtime) %attr(0600,debuginfod,debuginfod) %{_localstatedir}/cache/debuginfod/debuginfod.sqlite
+%ghost %attr(0600,debuginfod,debuginfod) %{_localstatedir}/cache/debuginfod/debuginfod.sqlite
 
 %pre debuginfod
 getent group debuginfod >/dev/null || groupadd -r debuginfod
@@ -423,6 +433,22 @@ exit 0
 %systemd_postun_with_restart debuginfod.service
 
 %changelog
+* Thu Dec 17 2020 Mark Wielaard <mjw@redhat.com> - 0.182-3
+- Add elfutils-0.182-s390-pid_memory_read.patch
+
+* Mon Nov  2 2020 Mark Wielaard <mjw@redhat.com> - 0.182-2
+- Add elfutils-0.182-debuginfod-test-fix.patch.
+
+* Mon Nov  2 2020 Mark Wielaard <mjw@redhat.com> - 0.182-1
+- Upgrade to upstream 0.182
+  - backends: Support for tilegx has been removed.
+  - config: New /etc/profile.d files to provide default $DEBUGINFOD_URLS.
+  - debuginfod: More efficient package traversal, tolerate various
+    errors during scanning, grooming progress is more visible and
+    interruptible, more prometheus metrics.
+  - debuginfod-client: Now supports compressed (kernel) ELF images.
+  - libdwfl: Add ZSTD compression support.
+
 * Thu Jun 11 2020 Mark Wielaard <mjw@redhat.com> - 0.180-1
 - New upstream release.