Compare commits
No commits in common. "c8" and "imports/c9/elfutils-0.188-3.el9" have entirely different histories.
c8
...
imports/c9
@ -1,2 +1 @@
|
|||||||
b33fdb927bc154f6ca6285194d0e40fb76877dd0 SOURCES/elfutils-0.190.tar.bz2
|
5e23c010b7f9f45140a43e95d8d1f7fb04aa8302 SOURCES/elfutils-0.188.tar.bz2
|
||||||
f9875667f09b76d7a2c2bf19c9df80a5a95c1824 SOURCES/testcore-noncontig.bz2
|
|
||||||
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,2 +1 @@
|
|||||||
SOURCES/elfutils-0.190.tar.bz2
|
SOURCES/elfutils-0.188.tar.bz2
|
||||||
SOURCES/testcore-noncontig.bz2
|
|
||||||
|
109
SOURCES/elfutils-0.188-compile-warnings.patch
Normal file
109
SOURCES/elfutils-0.188-compile-warnings.patch
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
commit 75f2de448f311807e2493f2a37a980e2d872b229
|
||||||
|
Author: Mark Wielaard <mark@klomp.org>
|
||||||
|
Date: Thu Nov 3 13:38:45 2022 +0100
|
||||||
|
|
||||||
|
readelf: Check phdr != NULL or shdr != NULL in handle_dynamic.
|
||||||
|
|
||||||
|
The compiler doesn't know that when use_dynamic_segment is true,
|
||||||
|
then phdr should/will be non-NULL and otherwise shdr is non-NULL.
|
||||||
|
Add explicit checks to help the compiler out and in case an error
|
||||||
|
is made calling the handle_dynamic function.
|
||||||
|
|
||||||
|
Signed-off-by: Mark Wielaard <mark@klomp.org>
|
||||||
|
|
||||||
|
diff --git a/src/readelf.c b/src/readelf.c
|
||||||
|
index 0e0b05c4..e721a209 100644
|
||||||
|
--- a/src/readelf.c
|
||||||
|
+++ b/src/readelf.c
|
||||||
|
@@ -1828,7 +1828,7 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr, GElf_Phdr *phdr)
|
||||||
|
size_t dyn_ents;
|
||||||
|
|
||||||
|
/* Get the data of the section. */
|
||||||
|
- if (use_dynamic_segment)
|
||||||
|
+ if (use_dynamic_segment && phdr != NULL)
|
||||||
|
data = elf_getdata_rawchunk(ebl->elf, phdr->p_offset,
|
||||||
|
phdr->p_filesz, ELF_T_DYN);
|
||||||
|
else
|
||||||
|
@@ -1840,7 +1840,7 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr, GElf_Phdr *phdr)
|
||||||
|
/* Get the dynamic section entry number */
|
||||||
|
dyn_ents = get_dyn_ents (data);
|
||||||
|
|
||||||
|
- if (!use_dynamic_segment)
|
||||||
|
+ if (!use_dynamic_segment && shdr != NULL)
|
||||||
|
{
|
||||||
|
/* Get the section header string table index. */
|
||||||
|
if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
|
||||||
|
@@ -1862,7 +1862,7 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr, GElf_Phdr *phdr)
|
||||||
|
(int) shdr->sh_link,
|
||||||
|
elf_strptr (ebl->elf, shstrndx, glink->sh_name));
|
||||||
|
}
|
||||||
|
- else
|
||||||
|
+ else if (phdr != NULL)
|
||||||
|
{
|
||||||
|
printf (ngettext ("\
|
||||||
|
\nDynamic segment contains %lu entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 "\n",
|
||||||
|
@@ -1879,7 +1879,7 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr, GElf_Phdr *phdr)
|
||||||
|
/* if --use-dynamic option is enabled,
|
||||||
|
use the string table to get the related library info. */
|
||||||
|
Elf_Data *strtab_data = NULL;
|
||||||
|
- if (use_dynamic_segment)
|
||||||
|
+ if (use_dynamic_segment && phdr != NULL)
|
||||||
|
{
|
||||||
|
strtab_data = get_dynscn_strtab(ebl->elf, phdr);
|
||||||
|
if (strtab_data == NULL)
|
||||||
|
@@ -1903,7 +1903,7 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr, GElf_Phdr *phdr)
|
||||||
|
|| dyn->d_tag == DT_RPATH
|
||||||
|
|| dyn->d_tag == DT_RUNPATH)
|
||||||
|
{
|
||||||
|
- if (! use_dynamic_segment)
|
||||||
|
+ if (! use_dynamic_segment && shdr != NULL)
|
||||||
|
name = elf_strptr (ebl->elf, shdr->sh_link, dyn->d_un.d_val);
|
||||||
|
else if (dyn->d_un.d_val < strtab_data->d_size
|
||||||
|
&& memrchr (strtab_data->d_buf + dyn->d_un.d_val, '\0',
|
||||||
|
|
||||||
|
commit b0a0235771906e3bcd6174c4e3c020b5522b0be5
|
||||||
|
Author: Mark Wielaard <mark@klomp.org>
|
||||||
|
Date: Thu Nov 3 13:44:35 2022 +0100
|
||||||
|
|
||||||
|
libdw: Don't dereference and assign values we are skipping
|
||||||
|
|
||||||
|
We don't use the FDE address encoding byte, so no reason
|
||||||
|
to read and store it. Just skip past it.
|
||||||
|
|
||||||
|
Signed-off-by: Mark Wielaard <mark@klomp.org>
|
||||||
|
|
||||||
|
diff --git a/libdw/dwarf_next_cfi.c b/libdw/dwarf_next_cfi.c
|
||||||
|
index 23b16885..be08984f 100644
|
||||||
|
--- a/libdw/dwarf_next_cfi.c
|
||||||
|
+++ b/libdw/dwarf_next_cfi.c
|
||||||
|
@@ -226,7 +226,7 @@ dwarf_next_cfi (const unsigned char e_ident[],
|
||||||
|
if (sized_augmentation)
|
||||||
|
{
|
||||||
|
/* Skip FDE address encoding byte. */
|
||||||
|
- encoding = *bytes++;
|
||||||
|
+ bytes++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
commit 52a6a3110e019d696284fdd822c2a2f0987dded2
|
||||||
|
Author: Mark Wielaard <mark@klomp.org>
|
||||||
|
Date: Thu Nov 3 13:52:32 2022 +0100
|
||||||
|
|
||||||
|
readelf: Check gelf_getdyn doesn't return NULL
|
||||||
|
|
||||||
|
Signed-off-by: Mark Wielaard <mark@klomp.org>
|
||||||
|
|
||||||
|
diff --git a/src/readelf.c b/src/readelf.c
|
||||||
|
index e721a209..3dafb041 100644
|
||||||
|
--- a/src/readelf.c
|
||||||
|
+++ b/src/readelf.c
|
||||||
|
@@ -4910,7 +4910,7 @@ get_dynscn_addrs(Elf *elf, GElf_Phdr *phdr, GElf_Addr addrs[i_max])
|
||||||
|
GElf_Dyn dyn_mem;
|
||||||
|
GElf_Dyn *dyn = gelf_getdyn(data, dyn_idx, &dyn_mem);
|
||||||
|
/* DT_NULL Marks end of dynamic section. */
|
||||||
|
- if (dyn->d_tag == DT_NULL)
|
||||||
|
+ if (dyn == NULL || dyn->d_tag == DT_NULL)
|
||||||
|
break;
|
||||||
|
|
||||||
|
switch (dyn->d_tag) {
|
171
SOURCES/elfutils-0.188-debuginfod-client-lifetime.patch
Normal file
171
SOURCES/elfutils-0.188-debuginfod-client-lifetime.patch
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
commit c424e5f3d24f76e01242d15ba361dc6234706fed
|
||||||
|
Author: Frank Ch. Eigler <fche@redhat.com>
|
||||||
|
Date: Thu Nov 3 10:07:31 2022 -0400
|
||||||
|
|
||||||
|
debuginfod.cxx: fix coverity-found use-after-release error
|
||||||
|
|
||||||
|
The debuginfod_client object lifetime needs more careful handling,
|
||||||
|
made easier with the defer_dtor<> gadget.
|
||||||
|
|
||||||
|
Signed-off-by: Frank Ch. Eigler <fche@redhat.com>
|
||||||
|
|
||||||
|
diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx
|
||||||
|
index f46da6ef..02a11477 100644
|
||||||
|
--- a/debuginfod/debuginfod.cxx
|
||||||
|
+++ b/debuginfod/debuginfod.cxx
|
||||||
|
@@ -2249,85 +2249,82 @@ handle_buildid (MHD_Connection* conn,
|
||||||
|
|
||||||
|
int fd = -1;
|
||||||
|
debuginfod_client *client = debuginfod_pool_begin ();
|
||||||
|
- if (client != NULL)
|
||||||
|
- {
|
||||||
|
- debuginfod_set_progressfn (client, & debuginfod_find_progress);
|
||||||
|
+ if (client == NULL)
|
||||||
|
+ throw libc_exception(errno, "debuginfod client pool alloc");
|
||||||
|
+ defer_dtor<debuginfod_client*,void> client_closer (client, debuginfod_pool_end);
|
||||||
|
+
|
||||||
|
+ debuginfod_set_progressfn (client, & debuginfod_find_progress);
|
||||||
|
|
||||||
|
- if (conn)
|
||||||
|
- {
|
||||||
|
- // Transcribe incoming User-Agent:
|
||||||
|
- string ua = MHD_lookup_connection_value (conn, MHD_HEADER_KIND, "User-Agent") ?: "";
|
||||||
|
- string ua_complete = string("User-Agent: ") + ua;
|
||||||
|
- debuginfod_add_http_header (client, ua_complete.c_str());
|
||||||
|
-
|
||||||
|
- // Compute larger XFF:, for avoiding info loss during
|
||||||
|
- // federation, and for future cyclicity detection.
|
||||||
|
- string xff = MHD_lookup_connection_value (conn, MHD_HEADER_KIND, "X-Forwarded-For") ?: "";
|
||||||
|
- if (xff != "")
|
||||||
|
- xff += string(", "); // comma separated list
|
||||||
|
-
|
||||||
|
- unsigned int xff_count = 0;
|
||||||
|
- for (auto&& i : xff){
|
||||||
|
- if (i == ',') xff_count++;
|
||||||
|
- }
|
||||||
|
+ if (conn)
|
||||||
|
+ {
|
||||||
|
+ // Transcribe incoming User-Agent:
|
||||||
|
+ string ua = MHD_lookup_connection_value (conn, MHD_HEADER_KIND, "User-Agent") ?: "";
|
||||||
|
+ string ua_complete = string("User-Agent: ") + ua;
|
||||||
|
+ debuginfod_add_http_header (client, ua_complete.c_str());
|
||||||
|
+
|
||||||
|
+ // Compute larger XFF:, for avoiding info loss during
|
||||||
|
+ // federation, and for future cyclicity detection.
|
||||||
|
+ string xff = MHD_lookup_connection_value (conn, MHD_HEADER_KIND, "X-Forwarded-For") ?: "";
|
||||||
|
+ if (xff != "")
|
||||||
|
+ xff += string(", "); // comma separated list
|
||||||
|
+
|
||||||
|
+ unsigned int xff_count = 0;
|
||||||
|
+ for (auto&& i : xff){
|
||||||
|
+ if (i == ',') xff_count++;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- // if X-Forwarded-For: exceeds N hops,
|
||||||
|
- // do not delegate a local lookup miss to upstream debuginfods.
|
||||||
|
- if (xff_count >= forwarded_ttl_limit)
|
||||||
|
- throw reportable_exception(MHD_HTTP_NOT_FOUND, "not found, --forwared-ttl-limit reached \
|
||||||
|
+ // if X-Forwarded-For: exceeds N hops,
|
||||||
|
+ // do not delegate a local lookup miss to upstream debuginfods.
|
||||||
|
+ if (xff_count >= forwarded_ttl_limit)
|
||||||
|
+ throw reportable_exception(MHD_HTTP_NOT_FOUND, "not found, --forwared-ttl-limit reached \
|
||||||
|
and will not query the upstream servers");
|
||||||
|
|
||||||
|
- // Compute the client's numeric IP address only - so can't merge with conninfo()
|
||||||
|
- const union MHD_ConnectionInfo *u = MHD_get_connection_info (conn,
|
||||||
|
- MHD_CONNECTION_INFO_CLIENT_ADDRESS);
|
||||||
|
- struct sockaddr *so = u ? u->client_addr : 0;
|
||||||
|
- char hostname[256] = ""; // RFC1035
|
||||||
|
- if (so && so->sa_family == AF_INET) {
|
||||||
|
- (void) getnameinfo (so, sizeof (struct sockaddr_in), hostname, sizeof (hostname), NULL, 0,
|
||||||
|
- NI_NUMERICHOST);
|
||||||
|
- } else if (so && so->sa_family == AF_INET6) {
|
||||||
|
- struct sockaddr_in6* addr6 = (struct sockaddr_in6*) so;
|
||||||
|
- if (IN6_IS_ADDR_V4MAPPED(&addr6->sin6_addr)) {
|
||||||
|
- struct sockaddr_in addr4;
|
||||||
|
- memset (&addr4, 0, sizeof(addr4));
|
||||||
|
- addr4.sin_family = AF_INET;
|
||||||
|
- addr4.sin_port = addr6->sin6_port;
|
||||||
|
- memcpy (&addr4.sin_addr.s_addr, addr6->sin6_addr.s6_addr+12, sizeof(addr4.sin_addr.s_addr));
|
||||||
|
- (void) getnameinfo ((struct sockaddr*) &addr4, sizeof (addr4),
|
||||||
|
- hostname, sizeof (hostname), NULL, 0,
|
||||||
|
- NI_NUMERICHOST);
|
||||||
|
- } else {
|
||||||
|
- (void) getnameinfo (so, sizeof (struct sockaddr_in6), hostname, sizeof (hostname), NULL, 0,
|
||||||
|
- NI_NUMERICHOST);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- string xff_complete = string("X-Forwarded-For: ")+xff+string(hostname);
|
||||||
|
- debuginfod_add_http_header (client, xff_complete.c_str());
|
||||||
|
+ // Compute the client's numeric IP address only - so can't merge with conninfo()
|
||||||
|
+ const union MHD_ConnectionInfo *u = MHD_get_connection_info (conn,
|
||||||
|
+ MHD_CONNECTION_INFO_CLIENT_ADDRESS);
|
||||||
|
+ struct sockaddr *so = u ? u->client_addr : 0;
|
||||||
|
+ char hostname[256] = ""; // RFC1035
|
||||||
|
+ if (so && so->sa_family == AF_INET) {
|
||||||
|
+ (void) getnameinfo (so, sizeof (struct sockaddr_in), hostname, sizeof (hostname), NULL, 0,
|
||||||
|
+ NI_NUMERICHOST);
|
||||||
|
+ } else if (so && so->sa_family == AF_INET6) {
|
||||||
|
+ struct sockaddr_in6* addr6 = (struct sockaddr_in6*) so;
|
||||||
|
+ if (IN6_IS_ADDR_V4MAPPED(&addr6->sin6_addr)) {
|
||||||
|
+ struct sockaddr_in addr4;
|
||||||
|
+ memset (&addr4, 0, sizeof(addr4));
|
||||||
|
+ addr4.sin_family = AF_INET;
|
||||||
|
+ addr4.sin_port = addr6->sin6_port;
|
||||||
|
+ memcpy (&addr4.sin_addr.s_addr, addr6->sin6_addr.s6_addr+12, sizeof(addr4.sin_addr.s_addr));
|
||||||
|
+ (void) getnameinfo ((struct sockaddr*) &addr4, sizeof (addr4),
|
||||||
|
+ hostname, sizeof (hostname), NULL, 0,
|
||||||
|
+ NI_NUMERICHOST);
|
||||||
|
+ } else {
|
||||||
|
+ (void) getnameinfo (so, sizeof (struct sockaddr_in6), hostname, sizeof (hostname), NULL, 0,
|
||||||
|
+ NI_NUMERICHOST);
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- if (artifacttype == "debuginfo")
|
||||||
|
- fd = debuginfod_find_debuginfo (client,
|
||||||
|
- (const unsigned char*) buildid.c_str(),
|
||||||
|
- 0, NULL);
|
||||||
|
- else if (artifacttype == "executable")
|
||||||
|
- fd = debuginfod_find_executable (client,
|
||||||
|
- (const unsigned char*) buildid.c_str(),
|
||||||
|
- 0, NULL);
|
||||||
|
- else if (artifacttype == "source")
|
||||||
|
- fd = debuginfod_find_source (client,
|
||||||
|
- (const unsigned char*) buildid.c_str(),
|
||||||
|
- 0, suffix.c_str(), NULL);
|
||||||
|
- else if (artifacttype == "section")
|
||||||
|
- fd = debuginfod_find_section (client,
|
||||||
|
- (const unsigned char*) buildid.c_str(),
|
||||||
|
- 0, section.c_str(), NULL);
|
||||||
|
-
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ string xff_complete = string("X-Forwarded-For: ")+xff+string(hostname);
|
||||||
|
+ debuginfod_add_http_header (client, xff_complete.c_str());
|
||||||
|
}
|
||||||
|
- else
|
||||||
|
- fd = -errno; /* Set by debuginfod_begin. */
|
||||||
|
- debuginfod_pool_end (client);
|
||||||
|
-
|
||||||
|
+
|
||||||
|
+ if (artifacttype == "debuginfo")
|
||||||
|
+ fd = debuginfod_find_debuginfo (client,
|
||||||
|
+ (const unsigned char*) buildid.c_str(),
|
||||||
|
+ 0, NULL);
|
||||||
|
+ else if (artifacttype == "executable")
|
||||||
|
+ fd = debuginfod_find_executable (client,
|
||||||
|
+ (const unsigned char*) buildid.c_str(),
|
||||||
|
+ 0, NULL);
|
||||||
|
+ else if (artifacttype == "source")
|
||||||
|
+ fd = debuginfod_find_source (client,
|
||||||
|
+ (const unsigned char*) buildid.c_str(),
|
||||||
|
+ 0, suffix.c_str(), NULL);
|
||||||
|
+ else if (artifacttype == "section")
|
||||||
|
+ fd = debuginfod_find_section (client,
|
||||||
|
+ (const unsigned char*) buildid.c_str(),
|
||||||
|
+ 0, section.c_str(), NULL);
|
||||||
|
+
|
||||||
|
if (fd >= 0)
|
||||||
|
{
|
||||||
|
if (conn != 0)
|
24
SOURCES/elfutils-0.188-static-extract_section.patch
Normal file
24
SOURCES/elfutils-0.188-static-extract_section.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
commit 58a7aa900bc2d9822b0d0cb596ba95a21ff0fd2d
|
||||||
|
Author: Mark Wielaard <mark@klomp.org>
|
||||||
|
Date: Wed Nov 2 17:54:11 2022 +0100
|
||||||
|
|
||||||
|
debuginfod: Mark extract_section function static
|
||||||
|
|
||||||
|
The extract_section function in debuginfod-client.c is an internal
|
||||||
|
function and should not be exported. Mark it as static.
|
||||||
|
|
||||||
|
Signed-off-by: Mark Wielaard <mark@klomp.org>
|
||||||
|
|
||||||
|
diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c
|
||||||
|
index 0c4a00cf..f48e32cc 100644
|
||||||
|
--- a/debuginfod/debuginfod-client.c
|
||||||
|
+++ b/debuginfod/debuginfod-client.c
|
||||||
|
@@ -621,7 +621,7 @@ path_escape (const char *src, char *dest)
|
||||||
|
section name was not found. -EEXIST indicates that the section was
|
||||||
|
found but had type SHT_NOBITS. */
|
||||||
|
|
||||||
|
-int
|
||||||
|
+static int
|
||||||
|
extract_section (int fd, const char *section, char *fd_path, char **usr_path)
|
||||||
|
{
|
||||||
|
elf_version (EV_CURRENT);
|
@ -1,329 +0,0 @@
|
|||||||
From c791d16b7dcf9d985ebe0e852481142753603353 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Aaron Merey <amerey@redhat.com>
|
|
||||||
Date: Fri, 8 Dec 2023 16:44:35 -0500
|
|
||||||
Subject: [PATCH] libdwfl: Correctly handle corefile non-contiguous segments
|
|
||||||
|
|
||||||
It is possible for segments of different shared libaries to be interleaved
|
|
||||||
in memory such that the segments of one library are located in between
|
|
||||||
non-contiguous segments of another library.
|
|
||||||
|
|
||||||
For example, this can be seen with firefox on RHEL 7.9 where multiple
|
|
||||||
shared libraries could be mapped in between ld-2.17.so segments:
|
|
||||||
|
|
||||||
[...]
|
|
||||||
7f0972082000-7f09720a4000 00000000 139264 /usr/lib64/ld-2.17.so
|
|
||||||
7f09720a4000-7f09720a5000 00000000 4096 /memfd:mozilla-ipc (deleted)
|
|
||||||
7f09720a5000-7f09720a7000 00000000 8192 /memfd:mozilla-ipc (deleted)
|
|
||||||
7f09720a7000-7f09720a9000 00000000 8192 /memfd:mozilla-ipc (deleted)
|
|
||||||
7f0972134000-7f0972136000 00000000 8192 /usr/lib64/firefox/libmozwayland.so
|
|
||||||
7f0972136000-7f0972137000 00002000 4096 /usr/lib64/firefox/libmozwayland.so
|
|
||||||
7f0972137000-7f0972138000 00003000 4096 /usr/lib64/firefox/libmozwayland.so
|
|
||||||
7f0972138000-7f0972139000 00003000 4096 /usr/lib64/firefox/libmozwayland.so
|
|
||||||
7f097213a000-7f0972147000 00000000 53248 /usr/lib64/firefox/libmozsqlite3.so
|
|
||||||
7f0972147000-7f097221e000 0000d000 880640 /usr/lib64/firefox/libmozsqlite3.so
|
|
||||||
7f097221e000-7f0972248000 000e4000 172032 /usr/lib64/firefox/libmozsqlite3.so
|
|
||||||
7f0972248000-7f0972249000 0010e000 4096 /usr/lib64/firefox/libmozsqlite3.so
|
|
||||||
7f0972249000-7f097224c000 0010e000 12288 /usr/lib64/firefox/libmozsqlite3.so
|
|
||||||
7f097224c000-7f0972250000 00111000 16384 /usr/lib64/firefox/libmozsqlite3.so
|
|
||||||
7f0972250000-7f0972253000 00000000 12288 /usr/lib64/firefox/liblgpllibs.so
|
|
||||||
[...]
|
|
||||||
7f09722a3000-7f09722a4000 00021000 4096 /usr/lib64/ld-2.17.so
|
|
||||||
7f09722a4000-7f09722a5000 00022000 4096 /usr/lib64/ld-2.17.so
|
|
||||||
|
|
||||||
dwfl_segment_report_module did not account for the possibility of
|
|
||||||
interleaving non-contiguous segments, resulting in premature closure
|
|
||||||
of modules as well as failing to report modules.
|
|
||||||
|
|
||||||
Fix this by removing segment skipping in dwfl_segment_report_module.
|
|
||||||
When dwfl_segment_report_module reported a module, it would return
|
|
||||||
the index of the segment immediately following the end address of the
|
|
||||||
current module. Since there's a chance that other modules might fall
|
|
||||||
within this address range, dwfl_segment_report_module instead returns
|
|
||||||
the index of the next segment.
|
|
||||||
|
|
||||||
This patch also fixes premature module closure that can occur in
|
|
||||||
dwfl_segment_report_module when interleaving non-contiguous segments
|
|
||||||
are found. Previously modules with start and end addresses that overlap
|
|
||||||
with the current segment would have their build-ids compared with the
|
|
||||||
current segment's build-id. If there was a mismatch, that module would
|
|
||||||
be closed. Avoid closing modules in this case when mismatching build-ids
|
|
||||||
correspond to distinct modules.
|
|
||||||
|
|
||||||
https://sourceware.org/bugzilla/show_bug.cgi?id=30975
|
|
||||||
|
|
||||||
Signed-off-by: Aaron Merey <amerey@redhat.com>
|
|
||||||
---
|
|
||||||
libdwfl/dwfl_segment_report_module.c | 37 +++++++++----
|
|
||||||
tests/Makefile.am | 8 ++-
|
|
||||||
tests/dwfl-core-noncontig.c | 82 ++++++++++++++++++++++++++++
|
|
||||||
tests/run-dwfl-core-noncontig.sh | 63 +++++++++++++++++++++
|
|
||||||
4 files changed, 176 insertions(+), 14 deletions(-)
|
|
||||||
create mode 100644 tests/dwfl-core-noncontig.c
|
|
||||||
create mode 100755 tests/run-dwfl-core-noncontig.sh
|
|
||||||
|
|
||||||
diff --git a/libdwfl/dwfl_segment_report_module.c b/libdwfl/dwfl_segment_report_module.c
|
|
||||||
index 3ef62a7..09ee37b 100644
|
|
||||||
--- a/libdwfl/dwfl_segment_report_module.c
|
|
||||||
+++ b/libdwfl/dwfl_segment_report_module.c
|
|
||||||
@@ -737,17 +737,34 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
|
|
||||||
&& invalid_elf (module->elf, module->disk_file_has_build_id,
|
|
||||||
&build_id))
|
|
||||||
{
|
|
||||||
- elf_end (module->elf);
|
|
||||||
- close (module->fd);
|
|
||||||
- module->elf = NULL;
|
|
||||||
- module->fd = -1;
|
|
||||||
+ /* If MODULE's build-id doesn't match the disk file's
|
|
||||||
+ build-id, close ELF only if MODULE and ELF refer to
|
|
||||||
+ different builds of files with the same name. This
|
|
||||||
+ prevents premature closure of the correct ELF in cases
|
|
||||||
+ where segments of a module are non-contiguous in memory. */
|
|
||||||
+ if (name != NULL && module->name[0] != '\0'
|
|
||||||
+ && strcmp (basename (module->name), basename (name)) == 0)
|
|
||||||
+ {
|
|
||||||
+ elf_end (module->elf);
|
|
||||||
+ close (module->fd);
|
|
||||||
+ module->elf = NULL;
|
|
||||||
+ module->fd = -1;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
- if (module->elf != NULL)
|
|
||||||
+ else if (module->elf != NULL)
|
|
||||||
{
|
|
||||||
- /* Ignore this found module if it would conflict in address
|
|
||||||
- space with any already existing module of DWFL. */
|
|
||||||
+ /* This module has already been reported. */
|
|
||||||
skip_this_module = true;
|
|
||||||
}
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ /* Only report this module if we haven't already done so. */
|
|
||||||
+ for (Dwfl_Module *mod = dwfl->modulelist; mod != NULL;
|
|
||||||
+ mod = mod->next)
|
|
||||||
+ if (mod->low_addr == module_start
|
|
||||||
+ && mod->high_addr == module_end)
|
|
||||||
+ skip_this_module = true;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
if (skip_this_module)
|
|
||||||
goto out;
|
|
||||||
@@ -781,10 +798,6 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- /* Our return value now says to skip the segments contained
|
|
||||||
- within the module. */
|
|
||||||
- ndx = addr_segndx (dwfl, segment, module_end, true);
|
|
||||||
-
|
|
||||||
/* Examine its .dynamic section to get more interesting details.
|
|
||||||
If it has DT_SONAME, we'll use that as the module name.
|
|
||||||
If it has a DT_DEBUG, then it's actually a PIE rather than a DSO.
|
|
||||||
@@ -929,6 +942,8 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
|
|
||||||
ndx = -1;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
+ else
|
|
||||||
+ ndx++;
|
|
||||||
|
|
||||||
/* We have reported the module. Now let the caller decide whether we
|
|
||||||
should read the whole thing in right now. */
|
|
||||||
diff --git a/tests/Makefile.am b/tests/Makefile.am
|
|
||||||
index 7fb8efb..9f8f769 100644
|
|
||||||
--- a/tests/Makefile.am
|
|
||||||
+++ b/tests/Makefile.am
|
|
||||||
@@ -42,7 +42,7 @@ check_PROGRAMS = arextract arsymtest newfile saridx scnnames sectiondump \
|
|
||||||
dwfl-bug-addr-overflow arls dwfl-bug-fd-leak \
|
|
||||||
dwfl-addr-sect dwfl-bug-report early-offscn \
|
|
||||||
dwfl-bug-getmodules dwarf-getmacros dwarf-ranges addrcfi \
|
|
||||||
- dwarfcfi \
|
|
||||||
+ dwfl-core-noncontig dwarfcfi \
|
|
||||||
test-flag-nobits dwarf-getstring rerequest_tag \
|
|
||||||
alldts typeiter typeiter2 low_high_pc \
|
|
||||||
test-elf_cntl_gelf_getshdr dwflsyms dwfllines \
|
|
||||||
@@ -212,7 +212,7 @@ TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \
|
|
||||||
$(asm_TESTS) run-disasm-bpf.sh run-low_high_pc-dw-form-indirect.sh \
|
|
||||||
run-nvidia-extended-linemap-libdw.sh run-nvidia-extended-linemap-readelf.sh \
|
|
||||||
run-readelf-dw-form-indirect.sh run-strip-largealign.sh \
|
|
||||||
- run-readelf-Dd.sh
|
|
||||||
+ run-readelf-Dd.sh run-dwfl-core-noncontig.sh
|
|
||||||
|
|
||||||
if !BIARCH
|
|
||||||
export ELFUTILS_DISABLE_BIARCH = 1
|
|
||||||
@@ -632,7 +632,8 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \
|
|
||||||
run-nvidia-extended-linemap-libdw.sh run-nvidia-extended-linemap-readelf.sh \
|
|
||||||
testfile_nvidia_linemap.bz2 \
|
|
||||||
testfile-largealign.o.bz2 run-strip-largealign.sh \
|
|
||||||
- run-funcretval++11.sh
|
|
||||||
+ run-funcretval++11.sh \
|
|
||||||
+ run-dwfl-core-noncontig.sh testcore-noncontig.bz2
|
|
||||||
|
|
||||||
|
|
||||||
if USE_VALGRIND
|
|
||||||
@@ -738,6 +739,7 @@ dwfl_bug_fd_leak_LDADD = $(libeu) $(libdw) $(libebl) $(libelf)
|
|
||||||
dwfl_bug_report_LDADD = $(libdw) $(libebl) $(libelf)
|
|
||||||
dwfl_bug_getmodules_LDADD = $(libeu) $(libdw) $(libebl) $(libelf)
|
|
||||||
dwfl_addr_sect_LDADD = $(libeu) $(libdw) $(libebl) $(libelf) $(argp_LDADD)
|
|
||||||
+dwfl_core_noncontig_LDADD = $(libdw) $(libelf)
|
|
||||||
dwarf_getmacros_LDADD = $(libdw)
|
|
||||||
dwarf_ranges_LDADD = $(libdw)
|
|
||||||
dwarf_getstring_LDADD = $(libdw)
|
|
||||||
diff --git a/tests/dwfl-core-noncontig.c b/tests/dwfl-core-noncontig.c
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..04558e2
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/dwfl-core-noncontig.c
|
|
||||||
@@ -0,0 +1,82 @@
|
|
||||||
+/* Test program for dwfl_getmodules bug.
|
|
||||||
+ Copyright (C) 2008 Red Hat, Inc.
|
|
||||||
+ This file is part of elfutils.
|
|
||||||
+
|
|
||||||
+ This file is free software; you can redistribute it and/or modify
|
|
||||||
+ it under the terms of the GNU General Public License as published by
|
|
||||||
+ the Free Software Foundation; either version 3 of the License, or
|
|
||||||
+ (at your option) any later version.
|
|
||||||
+
|
|
||||||
+ elfutils is distributed in the hope that it will be useful, but
|
|
||||||
+ WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
+ GNU General Public License for more details.
|
|
||||||
+
|
|
||||||
+ You should have received a copy of the GNU General Public License
|
|
||||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
||||||
+
|
|
||||||
+#include <config.h>
|
|
||||||
+#include <stdio.h>
|
|
||||||
+#include <fcntl.h>
|
|
||||||
+#include <assert.h>
|
|
||||||
+#include ELFUTILS_HEADER(dwfl)
|
|
||||||
+#include ELFUTILS_HEADER(elf)
|
|
||||||
+
|
|
||||||
+static const Dwfl_Callbacks cb =
|
|
||||||
+{
|
|
||||||
+ NULL,
|
|
||||||
+ NULL,
|
|
||||||
+ NULL,
|
|
||||||
+ NULL,
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+main (int argc, char **argv)
|
|
||||||
+{
|
|
||||||
+ assert (argc == 2);
|
|
||||||
+
|
|
||||||
+ Dwfl *dwfl = dwfl_begin (&cb);
|
|
||||||
+
|
|
||||||
+ int fd = open (argv[1], O_RDONLY);
|
|
||||||
+ assert (fd != -1);
|
|
||||||
+
|
|
||||||
+ Elf *elf = elf_begin (fd, ELF_C_READ, NULL);
|
|
||||||
+ (void) dwfl_core_file_report (dwfl, elf, argv[0]);
|
|
||||||
+
|
|
||||||
+ /* testcore-noncontig contains a shared library mapped between
|
|
||||||
+ non-contiguous segments of another shared library:
|
|
||||||
+
|
|
||||||
+ [...]
|
|
||||||
+ 7f14e458c000-7f14e45ae000 00000000 139264 /usr/lib64/ld-2.17.so (1)
|
|
||||||
+ 7f14e4795000-7f14e4798000 00000000 12288 /usr/lib64/firefox/liblgpllibs.so (2)
|
|
||||||
+ 7f14e4798000-7f14e479d000 00003000 20480 /usr/lib64/firefox/liblgpllibs.so
|
|
||||||
+ 7f14e479d000-7f14e479f000 00008000 8192 /usr/lib64/firefox/liblgpllibs.so
|
|
||||||
+ 7f14e479f000-7f14e47a0000 00009000 4096 /usr/lib64/firefox/liblgpllibs.so
|
|
||||||
+ 7f14e47a0000-7f14e47a1000 0000a000 4096 /usr/lib64/firefox/liblgpllibs.so (3)
|
|
||||||
+ 7f14e47ad000-7f14e47ae000 00021000 4096 /usr/lib64/ld-2.17.so (4)
|
|
||||||
+ 7f14e47ae000-7f14e47af000 00022000 4096 /usr/lib64/ld-2.17.so */
|
|
||||||
+
|
|
||||||
+ /* First segment of the non-contiguous module (1). */
|
|
||||||
+ int seg = dwfl_addrsegment (dwfl, 0x7f14e458c000, NULL);
|
|
||||||
+ assert (seg == 32);
|
|
||||||
+
|
|
||||||
+ /* First segment of the module within the non-contiguous module's address
|
|
||||||
+ range (2). */
|
|
||||||
+ seg = dwfl_addrsegment (dwfl, 0x7f14e4795000, NULL);
|
|
||||||
+ assert (seg == 33);
|
|
||||||
+
|
|
||||||
+ /* Last segment of the module within the non-contiguous module's
|
|
||||||
+ address range (3). */
|
|
||||||
+ seg = dwfl_addrsegment (dwfl, 0x7f14e47a0000, NULL);
|
|
||||||
+ assert (seg == 37);
|
|
||||||
+
|
|
||||||
+ /* First segment of non-contiguous module following its address space
|
|
||||||
+ gap (4). */
|
|
||||||
+ seg = dwfl_addrsegment (dwfl, 0x7f14e47ad000, NULL);
|
|
||||||
+ assert (seg == 40);
|
|
||||||
+
|
|
||||||
+ dwfl_end (dwfl);
|
|
||||||
+ elf_end (elf);
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
diff --git a/tests/run-dwfl-core-noncontig.sh b/tests/run-dwfl-core-noncontig.sh
|
|
||||||
new file mode 100755
|
|
||||||
index 0000000..1245b67
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/run-dwfl-core-noncontig.sh
|
|
||||||
@@ -0,0 +1,63 @@
|
|
||||||
+#! /bin/sh
|
|
||||||
+# Copyright (C) 2023 Red Hat, Inc.
|
|
||||||
+# This file is part of elfutils.
|
|
||||||
+#
|
|
||||||
+# This file is free software; you can redistribute it and/or modify
|
|
||||||
+# it under the terms of the GNU General Public License as published by
|
|
||||||
+# the Free Software Foundation; either version 3 of the License, or
|
|
||||||
+# (at your option) any later version.
|
|
||||||
+#
|
|
||||||
+# elfutils is distributed in the hope that it will be useful, but
|
|
||||||
+# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
+# GNU General Public License for more details.
|
|
||||||
+#
|
|
||||||
+# You should have received a copy of the GNU General Public License
|
|
||||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
+
|
|
||||||
+. $srcdir/test-subr.sh
|
|
||||||
+
|
|
||||||
+# Test whether libdwfl can handle corefiles containing non-contiguous
|
|
||||||
+# segments where multiple modules are contained within the address
|
|
||||||
+# space of some other module.
|
|
||||||
+
|
|
||||||
+# testcore-noncontig was generated from the following program with
|
|
||||||
+# systemd-coredump on RHEL 7.9 Workstation, kernel
|
|
||||||
+# 3.10.0-1160.105.1.el7.x86_64. liblgpllibs.so was packaged with
|
|
||||||
+# firefox-115.4.0-1.el7_9.x86_64.rpm.
|
|
||||||
+
|
|
||||||
+# #include <unistd.h>
|
|
||||||
+# #include <dlfcn.h>
|
|
||||||
+#
|
|
||||||
+# int main () {
|
|
||||||
+# dlopen ("/usr/lib64/firefox/liblgpllibs.so", RTLD_GLOBAL | RTLD_NOW);
|
|
||||||
+# sleep (60);
|
|
||||||
+# return 0;
|
|
||||||
+# }
|
|
||||||
+#
|
|
||||||
+# gcc -ldl -o test test.c
|
|
||||||
+
|
|
||||||
+tempfiles out
|
|
||||||
+testfiles testcore-noncontig
|
|
||||||
+
|
|
||||||
+testrun ${abs_builddir}/dwfl-core-noncontig testcore-noncontig
|
|
||||||
+
|
|
||||||
+# Remove parts of the output that could change depending on which
|
|
||||||
+# libraries are locally installed.
|
|
||||||
+testrun ${abs_top_builddir}/src/unstrip -n --core testcore-noncontig \
|
|
||||||
+ | sed 's/+/ /g' | cut -d " " -f1,3 | sort > out
|
|
||||||
+
|
|
||||||
+testrun_compare cat out <<\EOF
|
|
||||||
+0x400000 3a1748a544b40a38b3be3d2d13ffa34a2a5a71c0@0x400284
|
|
||||||
+0x7f14e357e000 edf51350c7f71496149d064aa8b1441f786df88a@0x7f14e357e1d8
|
|
||||||
+0x7f14e3794000 7615604eaf4a068dfae5085444d15c0dee93dfbd@0x7f14e37941d8
|
|
||||||
+0x7f14e3a96000 09cfb171310110bc7ea9f4476c9fa044d85baff4@0x7f14e3a96210
|
|
||||||
+0x7f14e3d9e000 e10cc8f2b932fc3daeda22f8dac5ebb969524e5b@0x7f14e3d9e248
|
|
||||||
+0x7f14e3fba000 fc4fa58e47a5acc137eadb7689bce4357c557a96@0x7f14e3fba280
|
|
||||||
+0x7f14e4388000 7f2e9cb0769d7e57bd669b485a74b537b63a57c4@0x7f14e43881d8
|
|
||||||
+0x7f14e458c000 62c449974331341bb08dcce3859560a22af1e172@0x7f14e458c1d8
|
|
||||||
+0x7f14e4795000 175efdcef445455872a86a6fbee7567ca16a513e@0x7f14e4795248
|
|
||||||
+0x7ffcfe59f000 80d79b32785868a2dc10047b39a80d1daec8923d@0x7ffcfe59f328
|
|
||||||
+EOF
|
|
||||||
+
|
|
||||||
+exit 0
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
1
SOURCES/elfutils-debuginfod.sysusers
Normal file
1
SOURCES/elfutils-debuginfod.sysusers
Normal file
@ -0,0 +1 @@
|
|||||||
|
u debuginfod - "elfutils debuginfo server" /var/cache/debuginfod -
|
@ -1,12 +1,12 @@
|
|||||||
Name: elfutils
|
Name: elfutils
|
||||||
Version: 0.190
|
Version: 0.188
|
||||||
%global baserelease 2
|
%global baserelease 3
|
||||||
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}/
|
||||||
License: GPLv3+ and (GPLv2+ or LGPLv3+) and GFDL
|
License: GPLv3+ and (GPLv2+ or LGPLv3+) and GFDL
|
||||||
Source: %{?source_url}%{name}-%{version}.tar.bz2
|
Source: %{?source_url}%{name}-%{version}.tar.bz2
|
||||||
Source1: testcore-noncontig.bz2
|
Source1: elfutils-debuginfod.sysusers
|
||||||
Summary: A collection of utilities and DSOs to handle ELF files and DWARF data
|
Summary: A collection of utilities and DSOs to handle ELF files and DWARF data
|
||||||
|
|
||||||
# Needed for isa specific Provides and Requires.
|
# Needed for isa specific Provides and Requires.
|
||||||
@ -15,7 +15,8 @@ Summary: A collection of utilities and DSOs to handle ELF files and DWARF data
|
|||||||
Requires: elfutils-libelf%{depsuffix} = %{version}-%{release}
|
Requires: elfutils-libelf%{depsuffix} = %{version}-%{release}
|
||||||
Requires: elfutils-libs%{depsuffix} = %{version}-%{release}
|
Requires: elfutils-libs%{depsuffix} = %{version}-%{release}
|
||||||
%if 0%{?rhel} >= 8 || 0%{?fedora} >= 20
|
%if 0%{?rhel} >= 8 || 0%{?fedora} >= 20
|
||||||
Recommends: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release}
|
# see Supplements: instead
|
||||||
|
# Recommends: elfutils-debuginfod-client%%{depsuffix} = %%{version}-%%{release}
|
||||||
%else
|
%else
|
||||||
Requires: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release}
|
Requires: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release}
|
||||||
%endif
|
%endif
|
||||||
@ -64,9 +65,20 @@ BuildRequires: gettext-devel
|
|||||||
%global provide_yama_scope 1
|
%global provide_yama_scope 1
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%global with_sysusers 0
|
||||||
|
|
||||||
|
%if 0%{?fedora} >= 32 || 0%{?rhel} >= 9
|
||||||
|
%global with_sysusers 1
|
||||||
|
%endif
|
||||||
|
|
||||||
# Patches
|
# Patches
|
||||||
# RHEL-18913: Fix handling of corefiles with non-contiguous segments.
|
|
||||||
Patch1: elfutils-0.190-fix-core-noncontig.patch
|
# Don't export internal function.
|
||||||
|
Patch1: elfutils-0.188-static-extract_section.patch
|
||||||
|
# Silence some compiler warnings
|
||||||
|
Patch2: elfutils-0.188-compile-warnings.patch
|
||||||
|
# The debuginfod_client object lifetime needs more careful handling
|
||||||
|
Patch3: elfutils-0.188-debuginfod-client-lifetime.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Elfutils is a collection of utilities, including stack (to show
|
Elfutils is a collection of utilities, including stack (to show
|
||||||
@ -87,7 +99,8 @@ Requires: elfutils-libelf%{depsuffix} = %{version}-%{release}
|
|||||||
Requires: default-yama-scope
|
Requires: default-yama-scope
|
||||||
%endif
|
%endif
|
||||||
%if 0%{?rhel} >= 8 || 0%{?fedora} >= 20
|
%if 0%{?rhel} >= 8 || 0%{?fedora} >= 20
|
||||||
Recommends: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release}
|
# see Supplements: instead
|
||||||
|
# Recommends: elfutils-debuginfod-client%%{depsuffix} = %%{version}-%%{release}
|
||||||
%else
|
%else
|
||||||
Requires: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release}
|
Requires: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release}
|
||||||
%endif
|
%endif
|
||||||
@ -107,11 +120,7 @@ Provides: elfutils-devel%{depsuffix} = %{version}-%{release}
|
|||||||
%endif
|
%endif
|
||||||
Requires: elfutils-libs%{depsuffix} = %{version}-%{release}
|
Requires: elfutils-libs%{depsuffix} = %{version}-%{release}
|
||||||
Requires: elfutils-libelf-devel%{depsuffix} = %{version}-%{release}
|
Requires: elfutils-libelf-devel%{depsuffix} = %{version}-%{release}
|
||||||
%if 0%{?rhel} >= 8 || 0%{?fedora} >= 20
|
Obsoletes: elfutils-devel-static < 0.180-5
|
||||||
Recommends: elfutils-debuginfod-client-devel%{depsuffix} = %{version}-%{release}
|
|
||||||
%else
|
|
||||||
Requires: elfutils-debuginfod-client-devel%{depsuffix} = %{version}-%{release}
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%description devel
|
%description devel
|
||||||
The elfutils-devel package contains the libraries to create
|
The elfutils-devel package contains the libraries to create
|
||||||
@ -119,19 +128,6 @@ applications for handling compiled objects. libdw provides access
|
|||||||
to the DWARF debugging information. libasm provides a programmable
|
to the DWARF debugging information. libasm provides a programmable
|
||||||
assembler interface.
|
assembler interface.
|
||||||
|
|
||||||
%package devel-static
|
|
||||||
Summary: Static archives to handle compiled objects
|
|
||||||
License: GPLv2+ or LGPLv3+
|
|
||||||
%if 0%{!?_isa:1}
|
|
||||||
Provides: elfutils-devel-static%{depsuffix} = %{version}-%{release}
|
|
||||||
%endif
|
|
||||||
Requires: elfutils-devel%{depsuffix} = %{version}-%{release}
|
|
||||||
Requires: elfutils-libelf-devel-static%{depsuffix} = %{version}-%{release}
|
|
||||||
|
|
||||||
%description devel-static
|
|
||||||
The elfutils-devel-static package contains the static archives
|
|
||||||
with the code to handle compiled objects.
|
|
||||||
|
|
||||||
%package libelf
|
%package libelf
|
||||||
Summary: Library to read and write ELF files
|
Summary: Library to read and write ELF files
|
||||||
License: GPLv2+ or LGPLv3+
|
License: GPLv2+ or LGPLv3+
|
||||||
@ -154,6 +150,7 @@ Provides: elfutils-libelf-devel%{depsuffix} = %{version}-%{release}
|
|||||||
%endif
|
%endif
|
||||||
Requires: elfutils-libelf%{depsuffix} = %{version}-%{release}
|
Requires: elfutils-libelf%{depsuffix} = %{version}-%{release}
|
||||||
Obsoletes: libelf-devel <= 0.8.2-2
|
Obsoletes: libelf-devel <= 0.8.2-2
|
||||||
|
Obsoletes: elfutils-libelf-devel-static < 0.180-5
|
||||||
|
|
||||||
%description libelf-devel
|
%description libelf-devel
|
||||||
The elfutils-libelf-devel package contains the libraries to create
|
The elfutils-libelf-devel package contains the libraries to create
|
||||||
@ -161,18 +158,6 @@ applications for handling compiled objects. libelf allows you to
|
|||||||
access the internals of the ELF object file format, so you can see the
|
access the internals of the ELF object file format, so you can see the
|
||||||
different sections of an ELF file.
|
different sections of an ELF file.
|
||||||
|
|
||||||
%package libelf-devel-static
|
|
||||||
Summary: Static archive of libelf
|
|
||||||
License: GPLv2+ or LGPLv3+
|
|
||||||
%if 0%{!?_isa:1}
|
|
||||||
Provides: elfutils-libelf-devel-static%{depsuffix} = %{version}-%{release}
|
|
||||||
%endif
|
|
||||||
Requires: elfutils-libelf-devel%{depsuffix} = %{version}-%{release}
|
|
||||||
|
|
||||||
%description libelf-devel-static
|
|
||||||
The elfutils-libelf-static package contains the static archive
|
|
||||||
for libelf.
|
|
||||||
|
|
||||||
%if %{provide_yama_scope}
|
%if %{provide_yama_scope}
|
||||||
%package default-yama-scope
|
%package default-yama-scope
|
||||||
Summary: Default yama attach scope sysctl setting
|
Summary: Default yama attach scope sysctl setting
|
||||||
@ -217,6 +202,13 @@ Provides: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release}
|
|||||||
# For debuginfod-find binary
|
# For debuginfod-find binary
|
||||||
Requires: elfutils-libs%{depsuffix} = %{version}-%{release}
|
Requires: elfutils-libs%{depsuffix} = %{version}-%{release}
|
||||||
Requires: elfutils-libelf%{depsuffix} = %{version}-%{release}
|
Requires: elfutils-libelf%{depsuffix} = %{version}-%{release}
|
||||||
|
%if 0%{?rhel} >= 8 || 0%{?fedora} >= 20
|
||||||
|
# Instead of the weak forward dependency from -libs to -debuginfod-client,
|
||||||
|
# we'll add weak reverse dependencies from some of the many programs that
|
||||||
|
# indirectly load this. This lets the base @core compose omit this library.
|
||||||
|
Supplements: systemtap-client perf gdb binutils elfutils ltrace dyninst
|
||||||
|
Supplements: valgrind annocheck bpftrace dwarves libabigail
|
||||||
|
%endif
|
||||||
|
|
||||||
%package debuginfod-client-devel
|
%package debuginfod-client-devel
|
||||||
Summary: Libraries and headers to build debuginfod client applications
|
Summary: Libraries and headers to build debuginfod client applications
|
||||||
@ -233,11 +225,18 @@ Requires: elfutils-libs%{depsuffix} = %{version}-%{release}
|
|||||||
Requires: elfutils-libelf%{depsuffix} = %{version}-%{release}
|
Requires: elfutils-libelf%{depsuffix} = %{version}-%{release}
|
||||||
Requires: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release}
|
Requires: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release}
|
||||||
BuildRequires: systemd
|
BuildRequires: systemd
|
||||||
|
%if %{with_sysusers}
|
||||||
|
BuildRequires: systemd-rpm-macros
|
||||||
|
%endif
|
||||||
BuildRequires: make
|
BuildRequires: make
|
||||||
Requires(post): systemd
|
Requires(post): systemd
|
||||||
Requires(preun): systemd
|
Requires(preun): systemd
|
||||||
Requires(postun): systemd
|
Requires(postun): systemd
|
||||||
|
%if %{with_sysusers}
|
||||||
|
%{?sysusers_requires_compat}
|
||||||
|
%else
|
||||||
Requires(pre): shadow-utils
|
Requires(pre): shadow-utils
|
||||||
|
%endif
|
||||||
# To extract .deb files with a bsdtar (= libarchive) subshell
|
# To extract .deb files with a bsdtar (= libarchive) subshell
|
||||||
Requires: bsdtar
|
Requires: bsdtar
|
||||||
|
|
||||||
@ -267,8 +266,6 @@ autoreconf -f -v -i
|
|||||||
# are executable.
|
# are executable.
|
||||||
find . -name \*.sh ! -perm -0100 -print | xargs chmod +x
|
find . -name \*.sh ! -perm -0100 -print | xargs chmod +x
|
||||||
|
|
||||||
cp %{SOURCE1} tests
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# Remove -Wall from default flags. The makefiles enable enough warnings
|
# Remove -Wall from default flags. The makefiles enable enough warnings
|
||||||
# themselves, and they use -Werror. Appending -Wall defeats the cases where
|
# themselves, and they use -Werror. Appending -Wall defeats the cases where
|
||||||
@ -282,9 +279,9 @@ RPM_OPT_FLAGS="${RPM_OPT_FLAGS} -Wformat"
|
|||||||
trap 'cat config.log' EXIT
|
trap 'cat config.log' EXIT
|
||||||
|
|
||||||
%if 0%{?centos} >= 8
|
%if 0%{?centos} >= 8
|
||||||
%configure CFLAGS="$RPM_OPT_FLAGS" --enable-debuginfod-urls=https://debuginfod.centos.org/
|
%configure CFLAGS="$RPM_OPT_FLAGS -fexceptions" --enable-debuginfod-urls=https://debuginfod.centos.org/
|
||||||
%else
|
%else
|
||||||
%configure CFLAGS="$RPM_OPT_FLAGS"
|
%configure CFLAGS="$RPM_OPT_FLAGS -fexceptions"
|
||||||
%endif
|
%endif
|
||||||
trap '' EXIT
|
trap '' EXIT
|
||||||
%make_build
|
%make_build
|
||||||
@ -293,12 +290,13 @@ trap '' EXIT
|
|||||||
%make_install
|
%make_install
|
||||||
|
|
||||||
chmod +x ${RPM_BUILD_ROOT}%{_prefix}/%{_lib}/lib*.so*
|
chmod +x ${RPM_BUILD_ROOT}%{_prefix}/%{_lib}/lib*.so*
|
||||||
|
# We don't want the static libraries
|
||||||
|
rm ${RPM_BUILD_ROOT}%{_prefix}/%{_lib}/lib{elf,dw,asm}.a
|
||||||
|
|
||||||
%if 0%{?centos} < 8
|
# We don't have standard DEBUGINFOD_URLS necessarily, but still ship
|
||||||
# We don't have standard DEBUGINFOD_URLS yet.
|
# the profile.d/debuginfod* files, in case of a site specific server.
|
||||||
rm ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d/debuginfod.sh
|
# rm ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d/debuginfod.sh
|
||||||
rm ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d/debuginfod.csh
|
# rm ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d/debuginfod.csh
|
||||||
%endif
|
|
||||||
|
|
||||||
%find_lang %{name}
|
%find_lang %{name}
|
||||||
|
|
||||||
@ -311,6 +309,10 @@ install -Dm0644 config/debuginfod.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysc
|
|||||||
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/debuginfod
|
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/debuginfod
|
||||||
touch ${RPM_BUILD_ROOT}%{_localstatedir}/cache/debuginfod/debuginfod.sqlite
|
touch ${RPM_BUILD_ROOT}%{_localstatedir}/cache/debuginfod/debuginfod.sqlite
|
||||||
|
|
||||||
|
%if %{with_sysusers}
|
||||||
|
install -Dm0644 %{SOURCE1} %{buildroot}%{_sysusersdir}/elfutils-debuginfod.conf
|
||||||
|
%endif
|
||||||
|
|
||||||
%check
|
%check
|
||||||
# Record some build root versions in build.log
|
# Record some build root versions in build.log
|
||||||
uname -r; rpm -q binutils gcc glibc || true
|
uname -r; rpm -q binutils gcc glibc || true
|
||||||
@ -344,7 +346,6 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%{!?_licensedir:%global license %%doc}
|
|
||||||
%license COPYING COPYING-GPLV2 COPYING-LGPLV3 doc/COPYING-GFDL
|
%license COPYING COPYING-GPLV2 COPYING-LGPLV3 doc/COPYING-GFDL
|
||||||
%doc README TODO CONTRIBUTING
|
%doc README TODO CONTRIBUTING
|
||||||
%{_bindir}/eu-addr2line
|
%{_bindir}/eu-addr2line
|
||||||
@ -360,7 +361,6 @@ fi
|
|||||||
%{_bindir}/eu-ranlib
|
%{_bindir}/eu-ranlib
|
||||||
%{_bindir}/eu-readelf
|
%{_bindir}/eu-readelf
|
||||||
%{_bindir}/eu-size
|
%{_bindir}/eu-size
|
||||||
%{_bindir}/eu-srcfiles
|
|
||||||
%{_bindir}/eu-stack
|
%{_bindir}/eu-stack
|
||||||
%{_bindir}/eu-strings
|
%{_bindir}/eu-strings
|
||||||
%{_bindir}/eu-strip
|
%{_bindir}/eu-strip
|
||||||
@ -368,7 +368,6 @@ fi
|
|||||||
%{_mandir}/man1/eu-*.1*
|
%{_mandir}/man1/eu-*.1*
|
||||||
|
|
||||||
%files libs
|
%files libs
|
||||||
%{!?_licensedir:%global license %%doc}
|
|
||||||
%license COPYING-GPLV2 COPYING-LGPLV3
|
%license COPYING-GPLV2 COPYING-LGPLV3
|
||||||
%{_libdir}/libasm-%{version}.so
|
%{_libdir}/libasm-%{version}.so
|
||||||
%{_libdir}/libdw-%{version}.so
|
%{_libdir}/libdw-%{version}.so
|
||||||
@ -389,12 +388,7 @@ fi
|
|||||||
%{_libdir}/libdw.so
|
%{_libdir}/libdw.so
|
||||||
%{_libdir}/pkgconfig/libdw.pc
|
%{_libdir}/pkgconfig/libdw.pc
|
||||||
|
|
||||||
%files devel-static
|
|
||||||
%{_libdir}/libdw.a
|
|
||||||
%{_libdir}/libasm.a
|
|
||||||
|
|
||||||
%files -f %{name}.lang libelf
|
%files -f %{name}.lang libelf
|
||||||
%{!?_licensedir:%global license %%doc}
|
|
||||||
%license COPYING-GPLV2 COPYING-LGPLV3
|
%license COPYING-GPLV2 COPYING-LGPLV3
|
||||||
%{_libdir}/libelf-%{version}.so
|
%{_libdir}/libelf-%{version}.so
|
||||||
%{_libdir}/libelf.so.*
|
%{_libdir}/libelf.so.*
|
||||||
@ -407,50 +401,52 @@ fi
|
|||||||
%{_libdir}/pkgconfig/libelf.pc
|
%{_libdir}/pkgconfig/libelf.pc
|
||||||
%{_mandir}/man3/elf_*.3*
|
%{_mandir}/man3/elf_*.3*
|
||||||
|
|
||||||
%files libelf-devel-static
|
|
||||||
%{_libdir}/libelf.a
|
|
||||||
|
|
||||||
%if %{provide_yama_scope}
|
%if %{provide_yama_scope}
|
||||||
%files default-yama-scope
|
%files default-yama-scope
|
||||||
%{_sysctldir}/10-default-yama-scope.conf
|
%{_sysctldir}/10-default-yama-scope.conf
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%files debuginfod-client
|
%files debuginfod-client
|
||||||
%defattr(-,root,root)
|
|
||||||
%{_libdir}/libdebuginfod-%{version}.so
|
%{_libdir}/libdebuginfod-%{version}.so
|
||||||
%{_libdir}/libdebuginfod.so.*
|
%{_libdir}/libdebuginfod.so.*
|
||||||
%{_bindir}/debuginfod-find
|
%{_bindir}/debuginfod-find
|
||||||
%{_mandir}/man1/debuginfod-find.1*
|
%{_mandir}/man1/debuginfod-find.1*
|
||||||
%{_mandir}/man7/debuginfod*.7*
|
%{_mandir}/man7/debuginfod*.7*
|
||||||
%if 0%{?centos} >= 8
|
|
||||||
%{_sysconfdir}/profile.d/debuginfod.*
|
%{_sysconfdir}/profile.d/debuginfod.*
|
||||||
|
%if 0%{?centos} >= 8
|
||||||
%{_sysconfdir}/debuginfod/*.urls
|
%{_sysconfdir}/debuginfod/*.urls
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%files debuginfod-client-devel
|
%files debuginfod-client-devel
|
||||||
%defattr(-,root,root)
|
|
||||||
%{_libdir}/pkgconfig/libdebuginfod.pc
|
%{_libdir}/pkgconfig/libdebuginfod.pc
|
||||||
%{_mandir}/man3/debuginfod_*.3*
|
%{_mandir}/man3/debuginfod_*.3*
|
||||||
%{_includedir}/elfutils/debuginfod.h
|
%{_includedir}/elfutils/debuginfod.h
|
||||||
%{_libdir}/libdebuginfod.so
|
%{_libdir}/libdebuginfod.so
|
||||||
|
|
||||||
%files debuginfod
|
%files debuginfod
|
||||||
%defattr(-,root,root)
|
|
||||||
%{_bindir}/debuginfod
|
%{_bindir}/debuginfod
|
||||||
%config(noreplace) %{_sysconfdir}/sysconfig/debuginfod
|
%config(noreplace) %{_sysconfdir}/sysconfig/debuginfod
|
||||||
%{_unitdir}/debuginfod.service
|
%{_unitdir}/debuginfod.service
|
||||||
|
%if %{with_sysusers}
|
||||||
|
%{_sysusersdir}/elfutils-debuginfod.conf
|
||||||
|
%endif
|
||||||
%{_mandir}/man8/debuginfod*.8*
|
%{_mandir}/man8/debuginfod*.8*
|
||||||
|
%{_mandir}/man7/debuginfod*.7*
|
||||||
|
|
||||||
|
|
||||||
%dir %attr(0700,debuginfod,debuginfod) %{_localstatedir}/cache/debuginfod
|
%dir %attr(0700,debuginfod,debuginfod) %{_localstatedir}/cache/debuginfod
|
||||||
%ghost %attr(0600,debuginfod,debuginfod) %{_localstatedir}/cache/debuginfod/debuginfod.sqlite
|
%ghost %attr(0600,debuginfod,debuginfod) %{_localstatedir}/cache/debuginfod/debuginfod.sqlite
|
||||||
|
|
||||||
%pre debuginfod
|
%pre debuginfod
|
||||||
|
%if %{with_sysusers}
|
||||||
|
%sysusers_create_compat %{SOURCE1}
|
||||||
|
%else
|
||||||
getent group debuginfod >/dev/null || groupadd -r debuginfod
|
getent group debuginfod >/dev/null || groupadd -r debuginfod
|
||||||
getent passwd debuginfod >/dev/null || \
|
getent passwd debuginfod >/dev/null || \
|
||||||
useradd -r -g debuginfod -d /var/cache/debuginfod -s /sbin/nologin \
|
useradd -r -g debuginfod -d /var/cache/debuginfod -s /sbin/nologin \
|
||||||
-c "elfutils debuginfo server" debuginfod
|
-c "elfutils debuginfo server" debuginfod
|
||||||
exit 0
|
exit 0
|
||||||
|
%endif
|
||||||
|
|
||||||
%post debuginfod
|
%post debuginfod
|
||||||
%systemd_post debuginfod.service
|
%systemd_post debuginfod.service
|
||||||
@ -459,28 +455,6 @@ exit 0
|
|||||||
%systemd_postun_with_restart debuginfod.service
|
%systemd_postun_with_restart debuginfod.service
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Fri Dec 8 2023 Aaron Merey <amerey@redhat.com> - 0.190-2
|
|
||||||
- Add elfutils-0.190-fix-core-noncontig.patch
|
|
||||||
|
|
||||||
* Fri Nov 3 2023 Mark Wielaard <mjw@redhat.com> - 0.190-1
|
|
||||||
- Upgrade to upstream elfutils 0.190
|
|
||||||
- Add eu-srcfiles
|
|
||||||
- Drop upstreamed patches
|
|
||||||
elfutils-0.189-debuginfod_config_cache-double-close.patch
|
|
||||||
elfutils-0.189-elf_getdata_rawchunk.patch
|
|
||||||
elfutils-0.189-elfcompress.patch
|
|
||||||
- Only package debuginfod-client-config.7 manpage for debuginfod-client
|
|
||||||
|
|
||||||
* Wed Jun 28 2023 Mark Wielaard <mjw@redhat.com> - 0.189-3
|
|
||||||
- Add elfutils-0.189-elf_getdata_rawchunk.patch
|
|
||||||
- Add elfutils-0.189-debuginfod_config_cache-double-close.patch
|
|
||||||
|
|
||||||
* Mon Apr 24 2023 Mark Wielaard <mjw@redhat.com> - 0.189-2
|
|
||||||
- Add elfutils-0.189-elfcompress.patch
|
|
||||||
|
|
||||||
* Tue Apr 4 2023 Mark Wielaard <mjw@redhat.com> - 0.189-1
|
|
||||||
- Upgrade to upsteam elfutils 0.189.
|
|
||||||
|
|
||||||
* Mon Nov 7 2022 Mark Wielaard <mjw@redhat.com> - 0.188-3
|
* Mon Nov 7 2022 Mark Wielaard <mjw@redhat.com> - 0.188-3
|
||||||
- Add elfutils-0.188-compile-warnings.patch
|
- Add elfutils-0.188-compile-warnings.patch
|
||||||
- Add elfutils-0.188-debuginfod-client-lifetime.patch
|
- Add elfutils-0.188-debuginfod-client-lifetime.patch
|
||||||
@ -489,6 +463,13 @@ exit 0
|
|||||||
- Upgrade to upsteam elfutils 0.188.
|
- Upgrade to upsteam elfutils 0.188.
|
||||||
- Add elfutils-0.188-static-extract_section.patch.
|
- Add elfutils-0.188-static-extract_section.patch.
|
||||||
|
|
||||||
|
* Fri Sep 30 2022 Mark Wielaard <mjw@redhat.com> - 0.187-6
|
||||||
|
- Add sysuser support for creating the debuginfod user
|
||||||
|
|
||||||
|
* Thu Jun 16 2022 Frank Ch. Eigler <fche@redhat.com> - 0.187-5
|
||||||
|
- rhbz2088774: ship /etc/profile.d/debuginfod* files even without
|
||||||
|
default DEBUGINFOD_URLS.
|
||||||
|
|
||||||
* Fri May 6 2022 Mark Wielaard <mjw@redhat.com> - 0.187-4
|
* Fri May 6 2022 Mark Wielaard <mjw@redhat.com> - 0.187-4
|
||||||
- Upgrade to elfutils 0.187
|
- Upgrade to elfutils 0.187
|
||||||
- debuginfod: Support -C option for connection thread pooling.
|
- debuginfod: Support -C option for connection thread pooling.
|
||||||
@ -507,14 +488,22 @@ exit 0
|
|||||||
- Add elfutils-0.187-debuginfod-client-fd-leak.patch
|
- Add elfutils-0.187-debuginfod-client-fd-leak.patch
|
||||||
- Add elfutils-0.187-mhd_no_dual_stack.patch
|
- Add elfutils-0.187-mhd_no_dual_stack.patch
|
||||||
- Add elfutils-0.187-mhd_epoll.patch
|
- Add elfutils-0.187-mhd_epoll.patch
|
||||||
|
|
||||||
|
* Tue Apr 12 2022 Mark Wielaard <mjw@redhat.com> - 0.186-5
|
||||||
- Add an explicit versioned requires from elfutils-debuginfod-client
|
- Add an explicit versioned requires from elfutils-debuginfod-client
|
||||||
on elfutils-libs and elfutils-libelf.
|
on elfutils-libelf.
|
||||||
|
|
||||||
|
* Fri Apr 8 2022 Mark Wielaard <mjw@redhat.com> - 0.186-4
|
||||||
|
- Add an explicit versioned requires from elfutils-debuginfod-client
|
||||||
|
on elfutils-libs.
|
||||||
|
|
||||||
|
* Tue Mar 22 2022 Mark Wielaard <mjw@redhat.com> - 0.186-3
|
||||||
- Remove brew testsuite workarounds
|
- Remove brew testsuite workarounds
|
||||||
|
|
||||||
* Thu Feb 10 2022 Frank Ch. Eigler <fche@redhat.com> - 0.186-2
|
* Thu Feb 10 2022 Frank Ch. Eigler <fche@redhat.com> - 0.186-2
|
||||||
- rhbz2052574: enable debuginfod.centos.org support by default
|
- rhbz2053226: enable debuginfod.centos.org support by default
|
||||||
|
|
||||||
* Thu Nov 11 2021 Mark Wielaard <mjw@redhat.com> - 0.186-1
|
* Tue Nov 23 2021 Mark Wielaard <mjw@redhat.com> - 0.186-1
|
||||||
- Upgrade to upstream 0.186
|
- Upgrade to upstream 0.186
|
||||||
- debuginfod-client: Default $DEBUGINFOD_URLS is computed from
|
- debuginfod-client: Default $DEBUGINFOD_URLS is computed from
|
||||||
drop-in files /etc/debuginfod/*.urls rather than
|
drop-in files /etc/debuginfod/*.urls rather than
|
||||||
@ -538,16 +527,50 @@ exit 0
|
|||||||
dwarf_linefunctionname.
|
dwarf_linefunctionname.
|
||||||
- translations: Update Japanese translation.
|
- translations: Update Japanese translation.
|
||||||
|
|
||||||
* Thu May 27 2021 Mark Wielaard <mjw@redhat.com> - 0.185-1
|
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 0.185-5
|
||||||
- Upgrade to upstream 0.185
|
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
|
||||||
|
Related: rhbz#1991688
|
||||||
|
|
||||||
* Thu Dec 17 2020 Mark Wielaard <mjw@redhat.com> - 0.182-3
|
* Wed Jun 16 2021 Frank Ch. Eigler <fche@redhat.com> - 0.185-4
|
||||||
|
- RHBZ1947876 - redux.
|
||||||
|
|
||||||
|
* Wed Jun 09 2021 Frank Ch. Eigler <fche@redhat.com> - 0.185-3
|
||||||
|
- RHBZ1947876 - turn -debuginfod-client into a weak reverse dependency.
|
||||||
|
|
||||||
|
* Mon May 31 2021 Mark Wielaard <mjw@redhat.com> - 0.185-2
|
||||||
|
- Allow failing make check
|
||||||
|
|
||||||
|
* Mon May 31 2021 Mark Wielaard <mjw@redhat.com> - 0.185-1
|
||||||
|
- Upgrade to upstream 0.185
|
||||||
|
- debuginfod-client: Simplify curl handle reuse so downloads which
|
||||||
|
return an error are retried.
|
||||||
|
- elfcompress: Always exit with code 0 when the operation succeeds
|
||||||
|
(even when nothing was done). On error the exit code
|
||||||
|
is now always 1.
|
||||||
|
|
||||||
|
* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 0.183-2
|
||||||
|
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
|
||||||
|
|
||||||
|
* Mon Feb 8 2021 Mark Wielaard <mjw@fedoraproject.org> - 0.183-1
|
||||||
|
- Upgrade to upstream 0.183
|
||||||
|
- debuginfod: New thread-busy metric and more detailed error metrics.
|
||||||
|
New --fdcache-mintmp and tracking of filesystem freespace.
|
||||||
|
- debuginfod-client: DEBUGINFOD_SONAME macro added to debuginfod.h can
|
||||||
|
be used to dlopen the libdebuginfod.so library.
|
||||||
|
New function debuginfod_set_verbose_fd and DEBUGINFOD_VERBOSE
|
||||||
|
environment variable.
|
||||||
|
- config: profile.sh and profile.csh won't export DEBUGINFOD_URLS
|
||||||
|
unless configured --enable-debuginfod-urls[=URLS]
|
||||||
|
- elflint, readelf: Recognize SHF_GNU_RETAIN.
|
||||||
|
Handle SHT_X86_64_UNWIND as valid relocation target type.
|
||||||
|
|
||||||
|
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.182-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Dec 17 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.182-2
|
||||||
- Add elfutils-0.182-s390-pid_memory_read.patch
|
- Add elfutils-0.182-s390-pid_memory_read.patch
|
||||||
|
|
||||||
* Mon Nov 2 2020 Mark Wielaard <mjw@redhat.com> - 0.182-2
|
* Sat Oct 31 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.182-1
|
||||||
- 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
|
- Upgrade to upstream 0.182
|
||||||
- backends: Support for tilegx has been removed.
|
- backends: Support for tilegx has been removed.
|
||||||
- config: New /etc/profile.d files to provide default $DEBUGINFOD_URLS.
|
- config: New /etc/profile.d files to provide default $DEBUGINFOD_URLS.
|
||||||
@ -557,26 +580,131 @@ exit 0
|
|||||||
- debuginfod-client: Now supports compressed (kernel) ELF images.
|
- debuginfod-client: Now supports compressed (kernel) ELF images.
|
||||||
- libdwfl: Add ZSTD compression support.
|
- libdwfl: Add ZSTD compression support.
|
||||||
|
|
||||||
* Thu Jun 11 2020 Mark Wielaard <mjw@redhat.com> - 0.180-1
|
* Mon Oct 19 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.181-3
|
||||||
- New upstream release.
|
- Add elfutils-0.181-array-param.patch.
|
||||||
|
|
||||||
* Fri Jan 10 2020 Mark Wielaard <mjw@redhat.com> - 0.178-7
|
* Fri Sep 18 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.181-2
|
||||||
|
- Add ZSTD support elfutils-0.181-zstd.patch.
|
||||||
|
|
||||||
|
* Tue Sep 8 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.181-1
|
||||||
|
- Upgrade to upstream 0.181
|
||||||
|
- libelf: elf_update now compensates (fixes up) a bad sh_addralign
|
||||||
|
for SHF_COMPRESSED sections.
|
||||||
|
- libdebuginfod: configure now takes --enable-libdebuginfod=dummy or
|
||||||
|
--disable-libdebuginfod for bootstrapping.
|
||||||
|
DEBUGINFOD_URLS now accepts "scheme-free" urls
|
||||||
|
(guessing at what the user meant, either http:// or file://)
|
||||||
|
- readelf, elflint: Handle aarch64 bti, pac bits in dynamic table and
|
||||||
|
gnu property notes.
|
||||||
|
- libdw, readelf: Recognize DW_CFA_AARCH64_negate_ra_state. Allows
|
||||||
|
unwinding on arm64 for code that is compiled for PAC
|
||||||
|
(Pointer Authentication Code) as long as it isn't enabled.
|
||||||
|
|
||||||
|
* Tue Aug 25 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.180-7
|
||||||
|
- Add elfutils-0.180-shf-compressed.patch
|
||||||
|
|
||||||
|
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.180-6
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jul 22 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.180-5
|
||||||
|
- Remove elfutils-libelf-devel-static and elfutils-devel-static subpackages.
|
||||||
|
- Remove duplicate listing of sysconfig/debuginfod (config) file.
|
||||||
|
|
||||||
|
* Mon Jul 13 2020 Tom Stellard <tstellar@redhat.com> - 0.180-4
|
||||||
|
- Use make macros
|
||||||
|
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
|
||||||
|
|
||||||
|
* Fri Jul 3 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.180-3
|
||||||
|
- Add elfutils-0.180-mhd-result.patch
|
||||||
|
|
||||||
|
* Wed Jul 1 2020 Jeff Law <law@redhat.com> - 0.180-2
|
||||||
|
- Disable LTO
|
||||||
|
|
||||||
|
* Thu Jun 11 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.180-1
|
||||||
|
- New upstream release.
|
||||||
|
elflint: Allow SHF_EXCLUDE as generic section flag when --gnu is given.
|
||||||
|
libdw, readelf: Handle GCC LTO .gnu.debuglto_ prefix.
|
||||||
|
libdw: Use correct CU to resolve file names in dwarf_decl_file.
|
||||||
|
libdwfl: Handle debugaltlink in dwfl_standard_find_debuginfo.
|
||||||
|
size: Also obey radix printing for bsd format.
|
||||||
|
nm: Explicitly print weak 'V' or 'T' and common 'C' symbols.
|
||||||
|
|
||||||
|
* Thu Apr 30 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.179-2
|
||||||
|
- Add elfutils-0.179-debug-client-alt-link.patch
|
||||||
|
|
||||||
|
* Mon Mar 30 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.179-1
|
||||||
|
- New upstream release.
|
||||||
|
debuginfod-client:
|
||||||
|
- When DEBUGINFOD_PROGRESS is set and the program doesn't
|
||||||
|
install its own debuginfod_progressfn_t show download
|
||||||
|
progress on stderr.
|
||||||
|
- DEBUGINFOD_TIMEOUT is now defined as seconds to get at
|
||||||
|
least 100K, defaults to 90 seconds.
|
||||||
|
- Default to $XDG_CACHE_HOME/debuginfod_client.
|
||||||
|
- New functions debuginfod_set_user_data,
|
||||||
|
debuginfod_get_user_data, debuginfod_get_url and
|
||||||
|
debuginfod_add_http_header.
|
||||||
|
- Support for file:// URLs.
|
||||||
|
|
||||||
|
debuginfod:
|
||||||
|
- Performance improvements through highly parallelized scanning
|
||||||
|
and archive content caching.
|
||||||
|
- Uses libarchive directly for reading rpm archives.
|
||||||
|
- Support for indexing .deb/.ddeb archives through dpkg-deb
|
||||||
|
or bsdtar.
|
||||||
|
- Generic archive support through -Z EXT[=CMD]. Which can be
|
||||||
|
used for example for arch-linux pacman files by using
|
||||||
|
-Z '.tar.zst=zstdcat'.
|
||||||
|
- Better logging using User-Agent and X-Forwarded-For headers.
|
||||||
|
- More prometheus metrics.
|
||||||
|
- Support for eliding dots or extraneous slashes in path names.
|
||||||
|
|
||||||
|
debuginfod-find:
|
||||||
|
- Accept /path/names in place of buildid hex.
|
||||||
|
|
||||||
|
libelf:
|
||||||
|
- Handle PN_XNUM in elf_getphdrnum before shdr 0 is cached
|
||||||
|
- Ensure zlib resource cleanup on failure.
|
||||||
|
|
||||||
|
libdwfl:
|
||||||
|
- dwfl_linux_kernel_find_elf and dwfl_linux_kernel_report_offline
|
||||||
|
now find and handle a compressed vmlinuz image.
|
||||||
|
|
||||||
|
readelf, elflint:
|
||||||
|
- Handle PT_GNU_PROPERTY.
|
||||||
|
|
||||||
|
translations:
|
||||||
|
- Updated Ukrainian translation.
|
||||||
|
|
||||||
|
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.178-9
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jan 24 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.178-8
|
||||||
|
- Add elfutils-0.178-gcc10-null-dereference.patch
|
||||||
|
|
||||||
|
* Fri Jan 10 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.178-7
|
||||||
- Add elfutils-0.178-debuginfod-timeoutprogress.patch
|
- Add elfutils-0.178-debuginfod-timeoutprogress.patch
|
||||||
- Add elfutils-0.178-libasm-ebl.patch
|
- Add elfutils-0.178-libasm-ebl.patch
|
||||||
|
|
||||||
* Fri Dec 13 2019 Mark Wielaard <mjw@redhat.com> - 0.178-6
|
* Wed Dec 11 2019 Mark Wielaard <mjw@fedoraproject.org> - 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
|
||||||
|
|
||||||
* Mon Dec 9 2019 Mark Wielaard <mjw@redhat.com> - 0.178-5
|
* Mon Dec 9 2019 Mark Wielaard <mjw@fedoraproject.org> - 0.178-5
|
||||||
- Add elfutils-0.178-debuginfod-no-cache.patch. #1781097
|
- Add elfutils-0.178-debuginfod-no-cache.patch.
|
||||||
|
|
||||||
* Thu Nov 28 2019 Mark Wielaard <mjw@redhat.com> - 0.178-4
|
* Thu Nov 28 2019 Mark Wielaard <mjw@fedoraproject.org> - 0.178-4
|
||||||
|
- Define %%{depsuffix} before use.
|
||||||
|
|
||||||
|
* Thu Nov 28 2019 Mark Wielaard <mjw@fedoraproject.org> - 0.178-3
|
||||||
- Add elfutils-debuginfod-client Provides and Requires with depsuffix
|
- Add elfutils-debuginfod-client Provides and Requires with depsuffix
|
||||||
to get multilib dependencies correct. Add %%{version}-%%{release} to
|
to get multilib dependencies correct. Add %%{version}-%%{release} to
|
||||||
keep subpackages in sync.
|
keep subpackages in sync.
|
||||||
|
|
||||||
* Tue Nov 26 2019 Mark Wielaard <mjw@redhat.com> - 0.178-2
|
* Wed Nov 27 2019 Mark Wielaard <mjw@fedoraproject.org> - 0.178-2
|
||||||
|
- Fix libdebuginfod file list for debuginfo-client[-devel].
|
||||||
|
|
||||||
|
* Tue Nov 26 2019 Mark Wielaard <mjw@fedoraproject.org> - 0.178-1
|
||||||
- New upstream release.
|
- New upstream release.
|
||||||
- debuginfod: New server, client tool and library to index and fetch
|
- debuginfod: New server, client tool and library to index and fetch
|
||||||
ELF/DWARF files addressed by build-id through HTTP.
|
ELF/DWARF files addressed by build-id through HTTP.
|
||||||
@ -591,52 +719,79 @@ exit 0
|
|||||||
threads through the same Dwarf handle.
|
threads through the same Dwarf handle.
|
||||||
- libdwfl: Will try to use debuginfod when installed as fallback to
|
- libdwfl: Will try to use debuginfod when installed as fallback to
|
||||||
retrieve ELF and DWARF debug data files by build-id.
|
retrieve ELF and DWARF debug data files by build-id.
|
||||||
- Fix libdebuginfod file list for debuginfo-client[-devel].
|
|
||||||
|
|
||||||
* Fri Jul 5 2019 Mark Wielaard <mjw@redhat.com> - 0.176-5
|
* Wed Aug 14 2019 Mark Wielaard <mjw@fedoraproject.org> - 0.177-1
|
||||||
|
- New upstream release.
|
||||||
|
- elfclassify: New tool to analyze ELF objects.
|
||||||
|
- readelf: Print DW_AT_data_member_location as decimal offset.
|
||||||
|
Decode DW_AT_discr_list block attributes.
|
||||||
|
- libdw: Add DW_AT_GNU_numerator, DW_AT_GNU_denominator and DW_AT_GNU_bias.
|
||||||
|
- libdwelf: Add dwelf_elf_e_machine_string.
|
||||||
|
dwelf_elf_begin now only returns NULL when there is an error
|
||||||
|
reading or decompressing a file. If the file is not an ELF file
|
||||||
|
an ELF handle of type ELF_K_NONE is returned.
|
||||||
|
- backends: Add support for C-SKY.
|
||||||
|
|
||||||
|
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.176-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jul 5 2019 Mark Wielaard <mjw@fedoraproject.org> - 0.176-4
|
||||||
- Add elfutils-0.176-strip-symbols-illformed.patch
|
- Add elfutils-0.176-strip-symbols-illformed.patch
|
||||||
|
|
||||||
* Wed Jun 5 2019 Mark Wielaard <mjw@redhat.com> - 0.176-4
|
* Mon Jun 3 2019 Mark Wielaard <mjw@fedoraproject.org> - 0.176-3
|
||||||
- Add elfutils-0.176-elf-update.patch (#1717349)
|
- Add elfutils-0.176-elf-update.patch
|
||||||
|
|
||||||
* Mon May 13 2019 Mark Wielaard <mjw@redhat.com> - 0.176-3
|
* Tue Apr 30 2019 Mark Wielaard <mjw@fedoraproject.org> - 0.176-2
|
||||||
- Rebuilt for annobin change.
|
- Update elfutils-0.176-gcc-pr88835.patch.
|
||||||
|
- Add elfutils-0.176-pt-gnu-prop.patch
|
||||||
|
- Add elfutils-0.176-xlate-note.patch
|
||||||
|
|
||||||
* Fri May 10 2019 Mark Wielaard <mjw@redhat.com> - 0.176-2
|
* Fri Feb 15 2019 Mark Wielaard <mjw@fedoraproject.org> - 0.176-1
|
||||||
- Add elfutils-0.176-xlate-note.patch (#1705138)
|
|
||||||
|
|
||||||
* Tue May 7 2019 Mark Wielaard <mjw@fedoraproject.org> - 0.176-1
|
|
||||||
- New upstream release.
|
- New upstream release.
|
||||||
- backends: riscv improved core file and return value location support.
|
- backends: riscv improved core file and return value location support.
|
||||||
- Fixes CVE-2019-7146, CVE-2019-7148, CVE-2019-7149, CVE-2019-7150,
|
- Fixes CVE-2019-7146, CVE-2019-7148, CVE-2019-7149, CVE-2019-7150,
|
||||||
CVE-2019-7664, CVE-2019-7665.
|
CVE-2019-7664, CVE-2019-7665.
|
||||||
|
|
||||||
* Mon Dec 3 2018 Mark Wielaard <mjw@redhat.com> - 0.174-6
|
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.175-3
|
||||||
- Add elfutils-0.174-gnu-props-32.patch.
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||||
|
|
||||||
* Thu Nov 15 2018 Mark Wielaard <mjw@redhat.com> - 0.174-5
|
* Mon Dec 3 2018 Mark Wielaard <mjw@fedoraproject.org> - 0.175-2
|
||||||
- Add elfutils-0.174-x86_64_unwind.patch (#1650114).
|
- Add elfutils-0.175-gnu-props-32.patch.
|
||||||
- Add elfutils-0.174-gnu-property-note.patch (#1650120).
|
|
||||||
|
* Fri Nov 16 2018 Mark Wielaard <mjw@fedoraproject.org> - 0.175-1
|
||||||
|
- New upstream release.
|
||||||
|
- readelf: Handle multiple .debug_macro sections.
|
||||||
|
- strip: Add strip --reloc-debug-sections-only option.
|
||||||
|
Handle relocations against GNU compressed sections.
|
||||||
|
- libdwelf: New function dwelf_elf_begin.
|
||||||
|
- libcpu: Recognize bpf jump variants BPF_JLT, BPF_JLE, BPF_JSLT
|
||||||
|
and BPF_JSLE.
|
||||||
|
- backends: RISCV handles ADD/SUB relocations.
|
||||||
|
- Remove all patches.
|
||||||
|
|
||||||
|
* Wed Nov 14 2018 Mark Wielaard <mjw@fedoraproject.org> - 0.174-5
|
||||||
|
- Add elfutils-0.174-x86_64_unwind.patch.
|
||||||
|
- Add elfutils-0.174-gnu-property-note.patch.
|
||||||
- Add elfutils-0.174-version-note.patch.
|
- Add elfutils-0.174-version-note.patch.
|
||||||
- Add elfutils-0.174-gnu-attribute-note.patch (#1650125).
|
- Add elfutils-0.174-gnu-attribute-note.patch
|
||||||
|
|
||||||
* Tue Nov 6 2018 Mark Wielaard <mjw@redhat.com> - 0.174-4
|
* Tue Nov 6 2018 Mark Wielaard <mjw@fedoraproject.org> - 0.174-4
|
||||||
- Add elfutils-0.174-size-rec-ar.patch
|
- Add elfutils-0.174-size-rec-ar.patch
|
||||||
CVE-2018-18520 (#1646479)
|
CVE-2018-18520 (#1646478)
|
||||||
- Add elfutils-0.174-ar-sh_entsize-zero.patch
|
- Add elfutils-0.174-ar-sh_entsize-zero.patch
|
||||||
CVE-2018-18521 (#1646484)
|
CVE-2018-18521 (#1646483)
|
||||||
|
|
||||||
* Fri Nov 2 2018 Mark Wielaard <mjw@redhat.com> - 0.174-3
|
* Fri Nov 2 2018 Mark Wielaard <mjw@fedoraproject.org> - 0.174-3
|
||||||
- Add elfutils-0.174-libdwfl-sanity-check-core-reads.patch
|
- Add elfutils-0.174-libdwfl-sanity-check-core-reads.patch
|
||||||
CVE-2018-18310 (#1642606)
|
CVE-2018-18310 (#1642605)
|
||||||
|
|
||||||
* Fri Oct 19 2018 Mark Wielaard <mjw@redhat.com> - 0.174-2
|
* Wed Oct 17 2018 Mark Wielaard <mjw@fedoraproject.org> - 0.174-2
|
||||||
- Add elfutils-0.174-strip-unstrip-group.patch (#1638248).
|
- Add elfutils-0.174-strip-unstrip-group.patch.
|
||||||
|
|
||||||
* Tue Sep 18 2018 Mark Wielaard <mjw@redhat.com> - 0.174-1
|
* Fri Sep 14 2018 Mark Wielaard <mjw@fedoraproject.org> - 0.174-1
|
||||||
- New upstream release (#1614972)
|
- New upstream release
|
||||||
- libelf, libdw and all tools now handle extended shnum and shstrndx
|
- libelf, libdw and all tools now handle extended shnum and shstrndx
|
||||||
correctly
|
correctly (#1608390).
|
||||||
- elfcompress: Don't rewrite input file if no section data needs
|
- elfcompress: Don't rewrite input file if no section data needs
|
||||||
updating. Try harder to keep same file mode bits (suid) on rewrite.
|
updating. Try harder to keep same file mode bits (suid) on rewrite.
|
||||||
- strip: Handle mixed (out of order) allocated/non-allocated sections.
|
- strip: Handle mixed (out of order) allocated/non-allocated sections.
|
||||||
@ -644,9 +799,9 @@ exit 0
|
|||||||
- backends: RISCV and M68K now have backend implementations to
|
- backends: RISCV and M68K now have backend implementations to
|
||||||
generate CFI based backtraces.
|
generate CFI based backtraces.
|
||||||
- Fixes CVE-2018-16062, CVE-2018-16402 and CVE-2018-16403
|
- Fixes CVE-2018-16062, CVE-2018-16402 and CVE-2018-16403
|
||||||
(#1623754, #1625052, #1625057).
|
(#1623753, #1625051, #1625056).
|
||||||
|
|
||||||
* Mon Jul 30 2018 Florian Weimer <fweimer@redhat.com> - 0.173-8
|
* Tue Jul 31 2018 Florian Weimer <fweimer@redhat.com> - 0.173-8
|
||||||
- Rebuild with fixed binutils
|
- Rebuild with fixed binutils
|
||||||
|
|
||||||
* Sun Jul 29 2018 Mark Wielaard <mjw@fedoraproject.org> - 0.173-7
|
* Sun Jul 29 2018 Mark Wielaard <mjw@fedoraproject.org> - 0.173-7
|
||||||
|
Loading…
Reference in New Issue
Block a user