diff --git a/.fmf/version b/.fmf/version deleted file mode 100644 index d00491f..0000000 --- a/.fmf/version +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/.gitignore b/.gitignore index 6aac4df..0da9d88 100644 --- a/.gitignore +++ b/.gitignore @@ -1,37 +1 @@ -/elfutils-0.158.tar.bz2 -/elfutils-0.159.tar.bz2 -/elfutils-0.160.tar.bz2 -/elfutils-0.161.tar.bz2 -/elfutils-0.162.tar.bz2 -/elfutils-0.163.tar.bz2 -/elfutils-0.164.tar.bz2 -/elfutils-0.165.tar.bz2 -/elfutils-0.166.tar.bz2 -/elfutils-0.167.tar.bz2 -/elfutils-0.168.tar.bz2 -/elfutils-0.169.tar.bz2 -/elfutils-0.170.tar.bz2 -/elfutils-0.171.tar.bz2 -/elfutils-0.172.tar.bz2 -/elfutils-0.173.tar.bz2 -/elfutils-0.174.tar.bz2 -/elfutils-0.175.tar.bz2 -/elfutils-0.176.tar.bz2 -/elfutils-0.177.tar.bz2 -/elfutils-0.178.tar.bz2 -/elfutils-0.179.tar.bz2 -/elfutils-0.180.tar.bz2 -/elfutils-0.181.tar.bz2 -/elfutils-0.182.tar.bz2 -/elfutils-0.183.tar.bz2 -/elfutils-0.184.tar.bz2 -/elfutils-0.185.tar.bz2 -/elfutils-0.186.tar.bz2 -/elfutils-0.187.tar.bz2 -/elfutils-0.188.tar.bz2 -/elfutils-0.189.tar.bz2 -/elfutils-0.190.tar.bz2 -/elfutils-0.191.tar.bz2 -/elfutils-0.192.tar.bz2 -/elfutils-0.193.tar.bz2 -/elfutils-0.194.tar.bz2 +elfutils-0.137.tar.gz diff --git a/elfutils-0.137-fixes.patch b/elfutils-0.137-fixes.patch new file mode 100644 index 0000000..d357273 --- /dev/null +++ b/elfutils-0.137-fixes.patch @@ -0,0 +1,174 @@ +--- elfutils-0.137/libdwfl/ChangeLog ++++ elfutils-0.137/libdwfl/ChangeLog +@@ -1,3 +1,17 @@ ++2008-09-29 Roland McGrath ++ ++ * segment.c (insert): Must realloc DWFL->lookup_module here too. ++ (dwfl_report_segment): Clear DWFL->lookup_module before insert calls. ++ ++2008-08-28 Roland McGrath ++ ++ * segment.c (reify_segments): Fix last change. ++ ++2008-08-27 Roland McGrath ++ ++ * linux-proc-maps.c (read_proc_memory): Return 0 for EINVAL or EPERM ++ failure from pread64. ++ + 2008-08-26 Roland McGrath + + * segment.c (reify_segments): Insert a trailing segment for a module +--- elfutils-0.137/libdwfl/linux-proc-maps.c ++++ elfutils-0.137/libdwfl/linux-proc-maps.c +@@ -267,6 +267,9 @@ read_proc_memory (void *arg, void *data, + { + const int fd = *(const int *) arg; + ssize_t nread = pread64 (fd, data, maxread, (off64_t) address); ++ /* Some kernels don't actually let us do this read, ignore those errors. */ ++ if (nread < 0 && (errno == EINVAL || errno == EPERM)) ++ return 0; + if (nread > 0 && (size_t) nread < minread) + nread = 0; + return nread; +--- elfutils-0.137/libdwfl/segment.c ++++ elfutils-0.137/libdwfl/segment.c +@@ -83,12 +83,26 @@ insert (Dwfl *dwfl, size_t i, GElf_Addr + int *nsegndx = realloc (dwfl->lookup_segndx, sizeof nsegndx[0] * n); + if (unlikely (nsegndx == NULL)) + { +- free (naddr); ++ if (naddr != dwfl->lookup_addr) ++ free (naddr); + return true; + } + dwfl->lookup_alloc = n; + dwfl->lookup_addr = naddr; + dwfl->lookup_segndx = nsegndx; ++ ++ if (dwfl->lookup_module != NULL) ++ { ++ /* Make sure this array is big enough too. */ ++ Dwfl_Module **old = dwfl->lookup_module; ++ dwfl->lookup_module = realloc (dwfl->lookup_module, ++ sizeof dwfl->lookup_module[0] * n); ++ if (unlikely (dwfl->lookup_module == NULL)) ++ { ++ free (old); ++ return true; ++ } ++ } + } + + if (unlikely (i < dwfl->lookup_elts)) +@@ -175,9 +189,17 @@ reify_segments (Dwfl *dwfl) + return true; + ++idx; + } ++ else if (dwfl->lookup_addr[idx] < start) ++ { ++ /* The module starts past the end of this segment. ++ Add a new one. */ ++ if (unlikely (insert (dwfl, idx + 1, start, end, -1))) ++ return true; ++ ++idx; ++ } + +- if (((size_t) idx + 1 == dwfl->lookup_elts +- || end < dwfl->lookup_addr[idx + 1]) ++ if ((size_t) idx + 1 < dwfl->lookup_elts ++ && end < dwfl->lookup_addr[idx + 1] + /* The module ends in the middle of this segment. Split it. */ + && unlikely (insert (dwfl, idx + 1, + end, dwfl->lookup_addr[idx + 1], -1))) +@@ -261,6 +283,12 @@ dwfl_report_segment (Dwfl *dwfl, int ndx + phdr->p_align < dwfl->segment_align)) + dwfl->segment_align = phdr->p_align; + ++ if (unlikely (dwfl->lookup_module != NULL)) ++ { ++ free (dwfl->lookup_module); ++ dwfl->lookup_module = NULL; ++ } ++ + GElf_Addr start = segment_start (dwfl, bias + phdr->p_vaddr); + GElf_Addr end = segment_end (dwfl, bias + phdr->p_vaddr + phdr->p_memsz); + +@@ -289,12 +317,6 @@ dwfl_report_segment (Dwfl *dwfl, int ndx + dwfl->lookup_tail_offset = end - bias - phdr->p_vaddr + phdr->p_offset; + dwfl->lookup_tail_ndx = ndx + 1; + +- if (unlikely (dwfl->lookup_module != NULL)) +- { +- free (dwfl->lookup_module); +- dwfl->lookup_module = NULL; +- } +- + return ndx; + } + INTDEF (dwfl_report_segment) +--- elfutils-0.137/libelf/ChangeLog ++++ elfutils-0.137/libelf/ChangeLog +@@ -1,3 +1,9 @@ ++2008-08-27 Roland McGrath ++ ++ * elf_begin.c (get_shnum): Avoid misaligned reads for matching endian. ++ ++ * libelfP.h [!ALLOW_UNALIGNED] (__libelf_type_align): Fix CLASS index. ++ + 2008-08-25 Roland McGrath + + * Makefile.am (libelf_so_LDLIBS): New variable. +--- elfutils-0.137/libelf/elf_begin.c ++++ elfutils-0.137/libelf/elf_begin.c +@@ -111,7 +111,11 @@ get_shnum (void *map_address, unsigned c + bool is32 = e_ident[EI_CLASS] == ELFCLASS32; + + /* Make the ELF header available. */ +- if (e_ident[EI_DATA] == MY_ELFDATA) ++ if (e_ident[EI_DATA] == MY_ELFDATA ++ && (ALLOW_UNALIGNED ++ || (((size_t) e_ident ++ & ((is32 ? __alignof__ (Elf32_Ehdr) : __alignof__ (Elf64_Ehdr)) ++ - 1)) == 0))) + ehdr.p = e_ident; + else + { +@@ -130,8 +134,11 @@ get_shnum (void *map_address, unsigned c + else + memcpy (&ehdr_mem, e_ident, sizeof (Elf32_Ehdr)); + +- CONVERT (ehdr_mem.e32.e_shnum); +- CONVERT (ehdr_mem.e32.e_shoff); ++ if (e_ident[EI_DATA] != MY_ELFDATA) ++ { ++ CONVERT (ehdr_mem.e32.e_shnum); ++ CONVERT (ehdr_mem.e32.e_shoff); ++ } + } + else + { +@@ -143,8 +150,11 @@ get_shnum (void *map_address, unsigned c + else + memcpy (&ehdr_mem, e_ident, sizeof (Elf64_Ehdr)); + +- CONVERT (ehdr_mem.e64.e_shnum); +- CONVERT (ehdr_mem.e64.e_shoff); ++ if (e_ident[EI_DATA] != MY_ELFDATA) ++ { ++ CONVERT (ehdr_mem.e64.e_shnum); ++ CONVERT (ehdr_mem.e64.e_shoff); ++ } + } + } + +--- elfutils-0.137/libelf/libelfP.h ++++ elfutils-0.137/libelf/libelfP.h +@@ -460,7 +460,7 @@ extern const uint_fast8_t __libelf_type_ + version, binary class, and type. */ + extern const uint_fast8_t __libelf_type_aligns[EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM] attribute_hidden; + # define __libelf_type_align(class, type) \ +- (__libelf_type_aligns[LIBELF_EV_IDX][class][type] ?: 1) ++ (__libelf_type_aligns[LIBELF_EV_IDX][class - 1][type] ?: 1) + #else + # define __libelf_type_align(class, type) 1 + #endif diff --git a/elfutils-0.186-fdo-swap.patch b/elfutils-0.186-fdo-swap.patch deleted file mode 100644 index 34b114f..0000000 --- a/elfutils-0.186-fdo-swap.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff --git a/libelf/gelf_getnote.c b/libelf/gelf_getnote.c -index 0f7b9d68..6ef970c5 100644 ---- a/libelf/gelf_getnote.c -+++ b/libelf/gelf_getnote.c -@@ -31,6 +31,7 @@ - #endif - - #include -+#include - #include - #include - -@@ -73,6 +74,22 @@ gelf_getnote (Elf_Data *data, size_t offset, GElf_Nhdr *result, - offset = 0; - else - { -+ /* Workaround FDO package notes on big-endian systems, -+ getting namesz and descsz wrong. Detect it by getting -+ a bad namesz, descsz and byte swapped n_type for -+ NT_FDO_PACKAGING_METADATA. */ -+ if (unlikely (n->n_type == bswap_32 (NT_FDO_PACKAGING_METADATA) -+ && n->n_namesz > data->d_size -+ && n->n_descsz > data->d_size)) -+ { -+ /* n might not be writable, use result and redirect n. */ -+ *result = *n; -+ result->n_type = bswap_32 (n->n_type); -+ result->n_namesz = bswap_32 (n->n_namesz); -+ result->n_descsz = bswap_32 (n->n_descsz); -+ n = result; -+ } -+ - /* This is slightly tricky, offset is guaranteed to be 4 - byte aligned, which is what we need for the name_offset. - And normally desc_offset is also 4 byte aligned, but not diff --git a/elfutils-0.194-alloc-jobs.patch b/elfutils-0.194-alloc-jobs.patch deleted file mode 100644 index cabf590..0000000 --- a/elfutils-0.194-alloc-jobs.patch +++ /dev/null @@ -1,135 +0,0 @@ -From f66135f16fe44182a3fc5b651d7e5071c936217d Mon Sep 17 00:00:00 2001 -From: Aaron Merey -Date: Mon, 27 Oct 2025 22:00:12 -0400 -Subject: [PATCH] readelf: Allocate job_data one-by-one as needed - -Currently, job_data is stored in an array whose size is equal to the -number of debug sections (.debug_*, .eh_frame, .gdb_index, etc.). - -This size may be too small if a binary contains multiple debug sections -with the same name. For example an ET_REL binary compiled with -ggdb3 -can contain multiple .debug_macro sections. - -Fix this by allocating job_data on the fly when preparing to read a -debug section. This supports an arbitrary number of debug sections -while also avoiding unnecessary memory allocation. - -https://sourceware.org/bugzilla/show_bug.cgi?id=33580 - -Signed-off-by: Aaron Merey ---- - src/readelf.c | 49 +++++++++++++++++++++++++------------------------ - 1 file changed, 25 insertions(+), 24 deletions(-) - -diff --git a/src/readelf.c b/src/readelf.c -index ee6c203d..a2d17358 100644 ---- a/src/readelf.c -+++ b/src/readelf.c -@@ -12200,7 +12200,8 @@ getone_dwflmod (Dwfl_Module *dwflmod, - return DWARF_CB_OK; - } - --typedef struct { -+typedef struct Job_Data { -+ struct Job_Data *next; - Dwfl_Module *dwflmod; - Ebl *ebl; - GElf_Ehdr *ehdr; -@@ -12230,7 +12231,7 @@ do_job (void *data, FILE *out) - If thread safety is not supported or the maximum number of threads is set - to 1, then immediately call START_ROUTINE with the given arguments. */ - static void --schedule_job (job_data jdata[], size_t idx, -+schedule_job (job_data **jdatalist, - void (*start_routine) (Dwfl_Module *, Ebl *, GElf_Ehdr *, - Elf_Scn *, GElf_Shdr *, Dwarf *, FILE *), - Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, -@@ -12239,21 +12240,24 @@ schedule_job (job_data jdata[], size_t idx, - #ifdef USE_LOCKS - if (max_threads > 1) - { -- /* Add to the job queue. */ -- jdata[idx].dwflmod = dwflmod; -- jdata[idx].ebl = ebl; -- jdata[idx].ehdr = ehdr; -- jdata[idx].scn = *scn; -- jdata[idx].shdr = *shdr; -- jdata[idx].dbg = dbg; -- jdata[idx].fp = start_routine; -+ job_data *jdata = xmalloc (sizeof (job_data)); -+ -+ jdata->dwflmod = dwflmod; -+ jdata->ebl = ebl; -+ jdata->ehdr = ehdr; -+ jdata->scn = *scn; -+ jdata->shdr = *shdr; -+ jdata->dbg = dbg; -+ jdata->fp = start_routine; -+ jdata->next = *jdatalist; -+ *jdatalist = jdata; - -- add_job (do_job, (void *) &jdata[idx]); -+ add_job (do_job, (void *) jdata); - } - else - start_routine (dwflmod, ebl, ehdr, scn, shdr, dbg, stdout); - #else -- (void) jdata; (void) idx; -+ (void) jdatalist; - - start_routine (dwflmod, ebl, ehdr, scn, shdr, dbg, stdout); - #endif -@@ -12431,8 +12435,7 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr) - if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0)) - error_exit (0, _("cannot get section header string table index")); - -- ssize_t num_jobs = 0; -- job_data *jdata = NULL; -+ job_data *jdatalist = NULL; - - /* If the .debug_info section is listed as implicitly required then - we must make sure to handle it before handling any other debug -@@ -12531,13 +12534,6 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr) - if (name == NULL) - continue; - -- if (jdata == NULL) -- { -- jdata = calloc (ndebug_sections, sizeof (*jdata)); -- if (jdata == NULL) -- error_exit (0, _("failed to allocate job data")); -- } -- - int n; - for (n = 0; n < ndebug_sections; ++n) - { -@@ -12561,10 +12557,9 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr) - { - if (((print_debug_sections | implicit_debug_sections) - & debug_sections[n].bitmask)) -- schedule_job (jdata, num_jobs++, debug_sections[n].fp, -+ schedule_job (&jdatalist, debug_sections[n].fp, - dwflmod, ebl, ehdr, scn, shdr, dbg); - -- assert (num_jobs <= ndebug_sections); - break; - } - } -@@ -12579,7 +12574,13 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr) - - dwfl_end (skel_dwfl); - free (skel_name); -- free (jdata); -+ -+ while (jdatalist != NULL) -+ { -+ job_data *jdata = jdatalist; -+ jdatalist = jdatalist->next; -+ free (jdata); -+ } - - /* Turn implicit and/or explicit back on in case we go over another file. */ - if (implicit_info) --- -2.51.0 - diff --git a/elfutils-0.194-fix-const.patch b/elfutils-0.194-fix-const.patch deleted file mode 100644 index 085f899..0000000 --- a/elfutils-0.194-fix-const.patch +++ /dev/null @@ -1,301 +0,0 @@ -From 4a5cf8be906d5991e7527e69e3f2ceaa74811301 Mon Sep 17 00:00:00 2001 -From: Andreas Schwab -Date: Mon, 24 Nov 2025 13:46:16 +0100 -Subject: [PATCH] Fix const-correctness issues - -These were uncovered by the C23 const-preserving library macros. ---- - debuginfod/debuginfod-client.c | 2 +- - libcpu/riscv_disasm.c | 52 +++++++++++++++++----------------- - libdw/dwarf_getsrclines.c | 6 ++-- - src/readelf.c | 8 +++--- - 4 files changed, 34 insertions(+), 34 deletions(-) - -diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c -index c0ff5967..c5bc8a4f 100644 ---- a/debuginfod/debuginfod-client.c -+++ b/debuginfod/debuginfod-client.c -@@ -3104,7 +3104,7 @@ int debuginfod_add_http_header (debuginfod_client *client, const char* header) - /* Sanity check header value is of the form Header: Value. - It should contain at least one colon that isn't the first or - last character. */ -- char *colon = strchr (header, ':'); /* first colon */ -+ const char *colon = strchr (header, ':'); /* first colon */ - if (colon == NULL /* present */ - || colon == header /* not at beginning - i.e., have a header name */ - || *(colon + 1) == '\0') /* not at end - i.e., have a value */ -diff --git a/libcpu/riscv_disasm.c b/libcpu/riscv_disasm.c -index 0dee842a..749d4567 100644 ---- a/libcpu/riscv_disasm.c -+++ b/libcpu/riscv_disasm.c -@@ -77,7 +77,7 @@ static const char *regnames[32] = - "a6", "a7", "s2", "s3", "s4", "s5", "s6", "s7", - "s8", "s9", "s10", "s11", "t3", "t4", "t5", "t6" - }; --#define REG(nr) ((char *) regnames[nr]) -+#define REG(nr) regnames[nr] - #define REGP(nr) REG (8 + (nr)) - - -@@ -88,7 +88,7 @@ static const char *fregnames[32] = - "fa6", "fa7", "fs2", "fs3", "fs4", "fs5", "fs6", "fs7", - "fs8", "fs9", "fs10", "fs11", "ft8", "ft9", "ft10", "ft11" - }; --#define FREG(nr) ((char *) fregnames[nr]) -+#define FREG(nr) fregnames[nr] - #define FREGP(nr) FREG (8 + (nr)) - - -@@ -163,12 +163,12 @@ riscv_disasm (Ebl *ebl, - break; - } - -- char *mne = NULL; -+ const char *mne = NULL; - /* Max length is 24, which is "illegal", so we print it as - "0x<48 hex chars>" - See: No instruction encodings defined for these sizes yet, below */ - char mnebuf[50]; -- char *op[5] = { NULL, NULL, NULL, NULL, NULL }; -+ const char *op[5] = { NULL, NULL, NULL, NULL, NULL }; - char immbuf[32]; - size_t len; - char *strp = NULL; -@@ -400,7 +400,7 @@ riscv_disasm (Ebl *ebl, - { - "sub", "xor", "or", "and", "subw", "addw", NULL, NULL - }; -- mne = (char *) arithmne[((first >> 10) & 0x4) | ((first >> 5) & 0x3)]; -+ mne = arithmne[((first >> 10) & 0x4) | ((first >> 5) & 0x3)]; - } - op[0] = op[1] = REGP ((first >> 7) & 0x7); - break; -@@ -572,7 +572,7 @@ riscv_disasm (Ebl *ebl, - { - NULL, NULL, "flw", "fld", "flq", NULL, NULL, NULL - }; -- mne = (char *) (idx == 0x00 ? loadmne[func] : floadmne[func]); -+ mne = idx == 0x00 ? loadmne[func] : floadmne[func]; - break; - case 0x03: - // MISC-MEM -@@ -595,8 +595,8 @@ riscv_disasm (Ebl *ebl, - uint32_t succ = (word >> 24) & 0xf; - if (pred != 0xf || succ != 0xf) - { -- op[0] = (char *) order[succ]; -- op[1] = (char *) order[pred]; -+ op[0] = order[succ]; -+ op[1] = order[pred]; - } - mne = "fence"; - } -@@ -614,7 +614,7 @@ riscv_disasm (Ebl *ebl, - "addi", NULL, "slti", "sltiu", "xori", NULL, "ori", "andi" - }; - func = (word >> 12) & 0x7; -- mne = (char *) opimmmne[func]; -+ mne = opimmmne[func]; - if (mne == NULL) - { - const uint64_t shiftmask = ebl->class == ELFCLASS32 ? 0x1f : 0x3f; -@@ -697,7 +697,7 @@ riscv_disasm (Ebl *ebl, - { - NULL, NULL, "fsw", "fsd", "fsq", NULL, NULL, NULL - }; -- mne = (char *) (idx == 0x08 ? storemne[func] : fstoremne[func]); -+ mne = idx == 0x08 ? storemne[func] : fstoremne[func]; - break; - case 0x0b: - // AMO -@@ -778,7 +778,7 @@ riscv_disasm (Ebl *ebl, - } - else - { -- mne = (char *) (idx == 0x0c ? arithmne2[func] : arithmne3[func]); -+ mne = idx == 0x0c ? arithmne2[func] : arithmne3[func]; - op[1] = REG (rs1); - op[2] = REG (rs2); - } -@@ -811,7 +811,7 @@ riscv_disasm (Ebl *ebl, - op[2] = FREG (rs2); - op[3] = FREG (rs3); - if (rm != 0x7) -- op[4] = (char *) rndmode[rm]; -+ op[4] = rndmode[rm]; - } - break; - case 0x14: -@@ -839,7 +839,7 @@ riscv_disasm (Ebl *ebl, - op[1] = FREG (rs1); - op[2] = FREG (rs2); - if (rm != 0x7) -- op[3] = (char *) rndmode[rm]; -+ op[3] = rndmode[rm]; - } - else if (func == 0x1c && width != 2 && rs2 == 0 && rm <= 1) - { -@@ -950,7 +950,7 @@ riscv_disasm (Ebl *ebl, - } - mne = mnebuf; - if (rm != 0x7 && (func == 0x18 || width == 0 || rs2 >= 2)) -- op[2] = (char *) rndmode[rm]; -+ op[2] = rndmode[rm]; - } - else if (func == 0x0b && rs2 == 0) - { -@@ -961,7 +961,7 @@ riscv_disasm (Ebl *ebl, - *cp = '\0'; - mne = mnebuf; - if (rm != 0x7) -- op[2] = (char *) rndmode[rm]; -+ op[2] = rndmode[rm]; - } - else if (func == 0x05 && rm < 2) - { -@@ -1007,7 +1007,7 @@ riscv_disasm (Ebl *ebl, - "beq", "bne", NULL, NULL, "blt", "bge", "bltu", "bgeu" - }; - func = (word >> 12) & 0x7; -- mne = (char *) branchmne[func]; -+ mne = branchmne[func]; - if (rs1 == 0 && func == 5) - { - op[0] = op[1]; -@@ -1035,7 +1035,7 @@ riscv_disasm (Ebl *ebl, - else if (func == 5 || func == 7) - { - // binutils use these opcodes and the reverse parameter order -- char *tmp = op[0]; -+ const char *tmp = op[0]; - op[0] = op[1]; - op[1] = tmp; - mne = func == 5 ? "ble" : "bleu"; -@@ -1103,7 +1103,7 @@ riscv_disasm (Ebl *ebl, - { - NULL, "frflags", "frrm", "frsr", - }; -- mne = (char *) unprivrw[csr - 0x000]; -+ mne = unprivrw[csr - 0x000]; - } - else if (csr >= 0xc00 && csr <= 0xc03) - { -@@ -1111,7 +1111,7 @@ riscv_disasm (Ebl *ebl, - { - "rdcycle", "rdtime", "rdinstret" - }; -- mne = (char *) unprivrolow[csr - 0xc00]; -+ mne = unprivrolow[csr - 0xc00]; - } - op[0] = REG ((word >> 7) & 0x1f); - } -@@ -1128,7 +1128,7 @@ riscv_disasm (Ebl *ebl, - { - NULL, "fsflagsi", "fsrmi", NULL - }; -- mne = (char *) ((word & 0x4000) == 0 ? unprivrs : unprivrsi)[csr - 0x000]; -+ mne = ((word & 0x4000) == 0 ? unprivrs : unprivrsi)[csr - 0x000]; - - if ((word & 0x4000) == 0) - op[0] = REG ((word >> 15) & 0x1f); -@@ -1259,12 +1259,12 @@ riscv_disasm (Ebl *ebl, - if (rd != 0) - op[last++] = REG (rd); - struct known_csrs key = { csr, NULL }; -- struct known_csrs *found = bsearch (&key, known, -- sizeof (known) / sizeof (known[0]), -- sizeof (known[0]), -- compare_csr); -+ const struct known_csrs *found = bsearch (&key, known, -+ sizeof (known) / sizeof (known[0]), -+ sizeof (known[0]), -+ compare_csr); - if (found) -- op[last] = (char *) found->name; -+ op[last] = found->name; - else - { - snprintf (addrbuf, sizeof (addrbuf), "0x%" PRIx32, csr); -@@ -1289,7 +1289,7 @@ riscv_disasm (Ebl *ebl, - else if (instr == 3 && rd == 0) - mne = "csrc"; - else -- mne = (char *) mnecsr[instr]; -+ mne = mnecsr[instr]; - } - break; - default: -diff --git a/libdw/dwarf_getsrclines.c b/libdw/dwarf_getsrclines.c -index be10cdee..76db2929 100644 ---- a/libdw/dwarf_getsrclines.c -+++ b/libdw/dwarf_getsrclines.c -@@ -364,7 +364,7 @@ read_srcfiles (Dwarf *dbg, - const unsigned char *dirp = linep; - while (dirp < lineendp && *dirp != 0) - { -- uint8_t *endp = memchr (dirp, '\0', lineendp - dirp); -+ const uint8_t *endp = memchr (dirp, '\0', lineendp - dirp); - if (endp == NULL) - goto invalid_data; - ++ndirs; -@@ -440,7 +440,7 @@ read_srcfiles (Dwarf *dbg, - for (unsigned int n = 1; n < ndirlist; n++) - { - dirarray[n].dir = (char *) linep; -- uint8_t *endp = memchr (linep, '\0', lineendp - linep); -+ const uint8_t *endp = memchr (linep, '\0', lineendp - linep); - assert (endp != NULL); // Checked above when calculating ndirlist. - dirarray[n].len = endp - linep; - linep = endp + 1; -@@ -927,7 +927,7 @@ read_srclines (Dwarf *dbg, - case DW_LNE_define_file: - { - char *fname = (char *) linep; -- uint8_t *endp = memchr (linep, '\0', lineendp - linep); -+ const uint8_t *endp = memchr (linep, '\0', lineendp - linep); - if (endp == NULL) - goto invalid_data; - size_t fnamelen = endp - linep; -diff --git a/src/readelf.c b/src/readelf.c -index a2d17358..fbdf8c71 100644 ---- a/src/readelf.c -+++ b/src/readelf.c -@@ -8269,7 +8269,7 @@ attr_callback (Dwarf_Attribute *attrp, void *arg) - valuestr = dwarf_filesrc (files, num, NULL, NULL); - if (valuestr != NULL) - { -- char *filename = strrchr (valuestr, '/'); -+ const char *filename = strrchr (valuestr, '/'); - if (filename != NULL) - valuestr = filename + 1; - } -@@ -9033,7 +9033,7 @@ print_form_data (Dwarf *dbg, int form, const unsigned char *readp, - Dwarf_Off str_offsets_base, FILE *out) - { - Dwarf_Word val; -- unsigned char *endp; -+ const unsigned char *endp; - Elf_Data *data; - char *str; - switch (form) -@@ -9530,7 +9530,7 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, - { - while (linep < lineendp && *linep != 0) - { -- unsigned char *endp = memchr (linep, '\0', lineendp - linep); -+ const unsigned char *endp = memchr (linep, '\0', lineendp - linep); - if (unlikely (endp == NULL)) - goto invalid_unit; - -@@ -9764,7 +9764,7 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, - case DW_LNE_define_file: - { - char *fname = (char *) linep; -- unsigned char *endp = memchr (linep, '\0', -+ const unsigned char *endp = memchr (linep, '\0', - lineendp - linep); - if (unlikely (endp == NULL)) - goto invalid_unit; --- -2.52.0 - diff --git a/elfutils-debuginfod.sysusers b/elfutils-debuginfod.sysusers deleted file mode 100644 index 18c2561..0000000 --- a/elfutils-debuginfod.sysusers +++ /dev/null @@ -1 +0,0 @@ -u debuginfod - "elfutils debuginfo server" /var/cache/debuginfod - diff --git a/elfutils-portability.patch b/elfutils-portability.patch new file mode 100644 index 0000000..e12a63e --- /dev/null +++ b/elfutils-portability.patch @@ -0,0 +1,1099 @@ +--- elfutils/backends/ChangeLog ++++ elfutils/backends/ChangeLog +@@ -315,6 +315,11 @@ + * sparc_init.c: Likewise. + * x86_64_init.c: Likewise. + ++2005-11-22 Roland McGrath ++ ++ * Makefile.am (LD_AS_NEEDED): New variable, substituted by configure. ++ (libebl_%.so rule): Use it in place of -Wl,--as-needed. ++ + 2005-11-19 Roland McGrath + + * ppc64_reloc.def: REL30 -> ADDR30. +@@ -337,6 +342,9 @@ + * Makefile.am (uninstall): Don't try to remove $(pkgincludedir). + (CLEANFILES): Add libebl_$(m).so. + ++ * Makefile.am (WEXTRA): New variable, substituted by configure. ++ (AM_CFLAGS): Use it in place of -Wextra. ++ + * ppc_reloc.def: Update bits per Alan Modra . + * ppc64_reloc.def: Likewise. + +--- elfutils/backends/Makefile.am ++++ elfutils/backends/Makefile.am +@@ -25,12 +25,14 @@ + ## . + ## + DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DOBJDIR=\"$(shell pwd)\" ++WEXTRA = @WEXTRA@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + if MUDFLAP + AM_CFLAGS = -fmudflap + else + AM_CFLAGS = + endif +-AM_CFLAGS += -fpic -Wall -Wshadow -Werror -Wunused -Wextra -Wformat=2 \ ++AM_CFLAGS += -fpic -Wall -Wshadow -Werror -Wunused $(WEXTRA) -Wformat=2 \ + -std=gnu99 + INCLUDES = -I$(srcdir) -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \ + -I$(top_srcdir)/libelf -I$(top_srcdir)/libdw \ +@@ -59,7 +61,6 @@ endif + + textrel_check = if readelf -d $@ | fgrep -q TEXTREL; then exit 1; fi + +- + i386_SRCS = i386_init.c i386_symbol.c i386_corenote.c \ + i386_retval.c i386_regs.c i386_auxv.c i386_syscall.c + cpu_i386 = ../libcpu/libcpu_i386.a +--- elfutils/backends/Makefile.in ++++ elfutils/backends/Makefile.in +@@ -155,6 +155,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -184,6 +185,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = @VERSION@ ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + YACC = @YACC@ +@@ -239,9 +241,9 @@ target_alias = @target_alias@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + @MUDFLAP_FALSE@AM_CFLAGS = -fpic -Wall -Wshadow -Werror -Wunused \ +-@MUDFLAP_FALSE@ -Wextra -Wformat=2 -std=gnu99 ++@MUDFLAP_FALSE@ $(WEXTRA) -Wformat=2 -std=gnu99 + @MUDFLAP_TRUE@AM_CFLAGS = -fmudflap -fpic -Wall -Wshadow -Werror \ +-@MUDFLAP_TRUE@ -Wunused -Wextra -Wformat=2 -std=gnu99 ++@MUDFLAP_TRUE@ -Wunused $(WEXTRA) -Wformat=2 -std=gnu99 + INCLUDES = -I$(srcdir) -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \ + -I$(top_srcdir)/libelf -I$(top_srcdir)/libdw \ + -I$(top_srcdir)/lib -I.. +--- elfutils/ChangeLog ++++ elfutils/ChangeLog +@@ -39,6 +39,10 @@ + * configure.ac: Add dummy automake conditional to get dependencies + for non-generic linker right. See src/Makefile.am. + ++2005-11-22 Roland McGrath ++ ++ * configure.ac: Check for --as-needed linker option. ++ + 2005-11-18 Roland McGrath + + * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable. +@@ -86,6 +90,17 @@ + * Makefile.am (all_SUBDIRS): Add libdwfl. + * configure.ac: Write libdwfl/Makefile. + ++2005-05-31 Roland McGrath ++ ++ * configure.ac (WEXTRA): Check for -Wextra and set this substitution. ++ ++ * configure.ac: Check for struct stat st_?tim members. ++ * src/strip.c (process_file): Use st_?time if st_?tim are not there. ++ ++ * configure.ac: Check for futimes function. ++ * src/strip.c (handle_elf) [! HAVE_FUTIMES]: Use utimes instead. ++ (handle_ar) [! HAVE_FUTIMES]: Likewise. ++ + 2005-05-19 Roland McGrath + + * configure.ac [AH_BOTTOM] (INTDECL, _INTDECL): New macros. +--- elfutils/config/Makefile.in ++++ elfutils/config/Makefile.in +@@ -72,6 +72,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -101,6 +102,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = @VERSION@ ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + YACC = @YACC@ +--- elfutils/configure ++++ elfutils/configure +@@ -676,6 +676,8 @@ YFLAGS + LEX + LEX_OUTPUT_ROOT + LEXLIB ++WEXTRA ++LD_AS_NEEDED + LOCALEDIR + DATADIRNAME + NATIVE_LD_TRUE +@@ -3894,6 +3896,88 @@ echo "$as_me: error: gcc with C99 suppor + fi + + ++{ echo "$as_me:$LINENO: checking for -Wextra option to $CC" >&5 ++echo $ECHO_N "checking for -Wextra option to $CC... $ECHO_C" >&6; } ++if test "${ac_cv_cc_wextra+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ old_CFLAGS="$CFLAGS" ++CFLAGS="$CFLAGS -Wextra" ++cat >conftest.$ac_ext <<_ACEOF ++void foo (void) { } ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_cc_wextra=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_cc_wextra=no ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++CFLAGS="$old_CFLAGS" ++fi ++{ echo "$as_me:$LINENO: result: $ac_cv_cc_wextra" >&5 ++echo "${ECHO_T}$ac_cv_cc_wextra" >&6; } ++ ++if test "x$ac_cv_cc_wextra" = xyes; then ++ WEXTRA=-Wextra ++else ++ WEXTRA=-W ++fi ++ ++ ++{ echo "$as_me:$LINENO: checking for --as-needed linker option" >&5 ++echo $ECHO_N "checking for --as-needed linker option... $ECHO_C" >&6; } ++if test "${ac_cv_as_needed+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat > conftest.c <&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } ++then ++ ac_cv_as_needed=yes ++else ++ ac_cv_as_needed=no ++fi ++rm -f conftest* ++fi ++{ echo "$as_me:$LINENO: result: $ac_cv_as_needed" >&5 ++echo "${ECHO_T}$ac_cv_as_needed" >&6; } ++if test "x$ac_cv_as_needed" = xyes; then ++ LD_AS_NEEDED=-Wl,--as-needed ++else ++ LD_AS_NEEDED= ++fi ++ ++ ++ ++ + LOCALEDIR=$datadir + + cat >>confdefs.h <<_ACEOF +@@ -5646,8 +5730,8 @@ YFLAGS!$YFLAGS$ac_delim + LEX!$LEX$ac_delim + LEX_OUTPUT_ROOT!$LEX_OUTPUT_ROOT$ac_delim + LEXLIB!$LEXLIB$ac_delim +-LOCALEDIR!$LOCALEDIR$ac_delim +-DATADIRNAME!$DATADIRNAME$ac_delim ++WEXTRA!$WEXTRA$ac_delim ++LD_AS_NEEDED!$LD_AS_NEEDED$ac_delim + _ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then +@@ -5689,6 +5773,8 @@ _ACEOF + ac_delim='%!_!# ' + for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF ++LOCALEDIR!$LOCALEDIR$ac_delim ++DATADIRNAME!$DATADIRNAME$ac_delim + NATIVE_LD_TRUE!$NATIVE_LD_TRUE$ac_delim + NATIVE_LD_FALSE!$NATIVE_LD_FALSE$ac_delim + base_cpu!$base_cpu$ac_delim +@@ -5722,7 +5808,7 @@ LIBOBJS!$LIBOBJS$ac_delim + LTLIBOBJS!$LTLIBOBJS$ac_delim + _ACEOF + +- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 31; then ++ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 33; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +--- elfutils/configure.ac ++++ elfutils/configure.ac +@@ -74,6 +74,34 @@ CFLAGS="$old_CFLAGS"]) + AS_IF([test "x$ac_cv_c99" != xyes], + AC_MSG_ERROR([gcc with C99 support required])) + ++AC_CACHE_CHECK([for -Wextra option to $CC], ac_cv_cc_wextra, [dnl ++old_CFLAGS="$CFLAGS" ++CFLAGS="$CFLAGS -Wextra" ++AC_COMPILE_IFELSE([void foo (void) { }], ++ ac_cv_cc_wextra=yes, ac_cv_cc_wextra=no) ++CFLAGS="$old_CFLAGS"]) ++AC_SUBST(WEXTRA) ++AS_IF([test "x$ac_cv_cc_wextra" = xyes], [WEXTRA=-Wextra], [WEXTRA=-W]) ++ ++AC_CACHE_CHECK([for --as-needed linker option], ++ ac_cv_as_needed, [dnl ++cat > conftest.c <&AS_MESSAGE_LOG_FD]) ++then ++ ac_cv_as_needed=yes ++else ++ ac_cv_as_needed=no ++fi ++rm -f conftest*]) ++AS_IF([test "x$ac_cv_as_needed" = xyes], ++ [LD_AS_NEEDED=-Wl,--as-needed], [LD_AS_NEEDED=]) ++AC_SUBST(LD_AS_NEEDED) ++ ++ + LOCALEDIR=$datadir + AC_SUBST(LOCALEDIR) + AC_DEFINE_UNQUOTED(LOCALEDIR, "$LOCALEDIR") +--- elfutils/lib/ChangeLog ++++ elfutils/lib/ChangeLog +@@ -41,6 +41,11 @@ + * Makefile.am (libeu_a_SOURCES): Add it. + * system.h: Declare crc32_file. + ++2005-02-07 Roland McGrath ++ ++ * Makefile.am (WEXTRA): New variable, substituted by configure. ++ (AM_CFLAGS): Use it in place of -Wextra. ++ + 2005-04-30 Ulrich Drepper + + * Makefile.am: Use -ffunction-sections for xmalloc.c. +--- elfutils/lib/Makefile.am ++++ elfutils/lib/Makefile.am +@@ -25,12 +25,13 @@ + ## . + ## + DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H ++WEXTRA = @WEXTRA@ + if MUDFLAP + AM_CFLAGS = -fmudflap + else + AM_CFLAGS = + endif +-AM_CFLAGS += -fpic -Wall -Wshadow -Werror -Wunused -Wextra $($(*F)_CFLAGS) ++AM_CFLAGS += -fpic -Wall -Wshadow -Werror -Wunused $(WEXTRA) $($(*F)_CFLAGS) + INCLUDES = -I$(srcdir)/../libelf -I.. + + noinst_LIBRARIES = libeu.a +--- elfutils/lib/Makefile.in ++++ elfutils/lib/Makefile.in +@@ -93,6 +93,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -122,6 +123,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = @VERSION@ ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + YACC = @YACC@ +@@ -177,9 +179,9 @@ target_alias = @target_alias@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + @MUDFLAP_FALSE@AM_CFLAGS = -fpic -Wall -Wshadow -Werror -Wunused \ +-@MUDFLAP_FALSE@ -Wextra $($(*F)_CFLAGS) ++@MUDFLAP_FALSE@ $(WEXTRA) $($(*F)_CFLAGS) + @MUDFLAP_TRUE@AM_CFLAGS = -fmudflap -fpic -Wall -Wshadow -Werror \ +-@MUDFLAP_TRUE@ -Wunused -Wextra $($(*F)_CFLAGS) ++@MUDFLAP_TRUE@ -Wunused $(WEXTRA) $($(*F)_CFLAGS) + INCLUDES = -I$(srcdir)/../libelf -I.. + noinst_LIBRARIES = libeu.a + libeu_a_SOURCES = xstrndup.c xmalloc.c next_prime.c \ +--- elfutils/libasm/ChangeLog ++++ elfutils/libasm/ChangeLog +@@ -54,6 +54,11 @@ + * asm_error.c: Add new error ASM_E_IOERROR. + * libasmP.h: Add ASM_E_IOERROR definition. + ++2005-05-31 Roland McGrath ++ ++ * Makefile.am (WEXTRA): New variable, substituted by configure. ++ (AM_CFLAGS): Use it in place of -Wextra. ++ + 2005-02-15 Ulrich Drepper + + * Makefile.am (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2. +--- elfutils/libasm/Makefile.am ++++ elfutils/libasm/Makefile.am +@@ -25,12 +25,13 @@ + ## . + ## + DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H ++WEXTRA = @WEXTRA@ + if MUDFLAP + AM_CFLAGS = -fmudflap + else + AM_CFLAGS = + endif +-AM_CFLAGS += -std=gnu99 -Wall -Wshadow -Werror -Wunused -Wextra -Wformat=2 ++AM_CFLAGS += -std=gnu99 -Wall -Wshadow -Werror -Wunused $(WEXTRA) -Wformat=2 + INCLUDES = -I. -I$(srcdir) -I.. \ + -I$(top_srcdir)/libelf -I$(top_srcdir)/libebl -I$(top_srcdir)/libdw\ + -I$(top_srcdir)/lib +--- elfutils/libasm/Makefile.in ++++ elfutils/libasm/Makefile.in +@@ -126,6 +126,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -155,6 +156,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = 1 ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + YACC = @YACC@ +@@ -210,9 +212,9 @@ target_alias = @target_alias@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + @MUDFLAP_FALSE@AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Werror -Wunused \ +-@MUDFLAP_FALSE@ -Wextra -Wformat=2 ++@MUDFLAP_FALSE@ $(WEXTRA) -Wformat=2 + @MUDFLAP_TRUE@AM_CFLAGS = -fmudflap -std=gnu99 -Wall -Wshadow -Werror \ +-@MUDFLAP_TRUE@ -Wunused -Wextra -Wformat=2 ++@MUDFLAP_TRUE@ -Wunused $(WEXTRA) -Wformat=2 + INCLUDES = -I. -I$(srcdir) -I.. \ + -I$(top_srcdir)/libelf -I$(top_srcdir)/libebl -I$(top_srcdir)/libdw\ + -I$(top_srcdir)/lib +--- elfutils/libcpu/ChangeLog ++++ elfutils/libcpu/ChangeLog +@@ -265,6 +265,11 @@ + * defs/i386.doc: New file. + * defs/x86_64: New file. + ++2005-04-04 Roland McGrath ++ ++ * Makefile.am (WEXTRA): New variable, substituted by configure. ++ (AM_CFLAGS): Use it instead of -Wextra. ++ + 2005-02-15 Ulrich Drepper + + * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2. +--- elfutils/libcpu/Makefile.am ++++ elfutils/libcpu/Makefile.am +@@ -30,7 +30,8 @@ AM_CFLAGS = -fmudflap + else + AM_CFLAGS = + endif +-AM_CFLAGS += -Wall -Wshadow -Wunused -Wextra -std=gnu99 -fpic \ ++WEXTRA = @WEXTRA@ ++AM_CFLAGS += -Wall -Wshadow -Wunused $(WEXTRA) -std=gnu99 -fpic \ + $($(*F)_CFLAGS) \ + $(if $($(*F)_no_Werror),,-Werror) + INCLUDES = -I$(srcdir) -I$(srcdir)/../lib -I$(srcdir)/../libelf \ +--- elfutils/libcpu/Makefile.in ++++ elfutils/libcpu/Makefile.in +@@ -109,6 +109,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = lex.$( + ++ * Makefile.am (WEXTRA): New variable, substituted by configure. ++ (AM_CFLAGS): Use it in place of -Wextra. ++ ++2005-05-31 Roland McGrath ++ + * dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to + formref offset. + +--- elfutils/libdw/Makefile.am ++++ elfutils/libdw/Makefile.am +@@ -25,6 +25,7 @@ + ## . + ## + DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DIS_LIBDW ++WEXTRA = @WEXTRA@ + if MUDFLAP + AM_CFLAGS = -fmudflap + else +@@ -33,7 +34,7 @@ endif + if BUILD_STATIC + AM_CFLAGS += -fpic + endif +-AM_CFLAGS += -Wall -Werror -Wshadow -Wunused -Wformat=2 -Wextra -std=gnu99 ++AM_CFLAGS += -Wall -Werror -Wshadow -Wunused -Wformat=2 $(WEXTRA) -std=gnu99 + INCLUDES = -I. -I$(srcdir) -I$(srcdir)/../libelf -I.. -I$(srcdir)/../lib + VERSION = 1 + +--- elfutils/libdw/Makefile.in ++++ elfutils/libdw/Makefile.in +@@ -164,6 +164,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -193,6 +194,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = 1 ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + YACC = @YACC@ +@@ -248,9 +250,10 @@ target_alias = @target_alias@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + @MUDFLAP_FALSE@AM_CFLAGS = $(am__append_1) -Wall -Werror -Wshadow \ +-@MUDFLAP_FALSE@ -Wunused -Wformat=2 -Wextra -std=gnu99 ++@MUDFLAP_FALSE@ -Wunused -Wformat=2 $(WEXTRA) -std=gnu99 + @MUDFLAP_TRUE@AM_CFLAGS = -fmudflap $(am__append_1) -Wall -Werror \ +-@MUDFLAP_TRUE@ -Wshadow -Wunused -Wformat=2 -Wextra -std=gnu99 ++@MUDFLAP_TRUE@ -Wshadow -Wunused -Wformat=2 $(WEXTRA) \ ++@MUDFLAP_TRUE@ -std=gnu99 + INCLUDES = -I. -I$(srcdir) -I$(srcdir)/../libelf -I.. -I$(srcdir)/../lib + COMPILE.os = $(filter-out -fprofile-arcs, $(filter-out -ftest-coverage, \ + $(COMPILE))) +--- elfutils/libdwfl/ChangeLog ++++ elfutils/libdwfl/ChangeLog +@@ -885,6 +885,11 @@ + + 2005-07-21 Roland McGrath + ++ * Makefile.am (WEXTRA): New variable, substituted by configure. ++ (AM_CFLAGS): Use it in place of -Wextra. ++ ++2005-07-21 Roland McGrath ++ + * Makefile.am (noinst_HEADERS): Add loc2c.c. + + * test2.c (main): Check sscanf result to quiet warning. +--- elfutils/libdwfl/Makefile.am ++++ elfutils/libdwfl/Makefile.am +@@ -27,12 +27,13 @@ + ## . + ## + DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H ++WEXTRA = @WEXTRA@ + if MUDFLAP + AM_CFLAGS = -fmudflap + else + AM_CFLAGS = + endif +-AM_CFLAGS += -Wall -Werror -Wshadow -Wunused -Wformat=2 -Wextra -std=gnu99 ++AM_CFLAGS += -Wall -Werror -Wshadow -Wunused -Wformat=2 $(WEXTRA) -std=gnu99 + INCLUDES = -I. -I$(srcdir) -I$(srcdir)/../libelf -I$(srcdir)/../libebl \ + -I$(srcdir)/../libdw -I.. -I$(srcdir)/../lib + VERSION = 1 +--- elfutils/libdwfl/Makefile.in ++++ elfutils/libdwfl/Makefile.in +@@ -131,6 +131,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -160,6 +161,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = 1 ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + YACC = @YACC@ +@@ -215,9 +217,9 @@ target_alias = @target_alias@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + @MUDFLAP_FALSE@AM_CFLAGS = -Wall -Werror -Wshadow -Wunused -Wformat=2 \ +-@MUDFLAP_FALSE@ -Wextra -std=gnu99 ++@MUDFLAP_FALSE@ $(WEXTRA) -std=gnu99 + @MUDFLAP_TRUE@AM_CFLAGS = -fmudflap -Wall -Werror -Wshadow -Wunused \ +-@MUDFLAP_TRUE@ -Wformat=2 -Wextra -std=gnu99 ++@MUDFLAP_TRUE@ -Wformat=2 $(WEXTRA) -std=gnu99 + INCLUDES = -I. -I$(srcdir) -I$(srcdir)/../libelf -I$(srcdir)/../libebl \ + -I$(srcdir)/../libdw -I.. -I$(srcdir)/../lib + +--- elfutils/libebl/ChangeLog ++++ elfutils/libebl/ChangeLog +@@ -554,6 +554,11 @@ + * Makefile.am (libebl_*_so_SOURCES): Set to $(*_SRCS) so dependency + tracking works right. + ++2005-05-31 Roland McGrath ++ ++ * Makefile.am (WEXTRA): New variable, substituted by configure. ++ (AM_CFLAGS): Use it in place of -Wextra. ++ + 2005-05-21 Ulrich Drepper + + * libebl_x86_64.map: Add x86_64_core_note. +--- elfutils/libebl/Makefile.am ++++ elfutils/libebl/Makefile.am +@@ -25,12 +25,13 @@ + ## . + ## + DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DOBJDIR=\"$(shell pwd)\" ++WEXTRA = @WEXTRA@ + if MUDFLAP + AM_CFLAGS = -fmudflap + else + AM_CFLAGS = + endif +-AM_CFLAGS += -fpic -Wall -Wshadow -Werror -Wunused -Wextra -Wformat=2 \ ++AM_CFLAGS += -fpic -Wall -Wshadow -Werror -Wunused $(WEXTRA) -Wformat=2 \ + -std=gnu99 + + INCLUDES = -I$(srcdir) -I$(top_srcdir)/libelf -I$(top_srcdir)/libdw \ +--- elfutils/libebl/Makefile.in ++++ elfutils/libebl/Makefile.in +@@ -123,6 +123,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -152,6 +153,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = 1 ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + YACC = @YACC@ +@@ -207,9 +209,9 @@ target_alias = @target_alias@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + @MUDFLAP_FALSE@AM_CFLAGS = -fpic -Wall -Wshadow -Werror -Wunused \ +-@MUDFLAP_FALSE@ -Wextra -Wformat=2 -std=gnu99 ++@MUDFLAP_FALSE@ $(WEXTRA) -Wformat=2 -std=gnu99 + @MUDFLAP_TRUE@AM_CFLAGS = -fmudflap -fpic -Wall -Wshadow -Werror \ +-@MUDFLAP_TRUE@ -Wunused -Wextra -Wformat=2 -std=gnu99 ++@MUDFLAP_TRUE@ -Wunused $(WEXTRA) -Wformat=2 -std=gnu99 + INCLUDES = -I$(srcdir) -I$(top_srcdir)/libelf -I$(top_srcdir)/libdw \ + -I$(top_srcdir)/lib -I.. -I$(srcdir)/../libasm + +--- elfutils/libelf/ChangeLog ++++ elfutils/libelf/ChangeLog +@@ -408,6 +408,11 @@ + If section content hasn't been read yet, do it before looking for the + block size. If no section data present, infer size of section header. + ++2005-05-31 Roland McGrath ++ ++ * Makefile.am (WEXTRA): New variable, substituted by configure. ++ (AM_CFLAGS): Use it in place of -Wextra. ++ + 2005-05-11 Ulrich Drepper + + * elf.h: Update again. +--- elfutils/libelf/common.h ++++ elfutils/libelf/common.h +@@ -160,7 +160,7 @@ libelf_release_all (Elf *elf) + (Var) = (sizeof (Var) == 1 \ + ? (unsigned char) (Var) \ + : (sizeof (Var) == 2 \ +- ? bswap_16 (Var) \ ++ ? (unsigned short int) bswap_16 (Var) \ + : (sizeof (Var) == 4 \ + ? bswap_32 (Var) \ + : bswap_64 (Var)))) +@@ -169,7 +169,7 @@ libelf_release_all (Elf *elf) + (Dst) = (sizeof (Var) == 1 \ + ? (unsigned char) (Var) \ + : (sizeof (Var) == 2 \ +- ? bswap_16 (Var) \ ++ ? (unsigned short int) bswap_16 (Var) \ + : (sizeof (Var) == 4 \ + ? bswap_32 (Var) \ + : bswap_64 (Var)))) +--- elfutils/libelf/Makefile.am ++++ elfutils/libelf/Makefile.am +@@ -25,6 +25,7 @@ + ## . + ## + DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H ++WEXTRA = @WEXTRA@ + if MUDFLAP + AM_CFLAGS = -fmudflap + else +@@ -33,7 +34,7 @@ endif + if BUILD_STATIC + AM_CFLAGS += -fpic + endif +-AM_CFLAGS += -Wall -Wshadow -Werror -Wunused -Wextra -Wformat=2 -std=gnu99 \ ++AM_CFLAGS += -Wall -Wshadow -Werror -Wunused $(WEXTRA) -Wformat=2 -std=gnu99 \ + $($(*F)_CFLAGS) + INCLUDES = -I$(srcdir) -I$(top_srcdir)/lib -I.. + GCC_INCLUDE = -I$(shell $(CC) -print-file-name=include) +--- elfutils/libelf/Makefile.in ++++ elfutils/libelf/Makefile.in +@@ -171,6 +171,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -200,6 +201,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = 1 ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + YACC = @YACC@ +@@ -255,10 +257,10 @@ target_alias = @target_alias@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + @MUDFLAP_FALSE@AM_CFLAGS = $(am__append_1) -Wall -Wshadow -Werror \ +-@MUDFLAP_FALSE@ -Wunused -Wextra -Wformat=2 -std=gnu99 \ ++@MUDFLAP_FALSE@ -Wunused $(WEXTRA) -Wformat=2 -std=gnu99 \ + @MUDFLAP_FALSE@ $($(*F)_CFLAGS) + @MUDFLAP_TRUE@AM_CFLAGS = -fmudflap $(am__append_1) -Wall -Wshadow \ +-@MUDFLAP_TRUE@ -Werror -Wunused -Wextra -Wformat=2 -std=gnu99 \ ++@MUDFLAP_TRUE@ -Werror -Wunused $(WEXTRA) -Wformat=2 -std=gnu99 \ + @MUDFLAP_TRUE@ $($(*F)_CFLAGS) + INCLUDES = -I$(srcdir) -I$(top_srcdir)/lib -I.. + GCC_INCLUDE = -I$(shell $(CC) -print-file-name=include) +--- elfutils/m4/Makefile.in ++++ elfutils/m4/Makefile.in +@@ -71,6 +71,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -100,6 +101,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = @VERSION@ ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + YACC = @YACC@ +--- elfutils/Makefile.in ++++ elfutils/Makefile.in +@@ -98,6 +98,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -127,6 +128,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = @VERSION@ ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + YACC = @YACC@ +--- elfutils/src/ChangeLog ++++ elfutils/src/ChangeLog +@@ -61,6 +61,11 @@ + that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really + is valid in RELRO. + ++2008-03-01 Roland McGrath ++ ++ * readelf.c (dump_archive_index): Tweak portability hack ++ to match [__GNUC__ < 4] too. ++ + 2008-02-29 Roland McGrath + + * readelf.c (print_attributes): Add a cast. +@@ -312,6 +317,8 @@ + + * readelf.c (hex_dump): Fix rounding error in whitespace calculation. + ++ * Makefile.am (readelf_no_Werror): New variable. ++ + 2007-10-15 Roland McGrath + + * make-debug-archive.in: New file. +@@ -751,6 +758,10 @@ + * elflint.c (valid_e_machine): Add EM_ALPHA. + Reported by Christian Aichinger . + ++ * strings.c (map_file): Define POSIX_MADV_SEQUENTIAL to ++ MADV_SEQUENTIAL if undefined. Don't call posix_madvise ++ if neither is defined. ++ + 2006-08-08 Ulrich Drepper + + * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB. +@@ -827,6 +838,10 @@ + * Makefile.am: Add hacks to create dependency files for non-generic + linker. + ++2006-04-05 Roland McGrath ++ ++ * strings.c (MAP_POPULATE): Define to 0 if undefined. ++ + 2006-06-12 Ulrich Drepper + + * ldgeneric.c (ld_generic_generate_sections): Don't create .interp +@@ -1175,6 +1190,11 @@ + * readelf.c (print_debug_loc_section): Fix indentation for larger + address size. + ++2005-05-31 Roland McGrath ++ ++ * Makefile.am (WEXTRA): New variable, substituted by configure. ++ (AM_CFLAGS): Use it in place of -Wextra. ++ + 2005-05-30 Roland McGrath + + * readelf.c (print_debug_line_section): Print section offset of each +--- elfutils/src/findtextrel.c ++++ elfutils/src/findtextrel.c +@@ -488,7 +488,11 @@ ptrcompare (const void *p1, const void * + + + static void +-check_rel (size_t nsegments, struct segments segments[nsegments], ++check_rel (size_t nsegments, struct segments segments[ ++#if __GNUC__ >= 4 ++ nsegments ++#endif ++ ], + GElf_Addr addr, Elf *elf, Elf_Scn *symscn, Dwarf *dw, + const char *fname, bool more_than_one, void **knownsrcs) + { +--- elfutils/src/Makefile.am ++++ elfutils/src/Makefile.am +@@ -26,6 +26,7 @@ + ## + DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H $(YYDEBUG) -DDEBUGPRED=@DEBUGPRED@ \ + -DSRCDIR=\"$(shell cd $(srcdir);pwd)\" -DOBJDIR=\"$(shell pwd)\" ++WEXTRA = @WEXTRA@ + if MUDFLAP + AM_CFLAGS = -fmudflap + else +@@ -33,7 +34,7 @@ AM_CFLAGS = + endif + AM_CFLAGS += -Wall -Wshadow -std=gnu99 $(native_ld_cflags) \ + $(if $($(*F)_no_Werror),,-Werror) \ +- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ ++ $(if $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) \ + $(if $($(*F)_no_Wformat),,-Wformat=2) $(CFLAGS_$(*F)) + + INCLUDES = -I$(srcdir) -I$(srcdir)/../libelf -I$(srcdir)/../libebl \ +@@ -111,6 +112,9 @@ strings_no_Wformat = yes + # XXX While the file is not finished, don't warn about this + ldgeneric_no_Wunused = yes + ++# Buggy old compilers. ++readelf_no_Werror = yes ++ + readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl + nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl + size_LDADD = $(libelf) $(libeu) $(libmudflap) +--- elfutils/src/Makefile.in ++++ elfutils/src/Makefile.in +@@ -201,6 +201,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -230,6 +231,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = @VERSION@ ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + YACC = @YACC@ -d +@@ -287,13 +289,13 @@ top_srcdir = @top_srcdir@ + @MUDFLAP_FALSE@AM_CFLAGS = -Wall -Wshadow -std=gnu99 \ + @MUDFLAP_FALSE@ $(native_ld_cflags) $(if \ + @MUDFLAP_FALSE@ $($(*F)_no_Werror),,-Werror) $(if \ +-@MUDFLAP_FALSE@ $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \ ++@MUDFLAP_FALSE@ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ + @MUDFLAP_FALSE@ $($(*F)_no_Wformat),,-Wformat=2) \ + @MUDFLAP_FALSE@ $(CFLAGS_$(*F)) + @MUDFLAP_TRUE@AM_CFLAGS = -fmudflap -Wall -Wshadow -std=gnu99 \ + @MUDFLAP_TRUE@ $(native_ld_cflags) $(if \ + @MUDFLAP_TRUE@ $($(*F)_no_Werror),,-Werror) $(if \ +-@MUDFLAP_TRUE@ $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \ ++@MUDFLAP_TRUE@ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ + @MUDFLAP_TRUE@ $($(*F)_no_Wformat),,-Wformat=2) $(CFLAGS_$(*F)) + INCLUDES = -I$(srcdir) -I$(srcdir)/../libelf -I$(srcdir)/../libebl \ + -I$(srcdir)/../libdw -I$(srcdir)/../libdwfl \ +@@ -337,6 +339,9 @@ size_no_Wformat = yes + strings_no_Wformat = yes + # XXX While the file is not finished, don't warn about this + ldgeneric_no_Wunused = yes ++ ++# Buggy old compilers. ++readelf_no_Werror = yes + readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl + nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl + size_LDADD = $(libelf) $(libeu) $(libmudflap) +--- elfutils/src/readelf.c ++++ elfutils/src/readelf.c +@@ -6419,7 +6419,7 @@ dump_archive_index (Elf *elf, const char + if (unlikely (elf_rand (elf, as_off) == 0) + || unlikely ((subelf = elf_begin (-1, ELF_C_READ_MMAP, elf)) + == NULL)) +-#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 7) ++#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 7) || __GNUC__ < 4 + while (1) + #endif + error (EXIT_FAILURE, 0, +--- elfutils/src/strings.c ++++ elfutils/src/strings.c +@@ -51,6 +51,10 @@ + + #include + ++#ifndef MAP_POPULATE ++# define MAP_POPULATE 0 ++#endif ++ + + /* Prototypes of local functions. */ + static int read_fd (int fd, const char *fname, off64_t fdlen); +@@ -491,8 +495,13 @@ map_file (int fd, off64_t start_off, off + fd, start_off); + if (mem != MAP_FAILED) + { ++#if !defined POSIX_MADV_SEQUENTIAL && defined MADV_SEQUENTIAL ++# define POSIX_MADV_SEQUENTIAL MADV_SEQUENTIAL ++#endif ++#ifdef POSIX_MADV_SEQUENTIAL + /* We will go through the mapping sequentially. */ + (void) posix_madvise (mem, map_size, POSIX_MADV_SEQUENTIAL); ++#endif + break; + } + if (errno != EINVAL && errno != ENOMEM) +--- elfutils/src/strip.c ++++ elfutils/src/strip.c +@@ -52,6 +52,12 @@ + #include + #include + ++#ifdef HAVE_FUTIMES ++# define FUTIMES(fd, fname, tvp) futimes (fd, tvp) ++#else ++# define FUTIMES(fd, fname, tvp) utimes (fname, tvp) ++#endif ++ + + /* Name and version of program. */ + static void print_version (FILE *stream, struct argp_state *state); +@@ -300,8 +306,18 @@ process_file (const char *fname) + + /* If we have to preserve the timestamp, we need it in the + format utimes() understands. */ ++#ifdef HAVE_STRUCT_STAT_ST_ATIM + TIMESPEC_TO_TIMEVAL (&tv[0], &pre_st.st_atim); ++#else ++ tv[0].tv_sec = pre_st.st_atime; ++ tv[0].tv_usec = 0; ++#endif ++#ifdef HAVE_STRUCT_STAT_ST_MTIM + TIMESPEC_TO_TIMEVAL (&tv[1], &pre_st.st_mtim); ++#else ++ tv[1].tv_sec = pre_st.st_atime; ++ tv[1].tv_usec = 0; ++#endif + } + + /* Open the file. */ +@@ -1745,7 +1761,7 @@ handle_elf (int fd, Elf *elf, const char + /* If requested, preserve the timestamp. */ + if (tvp != NULL) + { +- if (futimes (fd, tvp) != 0) ++ if (FUTIMES (fd, output_fname, tvp) != 0) + { + error (0, errno, gettext ("\ + cannot set access and modification date of '%s'"), +@@ -1802,7 +1818,7 @@ handle_ar (int fd, Elf *elf, const char + + if (tvp != NULL) + { +- if (unlikely (futimes (fd, tvp) != 0)) ++ if (unlikely (FUTIMES (fd, fname, tvp) != 0)) + { + error (0, errno, gettext ("\ + cannot set access and modification date of '%s'"), fname); +--- elfutils/tests/ChangeLog ++++ elfutils/tests/ChangeLog +@@ -51,6 +51,8 @@ + + 2008-01-21 Roland McGrath + ++ * line2addr.c (main): Revert last change. ++ + * testfile45.S.bz2: Add tests for cltq, cqto. + * testfile45.expect.bz2: Adjust. + +@@ -759,6 +761,11 @@ + * Makefile.am (TESTS): Add run-elflint-test.sh. + (EXTRA_DIST): Add run-elflint-test.sh and testfile18.bz2. + ++2005-05-31 Roland McGrath ++ ++ * Makefile.am (WEXTRA): New variable, substituted by configure. ++ (AM_CFLAGS): Use it in place of -Wextra. ++ + 2005-05-24 Ulrich Drepper + + * get-files.c (main): Use correct format specifier. +--- elfutils/tests/line2addr.c ++++ elfutils/tests/line2addr.c +@@ -132,7 +132,7 @@ main (int argc, char *argv[]) + { + struct args a = { .arg = argv[cnt] }; + +- switch (sscanf (a.arg, "%m[^:]:%d", &a.file, &a.line)) ++ switch (sscanf (a.arg, "%a[^:]:%d", &a.file, &a.line)) + { + default: + case 0: +--- elfutils/tests/Makefile.am ++++ elfutils/tests/Makefile.am +@@ -25,12 +25,13 @@ + ## . + ## + DEFS = -DHAVE_CONFIG_H -D_GNU_SOURCE ++WEXTRA = @WEXTRA@ + if MUDFLAP +-AM_CFLAGS = -Wall -Werror -Wextra -std=gnu99 -fmudflap\ ++AM_CFLAGS = -Wall -Werror $(WEXTRA) -std=gnu99 -fmudflap\ + $(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2) + BUILD_RPATH = \$$ORIGIN/../backends + else +-AM_CFLAGS = -Wall -Werror -Wextra -std=gnu99 \ ++AM_CFLAGS = -Wall -Werror $(WEXTRA) -std=gnu99 \ + $(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2) + BUILT_RPATH = \$$ORIGIN/../libasm:\$$ORIGIN/../libdw:\$$ORIGIN/../backends:\$$ORIGIN/../libelf + endif +--- elfutils/tests/Makefile.in ++++ elfutils/tests/Makefile.in +@@ -335,6 +335,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -364,6 +365,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = @VERSION@ ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + YACC = @YACC@ +@@ -418,10 +420,10 @@ sysconfdir = @sysconfdir@ + target_alias = @target_alias@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ +-@MUDFLAP_FALSE@AM_CFLAGS = -Wall -Werror -Wextra -std=gnu99 \ ++@MUDFLAP_FALSE@AM_CFLAGS = -Wall -Werror $(WEXTRA) -std=gnu99 \ + @MUDFLAP_FALSE@ $(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2) + +-@MUDFLAP_TRUE@AM_CFLAGS = -Wall -Werror -Wextra -std=gnu99 -fmudflap\ ++@MUDFLAP_TRUE@AM_CFLAGS = -Wall -Werror $(WEXTRA) -std=gnu99 -fmudflap\ + @MUDFLAP_TRUE@ $(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2) + + @MUDFLAP_TRUE@BUILD_RPATH = \$$ORIGIN/../backends diff --git a/elfutils-robustify.patch b/elfutils-robustify.patch new file mode 100644 index 0000000..1c3d3e7 --- /dev/null +++ b/elfutils-robustify.patch @@ -0,0 +1,1544 @@ +src/ +2005-06-09 Roland McGrath + + * readelf.c (handle_dynamic, handle_symtab): Check for bogus sh_link. + (handle_verneed, handle_verdef, handle_versym, handle_hash): Likewise. + (handle_scngrp): Check for bogus sh_info. + + * strip.c (handle_elf): Check for bogus values in sh_link, sh_info, + st_shndx, e_shstrndx, and SHT_GROUP or SHT_SYMTAB_SHNDX data. + Don't use assert on input values, instead bail with "illformed" error. + +2005-05-17 Jakub Jelinek + +libelf/ + * elf32_getphdr.c (elfw2(LIBELFBITS,getphdr)): Check if program header + table fits into object's bounds. + * elf_getshstrndx.c (elf_getshstrndx): Add elf->start_offset to + elf->map_address. Check if first section header fits into object's + bounds. + * elf32_getshdr.c (elfw2(LIBELFBITS,getshdr)): + Check if section header table fits into object's bounds. + * elf_begin.c (get_shnum): Ensure section headers fits into + object's bounds. + (file_read_elf): Make sure scncnt is small enough to allocate both + ElfXX_Shdr and Elf_Scn array. Make sure section and program header + tables fit into object's bounds. Avoid memory leak on failure. + +src/ + * elflint.c (check_hash): Don't check entries beyond end of section. + (check_note): Don't crash if gelf_rawchunk fails. + (section_name): Return if gelf_getshdr returns NULL. + +2005-05-14 Jakub Jelinek + +libelf/ + * libelfP.h (INVALID_NDX): Define. + * gelf_getdyn.c (gelf_getdyn): Use it. Remove ndx < 0 test if any. + * gelf_getlib.c (gelf_getlib): Likewise. + * gelf_getmove.c (gelf_getmove): Likewise. + * gelf_getrel.c (gelf_getrel): Likewise. + * gelf_getrela.c (gelf_getrela): Likewise. + * gelf_getsym.c (gelf_getsym): Likewise. + * gelf_getsyminfo.c (gelf_getsyminfo): Likewise. + * gelf_getsymshndx.c (gelf_getsymshndx): Likewise. + * gelf_getversym.c (gelf_getversym): Likewise. + * gelf_update_dyn.c (gelf_update_dyn): Likewise. + * gelf_update_lib.c (gelf_update_lib): Likewise. + * gelf_update_move.c (gelf_update_move): Likewise. + * gelf_update_rel.c (gelf_update_rel): Likewise. + * gelf_update_rela.c (gelf_update_rela): Likewise. + * gelf_update_sym.c (gelf_update_sym): Likewise. + * gelf_update_syminfo.c (gelf_update_syminfo): Likewise. + * gelf_update_symshndx.c (gelf_update_symshndx): Likewise. + * gelf_update_versym.c (gelf_update_versym): Likewise. + * elf_newscn.c (elf_newscn): Check for overflow. + * elf32_updatefile.c (__elfw2(LIBELFBITS,updatemmap)): Likewise. + (__elfw2(LIBELFBITS,updatefile)): Likewise. + * elf_begin.c (file_read_elf): Likewise. + * elf32_newphdr.c (elfw2(LIBELFBITS,newphdr)): Likewise. + * elf_getarsym.c (elf_getarsym): Likewise. + * elf32_getshdr.c (elfw2(LIBELFBITS,getshdr)): Likewise. +src/ + * elflint.c (section_name): Return "" instead of + crashing on invalid section name. + (check_symtab, is_rel_dyn, check_rela, check_rel, check_dynamic, + check_symtab_shndx, check_hash, check_versym): Robustify. + +--- elfutils-0.136/libelf/elf32_getphdr.c.robustify ++++ elfutils-0.136/libelf/elf32_getphdr.c +@@ -105,6 +105,16 @@ __elfw2(LIBELFBITS,getphdr_wrlock) (elf) + + if (elf->map_address != NULL) + { ++ /* First see whether the information in the ELF header is ++ valid and it does not ask for too much. */ ++ if (unlikely (ehdr->e_phoff >= elf->maximum_size) ++ || unlikely (ehdr->e_phoff + size > elf->maximum_size)) ++ { ++ /* Something is wrong. */ ++ __libelf_seterrno (ELF_E_INVALID_PHDR); ++ goto out; ++ } ++ + /* All the data is already mapped. Use it. */ + void *file_phdr = ((char *) elf->map_address + + elf->start_offset + ehdr->e_phoff); +--- elfutils-0.136/libelf/elf32_getshdr.c.robustify ++++ elfutils-0.136/libelf/elf32_getshdr.c +@@ -1,5 +1,5 @@ + /* Return section header. +- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005, 2007 Red Hat, Inc. ++ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005, 2007, 2008 Red Hat, Inc. + This file is part of Red Hat elfutils. + Written by Ulrich Drepper , 1998. + +@@ -81,7 +81,8 @@ load_shdr_rwlock (Elf_Scn *scn) + goto out; + + size_t shnum; +- if (__elf_getshnum_rdlock (elf, &shnum) != 0) ++ if (__elf_getshnum_rdlock (elf, &shnum) != 0 ++ || shnum > SIZE_MAX / sizeof (ElfW2(LIBELFBITS,Shdr))) + goto out; + size_t size = shnum * sizeof (ElfW2(LIBELFBITS,Shdr)); + +@@ -98,6 +99,16 @@ load_shdr_rwlock (Elf_Scn *scn) + + if (elf->map_address != NULL) + { ++ /* First see whether the information in the ELF header is ++ valid and it does not ask for too much. */ ++ if (unlikely (ehdr->e_shoff >= elf->maximum_size) ++ || unlikely (ehdr->e_shoff + size > elf->maximum_size)) ++ { ++ /* Something is wrong. */ ++ __libelf_seterrno (ELF_E_INVALID_SECTION_HEADER); ++ goto free_and_out; ++ } ++ + ElfW2(LIBELFBITS,Shdr) *notcvt; + + /* All the data is already mapped. If we could use it +--- elfutils-0.136/libelf/elf32_newphdr.c.robustify ++++ elfutils-0.136/libelf/elf32_newphdr.c +@@ -124,6 +124,12 @@ elfw2(LIBELFBITS,newphdr) (elf, count) + else if (elf->state.ELFW(elf,LIBELFBITS).ehdr->e_phnum != count + || elf->state.ELFW(elf,LIBELFBITS).phdr == NULL) + { ++ if (unlikely (count > SIZE_MAX / sizeof (ElfW2(LIBELFBITS,Phdr)))) ++ { ++ result = NULL; ++ goto out; ++ } ++ + /* Allocate a new program header with the appropriate number of + elements. */ + result = (ElfW2(LIBELFBITS,Phdr) *) +--- elfutils-0.136/libelf/elf32_updatefile.c.robustify ++++ elfutils-0.136/libelf/elf32_updatefile.c +@@ -212,6 +212,9 @@ __elfw2(LIBELFBITS,updatemmap) (Elf *elf + /* Write all the sections. Well, only those which are modified. */ + if (shnum > 0) + { ++ if (unlikely (shnum > SIZE_MAX / sizeof (Elf_Scn *))) ++ return 1; ++ + Elf_ScnList *list = &elf->state.ELFW(elf,LIBELFBITS).scns; + Elf_Scn **scns = (Elf_Scn **) alloca (shnum * sizeof (Elf_Scn *)); + char *const shdr_start = ((char *) elf->map_address + elf->start_offset +@@ -582,6 +585,10 @@ __elfw2(LIBELFBITS,updatefile) (Elf *elf + /* Write all the sections. Well, only those which are modified. */ + if (shnum > 0) + { ++ if (unlikely (shnum > SIZE_MAX / (sizeof (Elf_Scn *) ++ + sizeof (ElfW2(LIBELFBITS,Shdr))))) ++ return 1; ++ + off_t shdr_offset = elf->start_offset + ehdr->e_shoff; + #if EV_NUM != 2 + xfct_t shdr_fctp = __elf_xfctstom[__libelf_version - 1][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_SHDR]; +--- elfutils-0.136/libelf/elf_begin.c.robustify ++++ elfutils-0.136/libelf/elf_begin.c +@@ -155,7 +155,8 @@ get_shnum (void *map_address, unsigned c + + if (unlikely (result == 0) && ehdr.e32->e_shoff != 0) + { +- if (ehdr.e32->e_shoff + sizeof (Elf32_Shdr) > maxsize) ++ if (unlikely (ehdr.e32->e_shoff >= maxsize) ++ || unlikely (ehdr.e32->e_shoff + sizeof (Elf32_Shdr) > maxsize)) + /* Cannot read the first section header. */ + return 0; + +@@ -203,7 +204,8 @@ get_shnum (void *map_address, unsigned c + + if (unlikely (result == 0) && ehdr.e64->e_shoff != 0) + { +- if (ehdr.e64->e_shoff + sizeof (Elf64_Shdr) > maxsize) ++ if (unlikely (ehdr.e64->e_shoff >= maxsize) ++ || unlikely (ehdr.e64->e_shoff + sizeof (Elf64_Shdr) > maxsize)) + /* Cannot read the first section header. */ + return 0; + +@@ -275,6 +277,15 @@ file_read_elf (int fildes, void *map_add + /* Could not determine the number of sections. */ + return NULL; + ++ /* Check for too many sections. */ ++ if (e_ident[EI_CLASS] == ELFCLASS32) ++ { ++ if (scncnt > SIZE_MAX / (sizeof (Elf_Scn) + sizeof (Elf32_Shdr))) ++ return NULL; ++ } ++ else if (scncnt > SIZE_MAX / (sizeof (Elf_Scn) + sizeof (Elf64_Shdr))) ++ return NULL; ++ + /* We can now allocate the memory. */ + Elf *elf = allocate_elf (fildes, map_address, offset, maxsize, cmd, parent, + ELF_K_ELF, scncnt * sizeof (Elf_Scn)); +@@ -308,13 +319,31 @@ file_read_elf (int fildes, void *map_add + { + /* We can use the mmapped memory. */ + elf->state.elf32.ehdr = ehdr; ++ ++ if (unlikely (ehdr->e_shoff >= maxsize) ++ || unlikely (ehdr->e_shoff ++ + scncnt * sizeof (Elf32_Shdr) > maxsize)) ++ { ++ free_and_out: ++ free (elf); ++ __libelf_seterrno (ELF_E_INVALID_FILE); ++ return NULL; ++ } + elf->state.elf32.shdr + = (Elf32_Shdr *) ((char *) ehdr + ehdr->e_shoff); ++ + if (ehdr->e_phnum > 0) ++ { + /* Assign a value only if there really is a program + header. Otherwise the value remains NULL. */ ++ if (unlikely (ehdr->e_phoff >= maxsize) ++ || unlikely (ehdr->e_phoff ++ + ehdr->e_phnum ++ * sizeof (Elf32_Phdr) > maxsize)) ++ goto free_and_out; + elf->state.elf32.phdr + = (Elf32_Phdr *) ((char *) ehdr + ehdr->e_phoff); ++ } + + for (size_t cnt = 0; cnt < scncnt; ++cnt) + { +@@ -396,13 +425,26 @@ file_read_elf (int fildes, void *map_add + { + /* We can use the mmapped memory. */ + elf->state.elf64.ehdr = ehdr; ++ ++ if (unlikely (ehdr->e_shoff >= maxsize) ++ || unlikely (ehdr->e_shoff ++ + scncnt * sizeof (Elf32_Shdr) > maxsize)) ++ goto free_and_out; + elf->state.elf64.shdr + = (Elf64_Shdr *) ((char *) ehdr + ehdr->e_shoff); ++ + if (ehdr->e_phnum > 0) ++ { + /* Assign a value only if there really is a program + header. Otherwise the value remains NULL. */ ++ if (unlikely (ehdr->e_phoff >= maxsize) ++ || unlikely (ehdr->e_phoff ++ + ehdr->e_phnum ++ * sizeof (Elf32_Phdr) > maxsize)) ++ goto free_and_out; + elf->state.elf64.phdr + = (Elf64_Phdr *) ((char *) ehdr + ehdr->e_phoff); ++ } + + for (size_t cnt = 0; cnt < scncnt; ++cnt) + { +--- elfutils-0.136/libelf/elf_getarsym.c.robustify ++++ elfutils-0.136/libelf/elf_getarsym.c +@@ -179,6 +179,9 @@ elf_getarsym (elf, ptr) + size_t index_size = atol (tmpbuf); + + if (SARMAG + sizeof (struct ar_hdr) + index_size > elf->maximum_size ++#if SIZE_MAX <= 4294967295U ++ || n >= SIZE_MAX / sizeof (Elf_Arsym) ++#endif + || n * sizeof (uint32_t) > index_size) + { + /* This index table cannot be right since it does not fit into +--- elfutils-0.136/libelf/elf_getshstrndx.c.robustify ++++ elfutils-0.136/libelf/elf_getshstrndx.c +@@ -125,10 +125,25 @@ elf_getshstrndx (elf, dst) + if (elf->map_address != NULL + && elf->state.elf32.ehdr->e_ident[EI_DATA] == MY_ELFDATA + && (ALLOW_UNALIGNED +- || (((size_t) ((char *) elf->map_address + offset)) ++ || (((size_t) ((char *) elf->map_address ++ + elf->start_offset + offset)) + & (__alignof__ (Elf32_Shdr) - 1)) == 0)) ++ { ++ /* First see whether the information in the ELF header is ++ valid and it does not ask for too much. */ ++ if (unlikely (offset + sizeof (Elf32_Shdr) ++ > elf->maximum_size)) ++ { ++ /* Something is wrong. */ ++ __libelf_seterrno (ELF_E_INVALID_SECTION_HEADER); ++ result = -1; ++ goto out; ++ } ++ + /* We can directly access the memory. */ +- num = ((Elf32_Shdr *) (elf->map_address + offset))->sh_link; ++ num = ((Elf32_Shdr *) (elf->map_address + elf->start_offset ++ + offset))->sh_link; ++ } + else + { + /* We avoid reading in all the section headers. Just read +@@ -163,10 +178,25 @@ elf_getshstrndx (elf, dst) + if (elf->map_address != NULL + && elf->state.elf64.ehdr->e_ident[EI_DATA] == MY_ELFDATA + && (ALLOW_UNALIGNED +- || (((size_t) ((char *) elf->map_address + offset)) ++ || (((size_t) ((char *) elf->map_address ++ + elf->start_offset + offset)) + & (__alignof__ (Elf64_Shdr) - 1)) == 0)) ++ { ++ /* First see whether the information in the ELF header is ++ valid and it does not ask for too much. */ ++ if (unlikely (offset + sizeof (Elf64_Shdr) ++ > elf->maximum_size)) ++ { ++ /* Something is wrong. */ ++ __libelf_seterrno (ELF_E_INVALID_SECTION_HEADER); ++ result = -1; ++ goto out; ++ } ++ + /* We can directly access the memory. */ +- num = ((Elf64_Shdr *) (elf->map_address + offset))->sh_link; ++ num = ((Elf64_Shdr *) (elf->map_address ++ + elf->start_offset + offset))->sh_link; ++ } + else + { + /* We avoid reading in all the section headers. Just read +--- elfutils-0.136/libelf/elf_newscn.c.robustify ++++ elfutils-0.136/libelf/elf_newscn.c +@@ -104,10 +104,18 @@ elf_newscn (elf) + else + { + /* We must allocate a new element. */ +- Elf_ScnList *newp; ++ Elf_ScnList *newp = NULL; + + assert (elf->state.elf.scnincr > 0); + ++ if ( ++#if SIZE_MAX <= 4294967295U ++ likely (elf->state.elf.scnincr ++ < SIZE_MAX / 2 / sizeof (Elf_Scn) - sizeof (Elf_ScnList)) ++#else ++ 1 ++#endif ++ ) + newp = (Elf_ScnList *) calloc (sizeof (Elf_ScnList) + + ((elf->state.elf.scnincr *= 2) + * sizeof (Elf_Scn)), 1); +--- elfutils-0.136/libelf/gelf_getdyn.c.robustify ++++ elfutils-0.136/libelf/gelf_getdyn.c +@@ -93,7 +93,8 @@ gelf_getdyn (data, ndx, dst) + table entries has to be adopted. The user better has provided + a buffer where we can store the information. While copying the + data we are converting the format. */ +- if (unlikely ((ndx + 1) * sizeof (Elf32_Dyn) > data_scn->d.d_size)) ++ if (INVALID_NDX (ndx, Elf32_Dyn) ++ || unlikely ((ndx + 1) * sizeof (Elf32_Dyn) > data_scn->d.d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + goto out; +@@ -114,7 +115,8 @@ gelf_getdyn (data, ndx, dst) + + /* The data is already in the correct form. Just make sure the + index is OK. */ +- if (unlikely ((ndx + 1) * sizeof (GElf_Dyn) > data_scn->d.d_size)) ++ if (INVALID_NDX (ndx, GElf_Dyn) ++ || unlikely ((ndx + 1) * sizeof (GElf_Dyn) > data_scn->d.d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + goto out; +--- elfutils-0.136/libelf/gelf_getlib.c.robustify ++++ elfutils-0.136/libelf/gelf_getlib.c +@@ -86,7 +86,8 @@ gelf_getlib (data, ndx, dst) + /* The data is already in the correct form. Just make sure the + index is OK. */ + GElf_Lib *result = NULL; +- if (unlikely ((ndx + 1) * sizeof (GElf_Lib) > data->d_size)) ++ if (INVALID_NDX (ndx, GElf_Lib) ++ || unlikely ((ndx + 1) * sizeof (GElf_Lib) > data->d_size)) + __libelf_seterrno (ELF_E_INVALID_INDEX); + else + { +--- elfutils-0.136/libelf/gelf_getmove.c.robustify ++++ elfutils-0.136/libelf/gelf_getmove.c +@@ -83,7 +83,8 @@ gelf_getmove (data, ndx, dst) + + /* The data is already in the correct form. Just make sure the + index is OK. */ +- if (unlikely ((ndx + 1) * sizeof (GElf_Move) > data->d_size)) ++ if (INVALID_NDX (ndx, GElf_Move) ++ || unlikely ((ndx + 1) * sizeof (GElf_Move) > data->d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + goto out; +--- elfutils-0.136/libelf/gelf_getrela.c.robustify ++++ elfutils-0.136/libelf/gelf_getrela.c +@@ -71,12 +71,6 @@ gelf_getrela (data, ndx, dst) + if (data_scn == NULL) + return NULL; + +- if (unlikely (ndx < 0)) +- { +- __libelf_seterrno (ELF_E_INVALID_INDEX); +- return NULL; +- } +- + if (unlikely (data_scn->d.d_type != ELF_T_RELA)) + { + __libelf_seterrno (ELF_E_INVALID_HANDLE); +@@ -93,7 +87,8 @@ gelf_getrela (data, ndx, dst) + if (scn->elf->class == ELFCLASS32) + { + /* We have to convert the data. */ +- if (unlikely ((ndx + 1) * sizeof (Elf32_Rela) > data_scn->d.d_size)) ++ if (INVALID_NDX (ndx, Elf32_Rela) ++ || unlikely ((ndx + 1) * sizeof (Elf32_Rela) > data_scn->d.d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + result = NULL; +@@ -114,7 +109,8 @@ gelf_getrela (data, ndx, dst) + { + /* Simply copy the data after we made sure we are actually getting + correct data. */ +- if (unlikely ((ndx + 1) * sizeof (Elf64_Rela) > data_scn->d.d_size)) ++ if (INVALID_NDX (ndx, Elf64_Rela) ++ || unlikely ((ndx + 1) * sizeof (Elf64_Rela) > data_scn->d.d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + result = NULL; +--- elfutils-0.136/libelf/gelf_getrel.c.robustify ++++ elfutils-0.136/libelf/gelf_getrel.c +@@ -71,12 +71,6 @@ gelf_getrel (data, ndx, dst) + if (data_scn == NULL) + return NULL; + +- if (unlikely (ndx < 0)) +- { +- __libelf_seterrno (ELF_E_INVALID_INDEX); +- return NULL; +- } +- + if (unlikely (data_scn->d.d_type != ELF_T_REL)) + { + __libelf_seterrno (ELF_E_INVALID_HANDLE); +@@ -93,7 +87,8 @@ gelf_getrel (data, ndx, dst) + if (scn->elf->class == ELFCLASS32) + { + /* We have to convert the data. */ +- if (unlikely ((ndx + 1) * sizeof (Elf32_Rel) > data_scn->d.d_size)) ++ if (INVALID_NDX (ndx, Elf32_Rel) ++ || unlikely ((ndx + 1) * sizeof (Elf32_Rel) > data_scn->d.d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + result = NULL; +@@ -113,7 +108,8 @@ gelf_getrel (data, ndx, dst) + { + /* Simply copy the data after we made sure we are actually getting + correct data. */ +- if (unlikely ((ndx + 1) * sizeof (Elf64_Rel) > data_scn->d.d_size)) ++ if (INVALID_NDX (ndx, Elf64_Rel) ++ || unlikely ((ndx + 1) * sizeof (Elf64_Rel) > data_scn->d.d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + result = NULL; +--- elfutils-0.136/libelf/gelf_getsym.c.robustify ++++ elfutils-0.136/libelf/gelf_getsym.c +@@ -90,7 +90,8 @@ gelf_getsym (data, ndx, dst) + table entries has to be adopted. The user better has provided + a buffer where we can store the information. While copying the + data we are converting the format. */ +- if (unlikely ((ndx + 1) * sizeof (Elf32_Sym) > data->d_size)) ++ if (INVALID_NDX (ndx, Elf32_Sym) ++ || unlikely ((ndx + 1) * sizeof (Elf32_Sym) > data->d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + goto out; +@@ -119,7 +120,8 @@ gelf_getsym (data, ndx, dst) + + /* The data is already in the correct form. Just make sure the + index is OK. */ +- if (unlikely ((ndx + 1) * sizeof (GElf_Sym) > data->d_size)) ++ if (INVALID_NDX (ndx, GElf_Sym) ++ || unlikely ((ndx + 1) * sizeof (GElf_Sym) > data->d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + goto out; +--- elfutils-0.136/libelf/gelf_getsyminfo.c.robustify ++++ elfutils-0.136/libelf/gelf_getsyminfo.c +@@ -84,7 +84,8 @@ gelf_getsyminfo (data, ndx, dst) + + /* The data is already in the correct form. Just make sure the + index is OK. */ +- if (unlikely ((ndx + 1) * sizeof (GElf_Syminfo) > data->d_size)) ++ if (INVALID_NDX (ndx, GElf_Syminfo) ++ || unlikely ((ndx + 1) * sizeof (GElf_Syminfo) > data->d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + goto out; +--- elfutils-0.136/libelf/gelf_getsymshndx.c.robustify ++++ elfutils-0.136/libelf/gelf_getsymshndx.c +@@ -90,7 +90,9 @@ gelf_getsymshndx (symdata, shndxdata, nd + section index table. */ + if (likely (shndxdata_scn != NULL)) + { +- if (unlikely ((ndx + 1) * sizeof (Elf32_Word) > shndxdata_scn->d.d_size)) ++ if (INVALID_NDX (ndx, Elf32_Word) ++ || unlikely ((ndx + 1) * sizeof (Elf32_Word) ++ > shndxdata_scn->d.d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + goto out; +@@ -110,7 +112,8 @@ gelf_getsymshndx (symdata, shndxdata, nd + table entries has to be adopted. The user better has provided + a buffer where we can store the information. While copying the + data we are converting the format. */ +- if (unlikely ((ndx + 1) * sizeof (Elf32_Sym) > symdata->d_size)) ++ if (INVALID_NDX (ndx, Elf32_Sym) ++ || unlikely ((ndx + 1) * sizeof (Elf32_Sym) > symdata->d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + goto out; +@@ -139,7 +142,8 @@ gelf_getsymshndx (symdata, shndxdata, nd + + /* The data is already in the correct form. Just make sure the + index is OK. */ +- if (unlikely ((ndx + 1) * sizeof (GElf_Sym) > symdata->d_size)) ++ if (INVALID_NDX (ndx, GElf_Sym) ++ || unlikely ((ndx + 1) * sizeof (GElf_Sym) > symdata->d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + goto out; +--- elfutils-0.136/libelf/gelf_getversym.c.robustify ++++ elfutils-0.136/libelf/gelf_getversym.c +@@ -92,7 +92,8 @@ gelf_getversym (data, ndx, dst) + + /* The data is already in the correct form. Just make sure the + index is OK. */ +- if (unlikely ((ndx + 1) * sizeof (GElf_Versym) > data->d_size)) ++ if (INVALID_NDX (ndx, GElf_Versym) ++ || unlikely ((ndx + 1) * sizeof (GElf_Versym) > data->d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + result = NULL; +--- elfutils-0.136/libelf/gelf_update_dyn.c.robustify ++++ elfutils-0.136/libelf/gelf_update_dyn.c +@@ -71,12 +71,6 @@ gelf_update_dyn (data, ndx, src) + if (data == NULL) + return 0; + +- if (unlikely (ndx < 0)) +- { +- __libelf_seterrno (ELF_E_INVALID_INDEX); +- return 0; +- } +- + if (unlikely (data_scn->d.d_type != ELF_T_DYN)) + { + /* The type of the data better should match. */ +@@ -102,7 +96,8 @@ gelf_update_dyn (data, ndx, src) + } + + /* Check whether we have to resize the data buffer. */ +- if (unlikely ((ndx + 1) * sizeof (Elf32_Dyn) > data_scn->d.d_size)) ++ if (INVALID_NDX (ndx, Elf32_Dyn) ++ || unlikely ((ndx + 1) * sizeof (Elf32_Dyn) > data_scn->d.d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + goto out; +@@ -116,7 +111,8 @@ gelf_update_dyn (data, ndx, src) + else + { + /* Check whether we have to resize the data buffer. */ +- if (unlikely ((ndx + 1) * sizeof (Elf64_Dyn) > data_scn->d.d_size)) ++ if (INVALID_NDX (ndx, Elf64_Dyn) ++ || unlikely ((ndx + 1) * sizeof (Elf64_Dyn) > data_scn->d.d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + goto out; +--- elfutils-0.136/libelf/gelf_update_lib.c.robustify ++++ elfutils-0.136/libelf/gelf_update_lib.c +@@ -68,12 +68,6 @@ gelf_update_lib (data, ndx, src) + if (data == NULL) + return 0; + +- if (unlikely (ndx < 0)) +- { +- __libelf_seterrno (ELF_E_INVALID_INDEX); +- return 0; +- } +- + Elf_Data_Scn *data_scn = (Elf_Data_Scn *) data; + if (unlikely (data_scn->d.d_type != ELF_T_LIB)) + { +@@ -87,7 +81,8 @@ gelf_update_lib (data, ndx, src) + + /* Check whether we have to resize the data buffer. */ + int result = 0; +- if (unlikely ((ndx + 1) * sizeof (Elf64_Lib) > data_scn->d.d_size)) ++ if (INVALID_NDX (ndx, Elf64_Lib) ++ || unlikely ((ndx + 1) * sizeof (Elf64_Lib) > data_scn->d.d_size)) + __libelf_seterrno (ELF_E_INVALID_INDEX); + else + { +--- elfutils-0.136/libelf/gelf_update_move.c.robustify ++++ elfutils-0.136/libelf/gelf_update_move.c +@@ -75,7 +75,7 @@ gelf_update_move (data, ndx, src) + assert (sizeof (GElf_Move) == sizeof (Elf64_Move)); + + /* Check whether we have to resize the data buffer. */ +- if (unlikely (ndx < 0) ++ if (INVALID_NDX (ndx, GElf_Move) + || unlikely ((ndx + 1) * sizeof (GElf_Move) > data_scn->d.d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); +--- elfutils-0.136/libelf/gelf_update_rela.c.robustify ++++ elfutils-0.136/libelf/gelf_update_rela.c +@@ -68,12 +68,6 @@ gelf_update_rela (Elf_Data *dst, int ndx + if (dst == NULL) + return 0; + +- if (unlikely (ndx < 0)) +- { +- __libelf_seterrno (ELF_E_INVALID_INDEX); +- return 0; +- } +- + if (unlikely (data_scn->d.d_type != ELF_T_RELA)) + { + /* The type of the data better should match. */ +@@ -101,7 +95,8 @@ gelf_update_rela (Elf_Data *dst, int ndx + } + + /* Check whether we have to resize the data buffer. */ +- if (unlikely ((ndx + 1) * sizeof (Elf32_Rela) > data_scn->d.d_size)) ++ if (INVALID_NDX (ndx, Elf32_Rela) ++ || unlikely ((ndx + 1) * sizeof (Elf32_Rela) > data_scn->d.d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + goto out; +@@ -117,7 +112,8 @@ gelf_update_rela (Elf_Data *dst, int ndx + else + { + /* Check whether we have to resize the data buffer. */ +- if (unlikely ((ndx + 1) * sizeof (Elf64_Rela) > data_scn->d.d_size)) ++ if (INVALID_NDX (ndx, Elf64_Rela) ++ || unlikely ((ndx + 1) * sizeof (Elf64_Rela) > data_scn->d.d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + goto out; +--- elfutils-0.136/libelf/gelf_update_rel.c.robustify ++++ elfutils-0.136/libelf/gelf_update_rel.c +@@ -68,12 +68,6 @@ gelf_update_rel (Elf_Data *dst, int ndx, + if (dst == NULL) + return 0; + +- if (unlikely (ndx < 0)) +- { +- __libelf_seterrno (ELF_E_INVALID_INDEX); +- return 0; +- } +- + if (unlikely (data_scn->d.d_type != ELF_T_REL)) + { + /* The type of the data better should match. */ +@@ -99,7 +93,8 @@ gelf_update_rel (Elf_Data *dst, int ndx, + } + + /* Check whether we have to resize the data buffer. */ +- if (unlikely ((ndx + 1) * sizeof (Elf32_Rel) > data_scn->d.d_size)) ++ if (INVALID_NDX (ndx, Elf32_Rel) ++ || unlikely ((ndx + 1) * sizeof (Elf32_Rel) > data_scn->d.d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + goto out; +@@ -114,7 +109,8 @@ gelf_update_rel (Elf_Data *dst, int ndx, + else + { + /* Check whether we have to resize the data buffer. */ +- if (unlikely ((ndx + 1) * sizeof (Elf64_Rel) > data_scn->d.d_size)) ++ if (INVALID_NDX (ndx, Elf64_Rel) ++ || unlikely ((ndx + 1) * sizeof (Elf64_Rel) > data_scn->d.d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + goto out; +--- elfutils-0.136/libelf/gelf_update_sym.c.robustify ++++ elfutils-0.136/libelf/gelf_update_sym.c +@@ -72,12 +72,6 @@ gelf_update_sym (data, ndx, src) + if (data == NULL) + return 0; + +- if (unlikely (ndx < 0)) +- { +- __libelf_seterrno (ELF_E_INVALID_INDEX); +- return 0; +- } +- + if (unlikely (data_scn->d.d_type != ELF_T_SYM)) + { + /* The type of the data better should match. */ +@@ -102,7 +96,8 @@ gelf_update_sym (data, ndx, src) + } + + /* Check whether we have to resize the data buffer. */ +- if (unlikely ((ndx + 1) * sizeof (Elf32_Sym) > data_scn->d.d_size)) ++ if (INVALID_NDX (ndx, Elf32_Sym) ++ || unlikely ((ndx + 1) * sizeof (Elf32_Sym) > data_scn->d.d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + goto out; +@@ -125,7 +120,8 @@ gelf_update_sym (data, ndx, src) + else + { + /* Check whether we have to resize the data buffer. */ +- if (unlikely ((ndx + 1) * sizeof (Elf64_Sym) > data_scn->d.d_size)) ++ if (INVALID_NDX (ndx, Elf64_Sym) ++ || unlikely ((ndx + 1) * sizeof (Elf64_Sym) > data_scn->d.d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + goto out; +--- elfutils-0.136/libelf/gelf_update_syminfo.c.robustify ++++ elfutils-0.136/libelf/gelf_update_syminfo.c +@@ -72,12 +72,6 @@ gelf_update_syminfo (data, ndx, src) + if (data == NULL) + return 0; + +- if (unlikely (ndx < 0)) +- { +- __libelf_seterrno (ELF_E_INVALID_INDEX); +- return 0; +- } +- + if (unlikely (data_scn->d.d_type != ELF_T_SYMINFO)) + { + /* The type of the data better should match. */ +@@ -93,7 +87,8 @@ gelf_update_syminfo (data, ndx, src) + rwlock_wrlock (scn->elf->lock); + + /* Check whether we have to resize the data buffer. */ +- if (unlikely ((ndx + 1) * sizeof (GElf_Syminfo) > data_scn->d.d_size)) ++ if (INVALID_NDX (ndx, GElf_Syminfo) ++ || unlikely ((ndx + 1) * sizeof (GElf_Syminfo) > data_scn->d.d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + goto out; +--- elfutils-0.136/libelf/gelf_update_symshndx.c.robustify ++++ elfutils-0.136/libelf/gelf_update_symshndx.c +@@ -77,12 +77,6 @@ gelf_update_symshndx (symdata, shndxdata + if (symdata == NULL) + return 0; + +- if (unlikely (ndx < 0)) +- { +- __libelf_seterrno (ELF_E_INVALID_INDEX); +- return 0; +- } +- + if (unlikely (symdata_scn->d.d_type != ELF_T_SYM)) + { + /* The type of the data better should match. */ +@@ -128,7 +122,8 @@ gelf_update_symshndx (symdata, shndxdata + } + + /* Check whether we have to resize the data buffer. */ +- if (unlikely ((ndx + 1) * sizeof (Elf32_Sym) > symdata_scn->d.d_size)) ++ if (INVALID_NDX (ndx, Elf32_Sym) ++ || unlikely ((ndx + 1) * sizeof (Elf32_Sym) > symdata_scn->d.d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + goto out; +@@ -151,7 +146,8 @@ gelf_update_symshndx (symdata, shndxdata + else + { + /* Check whether we have to resize the data buffer. */ +- if (unlikely ((ndx + 1) * sizeof (Elf64_Sym) > symdata_scn->d.d_size)) ++ if (INVALID_NDX (ndx, Elf64_Sym) ++ || unlikely ((ndx + 1) * sizeof (Elf64_Sym) > symdata_scn->d.d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + goto out; +--- elfutils-0.136/libelf/gelf_update_versym.c.robustify ++++ elfutils-0.136/libelf/gelf_update_versym.c +@@ -75,7 +75,7 @@ gelf_update_versym (data, ndx, src) + assert (sizeof (GElf_Versym) == sizeof (Elf64_Versym)); + + /* Check whether we have to resize the data buffer. */ +- if (unlikely (ndx < 0) ++ if (INVALID_NDX (ndx, GElf_Versym) + || unlikely ((ndx + 1) * sizeof (GElf_Versym) > data_scn->d.d_size)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); +--- elfutils-0.136/libelf/libelfP.h.robustify ++++ elfutils-0.136/libelf/libelfP.h +@@ -611,4 +611,13 @@ extern uint32_t __libelf_crc32 (uint32_t + /* Align offset to 4 bytes as needed for note name and descriptor data. */ + #define NOTE_ALIGN(n) (((n) + 3) & -4U) + ++/* Convenience macro. Assumes int NDX and TYPE with size at least ++ 2 bytes. */ ++#if SIZE_MAX > 4294967295U ++# define INVALID_NDX(ndx, type) unlikely (ndx < 0) ++#else ++# define INVALID_NDX(ndx, type) \ ++ unlikely ((unsigned int) (ndx) >= SIZE_MAX / sizeof (type)) ++#endif ++ + #endif /* libelfP.h */ +--- elfutils-0.136/src/elflint.c.robustify ++++ elfutils-0.136/src/elflint.c +@@ -131,6 +131,9 @@ static uint32_t shstrndx; + /* Array to count references in section groups. */ + static int *scnref; + ++/* Number of sections. */ ++static unsigned int shnum; ++ + + int + main (int argc, char *argv[]) +@@ -320,10 +323,19 @@ section_name (Ebl *ebl, int idx) + { + GElf_Shdr shdr_mem; + GElf_Shdr *shdr; ++ const char *ret; ++ ++ if ((unsigned int) idx > shnum) ++ return ""; + + shdr = gelf_getshdr (elf_getscn (ebl->elf, idx), &shdr_mem); ++ if (shdr == NULL) ++ return ""; + +- return elf_strptr (ebl->elf, shstrndx, shdr->sh_name); ++ ret = elf_strptr (ebl->elf, shstrndx, shdr->sh_name); ++ if (ret == NULL) ++ return ""; ++ return ret; + } + + +@@ -345,10 +357,6 @@ static const int valid_e_machine[] = + (sizeof (valid_e_machine) / sizeof (valid_e_machine[0])) + + +-/* Number of sections. */ +-static unsigned int shnum; +- +- + static void + check_elf_header (Ebl *ebl, GElf_Ehdr *ehdr, size_t size) + { +@@ -613,7 +621,8 @@ section [%2d] '%s': symbol table cannot + } + } + +- if (shdr->sh_entsize != gelf_fsize (ebl->elf, ELF_T_SYM, 1, EV_CURRENT)) ++ size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_SYM, 1, EV_CURRENT); ++ if (shdr->sh_entsize != sh_entsize) + ERROR (gettext ("\ + section [%2u] '%s': entry size is does not match ElfXX_Sym\n"), + idx, section_name (ebl, idx)); +@@ -651,7 +660,7 @@ section [%2d] '%s': XINDEX for zeroth en + xndxscnidx, section_name (ebl, xndxscnidx)); + } + +- for (size_t cnt = 1; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt) ++ for (size_t cnt = 1; cnt < shdr->sh_size / sh_entsize; ++cnt) + { + sym = gelf_getsymshndx (data, xndxdata, cnt, &sym_mem, &xndx); + if (sym == NULL) +@@ -671,7 +680,8 @@ section [%2d] '%s': symbol %zu: invalid + else + { + name = elf_strptr (ebl->elf, shdr->sh_link, sym->st_name); +- assert (name != NULL); ++ assert (name != NULL ++ || strshdr->sh_type != SHT_STRTAB); + } + + if (sym->st_shndx == SHN_XINDEX) +@@ -1001,9 +1011,11 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e + { + GElf_Shdr rcshdr_mem; + const GElf_Shdr *rcshdr = gelf_getshdr (scn, &rcshdr_mem); +- assert (rcshdr != NULL); + +- if (rcshdr->sh_type == SHT_DYNAMIC) ++ if (rcshdr == NULL) ++ break; ++ ++ if (rcshdr->sh_type == SHT_DYNAMIC && rcshdr->sh_entsize) + { + /* Found the dynamic section. Look through it. */ + Elf_Data *d = elf_getdata (scn, NULL); +@@ -1013,7 +1025,9 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e + { + GElf_Dyn dyn_mem; + GElf_Dyn *dyn = gelf_getdyn (d, cnt, &dyn_mem); +- assert (dyn != NULL); ++ ++ if (dyn == NULL) ++ break; + + if (dyn->d_tag == DT_RELCOUNT) + { +@@ -1027,7 +1041,9 @@ section [%2d] '%s': DT_RELCOUNT used for + /* Does the number specified number of relative + relocations exceed the total number of + relocations? */ +- if (dyn->d_un.d_val > shdr->sh_size / shdr->sh_entsize) ++ if (shdr->sh_entsize != 0 ++ && dyn->d_un.d_val > (shdr->sh_size ++ / shdr->sh_entsize)) + ERROR (gettext ("\ + section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"), + idx, section_name (ebl, idx), +@@ -1187,7 +1203,8 @@ section [%2d] '%s': no relocations for m + } + } + +- if (shdr->sh_entsize != gelf_fsize (ebl->elf, reltype, 1, EV_CURRENT)) ++ size_t sh_entsize = gelf_fsize (ebl->elf, reltype, 1, EV_CURRENT); ++ if (shdr->sh_entsize != sh_entsize) + ERROR (gettext (reltype == ELF_T_RELA ? "\ + section [%2d] '%s': section entry size does not match ElfXX_Rela\n" : "\ + section [%2d] '%s': section entry size does not match ElfXX_Rel\n"), +@@ -1410,7 +1427,8 @@ check_rela (Ebl *ebl, GElf_Ehdr *ehdr, G + Elf_Data *symdata = elf_getdata (symscn, NULL); + enum load_state state = state_undecided; + +- for (size_t cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt) ++ size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_RELA, 1, EV_CURRENT); ++ for (size_t cnt = 0; cnt < shdr->sh_size / sh_entsize; ++cnt) + { + GElf_Rela rela_mem; + GElf_Rela *rela = gelf_getrela (data, cnt, &rela_mem); +@@ -1460,7 +1478,8 @@ check_rel (Ebl *ebl, GElf_Ehdr *ehdr, GE + Elf_Data *symdata = elf_getdata (symscn, NULL); + enum load_state state = state_undecided; + +- for (size_t cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt) ++ size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_REL, 1, EV_CURRENT); ++ for (size_t cnt = 0; cnt < shdr->sh_size / sh_entsize; ++cnt) + { + GElf_Rel rel_mem; + GElf_Rel *rel = gelf_getrel (data, cnt, &rel_mem); +@@ -1563,7 +1582,8 @@ section [%2d] '%s': referenced as string + shdr->sh_link, section_name (ebl, shdr->sh_link), + idx, section_name (ebl, idx)); + +- if (shdr->sh_entsize != gelf_fsize (ebl->elf, ELF_T_DYN, 1, EV_CURRENT)) ++ size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_DYN, 1, EV_CURRENT); ++ if (shdr->sh_entsize != sh_entsize) + ERROR (gettext ("\ + section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"), + idx, section_name (ebl, idx)); +@@ -1573,7 +1593,7 @@ section [%2d] '%s': section entry size d + idx, section_name (ebl, idx)); + + bool non_null_warned = false; +- for (cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt) ++ for (cnt = 0; cnt < shdr->sh_size / sh_entsize; ++cnt) + { + GElf_Dyn dyn_mem; + GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dyn_mem); +@@ -1854,6 +1874,8 @@ section [%2d] '%s': entry size does not + idx, section_name (ebl, idx)); + + if (symshdr != NULL ++ && shdr->sh_entsize ++ && symshdr->sh_entsize + && (shdr->sh_size / shdr->sh_entsize + < symshdr->sh_size / symshdr->sh_entsize)) + ERROR (gettext ("\ +@@ -1880,6 +1902,12 @@ section [%2d] '%s': extended section ind + } + + Elf_Data *data = elf_getdata (elf_getscn (ebl->elf, idx), NULL); ++ if (data == NULL) ++ { ++ ERROR (gettext ("section [%2d] '%s': cannot get section data\n"), ++ idx, section_name (ebl, idx)); ++ return; ++ } + + if (*((Elf32_Word *) data->d_buf) != 0) + ERROR (gettext ("symbol 0 should have zero extended section index\n")); +@@ -1922,7 +1950,7 @@ section [%2d] '%s': hash table section i + + size_t maxidx = nchain; + +- if (symshdr != NULL) ++ if (symshdr != NULL && symshdr->sh_entsize != 0) + { + size_t symsize = symshdr->sh_size / symshdr->sh_entsize; + +@@ -1933,18 +1961,28 @@ section [%2d] '%s': hash table section i + maxidx = symsize; + } + ++ Elf32_Word *buf = (Elf32_Word *) data->d_buf; ++ Elf32_Word *end = (Elf32_Word *) ((char *) data->d_buf + shdr->sh_size); + size_t cnt; + for (cnt = 2; cnt < 2 + nbucket; ++cnt) +- if (((Elf32_Word *) data->d_buf)[cnt] >= maxidx) ++ { ++ if (buf + cnt >= end) ++ break; ++ else if (buf[cnt] >= maxidx) + ERROR (gettext ("\ + section [%2d] '%s': hash bucket reference %zu out of bounds\n"), + idx, section_name (ebl, idx), cnt - 2); ++ } + + for (; cnt < 2 + nbucket + nchain; ++cnt) +- if (((Elf32_Word *) data->d_buf)[cnt] >= maxidx) ++ { ++ if (buf + cnt >= end) ++ break; ++ else if (buf[cnt] >= maxidx) + ERROR (gettext ("\ + section [%2d] '%s': hash chain reference %zu out of bounds\n"), + idx, section_name (ebl, idx), cnt - 2 - nbucket); ++ } + } + + +@@ -1974,18 +2012,28 @@ section [%2d] '%s': hash table section i + maxidx = symsize; + } + ++ Elf64_Xword *buf = (Elf64_Xword *) data->d_buf; ++ Elf64_Xword *end = (Elf64_Xword *) ((char *) data->d_buf + shdr->sh_size); + size_t cnt; + for (cnt = 2; cnt < 2 + nbucket; ++cnt) +- if (((Elf64_Xword *) data->d_buf)[cnt] >= maxidx) ++ { ++ if (buf + cnt >= end) ++ break; ++ else if (buf[cnt] >= maxidx) + ERROR (gettext ("\ + section [%2d] '%s': hash bucket reference %zu out of bounds\n"), + idx, section_name (ebl, idx), cnt - 2); ++ } + + for (; cnt < 2 + nbucket + nchain; ++cnt) +- if (((Elf64_Xword *) data->d_buf)[cnt] >= maxidx) ++ { ++ if (buf + cnt >= end) ++ break; ++ else if (buf[cnt] >= maxidx) + ERROR (gettext ("\ + section [%2d] '%s': hash chain reference %" PRIu64 " out of bounds\n"), +- idx, section_name (ebl, idx), (uint64_t) (cnt - 2 - nbucket)); ++ idx, section_name (ebl, idx), (uint64_t) cnt - 2 - nbucket); ++ } + } + + +@@ -2010,7 +2058,7 @@ section [%2d] '%s': bitmask size not pow + if (shdr->sh_size < (4 + bitmask_words + nbuckets) * sizeof (Elf32_Word)) + { + ERROR (gettext ("\ +-section [%2d] '%s': hash table section is too small (is %ld, expected at least%ld)\n"), ++section [%2d] '%s': hash table section is too small (is %ld, expected at least %ld)\n"), + idx, section_name (ebl, idx), (long int) shdr->sh_size, + (long int) ((4 + bitmask_words + nbuckets) * sizeof (Elf32_Word))); + return; +@@ -2682,8 +2730,9 @@ section [%2d] '%s' refers in sh_link to + + /* The number of elements in the version symbol table must be the + same as the number of symbols. */ +- if (shdr->sh_size / shdr->sh_entsize +- != symshdr->sh_size / symshdr->sh_entsize) ++ if (shdr->sh_entsize && symshdr->sh_entsize ++ && (shdr->sh_size / shdr->sh_entsize ++ != symshdr->sh_size / symshdr->sh_entsize)) + ERROR (gettext ("\ + section [%2d] '%s' has different number of entries than symbol table [%2d] '%s'\n"), + idx, section_name (ebl, idx), +--- elfutils-0.136/src/readelf.c.robustify ++++ elfutils-0.136/src/readelf.c +@@ -1111,6 +1111,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G + Elf32_Word *grpref = (Elf32_Word *) data->d_buf; + + GElf_Sym sym_mem; ++ GElf_Sym *sym = gelf_getsym (symdata, shdr->sh_info, &sym_mem); ++ + printf ((grpref[0] & GRP_COMDAT) + ? ngettext ("\ + \nCOMDAT section group [%2zu] '%s' with signature '%s' contains %zu entry:\n", +@@ -1123,8 +1125,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G + data->d_size / sizeof (Elf32_Word) - 1), + elf_ndxscn (scn), + elf_strptr (ebl->elf, shstrndx, shdr->sh_name), +- elf_strptr (ebl->elf, symshdr->sh_link, +- gelf_getsym (symdata, shdr->sh_info, &sym_mem)->st_name) ++ (sym == NULL ? NULL ++ : elf_strptr (ebl->elf, symshdr->sh_link, sym->st_name)) + ?: gettext (""), + data->d_size / sizeof (Elf32_Word) - 1); + +@@ -1275,7 +1277,8 @@ static void + handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) + { + int class = gelf_getclass (ebl->elf); +- GElf_Shdr glink; ++ GElf_Shdr glink_mem; ++ GElf_Shdr *glink; + Elf_Data *data; + size_t cnt; + size_t shstrndx; +@@ -1290,6 +1293,11 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, + error (EXIT_FAILURE, 0, + gettext ("cannot get section header string table index")); + ++ glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), &glink_mem); ++ if (glink == NULL) ++ error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"), ++ elf_ndxscn (scn)); ++ + printf (ngettext ("\ + \nDynamic segment contains %lu entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", + "\ +@@ -1299,9 +1307,7 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, + class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, + shdr->sh_offset, + (int) shdr->sh_link, +- elf_strptr (ebl->elf, shstrndx, +- gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), +- &glink)->sh_name)); ++ elf_strptr (ebl->elf, shstrndx, glink->sh_name)); + fputs_unlocked (gettext (" Type Value\n"), stdout); + + for (cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt) +@@ -1801,6 +1807,13 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G + error (EXIT_FAILURE, 0, + gettext ("cannot get section header string table index")); + ++ GElf_Shdr glink_mem; ++ GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), ++ &glink_mem); ++ if (glink == NULL) ++ error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"), ++ elf_ndxscn (scn)); ++ + /* Now we can compute the number of entries in the section. */ + unsigned int nsyms = data->d_size / (class == ELFCLASS32 + ? sizeof (Elf32_Sym) +@@ -1811,15 +1824,12 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G + nsyms), + (unsigned int) elf_ndxscn (scn), + elf_strptr (ebl->elf, shstrndx, shdr->sh_name), nsyms); +- GElf_Shdr glink; + printf (ngettext (" %lu local symbol String table: [%2u] '%s'\n", + " %lu local symbols String table: [%2u] '%s'\n", + shdr->sh_info), + (unsigned long int) shdr->sh_info, + (unsigned int) shdr->sh_link, +- elf_strptr (ebl->elf, shstrndx, +- gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), +- &glink)->sh_name)); ++ elf_strptr (ebl->elf, shstrndx, glink->sh_name)); + + fputs_unlocked (class == ELFCLASS32 + ? gettext ("\ +@@ -2055,7 +2065,13 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, + error (EXIT_FAILURE, 0, + gettext ("cannot get section header string table index")); + +- GElf_Shdr glink; ++ GElf_Shdr glink_mem; ++ GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), ++ &glink_mem); ++ if (glink == NULL) ++ error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"), ++ elf_ndxscn (scn)); ++ + printf (ngettext ("\ + \nVersion needs section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", + "\ +@@ -2066,9 +2082,7 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, + class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, + shdr->sh_offset, + (unsigned int) shdr->sh_link, +- elf_strptr (ebl->elf, shstrndx, +- gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), +- &glink)->sh_name)); ++ elf_strptr (ebl->elf, shstrndx, glink->sh_name)); + + unsigned int offset = 0; + for (int cnt = shdr->sh_info; --cnt >= 0; ) +@@ -2121,8 +2135,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G + error (EXIT_FAILURE, 0, + gettext ("cannot get section header string table index")); + ++ GElf_Shdr glink_mem; ++ GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), ++ &glink_mem); ++ if (glink == NULL) ++ error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"), ++ elf_ndxscn (scn)); ++ + int class = gelf_getclass (ebl->elf); +- GElf_Shdr glink; + printf (ngettext ("\ + \nVersion definition section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", + "\ +@@ -2134,9 +2154,7 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G + class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, + shdr->sh_offset, + (unsigned int) shdr->sh_link, +- elf_strptr (ebl->elf, shstrndx, +- gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), +- &glink)->sh_name)); ++ elf_strptr (ebl->elf, shstrndx, glink->sh_name)); + + unsigned int offset = 0; + for (int cnt = shdr->sh_info; --cnt >= 0; ) +@@ -2398,8 +2416,14 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G + filename = NULL; + } + ++ GElf_Shdr glink_mem; ++ GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), ++ &glink_mem); ++ if (glink == NULL) ++ error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"), ++ elf_ndxscn (scn)); ++ + /* Print the header. */ +- GElf_Shdr glink; + printf (ngettext ("\ + \nVersion symbols section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'", + "\ +@@ -2411,9 +2435,7 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G + class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, + shdr->sh_offset, + (unsigned int) shdr->sh_link, +- elf_strptr (ebl->elf, shstrndx, +- gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), +- &glink)->sh_name)); ++ elf_strptr (ebl->elf, shstrndx, glink->sh_name)); + + /* Now we can finally look at the actual contents of this section. */ + for (unsigned int cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt) +@@ -2465,7 +2487,17 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, + for (Elf32_Word cnt = 0; cnt < nbucket; ++cnt) + ++counts[lengths[cnt]]; + +- GElf_Shdr glink; ++ GElf_Shdr glink_mem; ++ GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, ++ shdr->sh_link), ++ &glink_mem); ++ if (glink == NULL) ++ { ++ error (0, 0, gettext ("invalid sh_link value in section %Zu"), ++ elf_ndxscn (scn)); ++ return; ++ } ++ + printf (ngettext ("\ + \nHistogram for bucket list length in section [%2u] '%s' (total of %d bucket):\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", + "\ +@@ -2478,9 +2510,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, + shdr->sh_addr, + shdr->sh_offset, + (unsigned int) shdr->sh_link, +- elf_strptr (ebl->elf, shstrndx, +- gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), +- &glink)->sh_name)); ++ elf_strptr (ebl->elf, shstrndx, glink->sh_name)); + + if (extrastr != NULL) + fputs (extrastr, stdout); +@@ -4039,6 +4069,16 @@ print_debug_aranges_section (Dwfl_Module + return; + } + ++ GElf_Shdr glink_mem; ++ GElf_Shdr *glink; ++ glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), &glink_mem); ++ if (glink == NULL) ++ { ++ error (0, 0, gettext ("invalid sh_link value in section %Zu"), ++ elf_ndxscn (scn)); ++ return; ++ } ++ + printf (ngettext ("\ + \nDWARF section '%s' at offset %#" PRIx64 " contains %zu entry:\n", + "\ +--- elfutils-0.136/src/strip.c.robustify ++++ elfutils-0.136/src/strip.c +@@ -544,6 +544,11 @@ handle_elf (int fd, Elf *elf, const char + goto fail_close; + } + ++ if (shstrndx >= shnum) ++ goto illformed; ++ ++#define elf_assert(test) do { if (!(test)) goto illformed; } while (0) ++ + /* Storage for section information. We leave room for two more + entries since we unconditionally create a section header string + table. Maybe some weird tool created an ELF file without one. +@@ -565,7 +570,7 @@ handle_elf (int fd, Elf *elf, const char + { + /* This should always be true (i.e., there should not be any + holes in the numbering). */ +- assert (elf_ndxscn (scn) == cnt); ++ elf_assert (elf_ndxscn (scn) == cnt); + + shdr_info[cnt].scn = scn; + +@@ -578,6 +583,7 @@ handle_elf (int fd, Elf *elf, const char + shdr_info[cnt].shdr.sh_name); + if (shdr_info[cnt].name == NULL) + { ++ illformed: + error (0, 0, gettext ("illformed file '%s'"), fname); + goto fail_close; + } +@@ -587,6 +593,8 @@ handle_elf (int fd, Elf *elf, const char + + /* Remember the shdr.sh_link value. */ + shdr_info[cnt].old_sh_link = shdr_info[cnt].shdr.sh_link; ++ if (shdr_info[cnt].old_sh_link >= shnum) ++ goto illformed; + + /* Sections in files other than relocatable object files which + are not loaded can be freely moved by us. In relocatable +@@ -599,7 +607,7 @@ handle_elf (int fd, Elf *elf, const char + appropriate reference. */ + if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB_SHNDX)) + { +- assert (shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx == 0); ++ elf_assert (shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx == 0); + shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx = cnt; + } + else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GROUP)) +@@ -616,7 +624,12 @@ handle_elf (int fd, Elf *elf, const char + for (inner = 1; + inner < shdr_info[cnt].data->d_size / sizeof (Elf32_Word); + ++inner) ++ { ++ if (grpref[inner] < shnum) + shdr_info[grpref[inner]].group_idx = cnt; ++ else ++ goto illformed; ++ } + + if (inner == 1 || (inner == 2 && (grpref[0] & GRP_COMDAT) == 0)) + /* If the section group contains only one element and this +@@ -627,7 +640,7 @@ handle_elf (int fd, Elf *elf, const char + } + else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GNU_versym)) + { +- assert (shdr_info[shdr_info[cnt].shdr.sh_link].version_idx == 0); ++ elf_assert (shdr_info[shdr_info[cnt].shdr.sh_link].version_idx == 0); + shdr_info[shdr_info[cnt].shdr.sh_link].version_idx = cnt; + } + +@@ -635,7 +648,7 @@ handle_elf (int fd, Elf *elf, const char + discarded right away. */ + if ((shdr_info[cnt].shdr.sh_flags & SHF_GROUP) != 0) + { +- assert (shdr_info[cnt].group_idx != 0); ++ elf_assert (shdr_info[cnt].group_idx != 0); + + if (shdr_info[shdr_info[cnt].group_idx].idx == 0) + { +@@ -710,11 +723,15 @@ handle_elf (int fd, Elf *elf, const char + { + /* If a relocation section is marked as being removed make + sure the section it is relocating is removed, too. */ +- if ((shdr_info[cnt].shdr.sh_type == SHT_REL ++ if (shdr_info[cnt].shdr.sh_type == SHT_REL + || shdr_info[cnt].shdr.sh_type == SHT_RELA) +- && shdr_info[shdr_info[cnt].shdr.sh_info].idx != 0) ++ { ++ if (shdr_info[cnt].shdr.sh_info >= shnum) ++ goto illformed; ++ else if (shdr_info[shdr_info[cnt].shdr.sh_info].idx != 0) + shdr_info[cnt].idx = 1; + } ++ } + + if (shdr_info[cnt].idx == 1) + { +@@ -741,7 +758,7 @@ handle_elf (int fd, Elf *elf, const char + if (shdr_info[cnt].symtab_idx != 0 + && shdr_info[shdr_info[cnt].symtab_idx].data == NULL) + { +- assert (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB); ++ elf_assert (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB); + + shdr_info[shdr_info[cnt].symtab_idx].data + = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn, +@@ -781,6 +798,9 @@ handle_elf (int fd, Elf *elf, const char + else if (scnidx == SHN_XINDEX) + scnidx = xndx; + ++ if (scnidx >= shnum) ++ goto illformed; ++ + if (shdr_info[scnidx].idx == 0) + /* This symbol table has a real symbol in + a discarded section. So preserve the +@@ -811,12 +831,16 @@ handle_elf (int fd, Elf *elf, const char + } + + /* Handle references through sh_info. */ +- if (SH_INFO_LINK_P (&shdr_info[cnt].shdr) +- && shdr_info[shdr_info[cnt].shdr.sh_info].idx == 0) ++ if (SH_INFO_LINK_P (&shdr_info[cnt].shdr)) ++ { ++ if (shdr_info[cnt].shdr.sh_info >= shnum) ++ goto illformed; ++ else if ( shdr_info[shdr_info[cnt].shdr.sh_info].idx == 0) + { + shdr_info[shdr_info[cnt].shdr.sh_info].idx = 1; + changes |= shdr_info[cnt].shdr.sh_info < cnt; + } ++ } + + /* Mark the section as investigated. */ + shdr_info[cnt].idx = 2; +@@ -954,7 +978,7 @@ handle_elf (int fd, Elf *elf, const char + error (EXIT_FAILURE, 0, gettext ("while generating output file: %s"), + elf_errmsg (-1)); + +- assert (elf_ndxscn (shdr_info[cnt].newscn) == shdr_info[cnt].idx); ++ elf_assert (elf_ndxscn (shdr_info[cnt].newscn) == shdr_info[cnt].idx); + + /* Add this name to the section header string table. */ + shdr_info[cnt].se = ebl_strtabadd (shst, shdr_info[cnt].name, 0); +@@ -991,7 +1015,7 @@ handle_elf (int fd, Elf *elf, const char + error (EXIT_FAILURE, 0, + gettext ("while create section header section: %s"), + elf_errmsg (-1)); +- assert (elf_ndxscn (shdr_info[cnt].newscn) == shdr_info[cnt].idx); ++ elf_assert (elf_ndxscn (shdr_info[cnt].newscn) == shdr_info[cnt].idx); + + shdr_info[cnt].data = elf_newdata (shdr_info[cnt].newscn); + if (shdr_info[cnt].data == NULL) +@@ -1047,7 +1071,7 @@ handle_elf (int fd, Elf *elf, const char + error (EXIT_FAILURE, 0, + gettext ("while create section header section: %s"), + elf_errmsg (-1)); +- assert (elf_ndxscn (shdr_info[cnt].newscn) == idx); ++ elf_assert (elf_ndxscn (shdr_info[cnt].newscn) == idx); + + /* Finalize the string table and fill in the correct indices in the + section headers. */ +@@ -1137,20 +1161,20 @@ handle_elf (int fd, Elf *elf, const char + shndxdata = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn, + NULL); + +- assert ((versiondata->d_size / sizeof (Elf32_Word)) ++ elf_assert ((versiondata->d_size / sizeof (Elf32_Word)) + >= shdr_info[cnt].data->d_size / elsize); + } + + if (shdr_info[cnt].version_idx != 0) + { +- assert (shdr_info[cnt].shdr.sh_type == SHT_DYNSYM); ++ elf_assert (shdr_info[cnt].shdr.sh_type == SHT_DYNSYM); + /* This section has associated version + information. We have to modify that + information, too. */ + versiondata = elf_getdata (shdr_info[shdr_info[cnt].version_idx].scn, + NULL); + +- assert ((versiondata->d_size / sizeof (GElf_Versym)) ++ elf_assert ((versiondata->d_size / sizeof (GElf_Versym)) + >= shdr_info[cnt].data->d_size / elsize); + } + +@@ -1205,7 +1229,7 @@ handle_elf (int fd, Elf *elf, const char + sec = shdr_info[sym->st_shndx].idx; + else + { +- assert (shndxdata != NULL); ++ elf_assert (shndxdata != NULL); + + sec = shdr_info[xshndx].idx; + } +@@ -1226,7 +1250,7 @@ handle_elf (int fd, Elf *elf, const char + nxshndx = sec; + } + +- assert (sec < SHN_LORESERVE || shndxdata != NULL); ++ elf_assert (sec < SHN_LORESERVE || shndxdata != NULL); + + if ((inner != destidx || nshndx != sym->st_shndx + || (shndxdata != NULL && nxshndx != xshndx)) +@@ -1250,7 +1274,7 @@ handle_elf (int fd, Elf *elf, const char + || shdr_info[cnt].debug_data == NULL) + /* This is a section symbol for a section which has + been removed. */ +- assert (GELF_ST_TYPE (sym->st_info) == STT_SECTION); ++ elf_assert (GELF_ST_TYPE (sym->st_info) == STT_SECTION); + } + + if (destidx != inner) +@@ -1437,11 +1461,11 @@ handle_elf (int fd, Elf *elf, const char + { + GElf_Sym sym_mem; + GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem); +- assert (sym != NULL); ++ elf_assert (sym != NULL); + + const char *name = elf_strptr (elf, strshndx, + sym->st_name); +- assert (name != NULL); ++ elf_assert (name != NULL); + size_t hidx = elf_hash (name) % nbucket; + + if (bucket[hidx] == 0) +@@ -1460,7 +1484,7 @@ handle_elf (int fd, Elf *elf, const char + else + { + /* Alpha and S390 64-bit use 64-bit SHT_HASH entries. */ +- assert (shdr_info[cnt].shdr.sh_entsize ++ elf_assert (shdr_info[cnt].shdr.sh_entsize + == sizeof (Elf64_Xword)); + + Elf64_Xword *bucket = (Elf64_Xword *) hashd->d_buf; +@@ -1491,11 +1515,11 @@ handle_elf (int fd, Elf *elf, const char + { + GElf_Sym sym_mem; + GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem); +- assert (sym != NULL); ++ elf_assert (sym != NULL); + + const char *name = elf_strptr (elf, strshndx, + sym->st_name); +- assert (name != NULL); ++ elf_assert (name != NULL); + size_t hidx = elf_hash (name) % nbucket; + + if (bucket[hidx] == 0) diff --git a/elfutils.spec b/elfutils.spec index 803a824..d2d3430 100644 --- a/elfutils.spec +++ b/elfutils.spec @@ -1,180 +1,111 @@ -# Rebuild --with static to enable static subpackages -# This is *not* supported by elfutils maintainers -%bcond_with static +%define eu_version 0.137 +%define eu_release 3 -Name: elfutils -Version: 0.194 -%global baserelease 2 -Release: %{baserelease}%{?dist} -URL: http://elfutils.org/ -%global source_url ftp://sourceware.org/pub/elfutils/%{version}/ -License: GPL-3.0-or-later AND (GPL-2.0-or-later OR LGPL-3.0-or-later) AND GFDL-1.3-no-invariants-or-later -Source: %{?source_url}%{name}-%{version}.tar.bz2 -Source1: elfutils-debuginfod.sysusers -Summary: A collection of utilities and DSOs to handle ELF files and DWARF data - -# Needed for isa specific Provides and Requires. -%global depsuffix %{?_isa}%{!?_isa:-%{_arch}} - -# eu-stacktrace currently only supports x86_64 -%ifarch x86_64 -%global enable_stacktrace 1 +%if %{?_with_compat:1}%{!?_with_compat:0} +%define compat 1 %else -%global enable_stacktrace 0 +%define compat 0 %endif -Requires: elfutils-libelf%{depsuffix} = %{version}-%{release} -Requires: elfutils-libs%{depsuffix} = %{version}-%{release} -Requires: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release} +%if 0%{?fedora} >= 8 +%define scanf_has_m 1 +%endif +%if 0%{?rhel} >= 6 +%define scanf_has_m 1 +%endif -BuildRequires: gcc -# For libstdc++ demangle support -BuildRequires: gcc-c++ +%if 0%{?fedora} >= 7 +%define separate_devel_static 1 +%endif +%if 0%{?rhel} >= 6 +%define separate_devel_static 1 +%endif -BuildRequires: gettext -BuildRequires: bison -BuildRequires: flex +Summary: A collection of utilities and DSOs to handle compiled objects +Name: elfutils +Version: %{eu_version} +%if !%{compat} +Release: %{eu_release}%{?dist} +%else +Release: 0.%{eu_release} +%endif +License: GPLv2 with exceptions +Group: Development/Tools +URL: https://fedorahosted.org/elfutils/ +Source: http://fedorahosted.org/releases/e/l/elfutils/%{name}-%{version}.tar.gz +Patch1: elfutils-portability.patch +Patch2: elfutils-robustify.patch +Patch3: elfutils-0.137-fixes.patch +Requires: elfutils-libelf-%{_arch} = %{version}-%{release} +Requires: elfutils-libs-%{_arch} = %{version}-%{release} -# Compression support -BuildRequires: zlib-devel -BuildRequires: bzip2-devel -BuildRequires: xz-devel -BuildRequires: libzstd-devel - -# For debuginfod -BuildRequires: pkgconfig(libmicrohttpd) >= 0.9.33 -BuildRequires: pkgconfig(libcurl) >= 7.29.0 -BuildRequires: pkgconfig(sqlite3) >= 3.7.17 -BuildRequires: pkgconfig(libarchive) >= 3.1.2 -# For debugindod metadata query -BuildRequires: pkgconfig(json-c) >= 0.11 - -# For tests need to bunzip2 test files. +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildRequires: bison >= 1.875 +BuildRequires: flex >= 2.5.4a BuildRequires: bzip2 -BuildRequires: zstd -# For the run-debuginfod-find.sh test case in %%check for /usr/sbin/ss etc. -BuildRequires: iproute -BuildRequires: procps -BuildRequires: bsdtar -BuildRequires: curl -# For run-debuginfod-response-headers.sh test case -BuildRequires: socat -# For run-debuginfod-find-metadata.sh -BuildRequires: jq - -# For debuginfod rpm IMA verification -BuildRequires: rpm-devel -BuildRequires: ima-evm-utils-devel -BuildRequires: openssl-devel -BuildRequires: rpm-sign - -# For eu-stacktrace -%if %{enable_stacktrace} -BuildRequires: sysprof-capture-devel +%if !%{compat} +BuildRequires: gcc >= 3.4 +# Need that gives unsigned bswap_16 etc. +BuildRequires: glibc-headers >= 2.3.4-11 +%else +BuildRequires: gcc >= 3.2 %endif -BuildRequires: automake -BuildRequires: autoconf -BuildRequires: gettext-devel - -%global _gnu %{nil} -%global _program_prefix eu- - -%global provide_yama_scope 0 - -%if 0%{?fedora} >= 22 || 0%{?rhel} >= 7 -%global provide_yama_scope 1 -%endif - -%global with_sysusers 0 - -%if 0%{?fedora} >= 32 || 0%{?rhel} >= 9 -%global with_sysusers 1 -%endif - -# Patches - -# For s390x... FDO package notes are bogus. -Patch1: elfutils-0.186-fdo-swap.patch - -# Prevent assert failure in readelf for some -ggdb3 binaries. -Patch2: elfutils-0.194-alloc-jobs.patch - -# Fix const warning from newer GCC. -Patch3: elfutils-0.194-fix-const.patch +%define _gnu %{nil} +%define _program_prefix eu- %description -Elfutils is a collection of utilities, including stack (to show -backtraces), nm (for listing symbols from object files), size -(for listing the section sizes of an object or archive file), -strip (for discarding symbols), readelf (to see the raw ELF file -structures), elflint (to check for well-formed ELF files) and -elfcompress (to compress or decompress ELF sections). +Elfutils is a collection of utilities, including ld (a linker), +nm (for listing symbols from object files), size (for listing the +section sizes of an object or archive file), strip (for discarding +symbols), readelf (to see the raw ELF file structures), and elflint +(to check for well-formed ELF files). + %package libs Summary: Libraries to handle compiled objects -License: GPL-2.0-or-later OR LGPL-3.0-or-later -%if 0%{!?_isa:1} -Provides: elfutils-libs%{depsuffix} = %{version}-%{release} -%endif -Requires: elfutils-libelf%{depsuffix} = %{version}-%{release} -%if %{provide_yama_scope} -Requires: default-yama-scope -%endif -%if 0%{?rhel} >= 8 || 0%{?fedora} >= 20 -Recommends: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release} -%else -Requires: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release} -%endif +Group: Development/Tools +Provides: elfutils-libs-%{_arch} = %{version}-%{release} +Requires: elfutils-libelf-%{_arch} = %{version}-%{release} %description libs The elfutils-libs package contains libraries which implement DWARF, ELF, -and machine-specific ELF handling and process introspection. These -libraries are used by the programs in the elfutils package. The -elfutils-devel package enables building other programs using these -libraries. +and machine-specific ELF handling. These libraries are used by the programs +in the elfutils package. The elfutils-devel package enables building +other programs using these libraries. %package devel Summary: Development libraries to handle compiled objects -License: GPL-2.0-or-later OR LGPL-3.0-or-later -%if 0%{!?_isa:1} -Provides: elfutils-devel%{depsuffix} = %{version}-%{release} -%endif -Requires: elfutils-libs%{depsuffix} = %{version}-%{release} -Requires: elfutils-libelf-devel%{depsuffix} = %{version}-%{release} -%if 0%{?rhel} >= 8 || 0%{?fedora} >= 20 -Recommends: elfutils-debuginfod-client-devel%{depsuffix} = %{version}-%{release} -%else -Requires: elfutils-debuginfod-client-devel%{depsuffix} = %{version}-%{release} +Group: Development/Tools +Provides: elfutils-devel-%{_arch} = %{version}-%{release} +Requires: elfutils-libs-%{_arch} = %{version}-%{release} +Requires: elfutils-libelf-devel-%{_arch} = %{version}-%{release} +%if !0%{?separate_devel_static} +Requires: elfutils-devel-static-%{_arch} = %{version}-%{release} %endif %description devel The elfutils-devel package contains the libraries to create -applications for handling compiled objects. libdw provides access -to the DWARF debugging information. libasm provides a programmable +applications for handling compiled objects. libebl provides some +higher-level ELF access functionality. libdw provides access to +the DWARF debugging information. libasm provides a programmable assembler interface. -%if %{with static} %package devel-static Summary: Static archives to handle compiled objects -License: GPL-2.0-or-later OR LGPL-3.0-or-later -%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} +Group: Development/Tools +Provides: elfutils-devel-static-%{_arch} = %{version}-%{release} +Requires: elfutils-devel-%{_arch} = %{version}-%{release} +Requires: elfutils-libelf-devel-static-%{_arch} = %{version}-%{release} %description devel-static The elfutils-devel-static package contains the static archives with the code to handle compiled objects. -%endif %package libelf Summary: Library to read and write ELF files -License: GPL-2.0-or-later OR LGPL-3.0-or-later -%if 0%{!?_isa:1} -Provides: elfutils-libelf%{depsuffix} = %{version}-%{release} -%endif +Group: Development/Tools +Provides: elfutils-libelf-%{_arch} = %{version}-%{release} Obsoletes: libelf <= 0.8.2-2 %description libelf @@ -185,11 +116,12 @@ elfutils package use it also to generate new ELF files. %package libelf-devel Summary: Development support for libelf -License: GPL-2.0-or-later OR LGPL-3.0-or-later -%if 0%{!?_isa:1} -Provides: elfutils-libelf-devel%{depsuffix} = %{version}-%{release} +Group: Development/Tools +Provides: elfutils-libelf-devel-%{_arch} = %{version}-%{release} +Requires: elfutils-libelf-%{_arch} = %{version}-%{release} +%if !0%{?separate_devel_static} +Requires: elfutils-libelf-devel-static-%{_arch} = %{version}-%{release} %endif -Requires: elfutils-libelf%{depsuffix} = %{version}-%{release} Obsoletes: libelf-devel <= 0.8.2-2 %description libelf-devel @@ -198,1413 +130,141 @@ applications for handling compiled objects. libelf allows you to access the internals of the ELF object file format, so you can see the different sections of an ELF file. -%if %{with static} %package libelf-devel-static Summary: Static archive of libelf -License: GPL-2.0-or-later OR LGPL-3.0-or-later -%if 0%{!?_isa:1} -Provides: elfutils-libelf-devel-static%{depsuffix} = %{version}-%{release} -%endif -Requires: elfutils-libelf-devel%{depsuffix} = %{version}-%{release} -Requires: libzstd-static%{depsuffix} +Group: Development/Tools +Provides: elfutils-libelf-devel-static-%{_arch} = %{version}-%{release} +Requires: elfutils-libelf-devel-%{_arch} = %{version}-%{release} %description libelf-devel-static The elfutils-libelf-static package contains the static archive for libelf. -%endif - -%if %{provide_yama_scope} -%package default-yama-scope -Summary: Default yama attach scope sysctl setting -License: GPL-2.0-or-later OR LGPL-3.0-or-later -Provides: default-yama-scope -BuildArch: noarch -# For the sysctl_apply macro we need systemd as build requires. -# We also need systemd-sysctl in post to apply the default kernel config. -# But this creates a circular requirement (see below). And it would always -# pull in systemd even in build containers that don't really need it. -# Luckily systemd is normally always installed already. The only times it -# might not is when we do an initial install (and the cyclic dependency -# chain might be broken) or when installing into a container. In the first -# case we'll reboot soon to apply the default kernel config. In the second -# case we really require that the host has the correct kernel config so it -# also is available inside the container. So if we have weak dependencies -# use Recommends (sadly Recommends(post) doesn't exist). This works because -# in all cases that really matter systemd will already be installed. #1599083 -BuildRequires: systemd >= 215 -%if 0%{?fedora} > 24 || 0%{?rhel} > 7 -Recommends: systemd -%else -Requires(post): systemd -%endif - -%description default-yama-scope -Yama sysctl setting to enable default attach scope settings -enabling programs to use ptrace attach, access to -/proc/PID/{mem,personality,stack,syscall}, and the syscalls -process_vm_readv and process_vm_writev which are used for -interprocess services, communication and introspection -(like synchronisation, signaling, debugging, tracing and -profiling) of processes. -%endif - -%package debuginfod-client -Summary: Library and command line client for build-id HTTP ELF/DWARF server -License: GPL-3.0-or-later AND (GPL-2.0-or-later OR LGPL-3.0-or-later) -%if 0%{!?_isa:1} -Provides: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release} -%endif -# For debuginfod-find binary -Requires: elfutils-libs%{depsuffix} = %{version}-%{release} -Requires: elfutils-libelf%{depsuffix} = %{version}-%{release} - -%package debuginfod-client-devel -Summary: Libraries and headers to build debuginfod client applications -License: GPL-2.0-or-later OR LGPL-3.0-or-later -%if 0%{!?_isa:1} -Provides: elfutils-debuginfod-client-devel%{depsuffix} = %{version}-%{release} -%endif -Requires: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release} - -%package debuginfod -Summary: HTTP ELF/DWARF file server addressed by build-id -License: GPL-3.0-or-later -Requires: elfutils-libs%{depsuffix} = %{version}-%{release} -Requires: elfutils-libelf%{depsuffix} = %{version}-%{release} -Requires: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release} -BuildRequires: systemd -%if %{with_sysusers} -BuildRequires: systemd-rpm-macros -%endif -BuildRequires: make -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd -%if %{with_sysusers} -%{?sysusers_requires_compat} -%else -Requires(pre): shadow-utils -%endif -# To extract .deb files with a bsdtar (= libarchive) subshell -Requires: bsdtar - -%description debuginfod-client -The elfutils-debuginfod-client package contains shared libraries -dynamically loaded from -ldw, which use a debuginfod service -to look up debuginfo and associated data. Also includes a -command-line frontend. - -%description debuginfod-client-devel -The elfutils-debuginfod-client-devel package contains the libraries -to create applications to use the debuginfod service. - -%description debuginfod -The elfutils-debuginfod package contains the debuginfod binary -and control files for a service that can provide ELF/DWARF -files to remote clients, based on build-id identification. -The ELF/DWARF file searching functions in libdwfl can query -such servers to download those files on demand. %prep -%autosetup -p1 +%setup -q -autoreconf -f -v -i +%if !0%{?scanf_has_m} +sed -i.scanf-m -e 's/%m/%a/' tests/line2addr.c +%endif + +%if %{compat} +%patch1 -p1 -b .portability +sleep 1 +find . \( -name Makefile.in -o -name aclocal.m4 \) -print | xargs touch +sleep 1 +find . \( -name configure -o -name config.h.in \) -print | xargs touch +%endif + +%patch2 -p1 -b .robustify + +%patch3 -p1 -b .fixes -# In case the above patches added any new test scripts, make sure they -# are executable. find . -name \*.sh ! -perm -0100 -print | xargs chmod +x %build # Remove -Wall from default flags. The makefiles enable enough warnings # themselves, and they use -Werror. Appending -Wall defeats the cases where # the makefiles disable some specific warnings for specific code. -# But add -Wformat explicitly for use with -Werror=format-security which -# doesn't work without -Wformat (enabled by -Wall). -RPM_OPT_FLAGS="${RPM_OPT_FLAGS/-Wall/}" -RPM_OPT_FLAGS="${RPM_OPT_FLAGS} -Wformat" +RPM_OPT_FLAGS=${RPM_OPT_FLAGS/-Wall/} +%if %{compat} +# Some older glibc headers can run afoul of -Werror all by themselves. +# Disabling the fancy inlines avoids those problems. +RPM_OPT_FLAGS="$RPM_OPT_FLAGS -D__NO_INLINE__" +%endif -trap 'cat config.log' EXIT -# dist_debuginfod_url is defined in macros.dist. Fedora and CentOS have -# URLs pointing to their respective servers. RHEL and Amazon Linux do -# not configure a default server. -%configure CFLAGS="$RPM_OPT_FLAGS" \ -%if "%{?dist_debuginfod_url}" - --enable-debuginfod \ - --enable-debuginfod-urls="%{dist_debuginfod_url}" \ -%endif -%if %{enable_stacktrace} - --enable-stacktrace \ -%endif - --enable-debuginfod-ima-verification \ - --enable-debuginfod-ima-cert-path=%{_sysconfdir}/keys/ima -trap '' EXIT -%make_build +%configure CFLAGS="$RPM_OPT_FLAGS -fexceptions" +make -s %{?_smp_mflags} %install -%make_install +rm -rf ${RPM_BUILD_ROOT} +make -s install DESTDIR=${RPM_BUILD_ROOT} chmod +x ${RPM_BUILD_ROOT}%{_prefix}/%{_lib}/lib*.so* -%if %{without static} -# We don't want the static libraries -rm ${RPM_BUILD_ROOT}%{_prefix}/%{_lib}/lib{elf,dw,asm}.a -%endif +chmod +x ${RPM_BUILD_ROOT}%{_prefix}/%{_lib}/elfutils/lib*.so* -%find_lang %{name} - -%if %{provide_yama_scope} -install -Dm0644 config/10-default-yama-scope.conf ${RPM_BUILD_ROOT}%{_sysctldir}/10-default-yama-scope.conf -%endif - -install -Dm0644 config/debuginfod.service ${RPM_BUILD_ROOT}%{_unitdir}/debuginfod.service -install -Dm0644 config/debuginfod.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/debuginfod -mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/debuginfod -touch ${RPM_BUILD_ROOT}%{_localstatedir}/cache/debuginfod/debuginfod.sqlite - -%if %{with_sysusers} -install -Dm0644 %{SOURCE1} %{buildroot}%{_sysusersdir}/elfutils-debuginfod.conf -%endif +# XXX Nuke unpackaged files +{ cd ${RPM_BUILD_ROOT} + rm -f .%{_bindir}/eu-ld +} %check -# Record some build root versions in build.log -uname -r; rpm -q binutils gcc glibc || true +make -s check -%make_build check || (cat tests/test-suite.log; false) +%clean +rm -rf ${RPM_BUILD_ROOT} -# Only the latest Fedora and EPEL have these scriptlets, -# older Fedora and plain RHEL don't. -%if 0%{?ldconfig_scriptlets:1} -%ldconfig_scriptlets libs -%ldconfig_scriptlets libelf -%ldconfig_scriptlets debuginfod-client -%else %post libs -p /sbin/ldconfig -%postun libs -p /sbin/ldconfig -%post libelf -p /sbin/ldconfig -%postun libelf -p /sbin/ldconfig -%post debuginfod-client -p /sbin/ldconfig -%postun debuginfod-client -p /sbin/ldconfig -%endif -%if %{provide_yama_scope} -%post default-yama-scope -# Due to circular dependencies might not be installed yet, so double check. -# (systemd -> elfutils-libs -> default-yama-scope -> systemd) -if [ -x /usr/lib/systemd/systemd-sysctl ] ; then -%sysctl_apply 10-default-yama-scope.conf -fi -%endif +%postun libs -p /sbin/ldconfig + +%post libelf -p /sbin/ldconfig + +%postun libelf -p /sbin/ldconfig %files -%license COPYING COPYING-GPLV2 COPYING-LGPLV3 doc/COPYING-GFDL -%doc README TODO CONTRIBUTING +%defattr(-,root,root) +%doc README TODO %{_bindir}/eu-addr2line %{_bindir}/eu-ar -%{_bindir}/eu-elfclassify %{_bindir}/eu-elfcmp -%{_bindir}/eu-elfcompress %{_bindir}/eu-elflint %{_bindir}/eu-findtextrel -%{_bindir}/eu-make-debug-archive %{_bindir}/eu-nm %{_bindir}/eu-objdump %{_bindir}/eu-ranlib %{_bindir}/eu-readelf %{_bindir}/eu-size -%{_bindir}/eu-srcfiles -%{_bindir}/eu-stack -%if %{enable_stacktrace} -%{_bindir}/eu-stacktrace -%endif %{_bindir}/eu-strings %{_bindir}/eu-strip +#%{_bindir}/eu-ld %{_bindir}/eu-unstrip -%{_mandir}/man1/eu-*.1* +%{_bindir}/eu-make-debug-archive %files libs -%license COPYING-GPLV2 COPYING-LGPLV3 +%defattr(-,root,root) %{_libdir}/libasm-%{version}.so -%{_libdir}/libdw-%{version}.so %{_libdir}/libasm.so.* +%{_libdir}/libdw-%{version}.so %{_libdir}/libdw.so.* +%dir %{_libdir}/elfutils +%{_libdir}/elfutils/lib*.so %files devel +%defattr(-,root,root) %{_includedir}/dwarf.h %dir %{_includedir}/elfutils %{_includedir}/elfutils/elf-knowledge.h -%{_includedir}/elfutils/known-dwarf.h %{_includedir}/elfutils/libasm.h +%{_includedir}/elfutils/libebl.h %{_includedir}/elfutils/libdw.h %{_includedir}/elfutils/libdwfl.h -%{_includedir}/elfutils/libdwelf.h -%{_includedir}/elfutils/version.h -%{_includedir}/elfutils/libdwfl_stacktrace.h +%{_libdir}/libebl.a %{_libdir}/libasm.so %{_libdir}/libdw.so -%{_libdir}/pkgconfig/libdw.pc -%if %{with static} %files devel-static -%{_libdir}/libdw.a +%defattr(-,root,root) %{_libdir}/libasm.a -%endif +%{_libdir}/libdw.a -%files -f %{name}.lang libelf -%license COPYING-GPLV2 COPYING-LGPLV3 +%files libelf +%defattr(-,root,root) %{_libdir}/libelf-%{version}.so %{_libdir}/libelf.so.* %files libelf-devel +%defattr(-,root,root) %{_includedir}/libelf.h %{_includedir}/gelf.h %{_includedir}/nlist.h %{_libdir}/libelf.so -%{_libdir}/pkgconfig/libelf.pc -%{_mandir}/man3/elf_*.3* -%{_mandir}/man3/elf32_*.3* -%{_mandir}/man3/elf64_*.3* -%{_mandir}/man3/gelf_*.3* -%{_mandir}/man3/libelf.3* -%if %{with static} %files libelf-devel-static +%defattr(-,root,root) %{_libdir}/libelf.a -%endif - -%if %{provide_yama_scope} -%files default-yama-scope -%{_sysctldir}/10-default-yama-scope.conf -%endif - -%files debuginfod-client -%{_libdir}/libdebuginfod-%{version}.so -%{_libdir}/libdebuginfod.so.* -%{_bindir}/debuginfod-find -%{_mandir}/man1/debuginfod-find.1* -%{_mandir}/man7/debuginfod*.7* -%config(noreplace) %{_sysconfdir}/profile.d/* -%if "%{?dist_debuginfod_url}" -%config(noreplace) %{_sysconfdir}/debuginfod/* -%config(noreplace) %{_datadir}/fish/vendor_conf.d/* -%endif - -%files debuginfod-client-devel -%{_libdir}/pkgconfig/libdebuginfod.pc -%{_mandir}/man3/debuginfod_*.3* -%{_includedir}/elfutils/debuginfod.h -%{_libdir}/libdebuginfod.so - -%files debuginfod -%{_bindir}/debuginfod -%config(noreplace) %{_sysconfdir}/sysconfig/debuginfod -%{_unitdir}/debuginfod.service -%if %{with_sysusers} -%{_sysusersdir}/elfutils-debuginfod.conf -%endif -%{_mandir}/man8/debuginfod*.8* - - -%dir %attr(0700,debuginfod,debuginfod) %{_localstatedir}/cache/debuginfod -%ghost %attr(0600,debuginfod,debuginfod) %{_localstatedir}/cache/debuginfod/debuginfod.sqlite - -%pre debuginfod -%if %{with_sysusers} -%sysusers_create_compat %{SOURCE1} -%else -getent group debuginfod >/dev/null || groupadd -r debuginfod -getent passwd debuginfod >/dev/null || \ - useradd -r -g debuginfod -d /var/cache/debuginfod -s /sbin/nologin \ - -c "elfutils debuginfo server" debuginfod -exit 0 -%endif - -%post debuginfod -%systemd_post debuginfod.service - -%postun debuginfod -%systemd_postun_with_restart debuginfod.service %changelog -* Tue Dec 09 2025 Aaron Merey - 0.194-2 -- Add elfutils-0.194-fix-const.patch - -* Tue Oct 28 2025 Aaron Merey - 0.194-1 -- Upgrade to upstream elfutils 0.194 -- Add elfutils-0.194-alloc-jobs.patch - -* Wed Jul 23 2025 Fedora Release Engineering - 0.193-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Mon Apr 28 2025 Aaron Merey - 0.193-1 -- Upgrade to upstream elfutils 0.193 -- Drop upstreamed patches - elfutils-0.192-ATOMIC_VAR_INIT.patch - elfutils-0.192-libelf-static.patch - elfutils-0.192-fix-configure-conditional.patch - elfutils-0.192-more-dwarf5-lang.patch - elfutils-0.192-fix-zsh-profile.patch - elfutils-0.192-stacktrace-lto.patch - elfutils-0.192-imasig-fail-free.patch - elfutils-0.192-strip-ignore-non-ET_REL.patch - -* Sun Feb 23 2025 Mark Wielaard - 0.192-9 -- Add elfutils-0.192-imasig-fail-free.patch - -* Thu Jan 16 2025 Fedora Release Engineering - 0.192-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Mon Dec 2 2024 Mark Wielaard - 0.192-7 -- Add elfutils-0.192-ATOMIC_VAR_INIT.patch -- Add elfutils-0.192-more-dwarf5-lang.patch - -* Tue Nov 12 2024 Aaron Merey - 0.192-6 -- Add elfutils-0.192-strip-ignore-non-ET_REL.patch -- Set debuginfod IMA cert path - -* Tue Oct 29 2024 Aaron Merey - 0.192-5 -- Enable debuginfod IMA verification -- Add elfutils-0.192-fix-configure-conditional.patch -- Add elfutils-0.192-fix-zsh-profile.patch - -* Thu Oct 24 2024 Mark Wielaard - 0.192-4 -- Add elfutils-0.192-stacktrace-lto.patch -- Enable eu-stacktrace on x86_64 - -* Tue Oct 22 2024 Aaron Merey - 0.192-3 -- Add elfutils-0.192-libelf-static.patch - -* Mon Oct 21 2024 Aaron Merey - 0.192-2 -- Add BuildRequires for json-c - -* Mon Oct 21 2024 Aaron Merey - 0.192-1 -- Upgrade to upstream elfutils 0.192 -- Drop upstreamed patches - Add elfutils-0.190-profile-empty-urls.patch - Add elfutils-0.190-riscv-flatten.patch - -* Wed Jul 17 2024 Fedora Release Engineering - 0.191-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Mon Apr 22 2024 Aaron Merey - 0.191-7 -- Capitalize SPDX booleans. - -* Fri Apr 19 2024 Mark Wielaard - 0.191-6 -- eu-srcfiles directly links to libdebuginfod.so so explicitly - Require elfutils-debuginfod-client not just Recommends. - -* Wed Mar 27 2024 Mark Wielaard - 0.191-5 -- Add elfutils-0.190-profile-empty-urls.patch - -* Wed Mar 20 2024 Mark Wielaard - 0.191-4 -- Add elfutils-0.190-riscv-flatten.patch - -* Fri Mar 15 2024 Michel Lind - 0.191-3 -- Add feature flag for reenabling elfutils-libelf-devel-static and elfutils-devel-static -- Add dependency on libzstd-static for elfutils-libelf-devel-static - -* Mon Mar 4 2024 Aaron Merey - 0.191-2 -- Update SPDX license. - -* Mon Mar 4 2024 Aaron Merey - 0.191-1 -- Upgrade to upstream elfutils 0.191 -- Drop upstreamed patches - elfutils-0.190-fix-core-noncontig.patch - elfutils-0.190-gcc-14.patch - elfutils-0.190-remove-ET_REL-unstrip-test.patch -- Drop testcore-noncontig.bz2 - -* Wed Jan 24 2024 Fedora Release Engineering - 0.190-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Fedora Release Engineering - 0.190-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Tue Nov 28 2023 Aaron Merey - 0.190-4 -- Add elfutils-0.190-remove-ET_REL-unstrip-test.patch - -* Fri Nov 24 2023 Aaron Merey - 0.190-3 -- Add elfutils-0.190-fix-core-noncontig.patch - -* Fri Nov 3 2023 Mark Wielaard - 0.190-2 -- Update Fedora license tags to spdx license tags - -* Fri Nov 3 2023 Mark Wielaard - 0.190-1 -- Upgrade to upstream elfutils 0.190 -- Add eu-srcfiles -- Drop upstreamed patches - elfutils-0.189-relr.patch - elfutils-0.189-debuginfod_config_cache-double-close.patch - elfutils-0.189-elf_getdata_rawchunk.patch - elfutils-0.189-elfcompress.patch - elfutils-0.189-c99-compat.patch -- Only package debuginfod-client-config.7 manpage for debuginfod-client - -* Thu Aug 24 2023 Mark Wielaard - 0.189-6 -- Update elfutils-0.189-relr.patch - -* Wed Aug 23 2023 Mark Wielaard - 0.189-5 -- Add elfutils-0.189-relr.patch - -* Wed Jul 19 2023 Fedora Release Engineering - 0.189-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Thu Jun 22 2023 Mark Wielaard - 0.189-3 -- Add elfutils-0.189-elf_getdata_rawchunk.patch -- Add elfutils-0.189-debuginfod_config_cache-double-close.patch - -* Sat Apr 22 2023 Mark Wielaard - 0.189-2 -- Add elfutils-0.189-c99-compat.patch -- Add elfutils-0.189-elfcompress.patch - -* Fri Mar 3 2023 Mark Wielaard - 0.189-1 -- Upgrade to upsteam elfutils 0.189. - -* Fri Jan 27 2023 Mark Wielaard - 0.188-5 -- Add elfutils-0.188-deprecated-CURLINFO.patch, - elfutils-0.188-CURL_AT_LEAST_VERSION.patch and - elfutils-0.188-CURLOPT_PROTOCOLS_STR.patch - -* Thu Jan 19 2023 Fedora Release Engineering - 0.188-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Mon Nov 7 2022 Mark Wielaard - 0.188-3 -- Add elfutils-0.188-compile-warnings.patch -- Add elfutils-0.188-debuginfod-client-lifetime.patch - -* Wed Nov 2 2022 Mark Wielaard - 0.188-2 -- Add elfutils-0.188-static-extract_section.patch. - -* Wed Nov 2 2022 Mark Wielaard - 0.188-1 -- Upgrade to upsteam elfutils 0.188. - -* Wed Oct 5 2022 Amit Shah - 0.187-9 -- Auto-configure debuginfod_url based on macros.dist - -* Wed Aug 24 2022 Debarshi Ray - 0.187-8 -- Use %%sysusers_requires_compat to match %%sysusers_create_compat - -* Wed Jul 27 2022 Amit Shah - 0.187-7 -- Allow building without default debuginfod URL - -* Thu Jul 21 2022 Fedora Release Engineering - 0.187-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Tue Jun 14 2022 Mark Wielaard - 0.187-5 -- Add sysuser support for creating the debuginfod user - -* Fri May 6 2022 Mark Wielaard - 0.187-4 -- Add elfutils-0.187-mhd_no_dual_stack.patch -- Add elfutils-0.187-mhd_epoll.patch - -* Thu May 5 2022 Mark Wielaard - 0.187-3 -- Add elfutils-0.187-debuginfod-client-fd-leak.patch - -* Tue May 3 2022 Mark Wielaard - 0.187-2 -- Add elfutils-0.187-csh-profile.patch - -* Tue Apr 26 2022 Mark Wielaard - 0.187-1 -- Upgrade to elfutils 0.187 - - debuginfod: Support -C option for connection thread pooling. - - debuginfod-client: Negative cache file are now zero sized instead - of no-permission files. - - addr2line: The -A, --absolute option, which shows file names - includingthe full compilation directory is now the - default. To get theold behavior use the new option --relative. - - readelf, elflint: Recognize FDO Packaging Metadata ELF notes - - libdw, debuginfo-client: Load libcurl lazily only when files need - to be fetched remotely. libcurl is now never loaded when - DEBUGINFOD_URLS is unset. And whenDEBUGINFOD_URLS is set, - libcurl is only loaded when the debuginfod_begin function is - called. - -* Tue Apr 12 2022 Mark Wielaard - 0.186-5 -- Add an explicit versioned requires from elfutils-debuginfod-client - on elfutils-libelf. - -* Thu Apr 7 2022 Mark Wielaard - 0.186-4 -- Add an explicit versioned requires from elfutils-debuginfod-client - on elfutils-libs. - -* Fri Mar 25 2022 Mark Wielaard - 0.186-3 -- Add elfutils-0.186-elf-glibc.patch -- Add elfutils-0.186-fdo-ebl.patch -- Add elfutils-0.186-fdo-efllint.patch -- Add elfutils-0.186-fdo-swap.patch -- Add elfutils-0.186-ppc64le-error-return-workaround.patch - -* Thu Jan 20 2022 Fedora Release Engineering - 0.186-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Wed Nov 10 2021 Mark Wielaard - 0.186-1 -- Upgrade to upstream 0.186 - - debuginfod-client: Default $DEBUGINFOD_URLS is computed from - drop-in files /etc/debuginfod/*.urls rather than - hardcoded into the /etc/profile.d/debuginfod* - scripts. - Add $DEBUGINFOD_MAXSIZE and $DEBUGINFOD_MAXTIME settings - for skipping large/slow transfers. - Add $DEBUGINFOD_RETRY for retrying aborted lookups. - - debuginfod: Supply extra HTTP response headers, describing - archive/file names that satisfy the requested buildid content. - Support -d :memory: option for in-memory databases. - Protect against loops in federated server configurations. - Add -r option to use -I/-X regexes for grooming stale files. - Protect against wasted CPU from duplicate concurrent requests. - Limit the duration of groom ops roughly to rescan (-t) times. - Add --passive mode for serving from read-only database. - Several other performance improvements & prometheus metrics. - - libdw: Support for the NVIDIA Cuda line map extensions. - DW_LNE_NVIDIA_inlined_call and DW_LNE_NVIDIA_set_function_name - are defined in dwarf.h. New functions dwarf_linecontext and - dwarf_linefunctionname. - - translations: Update Japanese translation. - -* Thu Aug 5 2021 Mark Wielaard - 0.185-5 -- Use autosetup -- Add elfutils-0.185-raise-pthread_kill-backtrace.patch - -* Wed Jul 21 2021 Fedora Release Engineering - 0.185-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Thu Jul 15 2021 Mark Wielaard - 0.185-3 -- Update version to 0.185-3 for rawhide/f35 upgrade from f34 - This build enables debuginfod client by default -- Workaround bad test in make check - -* Wed May 26 2021 Mark Wielaard - 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. - -* Sun May 16 2021 Frank Ch. Eigler - 0.184-5 -- Fix 404-latch problem on reused debuginfod_client. (PR27859) - -* Wed May 12 2021 Frank Ch. Eigler - 0.184-4 -- Ship new profile.d files. (1956952) - -* Wed May 12 2021 Frank Ch. Eigler - 0.184-3 -- Don't nuke the new profile.d files. (1956952) - -* Tue May 11 2021 Frank Ch. Eigler - 0.184-2 -- Activate debuginfod client by default (1956952) to the fedora server. - -* Mon May 10 2021 Mark Wielaard - 0.184-1 -- Upgrade to upstream 0.184 - - debuginfod: Use libarchive's bsdtar as the .deb-family file unpacker. - - debuginfod-client: Client caches negative results. If a query for a - file failed with 404, an empty 000 permission - file is created in the cache. This will prevent - requesting the same file for the next 10 minutes. - Client objects now carry long-lived curl handles - for outgoing connections. This makes it more - efficient for multiple sequential queries, because - the TCP connections and/or TLS state info are kept - around awhile, avoiding O(100ms) setup latencies. - - libdw: handle DW_FORM_indirect when reading attributes - - translations: Update Polish translation. - -* Mon Apr 19 2021 Mark Wielaard - 0.183-3 -- Introduce CI gating setup - -* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 0.183-2 -- Rebuilt for updated systemd-rpm-macros - See https://pagure.io/fesco/issue/2583. - -* Mon Feb 8 2021 Mark Wielaard - 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 - 0.182-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Thu Dec 17 2020 Mark Wielaard - 0.182-2 -- Add elfutils-0.182-s390-pid_memory_read.patch - -* Sat Oct 31 2020 Mark Wielaard - 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. - -* Mon Oct 19 2020 Mark Wielaard - 0.181-3 -- Add elfutils-0.181-array-param.patch. - -* Fri Sep 18 2020 Mark Wielaard - 0.181-2 -- Add ZSTD support elfutils-0.181-zstd.patch. - -* Tue Sep 8 2020 Mark Wielaard - 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 - 0.180-7 -- Add elfutils-0.180-shf-compressed.patch - -* Mon Jul 27 2020 Fedora Release Engineering - 0.180-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Wed Jul 22 2020 Mark Wielaard - 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 - 0.180-4 -- Use make macros -- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro - -* Fri Jul 3 2020 Mark Wielaard - 0.180-3 -- Add elfutils-0.180-mhd-result.patch - -* Wed Jul 1 2020 Jeff Law - 0.180-2 -- Disable LTO - -* Thu Jun 11 2020 Mark Wielaard - 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 - 0.179-2 -- Add elfutils-0.179-debug-client-alt-link.patch - -* Mon Mar 30 2020 Mark Wielaard - 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 - 0.178-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Fri Jan 24 2020 Mark Wielaard - 0.178-8 -- Add elfutils-0.178-gcc10-null-dereference.patch - -* Fri Jan 10 2020 Mark Wielaard - 0.178-7 -- Add elfutils-0.178-debuginfod-timeoutprogress.patch -- Add elfutils-0.178-libasm-ebl.patch - -* Wed Dec 11 2019 Mark Wielaard - 0.178-6 -- Add elfutils-0.178-curl-code-gcc-10.patch -- Add elfutils-0.178-compressed-vmlinuz.patch - -* Mon Dec 9 2019 Mark Wielaard - 0.178-5 -- Add elfutils-0.178-debuginfod-no-cache.patch. - -* Thu Nov 28 2019 Mark Wielaard - 0.178-4 -- Define %%{depsuffix} before use. - -* Thu Nov 28 2019 Mark Wielaard - 0.178-3 -- Add elfutils-debuginfod-client Provides and Requires with depsuffix - to get multilib dependencies correct. Add %%{version}-%%{release} to - keep subpackages in sync. - -* Wed Nov 27 2019 Mark Wielaard - 0.178-2 -- Fix libdebuginfod file list for debuginfo-client[-devel]. - -* Tue Nov 26 2019 Mark Wielaard - 0.178-1 -- New upstream release. - - debuginfod: New server, client tool and library to index and fetch - ELF/DWARF files addressed by build-id through HTTP. - - doc: There are now some manual pages for functions and tools. - - backends: The libebl libraries are no longer dynamically loaded - through dlopen, but are now compiled into libdw.so directly. - - readelf: -n, --notes now takes an optional "SECTION" argument. - -p and -x now also handle section numbers. - New option --dyn-sym to show just the dynamic symbol table. - - libcpu: Add RISC-V disassembler. - - libdw: Abbrevs and DIEs can now be read concurrently by multiple - threads through the same Dwarf handle. - - libdwfl: Will try to use debuginfod when installed as fallback to - retrieve ELF and DWARF debug data files by build-id. - -* Wed Aug 14 2019 Mark Wielaard - 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 - 0.176-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Fri Jul 5 2019 Mark Wielaard - 0.176-4 -- Add elfutils-0.176-strip-symbols-illformed.patch - -* Mon Jun 3 2019 Mark Wielaard - 0.176-3 -- Add elfutils-0.176-elf-update.patch - -* Tue Apr 30 2019 Mark Wielaard - 0.176-2 -- Update elfutils-0.176-gcc-pr88835.patch. -- Add elfutils-0.176-pt-gnu-prop.patch -- Add elfutils-0.176-xlate-note.patch - -* Fri Feb 15 2019 Mark Wielaard - 0.176-1 -- New upstream release. - - backends: riscv improved core file and return value location support. - - Fixes CVE-2019-7146, CVE-2019-7148, CVE-2019-7149, CVE-2019-7150, - CVE-2019-7664, CVE-2019-7665. - -* Thu Jan 31 2019 Fedora Release Engineering - 0.175-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Mon Dec 3 2018 Mark Wielaard - 0.175-2 -- Add elfutils-0.175-gnu-props-32.patch. - -* Fri Nov 16 2018 Mark Wielaard - 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 - 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-gnu-attribute-note.patch - -* Tue Nov 6 2018 Mark Wielaard - 0.174-4 -- Add elfutils-0.174-size-rec-ar.patch - CVE-2018-18520 (#1646478) -- Add elfutils-0.174-ar-sh_entsize-zero.patch - CVE-2018-18521 (#1646483) - -* Fri Nov 2 2018 Mark Wielaard - 0.174-3 -- Add elfutils-0.174-libdwfl-sanity-check-core-reads.patch - CVE-2018-18310 (#1642605) - -* Wed Oct 17 2018 Mark Wielaard - 0.174-2 -- Add elfutils-0.174-strip-unstrip-group.patch. - -* Fri Sep 14 2018 Mark Wielaard - 0.174-1 -- New upstream release - - libelf, libdw and all tools now handle extended shnum and shstrndx - correctly (#1608390). - - elfcompress: Don't rewrite input file if no section data needs - updating. Try harder to keep same file mode bits (suid) on rewrite. - - strip: Handle mixed (out of order) allocated/non-allocated sections. - - unstrip: Handle SHT_GROUP sections. - - backends: RISCV and M68K now have backend implementations to - generate CFI based backtraces. - - Fixes CVE-2018-16062, CVE-2018-16402 and CVE-2018-16403 - (#1623753, #1625051, #1625056). - -* Tue Jul 31 2018 Florian Weimer - 0.173-8 -- Rebuild with fixed binutils - -* Sun Jul 29 2018 Mark Wielaard - 0.173-7 -- Add elfutils-0.173-strip-alloc-nonalloc.patch (#1609577) - -* Tue Jul 24 2018 Mark Wielaard -- Drop libstdc++-devel BuildRequires. gcc-c++ will pull it in. - -* Tue Jul 24 2018 Mark Wielaard - 0.173-6 -- Update elfutils-0.173-annobingroup.patch. - -* Sat Jul 21 2018 Mark Wielaard - 0.173-5 -- Add BuildRequires gcc-c++ for demangle support. -- Add elfutils-0.173-annobingroup.patch. - -* Sat Jul 21 2018 Mark Wielaard - 0.173-4 -- Add elfutils-0.173-elfcompress.patch (#1607044) - -* Thu Jul 12 2018 Fedora Release Engineering - 0.173-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Mon Jul 9 2018 Mark Wielaard - 0.173-2 -- Update elfutils-0.173-new-notes-hack.patch for new annobin note. -- Unbreak cyclic systemd dependency for buildroot container (#1599083) - -* Fri Jun 29 2018 Mark Wielaard - 0.173-1 -- New upstream release - - More fixes for crashes and hangs found by afl-fuzz. In particular - various functions now detect and break infinite loops caused by bad - DIE tree cycles. - - readelf: Will now lookup the size and signedness of constant value - types to display them correctly (and not just how they were encoded). - - libdw: New function dwarf_next_lines to read CU-less .debug_line data. - dwarf_begin_elf now accepts ELF files containing just .debug_line - or .debug_frame sections (which can be read without needing a DIE - tree from the .debug_info section). - Removed dwarf_getscn_info, which was never implemented. - - backends: Handle BPF simple relocations. - The RISCV backends now handles ABI specific CFI and knows about - RISCV register types and names. - -* Wed Jun 20 2018 Mark Wielaard - 0.172-2 -- Add elfutils-0.172-robustify.patch. - -* Mon Jun 11 2018 Mark Wielaard - 0.172-1 -- New upstream release. - - No functional changes compared to 0.171. - - Various bug fixes in libdw and eu-readelf dealing with bad DWARF5 - data. Thanks to running the afl fuzzer on eu-readelf and various - testcases. - - eu-readelf -N is ~15% faster. - -* Fri Jun 01 2018 Mark Wielaard - 0.171-1 -- New upstream release. - - DWARF5 and split dwarf, including GNU DebugFission, support. - - readelf: Handle all new DWARF5 sections. - --debug-dump=info+ will show split unit DIEs when found. - --dwarf-skeleton can be used when inspecting a .dwo file. - Recognizes GNU locviews with --debug-dump=loc. - - libdw: New functions dwarf_die_addr_die, dwarf_get_units, - dwarf_getabbrevattr_data and dwarf_cu_info. - libdw will now try to resolve the alt file on first use - when not set yet with dwarf_set_alt. - dwarf_aggregate_size() now works with multi-dimensional arrays. - - libdwfl: Use process_vm_readv when available instead of ptrace. - - backends: Add a RISC-V backend. - -* Wed Apr 11 2018 Mark Wielaard - 0.170-11 -- Add explict libstdc++-devel BuildRequires for demangle support. -- Add elfutils-0.170-unwind.patch. (#1555726) - -* Thu Mar 01 2018 Mark Wielaard - 0.170-10 -- Add elfutils-0.170-GNU_variable_value.patch -- Add elfutils-0.170-locviews.patch - -* Fri Feb 16 2018 Mark Wielaard - 0.170-9 -- Add elfutils-0.170-core-pid.patch -- Add elfutils-0.170-elf_sync.patch -- Add elfutils-0.170-new-notes-hack.patch - -* Thu Feb 15 2018 Mark Wielaard - 0.170-8 -- Add elfutils-0.170-sys-ptrace.patch -- Make sure spec can be build even when ldconfig_scriplets aren't defined. -- Add elfutils-0.170-m68k-packed-not-aligned.patch - -* Fri Feb 09 2018 Igor Gnatenko - 0.170-7 -- Escape macros in %%changelog - -* Wed Feb 07 2018 Fedora Release Engineering - 0.170-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Sat Feb 03 2018 Igor Gnatenko - 0.170-5 -- Switch to %%ldconfig_scriptlets - -* Wed Dec 20 2017 Mark Wielaard - 0.170-4 -- Add elfutils-0.170-dwarf_aggregate_size.patch. - -* Wed Nov 8 2017 Mark Wielaard - 0.170-3 -- Rely on (and check) systemd_requires for sysctl_apply default-yama-scope. - -* Thu Nov 2 2017 Mark Wielaard - 0.170-2 -- Config files under /usr/lib/sysctl.d (_sysctldir) aren't %%config (#1506660) - Admin can place the real config file under /etc/sysctl.d as override. - -* Thu Aug 3 2017 Mark Wielaard - 0.170-1 -- New upstream release. Remove upstreamed patches. -- provide_yama_scope for either fedora >= 22 and rhel >= 7. - -* Wed Aug 02 2017 Fedora Release Engineering - 0.169-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Fedora Release Engineering - 0.169-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Fri Jul 21 2017 Mark Wielaard - 0.169-6 -- Add elfutils-0.169-strip-data-marker-symbols.patch. - -* Mon Jul 17 2017 Mark Wielaard - 0.169-5 -- Fix build on s390 (ptrace.h). Add elfutils-0.169-s390x-ptrace.patch. - -* Mon Jul 17 2017 Mark Wielaard - 0.169-4 -- Add elfutils-0.169-strip-keep-remove-section.patch (#1465997) - -* Wed Jun 7 2017 Mark Wielaard - 0.169-3 -- Add elfutils-0.169-dup-shstrtab.patch -- Add elfutils-0.169-strip-empty.patch - -* Tue May 30 2017 Mark Wielaard - 0.169-2 -- Add ppc64 fallback unwinder. - -* Fri May 5 2017 Mark Wielaard - 0.169-1 -- New upstream release. Removed upstreamed patches. - -* Wed Feb 15 2017 Mark Wielaard - 0.168-5 -- Add patches for new gcc warnings and new binutils ppc64 attributes. - - elfutils-0.168-libasm-truncation.patch - - elfutils-0.168-ppc64-attrs.patch - -* Fri Feb 10 2017 Fedora Release Engineering - 0.168-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Mon Jan 16 2017 Mark Wielaard - 0.168-3 -- Never use old, deprecated, filter_provides_in, it really is too broken. - -* Fri Jan 13 2017 Mark Wielaard - 0.168-2 -- Filter out private libebl backends from provides. - -* Wed Dec 28 2016 Mark Wielaard - 0.168-1 -- New upstream release from new home https://sourceware.org/elfutils/ -- Resolves: - - #1396092 Please implement eu-readelf --symbols[=SECTION] - - #1388057 memory allocation failure in allocate_elf - - #1387584 memory allocation failure in __libelf_set_rawdata_wrlock - -* Fri Oct 7 2016 Mark Wielaard - 0.167-2 -- Add elfutils-0.167-strip-alloc-symbol.patch (#1380961) - -* Fri Aug 26 2016 Mark Wielaard - 0.167-1 -- Upgrade to elfutils-0.167 - Drop upstream elfutils-0.166-elfcmp-comp-gcc6.patch - Fixes: #1365812, #1352232. - -* Thu Apr 14 2016 Mark Wielaard - 0.166-2 -- Add elfutils-0.166-elfcmp-comp-gcc6.patch - -* Thu Mar 31 2016 Mark Wielaard - 0.166-1 -- Upgrade to elfutils-0.166 - Drop upstreamed patches: - - elfutils-0.165-nobitsalign-strip.patch. - - elfutils-0.165-reloc.patch. - - elfutils-0.165-elf-libelf.patch. - -* Thu Feb 04 2016 Mark Wielaard - 0.165-5 -- Add elfutils-0.165-nobitsalign-strip.patch. - -* Wed Feb 03 2016 Fedora Release Engineering - 0.165-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Thu Jan 28 2016 Mark Wielaard - 0.165-3 -- Add elfutils-0.165-reloc.patch. - -* Thu Jan 14 2016 Mark Wielaard - 0.165-2 -- Add elfutils-0.165-elf-libelf.patch. - -* Mon Jan 11 2016 Mark Wielaard - 0.165-1 -- Update to elfutils-0.165 (#1294079, #1236699, #807053) - - Add eu-elfcompress - - Add pkg-config files for libelf and libdw. - -* Fri Oct 16 2015 Mark Wielaard - 0.164-1 -- Update to elfutils-0.164 -- Drop old compat stuff - -* Mon Sep 07 2015 Mark Wielaard - 0.163-4 -- Add elfutils-0.163-readelf-n-undefined-shift.patch (#1259259) - -* Tue Aug 04 2015 Mark Wielaard - 0.163-3 -- Add elfutils-0.163-default-yama-conf.patch (#1250079) - Provides: default-yama-scope - -* Mon Aug 03 2015 Mark Wielaard - 0.163-2 -- Add elfutils-0.163-unstrip-shf_info_link.patch - -* Fri Jun 19 2015 Mark Wielaard - 0.163-1 -- Update to 0.163 - - Drop elfutils-0.162-ftruncate-allocate.patch - -* Tue Jun 16 2015 Mark Wielaard - 0.162-2 -- Add elfutils-0.162-ftruncate-allocate.patch (#1232206) - -* Thu Jun 11 2015 Mark Wielaard - 0.162-1 -- Update to 0.162 (#1170810, #1139815, #1129756, #1020842) -- Include elfutils/known-dwarf.h -- Drop BuildRequires glibc-headers (#1230468) -- Removed integrated upstream patches: - - elfutils-0.161-aarch64relro.patch - - elfutils-0.161-copyreloc.patch - - elfutils-0.161-addralign.patch - - elfutils-0.161-ar-long-name.patch - - elfutils-0.161-formref-type.patch - -* Sat May 02 2015 Kalev Lember - 0.161-8 -- Rebuilt for GCC 5 C++11 ABI change - -* Mon Mar 23 2015 Mark Wielaard - 0.161-7 -- Add elfutils-0.161-aarch64relro.patch (#1201778) - -* Mon Mar 09 2015 Mark Wielaard - 0.161-6 -- Add elfutils-0.161-copyreloc.patch. - -* Sat Feb 21 2015 Till Maas - 0.161-5 -- Rebuilt for Fedora 23 Change - https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code - -* Sat Feb 07 2015 Mark Wielaard - 0.161-4 -- Add elfutils-0.161-addralign.patch (#1189928) - -* Thu Feb 05 2015 Mark Wielaard - 0.161-3 -- Add elfutils-0.161-formref-type.patch - -* Tue Jan 13 2015 Mark Wielaard - 0.161-2 -- Add elfutils-0.161-ar-long-name.patch (#1181525 CVE-2014-9447) - -* Fri Dec 19 2014 Mark Wielaard - 0.161-1 -- Update to 0.161. - -* Wed Aug 27 2014 Mark Wielaard - 0.160-1 -- Update to 0.160. - - Remove integrated upstream patches: - elfutils-aarch64-user_regs_struct.patch - elfutils-0.159-argp-attach.patch - elfutils-0.159-aarch64-bool-ret.patch - elfutils-0.159-elf-h.patch - elfutils-0.159-ppc64le-elfv2-abi.patch - elfutils-0.159-report_r_debug.patch - elfutils-0.159-ko_xz.patch - -* Sat Aug 16 2014 Mark Wielaard - 0.159-10 -- Add elfutils-0.159-ko_xz.patch - -* Sat Aug 16 2014 Fedora Release Engineering - 0.159-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Mon Jul 28 2014 Mark Wielaard - 0.159-8 -- Add elfutils-0.159-report_r_debug.patch (#1112610) - -* Fri Jul 18 2014 Mark Wielaard - 0.159-7 -- Add configure check to elfutils-aarch64-user_regs_struct.patch. - -* Sat Jul 12 2014 Tom Callaway - 0.159-6 -- fix license handling - -* Fri Jul 4 2014 Mark Wielaard - 0.159-5 -- Add elfutils-0.159-aarch64-bool-ret.patch -- Add elfutils-0.159-elf-h.patch -- Add elfutils-0.159-ppc64le-elfv2-abi.patch (#1110249) - -* Tue Jun 10 2014 Mark Wielaard - 0.159-4 -- Add elfutils-0.159-argp-attach.patch (#1107654) - -* Mon Jun 09 2014 Kyle McMartin - 0.159-3 -- AArch64: handle new glibc-headers which provides proper GETREGSET structs. - -* Sat Jun 07 2014 Fedora Release Engineering - 0.159-2.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Mon May 19 2014 Mark Wielaard - 0.159-1 -- Update to 0.159. - - Remove integrated upstream patches: - robustify.patch, mod-e_type.patch and CVE-2014-0172.patch. - - Remove special handling of now default compile and configure flags: - Don't remove -Werror=format-security, don't configure --enable-dwz. - -* Thu Apr 10 2014 Mark Wielaard - 0.158-3 -- Add elfutils-0.158-CVE-2014-0172.patch (#1085729) - -* Tue Mar 11 2014 Mark Wielaard - 0.158-2 -- Add elfutils-0.158-mod-e_type.patch. - -* Mon Jan 6 2014 Mark Wielaard - 0.158-1 -- Update to 0.158. Remove all patches now upstream. Add eu-stack. - -* Thu Dec 19 2013 Mark Wielaard - 0.157-4 -- Add elfutils-0.157-aarch64-got-special-symbol.patch. -- Remove -Werror=format-security from RPM_OPT_FLAGS. - -* Fri Dec 13 2013 Petr Machata - 0.157-3 -- Add upstream support for aarch64 - -* Wed Oct 9 2013 Mark Wielaard 0.157-2 -- Show tests/test-suite.log in build.log when make check fails. - -* Mon Sep 30 2013 Mark Wielaard 0.157-1 -- Update to 0.157. -- Remove elfutils-0.156-abi_cfi-ppc-s390-arm.patch. -- Remove elfutils-0.156-et_dyn-kernels.patch. - -* Fri Sep 06 2013 Mark Wielaard 0.156-5 -- Add elfutils-0.156-abi_cfi-ppc-s390-arm.patch. - Sets up initial CFI return register, CFA location expression and - register rules for PPC, S390 and ARM (dwarf_cfi_addrframe support). - -* Mon Aug 26 2013 Mark Wielaard 0.156-4 -- Add elfutils-0.156-et_dyn-kernels.patch. - Fixes an issue on ppc64 with systemtap kernel address placement. - -* Thu Aug 8 2013 Mark Wielaard 0.156-3 -- Make check can now also be ran in parallel. - -* Thu Jul 25 2013 Jan Kratochvil 0.156-2 -- Update the %%configure command for compatibility with fc20 Koji. - -* Thu Jul 25 2013 Jan Kratochvil 0.156-1 -- Update to 0.156. - - #890447 - Add __bss_start and __TMC_END__ to elflint. - - #909481 - Only try opening files with installed compression libraries. - - #914908 - Add __bss_start__ to elflint. - - #853757 - Updated Polish translation. - - #985438 - Incorrect prototype of __libdwfl_find_elf_build_id. - - Drop upstreamed elfutils-0.155-binutils-pr-ld-13621.patch. - - Drop upstreamed elfutils-0.155-mem-align.patch. - - Drop upstreamed elfutils-0.155-sizeof-pointer-memaccess.patch. - -* Tue Jul 02 2013 Karsten Hopp 0.155-6 -- bump release and rebuild to fix dependencies on PPC - -* Sun Feb 24 2013 Mark Wielaard - 0.155-5 -- Add ARM variant to elfutils-0.155-binutils-pr-ld-13621.patch rhbz#914908. -- rhel >= 5 has xz-devel - -* Fri Feb 22 2013 Mark Wielaard - 0.155-4 -- Replace elfutils-0.155-binutils-pr-ld-13621.patch with upstream fix. - -* Thu Jan 24 2013 Mark Wielaard - 0.155-3 -- Backport sizeof-pointer-memaccess upstream fixes. - -* Thu Jan 10 2013 Mark Wielaard - 0.155-2 -- #891553 - unaligned memory access issues. - -* Mon Aug 27 2012 Mark Wielaard - 0.155-1 -- Update to 0.155. - - #844270 - eu-nm invalid %%N$ use detected. - - #847454 - Ukrainian translation update. - - Removed local ar 64-bit symbol patch, dwz support patch and xlatetom fix. - -* Tue Aug 14 2012 Petr Machata - 0.154-4 -- Add support for archives with 64-bit symbol tables (#843019) - -* Wed Aug 01 2012 Mark Wielaard 0.154-3 -- Add dwz support - -* Wed Jul 18 2012 Mark Wielaard 0.154-2 -- Add upstream xlatetom fix (#835877) - -* Mon Jul 02 2012 Karsten Hopp 0.154-1.1 -- disable unstrip-n check for now (835877) - -* Fri Jun 22 2012 Mark Wielaard - 0.154-1 -- Update to 0.154 - - elflint doesn't recognize SHF_INFO_LINK on relocation sections (#807823) - - Update license to GPLv3+ and (GPLv2+ or LGPLv3+) - - Remove elfutils-0.153-dwfl_segment_report_module.patch -- Add elfutils-0.154-binutils-pr-ld-13621.patch - -* Mon Apr 02 2012 Mark Wielaard - 0.153-2 -- Fix for eu-unstrip emits garbage for librt.so.1 (#805447) - -* Thu Feb 23 2012 Mark Wielaard - 0.153-1 -- Update to 0.153 - - New --disable-werror for portability. - - Support for .zdebug sections (#679777) - - type_units and DW_AT_GNU_odr_signature support (#679815) - - low level support DW_OP_GNU_entry_value and DW_TAG_GNU_call_site (#688090) - - FTBFS on rawhide with gcc 4.7 (#783506) - - Remove gcc-4.7 patch - -* Fri Jan 20 2012 Mark Wielaard - 0.152-3 -- Fixes for gcc-4.7 based on upstream commit 32899a (#783506). - -* Fri Jan 13 2012 Fedora Release Engineering - 0.152-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Tue Feb 15 2011 Roland McGrath - 0.152-1 -- Update to 0.152 - - Various build and warning nits fixed for newest GCC and Autoconf. - - libdwfl: Yet another prelink-related fix for another regression. (#674465) - - eu-elfcmp: New flag --ignore-build-id to ignore differing build ID bits. - - eu-elfcmp: New flag -l/--verbose to print all differences. - -* Tue Feb 08 2011 Fedora Release Engineering - 0.151-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Wed Jan 12 2011 Roland McGrath - 0.151-1 -- Update to 0.151 - - libdwfl: Fix for more prelink cases with separate debug file. - - eu-strip: New flag --strip-sections to remove section headers entirely. - -* Thu Dec 2 2010 Roland McGrath - 0.150-2 -- libdwfl: Remove bogus assert. (#658268) - -* Tue Nov 23 2010 Roland McGrath - 0.150-1 -- Update to 0.150 - - libdw: Fix for handling huge .debug_aranges section. (#638432) - - libdwfl: Fix for handling prelinked DSO with separate debug file. (#652857) - - findtextrel: Fix diagnostics to work with usual section ordering. - -* Wed Sep 29 2010 jkeating - 0.149-2 -- Rebuilt for gcc bug 634757 - -* Mon Sep 13 2010 Roland McGrath - 0.149-1 -- Update to 0.149 - - libdw: Decode new DW_OP_GNU_implicit_pointer operation; - new function dwarf_getlocation_implicit_pointer. - - libdwfl: New function dwfl_dwarf_line. - - eu-addr2line: New flag -F/--flags to print more DWARF line info details. - - eu-readelf: better .debug_loc processing (#627729) - - eu-strings: Fix non-mmap file reading. (#609468) - - eu-strip: -g recognizes .gdb_index as a debugging section. (#631997) - -* Mon Jun 28 2010 Roland McGrath - 0.148-1 -- Update to 0.148 - - libdw: Accept DWARF 4 format: new functions dwarf_next_unit, - dwarf_offdie_types. - New functions dwarf_lineisa, dwarf_linediscriminator, - dwarf_lineop_index. - - libdwfl: Fixes in core-file handling, support cores from PIEs. (#588818) - When working from build IDs, don't open a named file - that mismatches. - - readelf: Handle DWARF 4 formats. - -* Mon May 3 2010 Roland McGrath - 0.147-1 -- Update to 0.147 - -* Wed Apr 21 2010 Roland McGrath - 0.146-1 -- Update to 0.146 - - libdwfl: New function dwfl_core_file_report. - - libelf: Fix handling of phdrs in truncated file. (#577310) - - libdwfl: Fix infinite loop handling clobbered link_map. (#576379) -- Package translations. - -* Tue Feb 23 2010 Roland McGrath - 0.145-1 -- Update to 0.145 - - Fix build with --disable-dependency-tracking. (#564646) - - Fix build with most recent glibc headers. - - libdw: Fix CFI decoding. (#563528) - - libdwfl: Fix address bias returned by CFI accessors. (#563528) - Fix core file module layout identification. (#559836) - - readelf: Fix CFI decoding. - -* Fri Jan 15 2010 Roland McGrath - 0.144-2 -- Fix sloppy #include's breaking build with F-13 glibc. - -* Thu Jan 14 2010 Roland McGrath - 0.144-1 -- Update to 0.144 - - libdw: New function dwarf_aggregate_size for computing (constant) type - sizes, including array_type cases with nontrivial calculation. - - readelf: Don't give errors for missing info under -a. - Handle Linux "VMCOREINFO" notes under -n. -- Resolves: RHBZ #527004, RHBZ #530704, RHBZ #550858 - -* Mon Sep 21 2009 Roland McGrath - 0.143-1 -- Update to 0.143 - - libdw: Various convenience functions for individual attributes now use - dwarf_attr_integrate to look up indirect inherited attributes. - Location expression handling now supports DW_OP_implicit_value. - - libdwfl: Support automatic decompression of files in XZ format, - and of Linux kernel images made with bzip2 or LZMA - (as well as gzip). - -* Tue Jul 28 2009 Roland McGrath - 0.142-1 -- Update to 0.142 - - libelf: Bug fix in filling gaps between sections. (#512840) - - libelf: Add elf_getshdrnum alias for elf_getshnum and elf_getshdrstrndx - alias for elf_getshstrndx and deprecate original names. - - libebl, elflint: Add support for STB_GNU_UNIQUE. (#511436) - - readelf: Add -N option, speeds up DWARF printing - without address->name lookups. (#505347) - - libdw: Add support for decoding DWARF CFI into location description form. - Handle some new DWARF 3 expression operations previously omitted. - Basic handling of some new encodings slated for DWARF 4. - -* Thu Apr 23 2009 Roland McGrath - 0.141-1 -- Update to 0.141 - - libebl: sparc backend fixes (#490585) - some more arm backend support - - libdwfl: fix dwfl_module_build_id for prelinked DSO case (#489439) - fixes in core file support (#494858) - dwfl_module_getsym interface improved for non-address symbols - - eu-strip: fix infinite loop on strange inputs with -f - - eu-addr2line: take -j/--section=NAME option for binutils compatibility - (same effect as '(NAME)0x123' syntax already supported) -- Resolves: RHBZ #495213, RHBZ #465872, RHBZ #470055, RHBZ #484623 - -* Tue Feb 24 2009 Fedora Release Engineering - 0.140-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Sun Feb 15 2009 Roland McGrath - 0.140-1 -- Update to 0.140 - - libelf: Fix regression in creation of section header. (#484946) - -* Fri Jan 23 2009 Roland McGrath - 0.139-1 -- Update to 0.139 - - libcpu: Add Intel SSE4 disassembler support - - readelf: Implement call frame information and exception handling dumping. - Add -e option. Enable it implicitly for -a. - - elflint: Check PT_GNU_EH_FRAME program header entry. - - libdwfl: Support automatic gzip/bzip2 decompression of ELF files. (#472136) - -* Thu Jan 1 2009 Roland McGrath - 0.138-2 -- Fix libelf regression. - -* Wed Dec 31 2008 Roland McGrath - 0.138-1 -- Update to 0.138 - - Install header file for applications to use in - source version compatibility checks. - - libebl: backend fixes for i386 TLS relocs; backend support for NT_386_IOPERM - - libcpu: disassembler fixes (#469739) - - libdwfl: bug fixes (#465878) - - libelf: bug fixes - - eu-nm: bug fixes for handling corrupt input files (#476136) - * Wed Oct 1 2008 Roland McGrath - 0.137-3 - fix libdwfl regression (#462689) diff --git a/gating.yaml b/gating.yaml deleted file mode 100644 index f2f9f20..0000000 --- a/gating.yaml +++ /dev/null @@ -1,14 +0,0 @@ ---- !Policy -product_versions: - - fedora-* -decision_context: bodhi_update_push_stable -subject_type: koji_build -rules: - - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} - - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.rpminspect.static-analysis} ---- !Policy -product_versions: - - rhel-9 -decision_context: osci_compose_gate -rules: - - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} diff --git a/mirrors b/mirrors deleted file mode 100644 index f4b3561..0000000 --- a/mirrors +++ /dev/null @@ -1 +0,0 @@ -https://fedorahosted.org/releases/e/l/elfutils diff --git a/plans/ci.fmf b/plans/ci.fmf deleted file mode 100644 index 85710d6..0000000 --- a/plans/ci.fmf +++ /dev/null @@ -1,6 +0,0 @@ -summary: CI Gating Plan -discover: - how: fmf - directory: tests -execute: - how: tmt diff --git a/sources b/sources index bd25645..81ce69c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (elfutils-0.194.tar.bz2) = 5d00502f61b92643bf61dc61da4ddded36c423466388d992bcd388c5208761b8ed9db1a01492c085cd0984eef30c08f895a8e307e78e0df8df40b56ae35b78a5 +a24690a64268516bd413c4c3fe6c6dd4 elfutils-0.137.tar.gz diff --git a/tests/Regression/GNU-Attribute-notes-not-recognized/Makefile b/tests/Regression/GNU-Attribute-notes-not-recognized/Makefile deleted file mode 100644 index 332e11f..0000000 --- a/tests/Regression/GNU-Attribute-notes-not-recognized/Makefile +++ /dev/null @@ -1,65 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/elfutils/Regression/GNU-Attribute-notes-not-recognized -# Description: GNU-Attribute-notes-not-recognized -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2018 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/elfutils/Regression/GNU-Attribute-notes-not-recognized -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Martin Cermak " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: GNU-Attribute-notes-not-recognized" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 48h" >> $(METADATA) - @echo "RunFor: elfutils" >> $(METADATA) - @echo "Requires: elfutils" >> $(METADATA) - @echo "Requires: bash bash-debuginfo" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2+" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Bug: 1650125" >> $(METADATA) - @echo "Releases: -RHEL4 -RHEL6 -RHEL7 -RHELClient5 -RHELServer5" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/GNU-Attribute-notes-not-recognized/PURPOSE b/tests/Regression/GNU-Attribute-notes-not-recognized/PURPOSE deleted file mode 100644 index 8f81c9c..0000000 --- a/tests/Regression/GNU-Attribute-notes-not-recognized/PURPOSE +++ /dev/null @@ -1,5 +0,0 @@ -PURPOSE of /tools/elfutils/Regression/GNU-Attribute-notes-not-recognized -Description: GNU-Attribute-notes-not-recognized -Author: Martin Cermak -Bug summary: elfutils doesn't recognize GNU Attribute notes -Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1650125 diff --git a/tests/Regression/GNU-Attribute-notes-not-recognized/main.fmf b/tests/Regression/GNU-Attribute-notes-not-recognized/main.fmf deleted file mode 100644 index eb1809c..0000000 --- a/tests/Regression/GNU-Attribute-notes-not-recognized/main.fmf +++ /dev/null @@ -1,16 +0,0 @@ -summary: GNU-Attribute-notes-not-recognized -description: | - Bug summary: elfutils doesn't recognize GNU Attribute notes - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1650125 -contact: Martin Cermak -component: - - elfutils -test: ./runtest.sh -framework: beakerlib -recommend: - - elfutils - - bash - - bash-debuginfo -duration: 48h -extra-summary: /tools/elfutils/Regression/GNU-Attribute-notes-not-recognized -extra-task: /tools/elfutils/Regression/GNU-Attribute-notes-not-recognized diff --git a/tests/Regression/GNU-Attribute-notes-not-recognized/runtest.sh b/tests/Regression/GNU-Attribute-notes-not-recognized/runtest.sh deleted file mode 100755 index aaa6c89..0000000 --- a/tests/Regression/GNU-Attribute-notes-not-recognized/runtest.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Regression/GNU-Attribute-notes-not-recognized -# Description: GNU-Attribute-notes-not-recognized -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2018 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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 Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="elfutils" - -rlJournalStart - rlPhaseStartTest - # Rely on that /bin/bash is annobin-annotated per - # - https://fedoraproject.org/wiki/Toolchain/Watermark - # - https://fedoraproject.org/wiki/Changes/Annobin - # Seems to work fine with bash-4.4.19-6.el8 and elfutils-0.174-5.el8. - f="/bin/bash" - - # Annobin notes originally used to reside in the binary itself. - # Later on they moved to debuginfo. - # Let's see if we can chase down needed debuginfo somewhere... - - # Attempt getting the needed file using debuginfod - export DEBUGINFOD_URLS=https://debuginfod.fedoraproject.org/ - rlRun "f=\"$f $(debuginfod-find debuginfo /bin/bash)\"" - - # Attempt getting the needed file by traditional means - rlRun "debuginfo-install -y bash" - rlRun "buildid=$(eu-readelf -n /bin/bash | awk '/Build ID:/ {print $NF}')" - for i in $(rpm -ql bash-debuginfo); do - test -f $i || continue - if eu-readelf -n $i | fgrep $buildid; then - rlRun "f=\"$f $i\"" - fi - done - - set -o pipefail - export f - # Check if eu-readelf can read the notes from at least one of files - # that can possibly contain it... - rlRun "(for i in $f; do eu-readelf -n $i; done ) | grep -2 '^ GA' | fgrep 'GNU Build Attribute' | tail -50" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/RFE-support-reading-compressed-ELF-objects/Makefile b/tests/Regression/RFE-support-reading-compressed-ELF-objects/Makefile deleted file mode 100644 index 13ee890..0000000 --- a/tests/Regression/RFE-support-reading-compressed-ELF-objects/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/elfutils/Regression/RFE-support-reading-compressed-ELF-objects -# Description: Test for BZ#1674430 (RFE support reading compressed ELF objects) -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2019 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/elfutils/Regression/RFE-support-reading-compressed-ELF-objects -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Martin Cermak " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: Test for BZ#1674430 (RFE support reading compressed ELF objects)" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 48h" >> $(METADATA) - @echo "RunFor: elfutils" >> $(METADATA) - @echo "Requires: elfutils" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2+" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Bug: 1674430" >> $(METADATA) - @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/RFE-support-reading-compressed-ELF-objects/PURPOSE b/tests/Regression/RFE-support-reading-compressed-ELF-objects/PURPOSE deleted file mode 100644 index 5d1cbba..0000000 --- a/tests/Regression/RFE-support-reading-compressed-ELF-objects/PURPOSE +++ /dev/null @@ -1,5 +0,0 @@ -PURPOSE of /tools/elfutils/Regression/RFE-support-reading-compressed-ELF-objects -Description: Test for BZ#1674430 (RFE support reading compressed ELF objects) -Author: Martin Cermak -Bug summary: RFE: support reading compressed ELF objects -Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1674430 diff --git a/tests/Regression/RFE-support-reading-compressed-ELF-objects/main.fmf b/tests/Regression/RFE-support-reading-compressed-ELF-objects/main.fmf deleted file mode 100644 index 3053404..0000000 --- a/tests/Regression/RFE-support-reading-compressed-ELF-objects/main.fmf +++ /dev/null @@ -1,15 +0,0 @@ -summary: Test for BZ#1674430 (RFE support reading compressed ELF objects) -description: | - Bug summary: RFE: support reading compressed ELF objects - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1674430 -contact: -- Martin Cermak -component: -- elfutils -test: ./runtest.sh -framework: beakerlib -recommend: -- elfutils -duration: 48h -extra-summary: /tools/elfutils/Regression/RFE-support-reading-compressed-ELF-objects -extra-task: /tools/elfutils/Regression/RFE-support-reading-compressed-ELF-objects diff --git a/tests/Regression/RFE-support-reading-compressed-ELF-objects/runtest.sh b/tests/Regression/RFE-support-reading-compressed-ELF-objects/runtest.sh deleted file mode 100755 index c39793d..0000000 --- a/tests/Regression/RFE-support-reading-compressed-ELF-objects/runtest.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Regression/RFE-support-reading-compressed-ELF-objects -# Description: Test for BZ#1674430 (RFE support reading compressed ELF objects) -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2019 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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 Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="elfutils" -KOXZS_TO_TEST=20 - -rlJournalStart - rlPhaseStartTest - # Look to see that dwelf_elf_begin is now in libdw.so - rlRun "eu-nm -D $(ldd $(which eu-readelf) | awk '/libdw.so/ {print $3}') | fgrep 'dwelf_elf_begin'" - # Also eu-readelf now takes advantage of dwelf_elf_begin() to directly read compressed ELF files. - for koxz in $(find /usr/lib/modules/ | fgrep '.ko.xz' | shuf -n $KOXZS_TO_TEST); do - rlRun "eu-readelf -n $koxz" - done - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/SHT_X86_64_UNWIND-section-not-recognized/Makefile b/tests/Regression/SHT_X86_64_UNWIND-section-not-recognized/Makefile deleted file mode 100644 index 3923e29..0000000 --- a/tests/Regression/SHT_X86_64_UNWIND-section-not-recognized/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/elfutils/Regression/SHT_X86_64_UNWIND-section-not-recognized -# Description: SHT_X86_64_UNWIND-section-not-recognized -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2018 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/elfutils/Regression/SHT_X86_64_UNWIND-section-not-recognized -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE m.o - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Martin Cermak " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: SHT_X86_64_UNWIND-section-not-recognized" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 48h" >> $(METADATA) - @echo "RunFor: elfutils" >> $(METADATA) - @echo "Requires: elfutils" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2+" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Bug: 1650114" >> $(METADATA) - @echo "Releases: -RHEL4 -RHEL6 -RHEL7 -RHELClient5 -RHELServer5" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/SHT_X86_64_UNWIND-section-not-recognized/PURPOSE b/tests/Regression/SHT_X86_64_UNWIND-section-not-recognized/PURPOSE deleted file mode 100644 index a725362..0000000 --- a/tests/Regression/SHT_X86_64_UNWIND-section-not-recognized/PURPOSE +++ /dev/null @@ -1,5 +0,0 @@ -PURPOSE of /tools/elfutils/Regression/SHT_X86_64_UNWIND-section-not-recognized -Description: SHT_X86_64_UNWIND-section-not-recognized -Author: Martin Cermak -Bug summary: elfutils doesn't recognize gold linker SHT_X86_64_UNWIND section -Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1650114 diff --git a/tests/Regression/SHT_X86_64_UNWIND-section-not-recognized/m.o b/tests/Regression/SHT_X86_64_UNWIND-section-not-recognized/m.o deleted file mode 100644 index cd5b639..0000000 Binary files a/tests/Regression/SHT_X86_64_UNWIND-section-not-recognized/m.o and /dev/null differ diff --git a/tests/Regression/SHT_X86_64_UNWIND-section-not-recognized/main.fmf b/tests/Regression/SHT_X86_64_UNWIND-section-not-recognized/main.fmf deleted file mode 100644 index 669db9f..0000000 --- a/tests/Regression/SHT_X86_64_UNWIND-section-not-recognized/main.fmf +++ /dev/null @@ -1,15 +0,0 @@ -summary: SHT_X86_64_UNWIND-section-not-recognized -description: | - Bug summary: elfutils doesn't recognize gold linker SHT_X86_64_UNWIND section - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1650114 -contact: -- Martin Cermak -component: -- elfutils -test: ./runtest.sh -framework: beakerlib -recommend: -- elfutils -duration: 48h -extra-summary: /tools/elfutils/Regression/SHT_X86_64_UNWIND-section-not-recognized -extra-task: /tools/elfutils/Regression/SHT_X86_64_UNWIND-section-not-recognized diff --git a/tests/Regression/SHT_X86_64_UNWIND-section-not-recognized/runtest.sh b/tests/Regression/SHT_X86_64_UNWIND-section-not-recognized/runtest.sh deleted file mode 100755 index cd5a8d6..0000000 --- a/tests/Regression/SHT_X86_64_UNWIND-section-not-recognized/runtest.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Regression/SHT_X86_64_UNWIND-section-not-recognized -# Description: SHT_X86_64_UNWIND-section-not-recognized -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2018 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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 Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="elfutils" - -rlJournalStart - rlPhaseStartTest - set -o pipefail - rlRun "eu-readelf -S m.o | fgrep .eh_frame | fgrep X86_64_UNWIND" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/abrt-faf-elfutils-IO-default-xsputn/Makefile b/tests/Regression/abrt-faf-elfutils-IO-default-xsputn/Makefile deleted file mode 100644 index d8c5c79..0000000 --- a/tests/Regression/abrt-faf-elfutils-IO-default-xsputn/Makefile +++ /dev/null @@ -1,63 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/elfutils/Regression/abrt-faf-elfutils-IO-default-xsputn -# Description: abrt-faf-elfutils-IO-default-xsputn -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2015 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/elfutils/Regression/abrt-faf-elfutils-IO-default-xsputn -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE eu-readelf-n-crash.core.xz - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Martin Cermak " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: abrt-faf-elfutils-IO-default-xsputn" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 5m" >> $(METADATA) - @echo "RunFor: elfutils" >> $(METADATA) - @echo "Requires: elfutils xz" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2+" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Bug: 1262839" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/abrt-faf-elfutils-IO-default-xsputn/PURPOSE b/tests/Regression/abrt-faf-elfutils-IO-default-xsputn/PURPOSE deleted file mode 100644 index 33a3c69..0000000 --- a/tests/Regression/abrt-faf-elfutils-IO-default-xsputn/PURPOSE +++ /dev/null @@ -1,5 +0,0 @@ -PURPOSE of /tools/elfutils/Regression/abrt-faf-elfutils-IO-default-xsputn -Description: abrt-faf-elfutils-IO-default-xsputn -Author: Martin Cermak -Bug summary: [abrt] [faf] elfutils: _IO_default_xsputn(): /usr/bin/eu-readelf killed by 11 -Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1262839 diff --git a/tests/Regression/abrt-faf-elfutils-IO-default-xsputn/eu-readelf-n-crash.core.xz b/tests/Regression/abrt-faf-elfutils-IO-default-xsputn/eu-readelf-n-crash.core.xz deleted file mode 100644 index 9326d2e..0000000 Binary files a/tests/Regression/abrt-faf-elfutils-IO-default-xsputn/eu-readelf-n-crash.core.xz and /dev/null differ diff --git a/tests/Regression/abrt-faf-elfutils-IO-default-xsputn/main.fmf b/tests/Regression/abrt-faf-elfutils-IO-default-xsputn/main.fmf deleted file mode 100644 index 48f5fc9..0000000 --- a/tests/Regression/abrt-faf-elfutils-IO-default-xsputn/main.fmf +++ /dev/null @@ -1,16 +0,0 @@ -summary: abrt-faf-elfutils-IO-default-xsputn -description: | - Bug summary: [abrt] [faf] elfutils: _IO_default_xsputn(): /usr/bin/eu-readelf killed by 11 - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1262839 -contact: -- Martin Cermak -component: -- elfutils -test: ./runtest.sh -framework: beakerlib -recommend: -- elfutils -- xz -duration: 5m -extra-summary: /tools/elfutils/Regression/abrt-faf-elfutils-IO-default-xsputn -extra-task: /tools/elfutils/Regression/abrt-faf-elfutils-IO-default-xsputn diff --git a/tests/Regression/abrt-faf-elfutils-IO-default-xsputn/runtest.sh b/tests/Regression/abrt-faf-elfutils-IO-default-xsputn/runtest.sh deleted file mode 100755 index 685d143..0000000 --- a/tests/Regression/abrt-faf-elfutils-IO-default-xsputn/runtest.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash -# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Regression/abrt-faf-elfutils-IO-default-xsputn -# Description: abrt-faf-elfutils-IO-default-xsputn -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2015 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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 Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -rlJournalStart - rlPhaseStartSetup - rlRun "TMPD=$(mktemp -d)" - rlRun "cp eu-readelf-n-crash.core.xz $TMPD/" - rlRun "pushd $TMPD" - rlRun "unxz eu-readelf-n-crash.core.xz" - rlPhaseEnd - - rlPhaseStartTest - rlRun "eu-readelf -n ./eu-readelf-n-crash.core" - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TMPD" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/add-ppc64-fallback-unwinder/Makefile b/tests/Regression/add-ppc64-fallback-unwinder/Makefile deleted file mode 100644 index c6ab7c3..0000000 --- a/tests/Regression/add-ppc64-fallback-unwinder/Makefile +++ /dev/null @@ -1,65 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/elfutils/Regression/add-ppc64-fallback-unwinder -# Description: add-ppc64-fallback-unwinder -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2017 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/elfutils/Regression/add-ppc64-fallback-unwinder -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE backtrace.ppc64le.fp.core.bz2 backtrace.ppc64le.fp.exec.bz2 output.ref - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Martin Cermak " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: add-ppc64-fallback-unwinder" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 10m" >> $(METADATA) - @echo "RunFor: elfutils" >> $(METADATA) - @echo "Requires: elfutils" >> $(METADATA) - @echo "Requires: bzip2" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2+" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Bug: 1454754" >> $(METADATA) - @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/add-ppc64-fallback-unwinder/PURPOSE b/tests/Regression/add-ppc64-fallback-unwinder/PURPOSE deleted file mode 100644 index 198b5c0..0000000 --- a/tests/Regression/add-ppc64-fallback-unwinder/PURPOSE +++ /dev/null @@ -1,5 +0,0 @@ -PURPOSE of /tools/elfutils/Regression/add-ppc64-fallback-unwinder -Description: add-ppc64-fallback-unwinder -Author: Martin Cermak -Bug summary: Add ppc64 fallback unwinder to elfutils libdw -Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1454754 diff --git a/tests/Regression/add-ppc64-fallback-unwinder/backtrace.ppc64le.fp.core.bz2 b/tests/Regression/add-ppc64-fallback-unwinder/backtrace.ppc64le.fp.core.bz2 deleted file mode 100644 index e63babf..0000000 Binary files a/tests/Regression/add-ppc64-fallback-unwinder/backtrace.ppc64le.fp.core.bz2 and /dev/null differ diff --git a/tests/Regression/add-ppc64-fallback-unwinder/backtrace.ppc64le.fp.exec.bz2 b/tests/Regression/add-ppc64-fallback-unwinder/backtrace.ppc64le.fp.exec.bz2 deleted file mode 100644 index ed1352a..0000000 Binary files a/tests/Regression/add-ppc64-fallback-unwinder/backtrace.ppc64le.fp.exec.bz2 and /dev/null differ diff --git a/tests/Regression/add-ppc64-fallback-unwinder/main.fmf b/tests/Regression/add-ppc64-fallback-unwinder/main.fmf deleted file mode 100644 index 844bc0f..0000000 --- a/tests/Regression/add-ppc64-fallback-unwinder/main.fmf +++ /dev/null @@ -1,16 +0,0 @@ -summary: add-ppc64-fallback-unwinder -description: | - Bug summary: Add ppc64 fallback unwinder to elfutils libdw - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1454754 -contact: -- Martin Cermak -component: -- elfutils -test: ./runtest.sh -framework: beakerlib -recommend: -- elfutils -- bzip2 -duration: 10m -extra-summary: /tools/elfutils/Regression/add-ppc64-fallback-unwinder -extra-task: /tools/elfutils/Regression/add-ppc64-fallback-unwinder diff --git a/tests/Regression/add-ppc64-fallback-unwinder/output.ref b/tests/Regression/add-ppc64-fallback-unwinder/output.ref deleted file mode 100644 index 5f21abd..0000000 --- a/tests/Regression/add-ppc64-fallback-unwinder/output.ref +++ /dev/null @@ -1,17 +0,0 @@ -PID 23727 - core -TID 23728: -#0 0x00000000100104bc raise -#1 0x0000000010002a1c sigusr2 -#2 0x0000000010002a1c sigusr2 -#3 0x0000000010002b38 stdarg -#4 0x0000000010002bc4 backtracegen -#5 0x0000000010002bf0 start -#6 0x0000000010004c28 start_thread -eu-stack: dwfl_thread_getframes tid 23728 at 0x10004c27 in /root/mjw/elfutils/tests/backtrace.ppc64le.fp.exec: (null) -TID 23727: -#0 0x0000000010006034 pthread_join -#1 0x00000000100025bc main -#2 0x00000000100025bc main -#3 0x00000000100123c4 generic_start_main -#4 0x0000000010012570 __libc_start_main -eu-stack: dwfl_thread_getframes tid 23727 at 0x1001256f in /root/mjw/elfutils/tests/backtrace.ppc64le.fp.exec: No DWARF information found diff --git a/tests/Regression/add-ppc64-fallback-unwinder/runtest.sh b/tests/Regression/add-ppc64-fallback-unwinder/runtest.sh deleted file mode 100755 index dcc6717..0000000 --- a/tests/Regression/add-ppc64-fallback-unwinder/runtest.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Regression/add-ppc64-fallback-unwinder -# Description: add-ppc64-fallback-unwinder -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2017 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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 Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="elfutils" - -rlJournalStart - rlPhaseStartSetup - rlAssertRpm $PACKAGE - rlRun "TEMPD=\$(mktemp -d)" - rlRun "cp backtrace.ppc64le.fp.core.bz2 backtrace.ppc64le.fp.exec.bz2 output.ref $TEMPD" - rlRun "pushd $TEMPD" - rlRun "bunzip2 backtrace.ppc64le.fp.core.bz2" - rlRun "bunzip2 backtrace.ppc64le.fp.exec.bz2" - rlPhaseEnd - - rlPhaseStartTest - rlRun "eu-stack --exec backtrace.ppc64le.fp.exec --core backtrace.ppc64le.fp.core |& tee output.txt" - rlRun "grep '^#' output.ref > output.ref.filtered" - rlRun "grep '^#' output.txt > output.txt.filtered" - rlRun "diff output.txt.filtered output.ref.filtered" - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TEMPD" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/api-break-in-libasm-h/Makefile b/tests/Regression/api-break-in-libasm-h/Makefile deleted file mode 100644 index ea40a57..0000000 --- a/tests/Regression/api-break-in-libasm-h/Makefile +++ /dev/null @@ -1,65 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/elfutils/Regression/api-break-in-libasm-h -# Description: api-break-in-libasm-h -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2020 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/elfutils/Regression/api-break-in-libasm-h -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE test.c - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Martin Cermak " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: api-break-in-libasm-h" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 48h" >> $(METADATA) - @echo "RunFor: elfutils" >> $(METADATA) - @echo "Requires: elfutils-devel" >> $(METADATA) - @echo "Requires: gcc" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2+" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Bug: 1789885" >> $(METADATA) - @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/api-break-in-libasm-h/PURPOSE b/tests/Regression/api-break-in-libasm-h/PURPOSE deleted file mode 100644 index 00cfe40..0000000 --- a/tests/Regression/api-break-in-libasm-h/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -PURPOSE of /tools/elfutils/Regression/api-break-in-libasm-h -Description: api-break-in-libasm-h -Author: Martin Cermak diff --git a/tests/Regression/api-break-in-libasm-h/main.fmf b/tests/Regression/api-break-in-libasm-h/main.fmf deleted file mode 100644 index 057a742..0000000 --- a/tests/Regression/api-break-in-libasm-h/main.fmf +++ /dev/null @@ -1,14 +0,0 @@ -summary: api-break-in-libasm-h -description: '' -contact: -- Martin Cermak -component: -- elfutils -test: ./runtest.sh -framework: beakerlib -recommend: -- elfutils-devel -- gcc -duration: 48h -extra-summary: /tools/elfutils/Regression/api-break-in-libasm-h -extra-task: /tools/elfutils/Regression/api-break-in-libasm-h diff --git a/tests/Regression/api-break-in-libasm-h/runtest.sh b/tests/Regression/api-break-in-libasm-h/runtest.sh deleted file mode 100755 index 25e19cd..0000000 --- a/tests/Regression/api-break-in-libasm-h/runtest.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Regression/api-break-in-libasm-h -# Description: api-break-in-libasm-h -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2020 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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 Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="elfutils" - -rlJournalStart - rlPhaseStartTest - rlRun "test -f /usr/include/elfutils/libasm.h" - rlRun "gcc -I/usr/include/elfutils -c test.c" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/api-break-in-libasm-h/test.c b/tests/Regression/api-break-in-libasm-h/test.c deleted file mode 100644 index 83a8af0..0000000 --- a/tests/Regression/api-break-in-libasm-h/test.c +++ /dev/null @@ -1,6 +0,0 @@ -#include -#include -#include - - - diff --git a/tests/Regression/bz1059897-Support-64-bit-SYM64-symbol-table/Makefile b/tests/Regression/bz1059897-Support-64-bit-SYM64-symbol-table/Makefile deleted file mode 100644 index 165d96b..0000000 --- a/tests/Regression/bz1059897-Support-64-bit-SYM64-symbol-table/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/elfutils/Regression/bz1059897-Support-64-bit-SYM64-symbol-table -# Description: Test for BZ#1059897 (Support 64-bit /SYM64/ symbol table) -# Author: Vaclav Kadlcik -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2014 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/elfutils/Regression/bz1059897-Support-64-bit-SYM64-symbol-table -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE libantlr.a.bz2 - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Vaclav Kadlcik " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: Test for BZ#1059897 (Support 64-bit /SYM64/ symbol table)" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 5m" >> $(METADATA) - @echo "RunFor: elfutils" >> $(METADATA) - @echo "Requires: elfutils" >> $(METADATA) - @echo "Requires: bzip2" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2+" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Bug: 1059897" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/bz1059897-Support-64-bit-SYM64-symbol-table/PURPOSE b/tests/Regression/bz1059897-Support-64-bit-SYM64-symbol-table/PURPOSE deleted file mode 100644 index 736226e..0000000 --- a/tests/Regression/bz1059897-Support-64-bit-SYM64-symbol-table/PURPOSE +++ /dev/null @@ -1,12 +0,0 @@ -PURPOSE of /tools/elfutils/Regression/bz1059897-Support-64-bit-SYM64-symbol-table -Description: Test for BZ#1059897 (Support 64-bit /SYM64/ symbol table) -Author: Vaclav Kadlcik -Bug summary: Support 64-bit /SYM64/ symbol table -Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1059897 - -Verify that a 64-bit symbol table produced on s390x is readable by elfutils -tools. The test is based on Ed Santiago's examples in Bugzilla; a test file -(libantlr.a) is taken from antlr-C++-2.7.7-30.el7.s390x.rpm. Mark Wielaard -mentioned another test included in the upstream; it gets processed within -../../testsuite (which runs the complete upstream testsuite) so its omission -here is intentional. diff --git a/tests/Regression/bz1059897-Support-64-bit-SYM64-symbol-table/libantlr.a.bz2 b/tests/Regression/bz1059897-Support-64-bit-SYM64-symbol-table/libantlr.a.bz2 deleted file mode 100644 index b839b74..0000000 Binary files a/tests/Regression/bz1059897-Support-64-bit-SYM64-symbol-table/libantlr.a.bz2 and /dev/null differ diff --git a/tests/Regression/bz1059897-Support-64-bit-SYM64-symbol-table/main.fmf b/tests/Regression/bz1059897-Support-64-bit-SYM64-symbol-table/main.fmf deleted file mode 100644 index 1f1766e..0000000 --- a/tests/Regression/bz1059897-Support-64-bit-SYM64-symbol-table/main.fmf +++ /dev/null @@ -1,23 +0,0 @@ -summary: Test for BZ#1059897 (Support 64-bit /SYM64/ symbol table) -description: | - Bug summary: Support 64-bit /SYM64/ symbol table - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1059897 - - Verify that a 64-bit symbol table produced on s390x is readable by elfutils - tools. The test is based on Ed Santiago's examples in Bugzilla; a test file - (libantlr.a) is taken from antlr-C++-2.7.7-30.el7.s390x.rpm. Mark Wielaard - mentioned another test included in the upstream; it gets processed within - ../../testsuite (which runs the complete upstream testsuite) so its omission - here is intentional. -contact: -- Vaclav Kadlcik -component: -- elfutils -test: ./runtest.sh -framework: beakerlib -recommend: -- elfutils -- bzip2 -duration: 5m -extra-summary: /tools/elfutils/Regression/bz1059897-Support-64-bit-SYM64-symbol-table -extra-task: /tools/elfutils/Regression/bz1059897-Support-64-bit-SYM64-symbol-table diff --git a/tests/Regression/bz1059897-Support-64-bit-SYM64-symbol-table/runtest.sh b/tests/Regression/bz1059897-Support-64-bit-SYM64-symbol-table/runtest.sh deleted file mode 100755 index 2b35c4c..0000000 --- a/tests/Regression/bz1059897-Support-64-bit-SYM64-symbol-table/runtest.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Regression/bz1059897-Support-64-bit-SYM64-symbol-table -# Description: Test for BZ#1059897 (Support 64-bit /SYM64/ symbol table) -# Author: Vaclav Kadlcik -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2014 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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 Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="elfutils" - -TEST_ARCHIVE_1='libantlr.a' # see PURPOSE & Bugzilla - -rlJournalStart - rlPhaseStartSetup - rlAssertRpm $PACKAGE - rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" - rlRun "cp ${TEST_ARCHIVE_1}.bz2 $TmpDir" 0 "Copying test files" - rlRun "pushd $TmpDir" - rlPhaseEnd - - rlPhaseStartTest - - rlRun "bunzip2 ${TEST_ARCHIVE_1}.bz2" - rlAssertExists "$TEST_ARCHIVE_1" - - rlRun -s "eu-ar t $TEST_ARCHIVE_1" 0 "Checking eu-ar runs" - rlAssertExists "$rlRun_LOG" - rlAssertGrep '^/SYM64/$' "$rlRun_LOG" - rlAssertGrep '^ANTLRUtil\.o$' "$rlRun_LOG" - - rlRun -s "eu-readelf -a $TEST_ARCHIVE_1" 0 "Checking eu-readelf runs" - rlAssertExists "$rlRun_LOG" - rlAssertGrep '^ELF Header:$' "$rlRun_LOG" - - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TmpDir" 0 "Removing tmp directory" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/bz1371517-eu-stack-killed-by-SIGABRT-processing-gcore/Makefile b/tests/Regression/bz1371517-eu-stack-killed-by-SIGABRT-processing-gcore/Makefile deleted file mode 100644 index 1a21968..0000000 --- a/tests/Regression/bz1371517-eu-stack-killed-by-SIGABRT-processing-gcore/Makefile +++ /dev/null @@ -1,65 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/elfutils/Regression/bz1371517-eu-stack-killed-by-SIGABRT-processing-gcore -# Description: Test for BZ#1371517 (eu-stack killed by SIGABRT processing gcore) -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2017 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/elfutils/Regression/bz1371517-eu-stack-killed-by-SIGABRT-processing-gcore -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Martin Cermak " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: Test for BZ#1371517 (eu-stack killed by SIGABRT processing gcore)" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 48h" >> $(METADATA) - @echo "RunFor: elfutils" >> $(METADATA) - @echo "Requires: elfutils" >> $(METADATA) - @echo "Requires: gdb" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2+" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Bug: 1371517" >> $(METADATA) - @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/bz1371517-eu-stack-killed-by-SIGABRT-processing-gcore/PURPOSE b/tests/Regression/bz1371517-eu-stack-killed-by-SIGABRT-processing-gcore/PURPOSE deleted file mode 100644 index d82ebd0..0000000 --- a/tests/Regression/bz1371517-eu-stack-killed-by-SIGABRT-processing-gcore/PURPOSE +++ /dev/null @@ -1,5 +0,0 @@ -PURPOSE of /tools/elfutils/Regression/bz1371517-eu-stack-killed-by-SIGABRT-processing-gcore -Description: Test for BZ#1371517 (eu-stack killed by SIGABRT processing gcore) -Author: Martin Cermak -Bug summary: eu-stack killed by SIGABRT processing gcore created core file -Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1371517 diff --git a/tests/Regression/bz1371517-eu-stack-killed-by-SIGABRT-processing-gcore/main.fmf b/tests/Regression/bz1371517-eu-stack-killed-by-SIGABRT-processing-gcore/main.fmf deleted file mode 100644 index 639d979..0000000 --- a/tests/Regression/bz1371517-eu-stack-killed-by-SIGABRT-processing-gcore/main.fmf +++ /dev/null @@ -1,16 +0,0 @@ -summary: Test for BZ#1371517 (eu-stack killed by SIGABRT processing gcore) -description: | - Bug summary: eu-stack killed by SIGABRT processing gcore created core file - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1371517 -contact: -- Martin Cermak -component: -- elfutils -test: ./runtest.sh -framework: beakerlib -recommend: -- elfutils -- gdb -duration: 48h -extra-summary: /tools/elfutils/Regression/bz1371517-eu-stack-killed-by-SIGABRT-processing-gcore -extra-task: /tools/elfutils/Regression/bz1371517-eu-stack-killed-by-SIGABRT-processing-gcore diff --git a/tests/Regression/bz1371517-eu-stack-killed-by-SIGABRT-processing-gcore/runtest.sh b/tests/Regression/bz1371517-eu-stack-killed-by-SIGABRT-processing-gcore/runtest.sh deleted file mode 100755 index 34fbabd..0000000 --- a/tests/Regression/bz1371517-eu-stack-killed-by-SIGABRT-processing-gcore/runtest.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Regression/bz1371517-eu-stack-killed-by-SIGABRT-processing-gcore -# Description: Test for BZ#1371517 (eu-stack killed by SIGABRT processing gcore) -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2017 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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 Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -rlJournalStart - rlPhaseStartSetup - rlRun "rpm -q elfutils" - rlRun "rpm -q gdb" - rlRun "TMPD=\$(mktemp -d)" - rlRun "pushd $TMPD" - rlPhaseEnd - - rlPhaseStart FAIL "Build an unstripped binary" - # ... so that we don't need to rely on the infra providing us with - # a (coreutils-) debuginfo package. - echo -e "#include \nint main () { sleep(100); return 0; }" | gcc -g -xc -o sleep100 - - rlRun "file sleep100 | fgrep 'not stripped'" - rlPhaseEnd - - rlPhaseStartTest - ./sleep100 & - SLEEP_PID=$! - rlRun "gcore $SLEEP_PID" - # On some arches, such as aarch64, or s390x, eu-stack doesn't end at some - # reasonable point, when printing the trace, and goes across main, to - # __libc_start_main and even higher and then finally complains about - # "no matching address range". But we don't want to be so strict to check - # for this right now. Mark Wielaard says it is okay, so I trust him ... - # Following assert fails when we get SEGV, which would be bz1371517, which - # reproduces e.g. on f25 using elfutils-0.166-2.fc25, or on rhel-7.3 - # using elfutils-0.166-2.el7. - rlRun "eu-stack --executable=./sleep100 --core=core.$SLEEP_PID > output.txt" 0,1 - # Print the output. Yeah, this could be done using tee or something in - # the above line and play games with exitcodes within a pipe chain, but - # this actually is https://en.wikipedia.org/wiki/KISS_principle :) - rlRun "cat output.txt" - # ... we do want to check at least that "main" was listed in the trace. - rlRun "awk {'print \$3'} output.txt | grep ^main$" - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TMPD" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/bz1717349-vaguely-related-SEGV/Makefile b/tests/Regression/bz1717349-vaguely-related-SEGV/Makefile deleted file mode 100644 index 1246ea1..0000000 --- a/tests/Regression/bz1717349-vaguely-related-SEGV/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/elfutils/Regression/bz1717349-vaguely-related-SEGV -# Description: bz1717349-vaguely-related-SEGV -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2019 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/elfutils/Regression/bz1717349-vaguely-related-SEGV -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE qat_c3xxx.ko - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Martin Cermak " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: bz1717349-vaguely-related-SEGV" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 48h" >> $(METADATA) - @echo "RunFor: elfutils" >> $(METADATA) - @echo "Requires: elfutils" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2+" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Bug: 1717349" >> $(METADATA) - @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/bz1717349-vaguely-related-SEGV/PURPOSE b/tests/Regression/bz1717349-vaguely-related-SEGV/PURPOSE deleted file mode 100644 index b1fac9a..0000000 --- a/tests/Regression/bz1717349-vaguely-related-SEGV/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -PURPOSE of /tools/elfutils/Regression/bz1717349-vaguely-related-SEGV -Description: bz1717349-vaguely-related-SEGV -Author: Martin Cermak diff --git a/tests/Regression/bz1717349-vaguely-related-SEGV/main.fmf b/tests/Regression/bz1717349-vaguely-related-SEGV/main.fmf deleted file mode 100644 index 52eae32..0000000 --- a/tests/Regression/bz1717349-vaguely-related-SEGV/main.fmf +++ /dev/null @@ -1,13 +0,0 @@ -summary: bz1717349-vaguely-related-SEGV -description: '' -contact: -- Martin Cermak -component: -- elfutils -test: ./runtest.sh -framework: beakerlib -recommend: -- elfutils -duration: 48h -extra-summary: /tools/elfutils/Regression/bz1717349-vaguely-related-SEGV -extra-task: /tools/elfutils/Regression/bz1717349-vaguely-related-SEGV diff --git a/tests/Regression/bz1717349-vaguely-related-SEGV/qat_c3xxx.ko b/tests/Regression/bz1717349-vaguely-related-SEGV/qat_c3xxx.ko deleted file mode 100644 index c50cd17..0000000 Binary files a/tests/Regression/bz1717349-vaguely-related-SEGV/qat_c3xxx.ko and /dev/null differ diff --git a/tests/Regression/bz1717349-vaguely-related-SEGV/runtest.sh b/tests/Regression/bz1717349-vaguely-related-SEGV/runtest.sh deleted file mode 100755 index a0ba81d..0000000 --- a/tests/Regression/bz1717349-vaguely-related-SEGV/runtest.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Regression/bz1717349-vaguely-related-SEGV -# Description: bz1717349-vaguely-related-SEGV -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2019 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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 Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="elfutils" - -rlJournalStart - rlPhaseStartTest - # This works with base rhel eu-strip, as well as with various SCL versions of it. Convenience :) - rlRun "which eu-strip" - rlRun "rpm -qf `which eu-strip`" - # Test: SEGV is considered a FAIL (reproduces with elfutils-0.176-4.el8), whereas fixed version exists with 0) - rlRun "eu-strip --remove-comment --reloc-debug-sections -f qat_c3xxx.ko.debug qat_c3xxx.ko" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted/Makefile b/tests/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted/Makefile deleted file mode 100644 index 9d3b9ba..0000000 --- a/tests/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted/Makefile +++ /dev/null @@ -1,63 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/elfutils/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted -# Description: Test for BZ#806474 (eu-unstrip unwilling to reassembled corrupted) -# Author: Vaclav Kadlcik -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2014 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/elfutils/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE ld.bz2 ld.debug.bz2 - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Vaclav Kadlcik " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: Test for BZ#806474 (eu-unstrip unwilling to reassembled corrupted)" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 5m" >> $(METADATA) - @echo "RunFor: elfutils" >> $(METADATA) - @echo "Requires: elfutils bzip2" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2+" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Bug: 806474" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted/PURPOSE b/tests/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted/PURPOSE deleted file mode 100644 index 163e2ce..0000000 --- a/tests/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted/PURPOSE +++ /dev/null @@ -1,9 +0,0 @@ -PURPOSE of /tools/elfutils/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted -Description: Test for BZ#806474 (eu-unstrip unwilling to reassembled corrupted) -Author: Vaclav Kadlcik -Bug summary: eu-unstrip unwilling to reassembled corrupted separate debuginfo -Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=806474 - -Make sure eu-unstrip can merge (when forced) a stripped binary and a separate -debuginfo in spite of the debuginfo was produced by a buggy version of binutils -(see BZ#698005). The test is based on Mark Wielaard's suggestion in Bugzilla. diff --git a/tests/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted/ld.bz2 b/tests/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted/ld.bz2 deleted file mode 100755 index 0a30dfe..0000000 Binary files a/tests/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted/ld.bz2 and /dev/null differ diff --git a/tests/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted/ld.debug.bz2 b/tests/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted/ld.debug.bz2 deleted file mode 100644 index f18e233..0000000 Binary files a/tests/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted/ld.debug.bz2 and /dev/null differ diff --git a/tests/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted/main.fmf b/tests/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted/main.fmf deleted file mode 100644 index d4f8b8d..0000000 --- a/tests/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted/main.fmf +++ /dev/null @@ -1,20 +0,0 @@ -summary: Test for BZ#806474 (eu-unstrip unwilling to reassembled corrupted) -description: | - Bug summary: eu-unstrip unwilling to reassembled corrupted separate debuginfo - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=806474 - - Make sure eu-unstrip can merge (when forced) a stripped binary and a separate - debuginfo in spite of the debuginfo was produced by a buggy version of binutils - (see BZ#698005). The test is based on Mark Wielaard's suggestion in Bugzilla. -contact: -- Vaclav Kadlcik -component: -- elfutils -test: ./runtest.sh -framework: beakerlib -recommend: -- elfutils -- bzip2 -duration: 5m -extra-summary: /tools/elfutils/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted -extra-task: /tools/elfutils/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted diff --git a/tests/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted/runtest.sh b/tests/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted/runtest.sh deleted file mode 100755 index af46602..0000000 --- a/tests/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted/runtest.sh +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Regression/bz806474-eu-unstrip-unwilling-to-reassembled-corrupted -# Description: Test for BZ#806474 (eu-unstrip unwilling to reassembled corrupted) -# Author: Vaclav Kadlcik -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2014 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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 Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="elfutils" - -TEST_STRIPPED='ld' # see PURPOSE, BZ#806474, and 698005 -TEST_DEBUGIFO='ld.debug' # ditto -TEST_MERGED='ld-debug' - -rlJournalStart - rlPhaseStartSetup - rlAssertRpm $PACKAGE - rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" - rlRun "cp ${TEST_STRIPPED}.bz2 ${TEST_DEBUGIFO}.bz2 $TmpDir" 0 "Copying test files" - rlRun "pushd $TmpDir" - rlPhaseEnd - - rlPhaseStartTest - - rlRun "bunzip2 ${TEST_STRIPPED}.bz2" 0 - rlRun "bunzip2 ${TEST_DEBUGIFO}.bz2" 0 - rlAssertExists "$TEST_STRIPPED" - rlAssertExists "$TEST_DEBUGIFO" - - rlRun -t -s "eu-unstrip -o $TEST_MERGED $TEST_STRIPPED $TEST_DEBUGIFO" 1 'unstrip with corrupted debuginfo' - rlAssertNotExists "$TEST_MERGED" - rlAssertGrep '^STDERR:.*ELF header identification.*different, use --force' "$rlRun_LOG" - - rlRun -t -s "eu-unstrip --force -o $TEST_MERGED $TEST_STRIPPED $TEST_DEBUGIFO" 0 'Forced unstrip with corrupted debuginfo' - rlAssertExists "$TEST_MERGED" - rlAssertGrep '^STDERR:.*WARNING:.*ELF header identification.*different' "$rlRun_LOG" - - rlRun -t -s "file $TEST_MERGED" 0 'Detecting type of merged file' - rlAssertGrep '^STDOUT:.*not stripped$' "$rlRun_LOG" - - rlRun -s "eu-objdump -s $TEST_MERGED" 0 'Running objdump on merged file' - rlAssertGrep '^Contents of section .debug_info:' "$rlRun_LOG" - rlAssertGrep '^Contents of section .debug_line:' "$rlRun_LOG" - - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TmpDir" 0 "Removing tmp directory" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/bz917874-RHDT-Assertion-failure-in-eu-addr2line/Makefile b/tests/Regression/bz917874-RHDT-Assertion-failure-in-eu-addr2line/Makefile deleted file mode 100644 index 7bd3800..0000000 --- a/tests/Regression/bz917874-RHDT-Assertion-failure-in-eu-addr2line/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/elfutils/Regression/bz917874-RHDT-Assertion-failure-in-eu-addr2line -# Description: Test for BZ#917874 ([RHDT] Assertion failure in eu-addr2line) -# Author: Dagmar Prokopova -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2013 Red Hat, Inc. All rights reserved. -# -# This copyrighted material is made available to anyone wishing -# to use, modify, copy, or redistribute it subject to the terms -# and conditions of the GNU General Public License version 2. -# -# This program 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, write to the Free -# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/elfutils/Regression/bz917874-RHDT-Assertion-failure-in-eu-addr2line -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE a.out - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Dagmar Prokopova " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: Test for BZ#917874 ([RHDT] Assertion failure in eu-addr2line)" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 5m" >> $(METADATA) - @echo "RunFor: elfutils" >> $(METADATA) - @echo "Requires: elfutils" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Bug: 917874" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/bz917874-RHDT-Assertion-failure-in-eu-addr2line/PURPOSE b/tests/Regression/bz917874-RHDT-Assertion-failure-in-eu-addr2line/PURPOSE deleted file mode 100644 index 1e44cf8..0000000 --- a/tests/Regression/bz917874-RHDT-Assertion-failure-in-eu-addr2line/PURPOSE +++ /dev/null @@ -1,5 +0,0 @@ -PURPOSE of /tools/elfutils/Regression/bz917874-RHDT-Assertion-failure-in-eu-addr2line -Description: Test for BZ#917874 ([RHDT] Assertion failure in eu-addr2line) -Author: Dagmar Prokopova -Bug summary: [RHDT] Assertion failure in eu-addr2line -Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=917874 diff --git a/tests/Regression/bz917874-RHDT-Assertion-failure-in-eu-addr2line/a.out b/tests/Regression/bz917874-RHDT-Assertion-failure-in-eu-addr2line/a.out deleted file mode 100644 index ffdbfc0..0000000 Binary files a/tests/Regression/bz917874-RHDT-Assertion-failure-in-eu-addr2line/a.out and /dev/null differ diff --git a/tests/Regression/bz917874-RHDT-Assertion-failure-in-eu-addr2line/main.fmf b/tests/Regression/bz917874-RHDT-Assertion-failure-in-eu-addr2line/main.fmf deleted file mode 100644 index ca0bd46..0000000 --- a/tests/Regression/bz917874-RHDT-Assertion-failure-in-eu-addr2line/main.fmf +++ /dev/null @@ -1,15 +0,0 @@ -summary: Test for BZ#917874 ([RHDT] Assertion failure in eu-addr2line) -description: | - Bug summary: [RHDT] Assertion failure in eu-addr2line - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=917874 -contact: -- Dagmar Prokopova -component: -- elfutils -test: ./runtest.sh -framework: beakerlib -recommend: -- elfutils -duration: 5m -extra-summary: /tools/elfutils/Regression/bz917874-RHDT-Assertion-failure-in-eu-addr2line -extra-task: /tools/elfutils/Regression/bz917874-RHDT-Assertion-failure-in-eu-addr2line diff --git a/tests/Regression/bz917874-RHDT-Assertion-failure-in-eu-addr2line/runtest.sh b/tests/Regression/bz917874-RHDT-Assertion-failure-in-eu-addr2line/runtest.sh deleted file mode 100755 index 6b2f0ef..0000000 --- a/tests/Regression/bz917874-RHDT-Assertion-failure-in-eu-addr2line/runtest.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/bash -# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Regression/bz917874-RHDT-Assertion-failure-in-eu-addr2line -# Description: Test for BZ#917874 ([RHDT] Assertion failure in eu-addr2line) -# Author: Dagmar Prokopova -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2013 Red Hat, Inc. All rights reserved. -# -# This copyrighted material is made available to anyone wishing -# to use, modify, copy, or redistribute it subject to the terms -# and conditions of the GNU General Public License version 2. -# -# This program 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, write to the Free -# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -# This was fixed in devtoolset-2-elfutils-0.155-6. - -PACKAGES=(elfutils) - -rlJournalStart - rlPhaseStartSetup - for p in "${PACKAGES[@]}"; do - rlAssertRpm "$p" || yum -y install "$p" - done; unset p - - rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" - - # We need the reproducer. - cp -v a.out $TmpDir - - rlRun "pushd $TmpDir" - rlPhaseEnd - - rlPhaseStartTest - # This should succeed without assertion fail. - rlRun "eu-addr2line -e a.out 0x400589" 0 - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TmpDir" 0 "Removing tmp directory" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/bz927626-RHDT-Stack-overflow-in-dwarf-getsrclines/Makefile b/tests/Regression/bz927626-RHDT-Stack-overflow-in-dwarf-getsrclines/Makefile deleted file mode 100644 index 84db65f..0000000 --- a/tests/Regression/bz927626-RHDT-Stack-overflow-in-dwarf-getsrclines/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/elfutils/Regression/bz927626-RHDT-Stack-overflow-in-dwarf-getsrclines -# Description: Test for BZ#927626 ([RHDT] Stack overflow in dwarf_getsrclines) -# Author: Dagmar Prokopova -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2013 Red Hat, Inc. All rights reserved. -# -# This copyrighted material is made available to anyone wishing -# to use, modify, copy, or redistribute it subject to the terms -# and conditions of the GNU General Public License version 2. -# -# This program 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, write to the Free -# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/elfutils/Regression/bz927626-RHDT-Stack-overflow-in-dwarf-getsrclines -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE vpoolengineUS.bz2 - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Dagmar Prokopova " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: Test for BZ#927626 ([RHDT] Stack overflow in dwarf_getsrclines)" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 30m" >> $(METADATA) - @echo "RunFor: elfutils" >> $(METADATA) - @echo "Requires: elfutils bzip2 gcc" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Bug: 927626" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/bz927626-RHDT-Stack-overflow-in-dwarf-getsrclines/PURPOSE b/tests/Regression/bz927626-RHDT-Stack-overflow-in-dwarf-getsrclines/PURPOSE deleted file mode 100644 index 4d5f49a..0000000 --- a/tests/Regression/bz927626-RHDT-Stack-overflow-in-dwarf-getsrclines/PURPOSE +++ /dev/null @@ -1,5 +0,0 @@ -PURPOSE of /tools/elfutils/Regression/bz927626-RHDT-Stack-overflow-in-dwarf-getsrclines -Description: Test for BZ#927626 ([RHDT] Stack overflow in dwarf_getsrclines) -Author: Dagmar Prokopova -Bug summary: [RHDT] Stack overflow in dwarf_getsrclines -Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=927626 diff --git a/tests/Regression/bz927626-RHDT-Stack-overflow-in-dwarf-getsrclines/main.fmf b/tests/Regression/bz927626-RHDT-Stack-overflow-in-dwarf-getsrclines/main.fmf deleted file mode 100644 index 0246e42..0000000 --- a/tests/Regression/bz927626-RHDT-Stack-overflow-in-dwarf-getsrclines/main.fmf +++ /dev/null @@ -1,17 +0,0 @@ -summary: Test for BZ#927626 ([RHDT] Stack overflow in dwarf_getsrclines) -description: | - Bug summary: [RHDT] Stack overflow in dwarf_getsrclines - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=927626 -contact: -- Dagmar Prokopova -component: -- elfutils -test: ./runtest.sh -framework: beakerlib -recommend: -- elfutils -- bzip2 -- gcc -duration: 30m -extra-summary: /tools/elfutils/Regression/bz927626-RHDT-Stack-overflow-in-dwarf-getsrclines -extra-task: /tools/elfutils/Regression/bz927626-RHDT-Stack-overflow-in-dwarf-getsrclines diff --git a/tests/Regression/bz927626-RHDT-Stack-overflow-in-dwarf-getsrclines/runtest.sh b/tests/Regression/bz927626-RHDT-Stack-overflow-in-dwarf-getsrclines/runtest.sh deleted file mode 100755 index aa7df40..0000000 --- a/tests/Regression/bz927626-RHDT-Stack-overflow-in-dwarf-getsrclines/runtest.sh +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/bash -# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Regression/bz927626-RHDT-Stack-overflow-in-dwarf-getsrclines -# Description: Test for BZ#927626 ([RHDT] Stack overflow in dwarf_getsrclines) -# Author: Dagmar Prokopova -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2013 Red Hat, Inc. All rights reserved. -# -# This copyrighted material is made available to anyone wishing -# to use, modify, copy, or redistribute it subject to the terms -# and conditions of the GNU General Public License version 2. -# -# This program 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, write to the Free -# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -# This was fixed in elfutils-0.155-7. - -PACKAGE="elfutils" - -rlJournalStart - rlPhaseStartSetup - rlAssertRpm $PACKAGE - rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" - # We need the reproducer. - cp -v vpoolengineUS.bz2 $TmpDir - rlRun "pushd $TmpDir" - rlRun "bunzip2 vpoolengineUS.bz2" - rlPhaseEnd - - rlPhaseStartTest - # No segfault should appear. - rlRun "eu-addr2line -e vpoolengineUS 0x6682f7" 0 - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TmpDir" 0 "Removing tmp directory" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/bz927626-RHDT-Stack-overflow-in-dwarf-getsrclines/vpoolengineUS.bz2 b/tests/Regression/bz927626-RHDT-Stack-overflow-in-dwarf-getsrclines/vpoolengineUS.bz2 deleted file mode 100644 index 40d8d79..0000000 Binary files a/tests/Regression/bz927626-RHDT-Stack-overflow-in-dwarf-getsrclines/vpoolengineUS.bz2 and /dev/null differ diff --git a/tests/Regression/bz967130-RHDT-eu-unstrip-M-abort-on-socket-line/Makefile b/tests/Regression/bz967130-RHDT-eu-unstrip-M-abort-on-socket-line/Makefile deleted file mode 100644 index 1df9bb0..0000000 --- a/tests/Regression/bz967130-RHDT-eu-unstrip-M-abort-on-socket-line/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/elfutils/Regression/bz967130-RHDT-eu-unstrip-M-abort-on-socket-line -# Description: Test for BZ#967130 ([RHDT] eu-unstrip -M abort on socket line) -# Author: Dagmar Prokopova -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2013 Red Hat, Inc. All rights reserved. -# -# This copyrighted material is made available to anyone wishing -# to use, modify, copy, or redistribute it subject to the terms -# and conditions of the GNU General Public License version 2. -# -# This program 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, write to the Free -# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/elfutils/Regression/bz967130-RHDT-eu-unstrip-M-abort-on-socket-line -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE proc_maps.txt - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Dagmar Prokopova " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: Test for BZ#967130 ([RHDT] eu-unstrip -M abort on socket line)" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 5m" >> $(METADATA) - @echo "RunFor: elfutils" >> $(METADATA) - @echo "Requires: elfutils" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Bug: 967130" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/bz967130-RHDT-eu-unstrip-M-abort-on-socket-line/PURPOSE b/tests/Regression/bz967130-RHDT-eu-unstrip-M-abort-on-socket-line/PURPOSE deleted file mode 100644 index bc7a857..0000000 --- a/tests/Regression/bz967130-RHDT-eu-unstrip-M-abort-on-socket-line/PURPOSE +++ /dev/null @@ -1,5 +0,0 @@ -PURPOSE of /tools/elfutils/Regression/bz967130-RHDT-eu-unstrip-M-abort-on-socket-line -Description: Test for BZ#967130 ([RHDT] eu-unstrip -M abort on socket line) -Author: Dagmar Prokopova -Bug summary: [RHDT] eu-unstrip -M abort on socket: line -Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=967130 diff --git a/tests/Regression/bz967130-RHDT-eu-unstrip-M-abort-on-socket-line/main.fmf b/tests/Regression/bz967130-RHDT-eu-unstrip-M-abort-on-socket-line/main.fmf deleted file mode 100644 index 2f28d7d..0000000 --- a/tests/Regression/bz967130-RHDT-eu-unstrip-M-abort-on-socket-line/main.fmf +++ /dev/null @@ -1,15 +0,0 @@ -summary: Test for BZ#967130 ([RHDT] eu-unstrip -M abort on socket line) -description: | - Bug summary: [RHDT] eu-unstrip -M abort on socket: line - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=967130 -contact: -- Dagmar Prokopova -component: -- elfutils -test: ./runtest.sh -framework: beakerlib -recommend: -- elfutils -duration: 5m -extra-summary: /tools/elfutils/Regression/bz967130-RHDT-eu-unstrip-M-abort-on-socket-line -extra-task: /tools/elfutils/Regression/bz967130-RHDT-eu-unstrip-M-abort-on-socket-line diff --git a/tests/Regression/bz967130-RHDT-eu-unstrip-M-abort-on-socket-line/proc_maps.txt b/tests/Regression/bz967130-RHDT-eu-unstrip-M-abort-on-socket-line/proc_maps.txt deleted file mode 100644 index 673a4d6..0000000 --- a/tests/Regression/bz967130-RHDT-eu-unstrip-M-abort-on-socket-line/proc_maps.txt +++ /dev/null @@ -1,82 +0,0 @@ -00400000-024aa000 r-xp 00000000 08:02 159659 /opt/MessageRouter/bin/msgrouter_dbg -026aa000-026b2000 rwxp 020aa000 08:02 159659 /opt/MessageRouter/bin/msgrouter_dbg -026b2000-026bf000 rwxp 00000000 00:00 0 -0335a000-03e6f000 rwxp 00000000 00:00 0 [heap] -2b7b2d6fa000-2b7b2d71a000 r-xp 00000000 08:02 128802 /lib64/ld-2.12.so -2b7b2d71a000-2b7b2d89c000 rwxp 00000000 00:00 0 -2b7b2d919000-2b7b2d91a000 r-xp 0001f000 08:02 128802 /lib64/ld-2.12.so -2b7b2d91a000-2b7b2d91b000 rwxp 00020000 08:02 128802 /lib64/ld-2.12.so -2b7b2d91b000-2b7b2d91c000 rwxp 00000000 00:00 0 -2b7b2d91c000-2b7b2d933000 r-xp 00000000 08:02 128833 /lib64/libpthread-2.12.so -2b7b2d933000-2b7b2db32000 ---p 00017000 08:02 128833 /lib64/libpthread-2.12.so -2b7b2db32000-2b7b2db33000 r-xp 00016000 08:02 128833 /lib64/libpthread-2.12.so -2b7b2db33000-2b7b2db34000 rwxp 00017000 08:02 128833 /lib64/libpthread-2.12.so -2b7b2db34000-2b7b2db39000 rwxp 00000000 00:00 0 -2b7b2db39000-2b7b2db40000 r-xp 00000000 08:02 128837 /lib64/librt-2.12.so -2b7b2db40000-2b7b2dd3f000 ---p 00007000 08:02 128837 /lib64/librt-2.12.so -2b7b2dd3f000-2b7b2dd40000 r-xp 00006000 08:02 128837 /lib64/librt-2.12.so -2b7b2dd40000-2b7b2dd41000 rwxp 00007000 08:02 128837 /lib64/librt-2.12.so -2b7b2dd41000-2b7b2dd43000 r-xp 00000000 08:02 128815 /lib64/libdl-2.12.so -2b7b2dd43000-2b7b2df43000 ---p 00002000 08:02 128815 /lib64/libdl-2.12.so -2b7b2df43000-2b7b2df44000 r-xp 00002000 08:02 128815 /lib64/libdl-2.12.so -2b7b2df44000-2b7b2df45000 rwxp 00003000 08:02 128815 /lib64/libdl-2.12.so -2b7b2df45000-2b7b2e032000 r-xp 00000000 08:02 276647 /usr/lib64/libboost_regex.so.5 -2b7b2e032000-2b7b2e232000 ---p 000ed000 08:02 276647 /usr/lib64/libboost_regex.so.5 -2b7b2e232000-2b7b2e239000 rwxp 000ed000 08:02 276647 /usr/lib64/libboost_regex.so.5 -2b7b2e239000-2b7b2e23a000 rwxp 00000000 00:00 0 -2b7b2e23a000-2b7b2e322000 r-xp 00000000 08:02 260385 /usr/lib64/libstdc++.so.6.0.13 -2b7b2e322000-2b7b2e522000 ---p 000e8000 08:02 260385 /usr/lib64/libstdc++.so.6.0.13 -2b7b2e522000-2b7b2e529000 r-xp 000e8000 08:02 260385 /usr/lib64/libstdc++.so.6.0.13 -2b7b2e529000-2b7b2e52b000 rwxp 000ef000 08:02 260385 /usr/lib64/libstdc++.so.6.0.13 -2b7b2e52b000-2b7b2e540000 rwxp 00000000 00:00 0 -2b7b2e540000-2b7b2e5c3000 r-xp 00000000 08:02 128817 /lib64/libm-2.12.so -2b7b2e5c3000-2b7b2e7c2000 ---p 00083000 08:02 128817 /lib64/libm-2.12.so -2b7b2e7c2000-2b7b2e7c3000 r-xp 00082000 08:02 128817 /lib64/libm-2.12.so -2b7b2e7c3000-2b7b2e7c4000 rwxp 00083000 08:02 128817 /lib64/libm-2.12.so -2b7b2e7c4000-2b7b2e7da000 r-xp 00000000 08:02 136724 /lib64/libgcc_s-4.4.6-20110824.so.1 -2b7b2e7da000-2b7b2e9d9000 ---p 00016000 08:02 136724 /lib64/libgcc_s-4.4.6-20110824.so.1 -2b7b2e9d9000-2b7b2e9da000 rwxp 00015000 08:02 136724 /lib64/libgcc_s-4.4.6-20110824.so.1 -2b7b2e9da000-2b7b2e9db000 rwxp 00000000 00:00 0 -2b7b2e9db000-2b7b2eb72000 r-xp 00000000 08:02 128809 /lib64/libc-2.12.so -2b7b2eb72000-2b7b2ed72000 ---p 00197000 08:02 128809 /lib64/libc-2.12.so -2b7b2ed72000-2b7b2ed76000 r-xp 00197000 08:02 128809 /lib64/libc-2.12.so -2b7b2ed76000-2b7b2ed77000 rwxp 0019b000 08:02 128809 /lib64/libc-2.12.so -2b7b2ed77000-2b7b2ed7c000 rwxp 00000000 00:00 0 -2b7b2ed7c000-2b7b2eebb000 r-xp 00000000 08:02 276645 /usr/lib64/libicuuc.so.42.1 -2b7b2eebb000-2b7b2f0bb000 ---p 0013f000 08:02 276645 /usr/lib64/libicuuc.so.42.1 -2b7b2f0bb000-2b7b2f0cc000 rwxp 0013f000 08:02 276645 /usr/lib64/libicuuc.so.42.1 -2b7b2f0cc000-2b7b2f0ce000 rwxp 00000000 00:00 0 -2b7b2f0ce000-2b7b2f256000 r-xp 00000000 08:02 276635 /usr/lib64/libicui18n.so.42.1 -2b7b2f256000-2b7b2f456000 ---p 00188000 08:02 276635 /usr/lib64/libicui18n.so.42.1 -2b7b2f456000-2b7b2f463000 rwxp 00188000 08:02 276635 /usr/lib64/libicui18n.so.42.1 -2b7b2f463000-2b7b2f465000 rwxp 00000000 00:00 0 -2b7b2f465000-2b7b303aa000 r-xp 00000000 08:02 276633 /usr/lib64/libicudata.so.42.1 -2b7b303aa000-2b7b305a9000 ---p 00f45000 08:02 276633 /usr/lib64/libicudata.so.42.1 -2b7b305a9000-2b7b305aa000 rwxp 00f44000 08:02 276633 /usr/lib64/libicudata.so.42.1 -2b7b305aa000-2b7b313f5000 rwxp 00000000 00:00 0 -2b7b313f5000-2b7b313f6000 ---p 00000000 00:00 0 -2b7b313f6000-2b7b31df6000 rwxp 00000000 00:00 0 -2b7b31df6000-2b7b31df7000 ---p 00000000 00:00 0 -2b7b31df7000-2b7b327f7000 rwxp 00000000 00:00 0 -2b7b34000000-2b7b34021000 rwxp 00000000 00:00 0 -2b7b34021000-2b7b38000000 ---p 00000000 00:00 0 -2b7b38000000-2b7b38282000 rwxp 00000000 00:00 0 -2b7b38282000-2b7b38302000 rwxs 00000000 00:06 493872 socket:[493872] -2b7b38302000-2b7b38312000 rwxs 00000000 00:06 493872 socket:[493872] -2b7b38312000-2b7b38b12000 r-xs 00000000 00:06 493872 socket:[493872] -2b7b38b12000-2b7b38b22000 rwxs 00000000 00:06 493872 socket:[493872] -2b7b38b22000-2b7b39322000 rwxs 00000000 00:06 493872 socket:[493872] -2b7b39322000-2b7b39323000 ---p 00000000 00:00 0 -2b7b39323000-2b7b39d23000 rwxp 00000000 00:00 0 -2b7b3c000000-2b7b3c021000 rwxp 00000000 00:00 0 -2b7b3c021000-2b7b40000000 ---p 00000000 00:00 0 -2b7b40000000-2b7b40021000 rwxp 00000000 00:00 0 -2b7b40021000-2b7b44000000 ---p 00000000 00:00 0 -2b7b44010000-2b7b4401c000 r-xp 00000000 08:02 128825 /lib64/libnss_files-2.12.so -2b7b4401c000-2b7b4421c000 ---p 0000c000 08:02 128825 /lib64/libnss_files-2.12.so -2b7b4421c000-2b7b4421d000 r-xp 0000c000 08:02 128825 /lib64/libnss_files-2.12.so -2b7b4421d000-2b7b4421e000 rwxp 0000d000 08:02 128825 /lib64/libnss_files-2.12.so -2b7b4439f000-2b7b45ea1000 rwxp 00000000 00:00 0 -7fff26cf7000-7fff26d0c000 rwxp 00000000 00:00 0 [stack] -7fff26dff000-7fff26e00000 r-xp 00000000 00:00 0 [vdso] -ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] diff --git a/tests/Regression/bz967130-RHDT-eu-unstrip-M-abort-on-socket-line/runtest.sh b/tests/Regression/bz967130-RHDT-eu-unstrip-M-abort-on-socket-line/runtest.sh deleted file mode 100755 index e541b6b..0000000 --- a/tests/Regression/bz967130-RHDT-eu-unstrip-M-abort-on-socket-line/runtest.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash -# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Regression/bz967130-RHDT-eu-unstrip-M-abort-on-socket-line -# Description: Test for BZ#967130 ([RHDT] eu-unstrip -M abort on socket line) -# Author: Dagmar Prokopova -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2013 Red Hat, Inc. All rights reserved. -# -# This copyrighted material is made available to anyone wishing -# to use, modify, copy, or redistribute it subject to the terms -# and conditions of the GNU General Public License version 2. -# -# This program 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, write to the Free -# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="elfutils" - -rlJournalStart - rlPhaseStartSetup - rlAssertRpm $PACKAGE - rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" - # We need a reproducer. - cp -v proc_maps.txt $TmpDir - rlRun "pushd $TmpDir" - rlPhaseEnd - - rlPhaseStartTest - #No Abort here. - rlRun "eu-unstrip -n -M proc_maps.txt " 0 - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TmpDir" 0 "Removing tmp directory" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/elfutils-segmentation-fault-in-elf64-xlatetom-in/Makefile b/tests/Regression/elfutils-segmentation-fault-in-elf64-xlatetom-in/Makefile deleted file mode 100644 index a5a2b7f..0000000 --- a/tests/Regression/elfutils-segmentation-fault-in-elf64-xlatetom-in/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/elfutils/Regression/elfutils-segmentation-fault-in-elf64-xlatetom-in -# Description: elfutils-segmentation-fault-in-elf64-xlatetom-in -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2019 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/elfutils/Regression/elfutils-segmentation-fault-in-elf64-xlatetom-in -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE POC2 - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Martin Cermak " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: elfutils-segmentation-fault-in-elf64-xlatetom-in" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 48h" >> $(METADATA) - @echo "RunFor: elfutils" >> $(METADATA) - @echo "Requires: elfutils" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2+" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Bug: 1680048" >> $(METADATA) - @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/elfutils-segmentation-fault-in-elf64-xlatetom-in/POC2 b/tests/Regression/elfutils-segmentation-fault-in-elf64-xlatetom-in/POC2 deleted file mode 100644 index 0c1a4d0..0000000 Binary files a/tests/Regression/elfutils-segmentation-fault-in-elf64-xlatetom-in/POC2 and /dev/null differ diff --git a/tests/Regression/elfutils-segmentation-fault-in-elf64-xlatetom-in/PURPOSE b/tests/Regression/elfutils-segmentation-fault-in-elf64-xlatetom-in/PURPOSE deleted file mode 100644 index 867dfd8..0000000 --- a/tests/Regression/elfutils-segmentation-fault-in-elf64-xlatetom-in/PURPOSE +++ /dev/null @@ -1,5 +0,0 @@ -PURPOSE of /tools/elfutils/Regression/elfutils-segmentation-fault-in-elf64-xlatetom-in -Description: elfutils-segmentation-fault-in-elf64-xlatetom-in -Author: Martin Cermak -Bug summary: elfutils: segmentation fault in elf64_xlatetom in libelf/elf32_xlatetom.c [rhdts-8] -Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1680048 diff --git a/tests/Regression/elfutils-segmentation-fault-in-elf64-xlatetom-in/main.fmf b/tests/Regression/elfutils-segmentation-fault-in-elf64-xlatetom-in/main.fmf deleted file mode 100644 index c487d28..0000000 --- a/tests/Regression/elfutils-segmentation-fault-in-elf64-xlatetom-in/main.fmf +++ /dev/null @@ -1,15 +0,0 @@ -summary: elfutils-segmentation-fault-in-elf64-xlatetom-in -description: | - Bug summary: elfutils: segmentation fault in elf64_xlatetom in libelf/elf32_xlatetom.c [rhdts-8] - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1680048 -contact: -- Martin Cermak -component: -- elfutils -test: ./runtest.sh -framework: beakerlib -recommend: -- elfutils -duration: 48h -extra-summary: /tools/elfutils/Regression/elfutils-segmentation-fault-in-elf64-xlatetom-in -extra-task: /tools/elfutils/Regression/elfutils-segmentation-fault-in-elf64-xlatetom-in diff --git a/tests/Regression/elfutils-segmentation-fault-in-elf64-xlatetom-in/runtest.sh b/tests/Regression/elfutils-segmentation-fault-in-elf64-xlatetom-in/runtest.sh deleted file mode 100755 index 2287722..0000000 --- a/tests/Regression/elfutils-segmentation-fault-in-elf64-xlatetom-in/runtest.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Regression/elfutils-segmentation-fault-in-elf64-xlatetom-in -# Description: elfutils-segmentation-fault-in-elf64-xlatetom-in -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2019 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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 Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="elfutils" - -rlJournalStart - rlPhaseStartTest - # failure is 139 - SEGV, 2 is okay - rlRun "eu-stack --core=POC2" 2 - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/eu-elfcompress-breaks-hard-links/bubble.c b/tests/Regression/eu-elfcompress-breaks-hard-links/bubble.c deleted file mode 100644 index f8b643a..0000000 --- a/tests/Regression/eu-elfcompress-breaks-hard-links/bubble.c +++ /dev/null @@ -1,4 +0,0 @@ -int main() -{ - return 0; -} diff --git a/tests/Regression/eu-elfcompress-breaks-hard-links/main.fmf b/tests/Regression/eu-elfcompress-breaks-hard-links/main.fmf deleted file mode 100644 index a34c573..0000000 --- a/tests/Regression/eu-elfcompress-breaks-hard-links/main.fmf +++ /dev/null @@ -1,15 +0,0 @@ -summary: eu-elfcompress-breaks-hard-links -description: '' -link: - - relates: https://bugzilla.redhat.com/show_bug.cgi?id=2188064 -contact: Martin Cermak -component: - - elfutils -test: ./runtest.sh -framework: beakerlib -recommend: - - elfutils - - gcc -duration: 1h -extra-summary: /tools/elfutils/Regression/eu-elfcompress-breaks-hard-links -extra-task: /tools/elfutils/Regression/eu-elfcompress-breaks-hard-links diff --git a/tests/Regression/eu-elfcompress-breaks-hard-links/runtest.sh b/tests/Regression/eu-elfcompress-breaks-hard-links/runtest.sh deleted file mode 100755 index 7709a74..0000000 --- a/tests/Regression/eu-elfcompress-breaks-hard-links/runtest.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Regression/eu-elfcompress-breaks-hard-links -# Description: eu-elfcompress-breaks-hard-links -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2023 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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 Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="elfutils" - -rlJournalStart - rlPhaseStartSetup - rlAssertRpm $PACKAGE - rlRun "TMP=$(mktemp -d)" - rlRun "cp bubble.c $TMP/" - rlRun "pushd $TMP" - rlPhaseEnd - - rlPhaseStartTest - rlRun "gcc -o a.out -g bubble.c" - rlRun "ln a.out a.lnk" - rlRun "eu-elfcompress -q -p -t none a.lnk" - rlRun "i0=$(stat -c '%i' a.out)" - rlRun "i1=$(stat -c '%i' a.lnk)" - rlRun "test $i0 -eq $i1" - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TMP" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/eu-readelf-reports-machine-type-is-unknown/Makefile b/tests/Regression/eu-readelf-reports-machine-type-is-unknown/Makefile deleted file mode 100644 index 2f5488f..0000000 --- a/tests/Regression/eu-readelf-reports-machine-type-is-unknown/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/elfutils/Regression/eu-readelf-reports-machine-type-is-unknown -# Description: Test for BZ#1724350 (eu-readelf reports machine type is ) -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2019 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/elfutils/Regression/eu-readelf-reports-machine-type-is-unknown -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Martin Cermak " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: Test for BZ#1724350 (eu-readelf reports machine type is )" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 48h" >> $(METADATA) - @echo "RunFor: elfutils" >> $(METADATA) - @echo "Requires: elfutils linux-firmware" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2+" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Bug: 1724350" >> $(METADATA) - @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/eu-readelf-reports-machine-type-is-unknown/PURPOSE b/tests/Regression/eu-readelf-reports-machine-type-is-unknown/PURPOSE deleted file mode 100644 index 49ffd25..0000000 --- a/tests/Regression/eu-readelf-reports-machine-type-is-unknown/PURPOSE +++ /dev/null @@ -1,5 +0,0 @@ -PURPOSE of /tools/elfutils/Regression/eu-readelf-reports-machine-type-is-unknown -Description: Test for BZ#1724350 (eu-readelf reports machine type is ) -Author: Martin Cermak -Bug summary: eu-readelf reports machine type is on firmware blobs -Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1724350 diff --git a/tests/Regression/eu-readelf-reports-machine-type-is-unknown/main.fmf b/tests/Regression/eu-readelf-reports-machine-type-is-unknown/main.fmf deleted file mode 100644 index c9a9d41..0000000 --- a/tests/Regression/eu-readelf-reports-machine-type-is-unknown/main.fmf +++ /dev/null @@ -1,16 +0,0 @@ -summary: Test for BZ#1724350 (eu-readelf reports machine type is ) -description: | - Bug summary: eu-readelf reports machine type is on firmware blobs - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1724350 -contact: -- Martin Cermak -component: -- elfutils -test: ./runtest.sh -framework: beakerlib -recommend: -- elfutils -- linux-firmware -duration: 48h -extra-summary: /tools/elfutils/Regression/eu-readelf-reports-machine-type-is-unknown -extra-task: /tools/elfutils/Regression/eu-readelf-reports-machine-type-is-unknown diff --git a/tests/Regression/eu-readelf-reports-machine-type-is-unknown/runtest.sh b/tests/Regression/eu-readelf-reports-machine-type-is-unknown/runtest.sh deleted file mode 100755 index 8558153..0000000 --- a/tests/Regression/eu-readelf-reports-machine-type-is-unknown/runtest.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Regression/eu-readelf-reports-machine-type-is-unknown -# Description: Test for BZ#1724350 (eu-readelf reports machine type is ) -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2019 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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 Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="elfutils" - -__showgreenlight () -{ - rlJournalStart - rlPhaseStartTest - rlRun "echo \"Irrelevant for $X_SCLS\"" - rlPhaseEnd - rlJournalEnd - exit 0 -} - -echo $X_SCLS | fgrep -q gcc-toolset-9 && __showgreenlight - -rlJournalStart - rlPhaseStartTest - rlRun "find /usr/lib/firmware/ -name '*.nffw' | xargs eu-readelf -h | awk '/Machine/ {print \$NF}' | fgrep ''" 1 - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/eu-strip-generates-empty-output-if/Makefile b/tests/Regression/eu-strip-generates-empty-output-if/Makefile deleted file mode 100644 index 9da23ec..0000000 --- a/tests/Regression/eu-strip-generates-empty-output-if/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/elfutils/Regression/eu-strip-generates-empty-output-if -# Description: eu-strip-generates-empty-output-if -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2017 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/elfutils/Regression/eu-strip-generates-empty-output-if -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Martin Cermak " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: eu-strip-generates-empty-output-if" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 48h" >> $(METADATA) - @echo "RunFor: elfutils" >> $(METADATA) - @echo "Requires: elfutils" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2+" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Bug: 1455620" >> $(METADATA) - @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/eu-strip-generates-empty-output-if/PURPOSE b/tests/Regression/eu-strip-generates-empty-output-if/PURPOSE deleted file mode 100644 index f32e5fd..0000000 --- a/tests/Regression/eu-strip-generates-empty-output-if/PURPOSE +++ /dev/null @@ -1,5 +0,0 @@ -PURPOSE of /tools/elfutils/Regression/eu-strip-generates-empty-output-if -Description: eu-strip-generates-empty-output-if -Author: Martin Cermak -Bug summary: eu-strip generates empty output if there is nothing to do -Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1455620 diff --git a/tests/Regression/eu-strip-generates-empty-output-if/main.fmf b/tests/Regression/eu-strip-generates-empty-output-if/main.fmf deleted file mode 100644 index 9d9ebbf..0000000 --- a/tests/Regression/eu-strip-generates-empty-output-if/main.fmf +++ /dev/null @@ -1,15 +0,0 @@ -summary: eu-strip-generates-empty-output-if -description: | - Bug summary: eu-strip generates empty output if there is nothing to do - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1455620 -contact: -- Martin Cermak -component: -- elfutils -test: ./runtest.sh -framework: beakerlib -recommend: -- elfutils -duration: 48h -extra-summary: /tools/elfutils/Regression/eu-strip-generates-empty-output-if -extra-task: /tools/elfutils/Regression/eu-strip-generates-empty-output-if diff --git a/tests/Regression/eu-strip-generates-empty-output-if/runtest.sh b/tests/Regression/eu-strip-generates-empty-output-if/runtest.sh deleted file mode 100755 index e83d754..0000000 --- a/tests/Regression/eu-strip-generates-empty-output-if/runtest.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Regression/eu-strip-generates-empty-output-if -# Description: eu-strip-generates-empty-output-if -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2017 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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 Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="elfutils" - -rlJournalStart - rlPhaseStartSetup - rlAssertRpm $PACKAGE - rlRun "tmp=\$(mktemp -d)" - rlRun "pushd $tmp" - rlPhaseEnd - - rlPhaseStartTest - rlRun "echo 'int main() { return 1; }' > test.c" - rlRun "gcc test.c" - rlRun "eu-strip -g -o test ./a.out" - rlRun "test $(stat --format='%s' test) -gt 0" - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $tmp" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/eu-strip-invalid-section-alignment-while/Makefile b/tests/Regression/eu-strip-invalid-section-alignment-while/Makefile deleted file mode 100644 index 9599103..0000000 --- a/tests/Regression/eu-strip-invalid-section-alignment-while/Makefile +++ /dev/null @@ -1,65 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/elfutils/Regression/eu-strip-invalid-section-alignment-while -# Description: eu-strip-invalid-section-alignment-while -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2016 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/elfutils/Regression/eu-strip-invalid-section-alignment-while -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE testprog.c testprog2.c - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Martin Cermak " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: eu-strip-invalid-section-alignment-while" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 5m" >> $(METADATA) - @echo "RunFor: elfutils" >> $(METADATA) - @echo "Requires: elfutils" >> $(METADATA) - @echo "Requires: gcc" >> $(METADATA) - @echo "Requires: libaio-devel" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2+" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Bug: 1303845" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/eu-strip-invalid-section-alignment-while/PURPOSE b/tests/Regression/eu-strip-invalid-section-alignment-while/PURPOSE deleted file mode 100644 index ee925cc..0000000 --- a/tests/Regression/eu-strip-invalid-section-alignment-while/PURPOSE +++ /dev/null @@ -1,5 +0,0 @@ -PURPOSE of /tools/elfutils/Regression/eu-strip-invalid-section-alignment-while -Description: eu-strip-invalid-section-alignment-while -Author: Martin Cermak -Bug summary: eu-strip: invalid section alignment while stripping debuginfo from executables -Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1303845 diff --git a/tests/Regression/eu-strip-invalid-section-alignment-while/main.fmf b/tests/Regression/eu-strip-invalid-section-alignment-while/main.fmf deleted file mode 100644 index 954c1c5..0000000 --- a/tests/Regression/eu-strip-invalid-section-alignment-while/main.fmf +++ /dev/null @@ -1,17 +0,0 @@ -summary: eu-strip-invalid-section-alignment-while -description: | - Bug summary: eu-strip: invalid section alignment while stripping debuginfo from executables - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1303845 -contact: -- Martin Cermak -component: -- elfutils -test: ./runtest.sh -framework: beakerlib -recommend: -- elfutils -- gcc -- libaio-devel -duration: 5m -extra-summary: /tools/elfutils/Regression/eu-strip-invalid-section-alignment-while -extra-task: /tools/elfutils/Regression/eu-strip-invalid-section-alignment-while diff --git a/tests/Regression/eu-strip-invalid-section-alignment-while/runtest.sh b/tests/Regression/eu-strip-invalid-section-alignment-while/runtest.sh deleted file mode 100755 index 3c19f91..0000000 --- a/tests/Regression/eu-strip-invalid-section-alignment-while/runtest.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/bash -# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Regression/eu-strip-invalid-section-alignment-while -# Description: eu-strip-invalid-section-alignment-while -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2016 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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 Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="elfutils" - -rlJournalStart - rlPhaseStartSetup - for p in gcc eu-strip; do - rlRun "which $p" - rlRun "rpm -qf $( which $p )" - done - rlRun "tmp=$(mktemp -d)" - rlRun "cp testprog.c testprog2.c $tmp" - rlRun "pushd $tmp" - rlPhaseEnd - - if rpm -q libaio-devel; then - rlPhaseStart FAIL customer-testcase - # https://bugzilla.redhat.com/show_bug.cgi?id=1304870 - rlRun "gcc testprog.c -laio -g -o testprog" - rlRun "eu-strip testprog" - rlPhaseEnd - fi - - rlPhaseStart FAIL upstream-testcase - rlRun "gcc -g testprog2.c -o testprog2" - # Testcase for this fix should at some point reach the upstream and - # the rhel package too. After that this QE testcase should be obsoleted. - # Please, refer to: - # https://lists.fedorahosted.org/archives/list/elfutils-devel@lists.fedorahosted.org/message/OP6AXOW5PF6GPB4KN7XQZSZ5JY6RK52U/ - rlRun "eu-strip testprog2" - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $tmp" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/eu-strip-invalid-section-alignment-while/testinfo.desc b/tests/Regression/eu-strip-invalid-section-alignment-while/testinfo.desc deleted file mode 100644 index 1aae73b..0000000 --- a/tests/Regression/eu-strip-invalid-section-alignment-while/testinfo.desc +++ /dev/null @@ -1,16 +0,0 @@ -Owner: Martin Cermak -Name: /tools/elfutils/Regression/eu-strip-invalid-section-alignment-while -TestVersion: 1.0 -Path: /mnt/tests/tools/elfutils/Regression/eu-strip-invalid-section-alignment-while -Description: eu-strip-invalid-section-alignment-while -Type: Regression -TestTime: 1d -RunFor: elfutils -Requires: elfutils -Requires: gcc -Requires: libaio-devel -Priority: Normal -License: GPLv2+ -Confidential: no -Destructive: no -Bug: 1303845 diff --git a/tests/Regression/eu-strip-invalid-section-alignment-while/testprog.c b/tests/Regression/eu-strip-invalid-section-alignment-while/testprog.c deleted file mode 100644 index 23debb7..0000000 --- a/tests/Regression/eu-strip-invalid-section-alignment-while/testprog.c +++ /dev/null @@ -1,115 +0,0 @@ -/* - * aio-dio-subblock-eof-read - test AIO read of last block of DIO file - * Copyright (C) 2005 Jeff Moyer - * - * This program 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 2 of the License, or - * (at your option) any later version. - * - * This program 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, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -/* - * Code taken from an example posted to linux-aio at kvack.org - * http://marc.info/?l=linux-aio&m=112263621431161&w=2 - * Original Author: Drangon Zhou - * Munged & rewritten by Jeff Moyer. - * - * Description: This source code implements a test to ensure that an AIO - * read of the last block in a file opened with O_DIRECT returns the proper - * amount of data. In the past, there was a bug that resulted in a return - * value of the requested block size, when in fact there was only a fraction - * of that data available. Thus, if the last data block contained 300 bytes - * worth of data, and the user issued a 4k read, we want to ensure that - * the return value is 300, not 4k. - */ -#define _GNU_SOURCE -#include -#include -#include -#include -#include -#include - -/* Create a file of a size that is not a multiple of block size */ -#define FILE_SIZE 300 - -#define fail(fmt , args...) \ -do {\ -printf(fmt , ##args);\ -exit(1);\ -} while (0) - -static unsigned char buffer[4096] __attribute((aligned (4096))); - -int -main(int argc, char **argv) -{ -int ret; -int fd; -const char *filename; -struct iocb myiocb; -struct iocb *cb = &myiocb; -io_context_t ioctx; -struct io_event ie; - -if (argc != 2) -fail("only arg should be file name"); - -filename = argv[1]; -fd = open(filename, O_CREAT|O_RDWR|O_DIRECT, 0600); -if (fd < 0) -fail("open returned error %d\n", errno); - -ret = ftruncate(fd, FILE_SIZE); -if (ret < 0) -fail("truncate returned error %d\n", errno); - -/* <1> use normal disk read, this should be ok */ -ret = read(fd, buffer, 4096); -if (ret != FILE_SIZE) -fail("buffered read returned %d, should be 300\n", ret); - -/* <2> use AIO disk read, it sees error. */ -memset(&myiocb, 0, sizeof(myiocb)); -cb->data = 0; -cb->key = 0; -cb->aio_lio_opcode = IO_CMD_PREAD; -cb->aio_reqprio = 0; -cb->aio_fildes = fd; -cb->u.c.buf = buffer; -cb->u.c.nbytes = 4096; -cb->u.c.offset = 0; - -ret = io_queue_init(1, &ioctx); -if (ret != 0) -fail("io_queue_init returned error %d\n", ret); - -ret = io_submit(ioctx, 1, &cb); -if (ret != 1) -fail("io_submit returned error %d\n", ret); - -ret = io_getevents(ioctx, 1, 1, &ie, NULL); -if (ret != 1) -fail("io_getevents returned %d\n", ret); - -/* - * If all goes well, we should see 300 bytes read. If things - * are broken, we may very well see a result of 4k. - */ -if (ie.res != FILE_SIZE) -fail("AIO read of last block in file returned %ld bytes, " - "expected %d\n", ie.res, FILE_SIZE); - -printf("AIO read of last block in file succeeded.\n"); -return 0; -} - diff --git a/tests/Regression/eu-strip-invalid-section-alignment-while/testprog2.c b/tests/Regression/eu-strip-invalid-section-alignment-while/testprog2.c deleted file mode 100644 index 60f8573..0000000 --- a/tests/Regression/eu-strip-invalid-section-alignment-while/testprog2.c +++ /dev/null @@ -1,12 +0,0 @@ -static unsigned char buffer[4096] __attribute((aligned (4096))); -char -f (int i) -{ - return buffer[i]; -} - -int -main (int argc, char **argv) -{ - return buffer[argc] == 0; -} diff --git a/tests/Regression/initial-DWARF5-support-in-eu-readelf/Makefile b/tests/Regression/initial-DWARF5-support-in-eu-readelf/Makefile deleted file mode 100644 index f6daf76..0000000 --- a/tests/Regression/initial-DWARF5-support-in-eu-readelf/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/elfutils/Regression/initial-DWARF5-support-in-eu-readelf -# Description: initial-DWARF5-support-in-eu-readelf -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2017 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/elfutils/Regression/initial-DWARF5-support-in-eu-readelf -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE test3-clang.o - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Martin Cermak " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: initial-DWARF5-support-in-eu-readelf" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 48h" >> $(METADATA) - @echo "RunFor: elfutils" >> $(METADATA) - @echo "Requires: elfutils" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2+" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Bug: 1472979" >> $(METADATA) - @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/initial-DWARF5-support-in-eu-readelf/PURPOSE b/tests/Regression/initial-DWARF5-support-in-eu-readelf/PURPOSE deleted file mode 100644 index 55b9eff..0000000 --- a/tests/Regression/initial-DWARF5-support-in-eu-readelf/PURPOSE +++ /dev/null @@ -1,5 +0,0 @@ -PURPOSE of /tools/elfutils/Regression/initial-DWARF5-support-in-eu-readelf -Description: initial-DWARF5-support-in-eu-readelf -Author: Martin Cermak -Bug summary: DWARF5 support in eu-readelf -Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1472979 diff --git a/tests/Regression/initial-DWARF5-support-in-eu-readelf/main.fmf b/tests/Regression/initial-DWARF5-support-in-eu-readelf/main.fmf deleted file mode 100644 index 2d62363..0000000 --- a/tests/Regression/initial-DWARF5-support-in-eu-readelf/main.fmf +++ /dev/null @@ -1,15 +0,0 @@ -summary: initial-DWARF5-support-in-eu-readelf -description: | - Bug summary: DWARF5 support in eu-readelf - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1472979 -contact: -- Martin Cermak -component: -- elfutils -test: ./runtest.sh -framework: beakerlib -recommend: -- elfutils -duration: 48h -extra-summary: /tools/elfutils/Regression/initial-DWARF5-support-in-eu-readelf -extra-task: /tools/elfutils/Regression/initial-DWARF5-support-in-eu-readelf diff --git a/tests/Regression/initial-DWARF5-support-in-eu-readelf/runtest.sh b/tests/Regression/initial-DWARF5-support-in-eu-readelf/runtest.sh deleted file mode 100755 index e99cdeb..0000000 --- a/tests/Regression/initial-DWARF5-support-in-eu-readelf/runtest.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Regression/initial-DWARF5-support-in-eu-readelf -# Description: initial-DWARF5-support-in-eu-readelf -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2017 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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 Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -rlJournalStart - rlPhaseStartTest - rlRun "eu-readelf --debug-dump=info test3-clang.o | fgrep '???'" 1 - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/initial-DWARF5-support-in-eu-readelf/test3-clang.o b/tests/Regression/initial-DWARF5-support-in-eu-readelf/test3-clang.o deleted file mode 100644 index 67f6571..0000000 Binary files a/tests/Regression/initial-DWARF5-support-in-eu-readelf/test3-clang.o and /dev/null differ diff --git a/tests/Regression/require-compression-libraries/Makefile b/tests/Regression/require-compression-libraries/Makefile deleted file mode 100644 index b811cc5..0000000 --- a/tests/Regression/require-compression-libraries/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/elfutils/Regression/require-compression-libraries -# Description: require-compression-libraries -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2020 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/elfutils/Regression/require-compression-libraries -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE t.c - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Martin Cermak " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: require-compression-libraries" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 48h" >> $(METADATA) - @echo "RunFor: elfutils" >> $(METADATA) - @echo "Requires: elfutils gcc" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2+" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Bug: 1873413" >> $(METADATA) - @echo "Releases: -RHEL4 -RHEL6 -RHEL7 -RHELClient5 -RHELServer5" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/require-compression-libraries/PURPOSE b/tests/Regression/require-compression-libraries/PURPOSE deleted file mode 100644 index c9a8bad..0000000 --- a/tests/Regression/require-compression-libraries/PURPOSE +++ /dev/null @@ -1,5 +0,0 @@ -PURPOSE of /tools/elfutils/Regression/require-compression-libraries -Description: require-compression-libraries -Author: Martin Cermak -Bug summary: gcc-toolset-10-elfutils-devel doesn't have Requires and/or links against all supported compression libraries for libdw -Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1873413 diff --git a/tests/Regression/require-compression-libraries/main.fmf b/tests/Regression/require-compression-libraries/main.fmf deleted file mode 100644 index c75776e..0000000 --- a/tests/Regression/require-compression-libraries/main.fmf +++ /dev/null @@ -1,16 +0,0 @@ -summary: require-compression-libraries -description: | - Bug summary: gcc-toolset-10-elfutils-devel doesn't have Requires and/or links against all supported compression libraries for libdw - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1873413 -contact: -- Martin Cermak -component: -- elfutils -test: ./runtest.sh -framework: beakerlib -recommend: -- elfutils -- gcc -duration: 48h -extra-summary: /tools/elfutils/Regression/require-compression-libraries -extra-task: /tools/elfutils/Regression/require-compression-libraries diff --git a/tests/Regression/require-compression-libraries/runtest.sh b/tests/Regression/require-compression-libraries/runtest.sh deleted file mode 100755 index ecba5e0..0000000 --- a/tests/Regression/require-compression-libraries/runtest.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Regression/require-compression-libraries -# Description: require-compression-libraries -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2020 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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 Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="elfutils" - -rlJournalStart - rlPhaseStartTest - rlRun "gcc -o t t.c -ldw" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/require-compression-libraries/t.c b/tests/Regression/require-compression-libraries/t.c deleted file mode 100644 index 3fa93f7..0000000 --- a/tests/Regression/require-compression-libraries/t.c +++ /dev/null @@ -1,5 +0,0 @@ -#include - -int main () { dwelf_elf_begin (0); } - - diff --git a/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/Makefile b/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/Makefile deleted file mode 100644 index 9bd07f3..0000000 --- a/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/elfutils/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data -# Description: Test for BZ#1593328 (Robustify elfutils 0.172 against bad DWARF5 data) -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2018 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/elfutils/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE crashes - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Martin Cermak " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: Test for BZ#1593328 (Robustify elfutils 0.172 against bad DWARF5 data)" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 48h" >> $(METADATA) - @echo "RunFor: elfutils" >> $(METADATA) - @echo "Requires: elfutils" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2+" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Bug: 1593328" >> $(METADATA) - @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/PURPOSE b/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/PURPOSE deleted file mode 100644 index b90ff34..0000000 --- a/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/PURPOSE +++ /dev/null @@ -1,5 +0,0 @@ -PURPOSE of /tools/elfutils/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data -Description: Test for BZ#1593328 (Robustify elfutils 0.172 against bad DWARF5 data) -Author: Martin Cermak -Bug summary: Robustify elfutils 0.172 against bad DWARF5 data -Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1593328 diff --git a/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/crashes/id_000001,sig_11,src_001936,op_flip1,pos_1100 b/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/crashes/id_000001,sig_11,src_001936,op_flip1,pos_1100 deleted file mode 100644 index 79d7fe8..0000000 Binary files a/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/crashes/id_000001,sig_11,src_001936,op_flip1,pos_1100 and /dev/null differ diff --git a/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/crashes/id_000001,sig_11,src_002816,op_int16,pos_370,val_+1024 b/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/crashes/id_000001,sig_11,src_002816,op_int16,pos_370,val_+1024 deleted file mode 100644 index 39a9b32..0000000 Binary files a/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/crashes/id_000001,sig_11,src_002816,op_int16,pos_370,val_+1024 and /dev/null differ diff --git a/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/crashes/id_000002,src_001890,op_flip4,pos_371 b/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/crashes/id_000002,src_001890,op_flip4,pos_371 deleted file mode 100644 index 5e82aca..0000000 Binary files a/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/crashes/id_000002,src_001890,op_flip4,pos_371 and /dev/null differ diff --git a/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/crashes/id_000006,src_001890,op_arith8,pos_371,val_+14 b/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/crashes/id_000006,src_001890,op_arith8,pos_371,val_+14 deleted file mode 100644 index 46abd16..0000000 Binary files a/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/crashes/id_000006,src_001890,op_arith8,pos_371,val_+14 and /dev/null differ diff --git a/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/crashes/id_000011,src_001899,op_flip1,pos_371 b/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/crashes/id_000011,src_001899,op_flip1,pos_371 deleted file mode 100644 index 35099b4..0000000 Binary files a/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/crashes/id_000011,src_001899,op_flip1,pos_371 and /dev/null differ diff --git a/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/main.fmf b/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/main.fmf deleted file mode 100644 index 127b3e1..0000000 --- a/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/main.fmf +++ /dev/null @@ -1,15 +0,0 @@ -summary: Test for BZ#1593328 (Robustify elfutils 0.172 against bad DWARF5 data) -description: | - Bug summary: Robustify elfutils 0.172 against bad DWARF5 data - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1593328 -contact: -- Martin Cermak -component: -- elfutils -test: ./runtest.sh -framework: beakerlib -recommend: -- elfutils -duration: 48h -extra-summary: /tools/elfutils/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data -extra-task: /tools/elfutils/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data diff --git a/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/runtest.sh b/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/runtest.sh deleted file mode 100755 index 85254eb..0000000 --- a/tests/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data/runtest.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Regression/robustify-elfutils-0-172-against-bad-DWARF5-data -# Description: Test for BZ#1593328 (Robustify elfutils 0.172 against bad DWARF5 data) -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2018 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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 Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -_sections="abbrev addr aranges decodedaranges frame gdb_index info info+ loc \ -line decodedline ranges pubnames str macinfo macro exception" - -rlJournalStart - rlPhaseStartTest - for _data in crashes/*; do - for _section in $_sections; do - # 0 and 1 are expected exitcodes: - rlRun "timeout 7 eu-readelf --debug-dump=$_section $_data >/dev/null" 0,1 - done - done - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/static-relocations-not-known-to-older-linkers/Makefile b/tests/Regression/static-relocations-not-known-to-older-linkers/Makefile deleted file mode 100644 index b91bcbe..0000000 --- a/tests/Regression/static-relocations-not-known-to-older-linkers/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/elfutils/Regression/static-relocations-not-known-to-older-linkers -# Description: static-relocations-not-known-to-older-linkers -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2018 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/elfutils/Regression/static-relocations-not-known-to-older-linkers -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Martin Cermak " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: static-relocations-not-known-to-older-linkers" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 48h" >> $(METADATA) - @echo "RunFor: elfutils" >> $(METADATA) - @echo "Requires: elfutils-devel" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2+" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Bug: 1508966" >> $(METADATA) - @echo "Releases: RHEL7" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/static-relocations-not-known-to-older-linkers/PURPOSE b/tests/Regression/static-relocations-not-known-to-older-linkers/PURPOSE deleted file mode 100644 index 9a09bad..0000000 --- a/tests/Regression/static-relocations-not-known-to-older-linkers/PURPOSE +++ /dev/null @@ -1,5 +0,0 @@ -PURPOSE of /tools/elfutils/Regression/static-relocations-not-known-to-older-linkers -Description: static-relocations-not-known-to-older-linkers -Author: Martin Cermak -Bug summary: Need to rebuild rpm in order to remove static relocations not known to older linkers -Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1508966 diff --git a/tests/Regression/static-relocations-not-known-to-older-linkers/main.fmf b/tests/Regression/static-relocations-not-known-to-older-linkers/main.fmf deleted file mode 100644 index 894fc70..0000000 --- a/tests/Regression/static-relocations-not-known-to-older-linkers/main.fmf +++ /dev/null @@ -1,15 +0,0 @@ -summary: static-relocations-not-known-to-older-linkers -description: | - Bug summary: Need to rebuild rpm in order to remove static relocations not known to older linkers - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1508966 -contact: -- Martin Cermak -component: -- elfutils -test: ./runtest.sh -framework: beakerlib -recommend: -- elfutils-devel -duration: 48h -extra-summary: /tools/elfutils/Regression/static-relocations-not-known-to-older-linkers -extra-task: /tools/elfutils/Regression/static-relocations-not-known-to-older-linkers diff --git a/tests/Regression/static-relocations-not-known-to-older-linkers/runtest.sh b/tests/Regression/static-relocations-not-known-to-older-linkers/runtest.sh deleted file mode 100755 index 3519d05..0000000 --- a/tests/Regression/static-relocations-not-known-to-older-linkers/runtest.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Regression/static-relocations-not-known-to-older-linkers -# Description: static-relocations-not-known-to-older-linkers -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2018 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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 Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="elfutils" - -rlJournalStart - rlPhaseStartTest - relocs=$(mktemp) - for i in `rpm -ql elfutils-devel`; do readelf -r -W $i; done > $relocs - # The above is expected to complain about some files not being ELF files, - # such as *.h files or directories ... ;-) - rlRun "grep -e GOTPCRELX -e GOT32X $relocs" 1 - # for elfutils-devel-0.170-1.el7.x86_64.rpm, the unwanted relocation is - # (only) in /usr/lib64/libebl.a - # readelf -r -W /usr/lib64/libebl.a | grep -e GOTPCRELX -e GOT32X - # 00000000000001ef 000000250000002a R_X86_64_REX_GOTPCRELX 0000000000000000 stdout - 4 - rm $relocs - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Sanity/elfutils-debuginfod/body.sh b/tests/Sanity/elfutils-debuginfod/body.sh deleted file mode 100755 index 1f93014..0000000 --- a/tests/Sanity/elfutils-debuginfod/body.sh +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/bash - -set -xeo pipefail - - -export DEBUGINFOD_VERBOSE=1 -export DEBUGINFOD_CACHE_PATH=$HOME/.debuginfod_client_cache/ - -# Initial cleanup -systemctl stop debuginfod -rm -rf ~/.cache/debuginfod_client -rm -rf /usr/src/my_extra_rpms $DEBUGINFOD_CACHE_PATH -mkdir $DEBUGINFOD_CACHE_PATH -journalctl -g debuginfod -f & -logger=$! - -# Set up a delay. A delay of 3 worked for me reliably for manual testing. -DELAY=120 - -# Clean up after possible previous failed (=> unfinished) run of this testcase -rm -rf /usr/src/my_extra_rpms $HOME/.debuginfod_client_cache - -# Check the config file is there -cat /etc/sysconfig/debuginfod - -# Make sure the config file doesn't contain unwanted relicts -# from possible previous failed run of this testcase -fgrep DEBUGINFOD_PATHS /etc/sysconfig/debuginfod | (! fgrep /usr/src/my_extra_rpms) - -# Add some directory to the DEBUGINFOD_PATH and configure it -# within /etc/sysconfig/debuginfod -mkdir -p /usr/src/my_extra_rpms -sed -i 's/DEBUGINFOD_PATHS="[^"]*/\0\ \/usr\/src\/my_extra_rpms/' /etc/sysconfig/debuginfod -fgrep DEBUGINFOD_PATHS /etc/sysconfig/debuginfod | fgrep /usr/src/my_extra_rpms - -# Note the DEBUGINFOD_PORT in the sysconfig file -# and use it to export the server URL for the client to use -source /etc/sysconfig/debuginfod -export DEBUGINFOD_URLS="localhost:$DEBUGINFOD_PORT" - -# Get the build-id from some installed binary and make sure -# it isn't found -buildid=$(eu-unstrip -n -e /usr/bin/true | cut -f2 -d\ | cut -f1 -d@) -! debuginfod-find executable $buildid - -# Start the service -systemctl start debuginfod - -# Give it some time to index -sleep $DELAY - -# Now the binary should be found -debuginfod-find executable $buildid - -# Take a small debuginfo rpm and make sure you know the buildid of -# some .debug file in to the directory you created and added to -# the DEBUGINFO_PATH in the config file. -cp sshpass-debuginfo-1.09-2.fc35.x86_64.rpm /usr/src/my_extra_rpms - -# Make sure the denuginfo can't be found yet -# Related: -# - https://bugzilla.redhat.com/show_bug.cgi?id=2023454 -# - https://sourceware.org/bugzilla/show_bug.cgi?id=28240 -! debuginfod-find debuginfo 73952ed43c6edc82cc92186a581ec27f009c529c -echo 0 > $DEBUGINFOD_CACHE_PATH/cache_miss_s - -# Tell debuginfod to start indexing immediately -debuginfod_pid=$(systemctl status debuginfod | fgrep PID | grep -Po '\d+') -kill -SIGUSR1 $debuginfod_pid - -# Give it some time to index -sleep $DELAY - -# Try to find the debug file with the known buildid -debuginfod-find debuginfo 73952ed43c6edc82cc92186a581ec27f009c529c - -# Clean up -rm -rf /usr/src/my_extra_rpms $HOME/.debuginfod_client_cache - -# Kill the logger -kill $logger diff --git a/tests/Sanity/elfutils-debuginfod/main.fmf b/tests/Sanity/elfutils-debuginfod/main.fmf deleted file mode 100644 index dcdc35d..0000000 --- a/tests/Sanity/elfutils-debuginfod/main.fmf +++ /dev/null @@ -1,14 +0,0 @@ -summary: elfutils-debuginfod -description: '' -contact: Martin Cermak -component: -- elfutils -test: ./runtest.sh -framework: beakerlib -recommend: -- elfutils -- elfutils-debuginfod -- elfutils-debuginfod-client -duration: 48h -extra-summary: /tools/elfutils/Sanity/elfutils-debuginfod -extra-task: /tools/elfutils/Sanity/elfutils-debuginfod diff --git a/tests/Sanity/elfutils-debuginfod/runtest.sh b/tests/Sanity/elfutils-debuginfod/runtest.sh deleted file mode 100755 index 1ae097e..0000000 --- a/tests/Sanity/elfutils-debuginfod/runtest.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Sanity/elfutils-debuginfod -# Description: elfutils-debuginfod -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2019 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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 Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="elfutils" - -rlJournalStart - rlPhaseStartSetup - for p in elfutils-debuginfod elfutils-debuginfod-client; do - rlAssertRpm $p - done - rlRun "TMPD=$(mktemp -d)" - rlRun "cp body.sh sshpass-debuginfo-1.09-2.fc35.x86_64.rpm $TMPD" - rlRun "pushd $TMPD" - rlFileBackup /etc/sysconfig/debuginfod - rlPhaseEnd - - rlPhaseStartTest - rlRun "./body.sh" - rlPhaseEnd - - rlPhaseStartCleanup - rlFileRestore - rlRun "popd" - rlRun "rm -r $TMPD" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Sanity/elfutils-debuginfod/sshpass-debuginfo-1.09-2.fc35.x86_64.rpm b/tests/Sanity/elfutils-debuginfod/sshpass-debuginfo-1.09-2.fc35.x86_64.rpm deleted file mode 100644 index 3ae7fe1..0000000 Binary files a/tests/Sanity/elfutils-debuginfod/sshpass-debuginfo-1.09-2.fc35.x86_64.rpm and /dev/null differ diff --git a/tests/Sanity/yama-scope/main.fmf b/tests/Sanity/yama-scope/main.fmf deleted file mode 100644 index 7b08cd2..0000000 --- a/tests/Sanity/yama-scope/main.fmf +++ /dev/null @@ -1,16 +0,0 @@ -summary: yama-scope -description: | - Bug summary: Enable provide_yama_scope for rhel >= 7.4 - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1455514 -contact: Martin Cermak -component: -- elfutils -test: ./runtest.sh -framework: beakerlib -recommend: -- elfutils -duration: 48h -link: -- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1455514 -extra-summary: /tools/elfutils/Sanity/yama-scope -extra-task: /tools/elfutils/Sanity/yama-scope diff --git a/tests/Sanity/yama-scope/ptrace-scope-test.sh b/tests/Sanity/yama-scope/ptrace-scope-test.sh deleted file mode 100644 index 6eb1ca4..0000000 --- a/tests/Sanity/yama-scope/ptrace-scope-test.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -RETVAL=0 -OUT=$(mktemp) -eu-stack -p $$ |& tee $OUT -grep -i 'operation not permitted' $OUT && RETVAL=1 -rm $OUT -exit $RETVAL diff --git a/tests/Sanity/yama-scope/runtest.sh b/tests/Sanity/yama-scope/runtest.sh deleted file mode 100755 index 8195b54..0000000 --- a/tests/Sanity/yama-scope/runtest.sh +++ /dev/null @@ -1,108 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/elfutils/Sanity/yama-scope -# Description: yama-scope -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2017 Red Hat, Inc. -# -# This program 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 2 of -# the License, or (at your option) any later version. -# -# This program 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 Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="elfutils" -MY_USER="ptrace_scope_testuser" -TESTCASE="/tmp/ptrace-scope-test.sh" -PROCFILE='/proc/sys/kernel/yama/ptrace_scope' - -test_root() -{ - $TESTCASE -} - -test_user() -{ - su - $MY_USER -c $TESTCASE -} - -rlJournalStart - rlPhaseStartTest - -# This can easily be tested with strace. Just cycle through the settings: - -# 0 - Default attach security permissions. -# 1 - Restricted attach. Only child processes plus normal permissions. -# 2 - Admin-only attach. Only executables with CAP_SYS_PTRACE. -# 3 - No attach. No process may call ptrace at all. Irrevocable. - -# echo 0 > /proc/sys/kernel/yama/ptrace_scope - -# With 0, strace works against any process with your uid. For example, strace -p 2190. -# With 1, strace errors when doing the same as in 0: strace: attach: ptrace(PTRACE_SEIZE, 3180): Operation not permitted. However, you can strace any program you run from strace, "strace /bin/ls" or example. -# With 2, you can only strace from the root account. You can no longer strace commands run from strace. -# With 3, even root cannot strace. - -# --- - -# possible related AVCs tracked as https://bugzilla.redhat.com/show_bug.cgi?id=1458999 - -# --- - - rlRun "useradd $MY_USER" 0,9 - - rlRun "cp ptrace-scope-test.sh /tmp/" - rlRun "chmod a+rx /tmp/ptrace-scope-test.sh" - - rlRun "ORIGVAL=$( cat $PROCFILE )" - - # First, test the default behaviour, which is "no restriction" - # from the ptrace perspective. Here we assume that - # elfutils-default-yama-scope.rpm is installed and so the default - # yama policy is set to 0 instead of 1 which would otherwise be set - # as a kernel default (security/yama/yama_lsm.c ---> YAMA_SCOPE_RELATIONAL) - rlRun test_root - rlRun test_user - - rlRun "echo 0 > $PROCFILE" - rlRun test_root - rlRun test_user - rlRun "echo 1 > $PROCFILE" - rlRun test_root - rlRun test_user 1 - rlRun "echo 2 > $PROCFILE" - rlRun test_root - rlRun test_user 1 - # Following subtest would be irrevertible (till next reboot) - # rlRun "echo 3 > $PROCFILE" - # rlRun test_root 1 - # rlRun test_user 1 - - rlRun "userdel -f $MY_USER" - -# This testcase could be more complex - using child and non-child processes and -# performing reboots. But let's keep this simple, since we are not testing the -# kernel facility, but merely an elfutils "plugin" for it, whose purpose is to -# set the default yama policy as such. - - rlRun "echo $ORIGVAL > $PROCFILE" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/upstream-key.gpg b/upstream-key.gpg deleted file mode 100644 index 5ba3b5d..0000000 --- a/upstream-key.gpg +++ /dev/null @@ -1,109 +0,0 @@ -pub 1024D/7EBBD625 2003-01-10 -uid Roland McGrath -uid Roland McGrath -uid Roland McGrath -uid Roland McGrath -sub 2048g/17998A93 2003-01-10 - -pub 1024D/79FF4474 2001-08-24 -uid Ulrich Drepper -uid Ulrich Drepper -sub 2048g/07FA6550 2001-08-24 - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.4.5 (GNU/Linux) - -mQGiBD4ejvcRBADNwfo3ALnr8qMQQARgBzHM5HsGaBGnGWPIFO18IhVhjqeOTBjd -w0N9R6FAj/i3ObeTPwJABNGj92m2qnd49puBAtirJRd8Ul6shvLR8oNMZcCJEmGW -6Ud7D+uS/WxIoQHXWKl2VtvJBLIEdZ8n/Z6SxcHuMEfTD+2pc7cqOxZPGwCglqP6 -Bt6BF5aUMbN0b/jj93ZHHSMD/iQxEiH7MmvVPHDZYN9CGepzlwcD+BKhYbq6wxsq -pxxrtK5OrakwNd6cBb8nOVK2DjyOVRHBdWH6MVx+DCDSp0FWDEftQpCR0N0iItP4 -h+8lTP/7NdZj5+tfi99TUNMMaOcTdgWQ+s8/WUEZoJErDy/yXNHbK6xhD5mBm4pF -bgQnBACmWQfAFDhFm1uKsNS8vPqcJ6Be+bbh+5uTOm30zXiAHEdi56v5tvn4mJSy -yXakNGBHKkmdVQDTb4mLrnhpUnEHFegioOoBrwR6ZUsnsT7zaLz7r+p56HPKRkkn -8284/NlZigncvPPcOK/9m6N9OLX8uerLy5TjuOPwjITxHmNgBbQgUm9sYW5kIE1j -R3JhdGggPHJvbGFuZEBmcm9iLmNvbT6IXAQTEQIAHAQLBwMCAxUCAwMWAgECHgEC -F4ACGQEFAj4ejvgACgkQ2vc1Cn671iU4OwCcC3y0ZCz5gxT/rzeRjogiMdOMMMcA -nRPShRs5wsaJUeGOxAqRwu++hbrPiD8DBRA+HpK6Z/R4eOAIGpcRApUPAKDtBRDr -ijwEwnyN8JF5jKzFqnlaZwCbBK6J7CLs8HonLtkjBFBy5JKblgKJAJUDBRA+HpOD -pkJ+bR8IKbEBAWlBA/91cNYotVnrh4hjc06UHxySasqtxK2gd2h5A96Ez5FY0l0s -KixJ7Rtvt490qhHqo6LiHFjKtmeiWNIO5H1MMGxXuJfBD2uDc6mfurwyt8j0v29n -CeBFqrckR5NTbXWiepIbCe00Ux5+WbbJTdWpLFOxo8YiwqzfF/XbPdghPyY1YLQg -Um9sYW5kIE1jR3JhdGggPGZyb2JAZGViaWFuLm9yZz6IWwQTEQIAHAUCPh6PXQIb -AwQLBwMCAxUCAwMWAgECHgECF4AACgkQ2vc1Cn671iV7RACdHM6BWdolx88UOBhk -L0XjMAAzF+IAmMyGjKKdDyNXmoMU1/SX/KFuPVOIPwMFED4eksNn9Hh44AgalxEC -4G0AoIxbFjdAJImO7kOV5rFoW/+B9dxeAKDOIWg/gcAAOYFKggTBl8YO7uEYKokA -lQMFED4ek8KmQn5tHwgpsQEBZD4D/3NBTjA3j5rj2mN7HDbSlIpttllC6B+jmzi0 -ynOgEzkhvae3ZY3mm334+/l3L9C3ZNJMQNvRdWVq2DjQq94xc9waI/Z4mNDeVQQB -6fHC/0cmqj2n/ymS4NWxBx75W+wQKoBOXW2/bdd3cMOOwIhnC4H00FblFYR0Avth -sxw9hDUztB9Sb2xhbmQgTWNHcmF0aCA8cm9sYW5kQGdudS5vcmc+iFwEExECABwF -Aj4ej3UCGwMECwcDAgMVAgMDFgIBAh4BAheAAAoJENr3NQp+u9Yl6jUAnA7DcQVj -kWoPngzvzWHB7EIYInaXAJwLZP3Nk6jPifu1J4vJ2F768hQyoYg/AwUQPh6SzGf0 -eHjgCBqXEQLPqwCgm6h1Z6xwyduXw6ZYpbRYdyBqwGcAoKIrMkypgDXci//FI5Kc -iYBRF3ajiQCVAwUQPh6T0KZCfm0fCCmxAQFrYQP9Hh1v7DrIkT370pMo7qICLhdf -B7r7ofSkcqSGPcAq+gwNa2aNoDx11U9hk2Vo5HWJm2psSzikUN83i7uzMZi8dW5D -e0uI3TeHgUOFPCxXLG5KSMwGdjxKwe/Ks95gNnlDzYTe6mjJdP89D4NhSc/cP78B -tRpc3pK+KJYd/O/xUgy0IlJvbGFuZCBNY0dyYXRoIDxyb2xhbmRAcmVkaGF0LmNv -bT6IXgQTEQIAHgUCQjO3pQIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRDa9zUK -frvWJTY3AJ9UFpGYfE0dCtF6IL0CcoPB8//7tQCfesL/4DPu53OWLoVhxVKhEe+2 -QoS5Ag0EPh6PKRAIAIU6PeE1k+YYKYtZhFzb2EhVid/eUe8QsEYLJrJUYTAyzssb -1wnWx90iFHRxyLOAyTc7YXKWz3lkbCW+TqYCSc9rbTCQy1dE8dK4ojdizZempape -P+7kuk+zGWquabqQ71/294m2Sffasdz97yr3Eo6uSSN38ct7fxEBHhFgEGx/jDVV -1/o1vrUcrrYyI39mOTp4yjcLwbS7JqFsNKxTGEUULpL3GYRJC+JtcaH9766E8Si+ -caxKqNLND4PHIPQ7UQCmDu2Rn84mM7Oy1whR7Pkjw6S9kQxZP+Xfykq6NAHWfFyp -9g/5DTGVYCLxCM1Ska6KF8lnAYB1cr84OMvZ3J8AAwUH/j1rknj9KRrsgfE9CyFV -WNUWpH79PTBQG+uoU4qyO9OPuJqcz9bBgyj9zo1DM4mxJ/euZH1X/35PTe8O1YQR -VxzhnS5CzHoTq33qROi9/6m8HAkhp6c0s6uBplWargmomJz8gtVi+av5KbUjSxVs -yxKWSWkX46EEjItYxmQTv9TA8X6yMM7SkQJUEIz3UXtYSLb+pVXPJfScr945kXK8 -180MGQLBhq9wEcR5ypUN1HqyO1J+TJQdsqtXAVe57RMIPY/XoFnS73B9aQmTwYRk -5fDo9wTnHEDW4dxN+zphONOjLbGaJt5o4ytbqrQ54JHwNt4xXavWgG39OPlPqENU -x7GIRgQYEQIABgUCPh6PKQAKCRDa9zUKfrvWJYxEAJ9FFDtc48oBtVQISX80/a2d -smT+qwCeLgHE6iheS8L2cbygDxDnsLx32wSZAaIEO4W2HREEAI9wcSTKokTbrBNe -664LGmomPGUGc0WQkaRZSh67z1CPNaDNfL8QDz6m00GAJM8qcsSqGRFTLEBP9TP6 -37FsqpS0vngjNh/E7g1Cw39VUzS6mk18glsxa8CO+mnYcKR3/faLr3euUf4b128b -wrntvLc8FEcGAfYvxDu39C8DYBanAKDOiRcMNSKK3KwafitY7SsEGhHo4QP/d6Gl -we1saLE2i5tFkDGnD31VMqz8jvo6StDOpyb7D7PBl6KElcLzzIAcDvv8sEHdgppf -cbgKYNBRt5En3M+URNMuZExwXrV1B2r/epUGKrWybpy1ni4SmbwefKwoxP5Vjhea -P0svMXYF0g0b1+txf2uTxWTbmIIsGuidLQwhTdYD+wS+VQWV9vIIFEGir5GWv27T -l+cdzsIswojsQhLVPV0s/EfWK+5SHJg0YAxGEKK8FtPZnS39HiSy7dV2c8aQLIAB -1Y1Jp9IaoJhTNAfS7lnwcrpzaJeshfcimTkOFA5DqTW3JjO5DDdwJ/tFhEn3+K6n -xGWxxW3aSYadK5yqnEkJtCNVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQu -Y29tPohGBBARAgAGBQI8iQDvAAoJEFWW3Qzpv2U97wgAn1RVl6FbIHVVmT224nOp -5b98OZVnAJ9ehXzM60RbmGi3kJNS30II+SGft4hXBBMRAgAXBQI7hbYdBQsHCgME -AxUDAgMWAgECF4AACgkQ2ijCOnn/RHRKpQCgvkcFtpFZHX2+OV1R4m9gIbYBH3gA -oMueZURrKRplbLI2DQ5O7Et7VuhriEYEExECAAYFAj1O+3QACgkQ/dLerNMzy6FT -LQCg2oBMGPa6wS0l24Ye6Qpn2ZBrJwUAn3KWrQyZknAxnfr317quAyIcAwBViEYE -EhECAAYFAj7BT9IACgkQ11eXTEMrxtQ3dQCguuJuqjrjhpPnoZdP9BCfNjDMYSUA -oKbxk/YzSrmKK9ORftS09FwmVCTDiEYEEBECAAYFAkXnOVAACgkQdKvXeizxGoAj -8QCgjDNN58vjt0MgufrzRkaM6outFfIAoKA+VG765m013JhN6I7i1xQvjYRaiEYE -EBECAAYFAkcd8swACgkQUjSEXfK5IPWh5wCg+4qbc+Z4tM++KoBUDBhtZiT+thUA -oJw40gwfBSypDYSvWiMXOPTKo3XniEYEEBECAAYFAkhMxecACgkQ3L4Y/6A1U7zA -4QCfTR51NKVwuqenN7wx5Yh5DdvnQ1wAoKllIwL7hPpOBxhcJ89JRwRvcXpsiEYE -EhECAAYFAkG2CC4ACgkQZfy0juH51Wu+pQCdHTo8l58N37s6QDrzs8+jgP5FvfcA -n1SyC1DFTr/3x30XrG8uik+yrglHtCRVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckBh -a2thZGlhLm9yZz6IRgQQEQIABgUCRec5RAAKCRB0q9d6LPEagK2JAJ91Ijx0h2j9 -kdDyJGuy5yR2U15POgCePe3J3gydUiZ/VhSxgBs2W392Ka2IRgQQEQIABgUCRx3y -zAAKCRBSNIRd8rkg9fAkAJwLDoqhNWPJ9/xH2pB2pHH4fl0S0QCfakhHUYZZOwsI -bRWitVxj2x9YBC2IXgQTEQIAHgUCQctB7wIbAwYLCQgHAwIDFQIDAxYCAQIeAQIX -gAAKCRDaKMI6ef9EdMjoAKDAbAOo5vZNQ6lSfRKu4191ECVpwwCfbjUBKoemZBoT -UqJL2SmT1kUTpAi0JVVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHN0YXJiYW5kLm5l -dD6IRgQQEQIABgUCRec5UAAKCRB0q9d6LPEagEIWAJ0W7ELDi1PcOWf351DvdHNa -qq7DOwCgk9cpaGYOd+2niqh2cPfWkPSHP9aIXgQTEQIAHgUCQctB1AIbAwYLCQgH -AwIDFQIDAxYCAQIeAQIXgAAKCRDaKMI6ef9EdCHwAJ4k86j/d5BLWjks/ZihLvQZ -KFvn/wCgq9Q9vshNUD5syyqK1plSYU/HY6iISQQwEQIACQUCRektoAIdIAAKCRDa -KMI6ef9EdPd7AKDN2eoVXXecfkf90y2v1EfBFwauAwCeKa+zpHOpXHMAOBBz3MDi -L9K9aCm5Ag0EO4W2TxAIAM7hQD6tbGFLaSQpcF+/qXc9SnSIG8QyqEh4dq0kcduB -y2GP8YPabOn2Rdtf0gYmpSmgfARZyHofEvS11LVrfWlHgpJZ50MD20dARkXGQEu/ -px2fWoIjHeAkXuEVhZkuioSHlLA2u9PvF4SJvwvjoHe2oJAcO8pE2/41hzMr3D/Y -mNELZiGrX1UwyVJu0ZuU7TNZgwppf4FiECeXs6/YL9jVBt5KTWMD/hvaOAS8kzh2 -posf9GByPx4mUmIsKuNGqNM0Tnf8l2Ov2t5orTfegInSS+SObW6p6xcui5kb1psj -sVpCQ/2xd9a6zuT31VIHFaVMW7VuOD7VYpYS7ofqo08AAwUH/jUx8I1MNY/j2bP8 -uV5z8NMdGXWBhJdCOzarTIAsSOGR0/Y2i3C1wEW91FRLnNS7idbQANbLNXNTSyty -4Prmc3ijEX30WBFINBJnq/EBlq9bkjsQx3AM7kWV9z2DV3BBhMhJuONww516/+G/ -M2CujvrMtS3fklccaeo8LZNC8k+6JIA9BNXQ1M1/qsabFbo283R+G3aqHCqLjDTE -/gR3qGzWaUeE8s+fqcFvq8Nfl2Xm8gVJCD1zqFj2aVEwxn2fqJvcX4NCTnCmSGdF -/dXS0KecffWgps8FnlsvSxT0wH/aWJMvMF87XhKLRP05Jg3gNXGjwvSBCvQQa60v -U3rm6xCIRgQYEQIABgUCO4W2TwAKCRDaKMI6ef9EdGd/AJoDOBQKrsJbR9KKE3QJ -gTKAnym+PwCfbnwIeEZfbBWgonv4/I3aNNm3FdQ= -=2IML ------END PGP PUBLIC KEY BLOCK-----