import elfutils-0.180-1.el8
This commit is contained in:
parent
386b3d71b3
commit
01abc9b016
@ -1 +1 @@
|
|||||||
5f52d04105a89e50caf69cea40629c323c1eccd9 SOURCES/elfutils-0.178.tar.bz2
|
c1ed871515b0f7fcdf2d94fea23e4b8ba67e8fe3 SOURCES/elfutils-0.180.tar.bz2
|
||||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
|||||||
SOURCES/elfutils-0.178.tar.bz2
|
SOURCES/elfutils-0.180.tar.bz2
|
||||||
|
@ -1,62 +0,0 @@
|
|||||||
commit 4a90cb11140a6bb3712228861a32e4035013ad85
|
|
||||||
Author: Mark Wielaard <mark@klomp.org>
|
|
||||||
Date: Thu Dec 5 15:03:54 2019 +0100
|
|
||||||
|
|
||||||
libdwfl: Find and handle compressed vmlinuz image.
|
|
||||||
|
|
||||||
Both the dwfl_linux_kernel_find_elf callback and the
|
|
||||||
dwfl_linux_kernel_report_offline reporting function only handled
|
|
||||||
vmlinix images possibly compressed with .gz, .bz2 or .xz extension.
|
|
||||||
They did not find or handle the much more common vmlinuz compressed
|
|
||||||
images.
|
|
||||||
|
|
||||||
It is not completely clear why we didn't up to now. Support for
|
|
||||||
compressed ELF files was added in 2009 and the code was updated to
|
|
||||||
to try to find the .gz, .bz2 or .xz extension variants in 2011.
|
|
||||||
But not the vmlinuz named variant.
|
|
||||||
|
|
||||||
Reported-by: Aaron Merey <amerey@redhat.com>
|
|
||||||
Tested-by: Frank Ch. Eigler <fche@redhat.com>
|
|
||||||
Signed-off-by: Mark Wielaard <mark@klomp.org>
|
|
||||||
|
|
||||||
diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c
|
|
||||||
index d46ab5aa..48fb1ff0 100644
|
|
||||||
--- a/libdwfl/linux-kernel-modules.c
|
|
||||||
+++ b/libdwfl/linux-kernel-modules.c
|
|
||||||
@@ -174,6 +174,8 @@ kernel_release (void)
|
|
||||||
static int
|
|
||||||
find_kernel_elf (Dwfl *dwfl, const char *release, char **fname)
|
|
||||||
{
|
|
||||||
+ /* First try to find an uncompressed vmlinux image. Possibly
|
|
||||||
+ including debuginfo. */
|
|
||||||
if ((release[0] == '/'
|
|
||||||
? asprintf (fname, "%s/vmlinux", release)
|
|
||||||
: asprintf (fname, "/boot/vmlinux-%s", release)) < 0)
|
|
||||||
@@ -188,6 +190,27 @@ find_kernel_elf (Dwfl *dwfl, const char *release, char **fname)
|
|
||||||
fd = try_kernel_name (dwfl, fname, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ /* There might be a compressed vmlinuz image. Probably without
|
|
||||||
+ debuginfo, but try to find it under the debug path also, just in
|
|
||||||
+ case. */
|
|
||||||
+ if (fd < 0)
|
|
||||||
+ {
|
|
||||||
+ free (*fname);
|
|
||||||
+ if ((release[0] == '/'
|
|
||||||
+ ? asprintf (fname, "%s/vmlinuz", release)
|
|
||||||
+ : asprintf (fname, "/boot/vmlinuz-%s", release)) < 0)
|
|
||||||
+ return -1;
|
|
||||||
+
|
|
||||||
+ fd = try_kernel_name (dwfl, fname, true);
|
|
||||||
+ if (fd < 0 && release[0] != '/')
|
|
||||||
+ {
|
|
||||||
+ free (*fname);
|
|
||||||
+ if (asprintf (fname, MODULEDIRFMT "/vmlinuz", release) < 0)
|
|
||||||
+ return -1;
|
|
||||||
+ fd = try_kernel_name (dwfl, fname, true);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
return fd;
|
|
||||||
}
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
|||||||
commit 374fbed3da0197f794a904e78e75e961c7e2e92c
|
|
||||||
Author: Mark Wielaard <mark@klomp.org>
|
|
||||||
Date: Wed Dec 4 00:39:26 2019 +0100
|
|
||||||
|
|
||||||
debuginfod: Fix implicit conversion from 'CURLcode' to 'CURLMcode'
|
|
||||||
|
|
||||||
GCC10 warns when converting the value of one enum type into another:
|
|
||||||
|
|
||||||
debuginfod-client.c:530:24: error: implicit conversion from ‘CURLcode’
|
|
||||||
to ‘CURLMcode’ [-Werror=enum-conversion]
|
|
||||||
530 | curl_res = curl_easy_getinfo(target_handle,
|
|
||||||
| ^
|
|
||||||
|
|
||||||
libcurl has different error code enums. The "easy" interfaces return
|
|
||||||
a CURLcode error. The "multi" interface functions return a CURLMcode.
|
|
||||||
|
|
||||||
Signed-off-by: Mark Wielaard <mark@klomp.org>
|
|
||||||
|
|
||||||
diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c
|
|
||||||
index 6e62b86c..302ea2dc 100644
|
|
||||||
--- a/debuginfod/debuginfod-client.c
|
|
||||||
+++ b/debuginfod/debuginfod-client.c
|
|
||||||
@@ -509,8 +509,6 @@ debuginfod_query_server (debuginfod_client *c,
|
|
||||||
long loops = 0;
|
|
||||||
do
|
|
||||||
{
|
|
||||||
- CURLMcode curl_res;
|
|
||||||
-
|
|
||||||
if (c->progressfn) /* inform/check progress callback */
|
|
||||||
{
|
|
||||||
loops ++;
|
|
||||||
@@ -518,6 +516,7 @@ debuginfod_query_server (debuginfod_client *c,
|
|
||||||
long pb = 0;
|
|
||||||
if (target_handle) /* we've committed to a server; report its download progress */
|
|
||||||
{
|
|
||||||
+ CURLcode curl_res;
|
|
||||||
#ifdef CURLINFO_SIZE_DOWNLOAD_T
|
|
||||||
curl_off_t dl;
|
|
||||||
curl_res = curl_easy_getinfo(target_handle,
|
|
||||||
@@ -564,10 +563,10 @@ debuginfod_query_server (debuginfod_client *c,
|
|
||||||
if (data[i].handle != target_handle)
|
|
||||||
curl_multi_remove_handle(curlm, data[i].handle);
|
|
||||||
|
|
||||||
- curl_res = curl_multi_perform(curlm, &still_running);
|
|
||||||
- if (curl_res != CURLM_OK)
|
|
||||||
+ CURLMcode curlm_res = curl_multi_perform(curlm, &still_running);
|
|
||||||
+ if (curlm_res != CURLM_OK)
|
|
||||||
{
|
|
||||||
- switch (curl_res)
|
|
||||||
+ switch (curlm_res)
|
|
||||||
{
|
|
||||||
case CURLM_CALL_MULTI_PERFORM: continue;
|
|
||||||
case CURLM_OUT_OF_MEMORY: rc = -ENOMEM; break;
|
|
@ -1,67 +0,0 @@
|
|||||||
commit d8bad02afc7b7f30402b4e0e458df874a6d600da
|
|
||||||
Author: Mark Wielaard <mark@klomp.org>
|
|
||||||
Date: Mon Dec 9 19:38:19 2019 +0100
|
|
||||||
|
|
||||||
debuginfod: Check the DEBUGINFOD_URLS environment variable early in client.
|
|
||||||
|
|
||||||
If the debuginfod-client isn't configured we should do as little
|
|
||||||
as possible. Simply return early with ENOSYS if no servers are
|
|
||||||
configured. This means we won't check
|
|
||||||
|
|
||||||
This does change the behavior of the debuginfod_find calls slightly.
|
|
||||||
Previously we would setup and check the cache if the given build-id
|
|
||||||
was valid. Which might have provided a result if an earlier client
|
|
||||||
had run with the same cache and valid server URLs which knew about
|
|
||||||
that particular build-id. Now we don't return any cached results
|
|
||||||
unless at least one server is configured.
|
|
||||||
|
|
||||||
This prevents selinux errors when the library is used in a confined
|
|
||||||
setup.
|
|
||||||
|
|
||||||
Signed-off-by: Mark Wielaard <mark@klomp.org>
|
|
||||||
|
|
||||||
diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c
|
|
||||||
index 302ea2dc..ab7b4e13 100644
|
|
||||||
--- a/debuginfod/debuginfod-client.c
|
|
||||||
+++ b/debuginfod/debuginfod-client.c
|
|
||||||
@@ -301,6 +301,16 @@ debuginfod_query_server (debuginfod_client *c,
|
|
||||||
char target_cache_tmppath[PATH_MAX*5];
|
|
||||||
char suffix[PATH_MAX*2];
|
|
||||||
char build_id_bytes[MAX_BUILD_ID_BYTES * 2 + 1];
|
|
||||||
+ int rc;
|
|
||||||
+
|
|
||||||
+ /* Is there any server we can query? If not, don't do any work,
|
|
||||||
+ just return with ENOSYS. Don't even access the cache. */
|
|
||||||
+ urls_envvar = getenv(server_urls_envvar);
|
|
||||||
+ if (urls_envvar == NULL || urls_envvar[0] == '\0')
|
|
||||||
+ {
|
|
||||||
+ rc = -ENOSYS;
|
|
||||||
+ goto out;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
/* Copy lowercase hex representation of build_id into buf. */
|
|
||||||
if ((build_id_len >= MAX_BUILD_ID_BYTES) ||
|
|
||||||
@@ -373,7 +383,7 @@ debuginfod_query_server (debuginfod_client *c,
|
|
||||||
/* XXX combine these */
|
|
||||||
snprintf(interval_path, sizeof(interval_path), "%s/%s", cache_path, cache_clean_interval_filename);
|
|
||||||
snprintf(maxage_path, sizeof(maxage_path), "%s/%s", cache_path, cache_max_unused_age_filename);
|
|
||||||
- int rc = debuginfod_init_cache(cache_path, interval_path, maxage_path);
|
|
||||||
+ rc = debuginfod_init_cache(cache_path, interval_path, maxage_path);
|
|
||||||
if (rc != 0)
|
|
||||||
goto out;
|
|
||||||
rc = debuginfod_clean_cache(c, cache_path, interval_path, maxage_path);
|
|
||||||
@@ -390,14 +400,6 @@ debuginfod_query_server (debuginfod_client *c,
|
|
||||||
return fd;
|
|
||||||
}
|
|
||||||
|
|
||||||
-
|
|
||||||
- urls_envvar = getenv(server_urls_envvar);
|
|
||||||
- if (urls_envvar == NULL || urls_envvar[0] == '\0')
|
|
||||||
- {
|
|
||||||
- rc = -ENOSYS;
|
|
||||||
- goto out;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
if (getenv(server_timeout_envvar))
|
|
||||||
server_timeout = atoi (getenv(server_timeout_envvar));
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
|||||||
diff --git a/src/elflint.c b/src/elflint.c
|
|
||||||
index 810c8bd..1acf1bc 100644
|
|
||||||
--- a/src/elflint.c
|
|
||||||
+++ b/src/elflint.c
|
|
||||||
@@ -4483,8 +4483,13 @@ only executables, shared objects, and core files can have program headers\n"));
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
+#ifndef PT_GNU_PROPERTY
|
|
||||||
+#define PT_GNU_PROPERTY (PT_LOOS + 0x474e553)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
if (phdr->p_type >= PT_NUM && phdr->p_type != PT_GNU_EH_FRAME
|
|
||||||
&& phdr->p_type != PT_GNU_STACK && phdr->p_type != PT_GNU_RELRO
|
|
||||||
+ && phdr->p_type != PT_GNU_PROPERTY
|
|
||||||
/* Check for a known machine-specific type. */
|
|
||||||
&& ebl_segment_type_name (ebl, phdr->p_type, NULL, 0) == NULL)
|
|
||||||
ERROR (gettext ("\
|
|
@ -1,6 +1,6 @@
|
|||||||
Name: elfutils
|
Name: elfutils
|
||||||
Version: 0.178
|
Version: 0.180
|
||||||
%global baserelease 6
|
%global baserelease 1
|
||||||
Release: %{baserelease}%{?dist}
|
Release: %{baserelease}%{?dist}
|
||||||
URL: http://elfutils.org/
|
URL: http://elfutils.org/
|
||||||
%global source_url ftp://sourceware.org/pub/elfutils/%{version}/
|
%global source_url ftp://sourceware.org/pub/elfutils/%{version}/
|
||||||
@ -42,6 +42,7 @@ BuildRequires: pkgconfig(libarchive) >= 3.1.2
|
|||||||
BuildRequires: bzip2
|
BuildRequires: bzip2
|
||||||
# For the run-debuginfod-find.sh test case in %check for /usr/sbin/ss
|
# For the run-debuginfod-find.sh test case in %check for /usr/sbin/ss
|
||||||
BuildRequires: iproute
|
BuildRequires: iproute
|
||||||
|
BuildRequires: bsdtar
|
||||||
BuildRequires: curl
|
BuildRequires: curl
|
||||||
|
|
||||||
%global _gnu %{nil}
|
%global _gnu %{nil}
|
||||||
@ -54,10 +55,6 @@ BuildRequires: curl
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
# Patches
|
# Patches
|
||||||
Patch1: elfutils-0.178-pt-gnu-prop.patch
|
|
||||||
Patch2: elfutils-0.178-debuginfod-no-cache.patch
|
|
||||||
Patch3: elfutils-0.178-curl-code-gcc-10.patch
|
|
||||||
Patch4: elfutils-0.178-compressed-vmlinuz.patch
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Elfutils is a collection of utilities, including stack (to show
|
Elfutils is a collection of utilities, including stack (to show
|
||||||
@ -225,8 +222,8 @@ Requires(post): systemd
|
|||||||
Requires(preun): systemd
|
Requires(preun): systemd
|
||||||
Requires(postun): systemd
|
Requires(postun): systemd
|
||||||
Requires(pre): shadow-utils
|
Requires(pre): shadow-utils
|
||||||
# For /usr/bin/cpio2rpm
|
# To extract .deb files with a bsdtar (= libarchive) subshell
|
||||||
Requires: rpm
|
Requires: bsdtar
|
||||||
|
|
||||||
%description debuginfod-client
|
%description debuginfod-client
|
||||||
The elfutils-debuginfod-client package contains shared libraries
|
The elfutils-debuginfod-client package contains shared libraries
|
||||||
@ -249,10 +246,6 @@ such servers to download those files on demand.
|
|||||||
%setup -q
|
%setup -q
|
||||||
|
|
||||||
# Apply patches
|
# Apply patches
|
||||||
%patch1 -p1 -b .pt-gnu-prop
|
|
||||||
%patch2 -p1 -b .debuginfod-client-cache
|
|
||||||
%patch3 -p1 -b .curl-gcc-10
|
|
||||||
%patch4 -p1 -b .vmlinuz
|
|
||||||
|
|
||||||
# In case the above patches added any new test scripts, make sure they
|
# In case the above patches added any new test scripts, make sure they
|
||||||
# are executable.
|
# are executable.
|
||||||
@ -430,6 +423,13 @@ exit 0
|
|||||||
%systemd_postun_with_restart debuginfod.service
|
%systemd_postun_with_restart debuginfod.service
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Jun 11 2020 Mark Wielaard <mjw@redhat.com> - 0.180-1
|
||||||
|
- New upstream release.
|
||||||
|
|
||||||
|
* Fri Jan 10 2020 Mark Wielaard <mjw@redhat.com> - 0.178-7
|
||||||
|
- Add elfutils-0.178-debuginfod-timeoutprogress.patch
|
||||||
|
- Add elfutils-0.178-libasm-ebl.patch
|
||||||
|
|
||||||
* Fri Dec 13 2019 Mark Wielaard <mjw@redhat.com> - 0.178-6
|
* Fri Dec 13 2019 Mark Wielaard <mjw@redhat.com> - 0.178-6
|
||||||
- Add elfutils-0.178-curl-code-gcc-10.patch
|
- Add elfutils-0.178-curl-code-gcc-10.patch
|
||||||
- Add elfutils-0.178-compressed-vmlinuz.patch
|
- Add elfutils-0.178-compressed-vmlinuz.patch
|
||||||
|
Loading…
Reference in New Issue
Block a user