--- a/subprojects/debugedit/tools/debugedit.c +++ b/subprojects/debugedit/tools/debugedit.c @@ -25,7 +25,7 @@ #include #include #include -#include +#include #include #include #include @@ -536,7 +535,7 @@ relbuf = malloc (maxndx * sizeof (REL)); *reltype = dso->shdr[i].sh_type; if (relbuf == NULL) - error (1, errno, "%s: Could not allocate memory", dso->filename); + err (1, "%s: Could not allocate memory", dso->filename); symdata = elf_getdata (dso->scn[dso->shdr[i].sh_link], NULL); assert (symdata != NULL && symdata->d_buf != NULL); @@ -626,7 +625,7 @@ #endif default: fail: - error (1, 0, "%s: Unhandled relocation %d at [%d] for %s section", + err (1, "%s: Unhandled relocation %d at [%d] for %s section", dso->filename, rtype, ndx, sec->name); } relend->ptr = sec->data @@ -669,17 +668,17 @@ int ndx = relptr->ndx; if (gelf_getrela (data, ndx, &rela) == NULL) - error (1, 0, "Couldn't get relocation: %s", + err (1, "Couldn't get relocation: %s", elf_errmsg (-1)); if (gelf_getsym (symdata, GELF_R_SYM (rela.r_info), &sym) == NULL) - error (1, 0, "Couldn't get symbol: %s", elf_errmsg (-1)); + err (1, "Couldn't get symbol: %s", elf_errmsg (-1)); rela.r_addend = relptr->addend - sym.st_value; if (gelf_update_rela (data, ndx, &rela) == 0) - error (1, 0, "Couldn't update relocations: %s", + err (1, "Couldn't update relocations: %s", elf_errmsg (-1)); ++relptr; @@ -738,7 +737,7 @@ if (h == NULL) { no_memory: - error (0, ENOMEM, "%s: Could not read .debug_abbrev", dso->filename); + err (0, "%s: Could not read .debug_abbrev", dso->filename); if (h) htab_delete (h); return NULL; @@ -760,7 +759,7 @@ } if (*slot != NULL) { - error (0, 0, "%s: Duplicate DWARF abbreviation %d", dso->filename, + err (0, "%s: Duplicate DWARF abbreviation %d", dso->filename, t->entry); free (t); htab_delete (h); @@ -796,7 +795,7 @@ || form == DW_FORM_addrx3 || form == DW_FORM_addrx4))) { - error (0, 0, "%s: Unknown DWARF DW_FORM_0x%x", dso->filename, + err (0, "%s: Unknown DWARF DW_FORM_0x%x", dso->filename, form); htab_delete (h); return NULL; @@ -812,7 +811,7 @@ } if (read_uleb128 (ptr) != 0) { - error (0, 0, "%s: DWARF abbreviation does not end with 2 zeros", + err (0, "%s: DWARF abbreviation does not end with 2 zeros", dso->filename); htab_delete (h); return NULL; @@ -1016,7 +1015,7 @@ + (STRIDXENTRIES * sizeof (struct stridxentry))); struct strentblock *newentries = malloc (entriessz); if (newentries == NULL) - error (1, errno, "Couldn't allocate new string entries block"); + err (1, "Couldn't allocate new string entries block"); else { if (strings->entries == NULL) @@ -1036,7 +1035,7 @@ struct stridxentry **tres = tsearch (entry, &strings->strent_root, strent_compare); if (tres == NULL) - error (1, ENOMEM, "Couldn't insert new strtab idx"); + err (1, "Couldn't insert new strtab idx"); else if (*tres == entry) { /* idx not yet seen, must add actual str. */ @@ -1078,7 +1077,7 @@ debug_section *sec = &debug_sections[line_strp ? DEBUG_LINE_STR : DEBUG_STR]; if (old_idx >= sec->size) - error (1, 0, "Bad string pointer index %zd (%s)", old_idx, sec->name); + err (1, "Bad string pointer index %zd (%s)", old_idx, sec->name); Strent *strent; const char *old_str = (char *)sec->data + old_idx; @@ -1099,7 +1098,7 @@ nsize += 1 + file_len; /* + '/' */ char *nname = new_string_storage (strings, nsize); if (nname == NULL) - error (1, ENOMEM, "Couldn't allocate new string storage"); + err (1, "Couldn't allocate new string storage"); memcpy (nname, dest_dir, dest_len); if (file_len > 0) { @@ -1113,7 +1112,7 @@ ret = true; } if (strent == NULL) - error (1, ENOMEM, "Could not create new string table entry"); + err (1, "Could not create new string table entry"); else entry->entry = strent; } @@ -1134,13 +1133,13 @@ debug_section *sec = &debug_sections[line_strp ? DEBUG_LINE_STR : DEBUG_STR]; if (old_idx >= sec->size) - error (1, 0, "Bad string pointer index %zd (%s)", old_idx, sec->name); + err (1, "Bad string pointer index %zd (%s)", old_idx, sec->name); const char *str = (char *)sec->data + old_idx; Strent *strent = strtab_add_len (strings->str_tab, str, strlen (str) + 1); if (strent == NULL) - error (1, ENOMEM, "Could not create new string table entry"); + err (1, "Could not create new string table entry"); else entry->entry = strent; } @@ -1217,7 +1216,7 @@ + MIN_LINE_TABLES))); if (new_table == NULL) { - error (0, ENOMEM, "Couldn't add more debug_line tables"); + err (0, "Couldn't add more debug_line tables"); *table = NULL; return false; } @@ -1238,13 +1237,13 @@ unsigned char *endsec = ptr + debug_sections[DEBUG_LINE].size; if (ptr == NULL) { - error (0, 0, "%s: No .line_table section", dso->filename); + err (0, "%s: No .line_table section", dso->filename); return false; } if (off > debug_sections[DEBUG_LINE].size) { - error (0, 0, "%s: Invalid .line_table offset 0x%zx", + err (0, "%s: Invalid .line_table offset 0x%zx", dso->filename, off); return false; } @@ -1256,13 +1255,13 @@ endcu += t->unit_length; if (endcu == ptr + 0xffffffff) { - error (0, 0, "%s: 64-bit DWARF not supported", dso->filename); + err (0, "%s: 64-bit DWARF not supported", dso->filename); return false; } if (endcu > endsec) { - error (0, 0, "%s: .debug_line CU does not fit into section", + err (0, "%s: .debug_line CU does not fit into section", dso->filename); return false; } @@ -1271,7 +1270,7 @@ t->version = read_16 (ptr); if (t->version != 2 && t->version != 3 && t->version != 4 && t->version != 5) { - error (0, 0, "%s: DWARF version %d unhandled", dso->filename, + err (0, "%s: DWARF version %d unhandled", dso->filename, t->version); return false; } @@ -1282,7 +1281,7 @@ assert (ptr_size != 0); if (ptr_size != read_8 (ptr)) { - error (0, 0, "%s: .debug_line address size differs from .debug_info", + err (0, "%s: .debug_line address size differs from .debug_info", dso->filename); return false; } @@ -1297,7 +1296,7 @@ endprol += t->header_length; if (endprol > endcu) { - error (0, 0, "%s: .debug_line CU prologue does not fit into CU", + err (0, "%s: .debug_line CU prologue does not fit into CU", dso->filename); return false; } @@ -1323,7 +1322,7 @@ if (ptr + t->opcode_base - 1 >= endcu) { - error (0, 0, "%s: .debug_line opcode table does not fit into CU", + err (0, "%s: .debug_line opcode table does not fit into CU", dso->filename); return false; } @@ -1378,7 +1377,7 @@ dso->lines.line_buf = malloc (dso->lines.debug_lines_len); if (dso->lines.line_buf == NULL) - error (1, ENOMEM, "No memory for new .debug_line table (0x%zx bytes)", + err (1, "No memory for new .debug_line table (0x%zx bytes)", dso->lines.debug_lines_len); linedata->d_size = dso->lines.debug_lines_len; @@ -1651,7 +1650,7 @@ assert (len < UINT_MAX); break; default: - error (0, 0, "%s: Unknown DWARF DW_FORM_0x%x", dso->filename, *formp); + err (0, "%s: Unknown DWARF DW_FORM_0x%x", dso->filename, *formp); return FORM_ERROR; } @@ -1719,7 +1718,7 @@ if (value >= dirt_cnt) { - error (0, 0, "%s: Wrong directory table index %u", + err (0, "%s: Wrong directory table index %u", dso->filename, value); return false; } @@ -1743,7 +1742,7 @@ s = malloc (comp_dir_len + 1 + file_len + 1 + dir_len + 1); if (s == NULL) { - error (0, ENOMEM, "%s: Reading file table", dso->filename); + err (0, "%s: Reading file table", dso->filename); return false; } if (*file == '/') @@ -1789,7 +1788,7 @@ { ssize_t ret = write (list_file_fd, p, size); if (ret == -1) - error (1, errno, "Could not write to '%s'", list_file); + err (1, "Could not write to '%s'", list_file); size -= ret; p += ret; } @@ -1838,7 +1837,7 @@ *ndir = entry_count; *dirs = malloc (entry_count * sizeof (char *)); if (*dirs == NULL) - error (1, errno, "%s: Could not allocate debug_line dirs", + err (1, "%s: Could not allocate debug_line dirs", dso->filename); } @@ -1889,7 +1888,7 @@ } break; default: - error (0, 0, "%s: Unsupported " + err (0, "%s: Unsupported " ".debug_line %s %u path DW_FORM_0x%x", dso->filename, entry_name, entryi, form); return false; @@ -1914,7 +1913,7 @@ dirndx = do_read_32 (*ptrp); break; default: - error (0, 0, "%s: Unsupported " + err (0, "%s: Unsupported " ".debug_line %s %u dirndx DW_FORM_0x%x", dso->filename, entry_name, entryi, form); return false; @@ -1922,7 +1921,7 @@ if (dirndx > *ndir) { - error (0, 0, "%s: Bad dir number %u in .debug_line %s", + err (0, "%s: Bad dir number %u in .debug_line %s", dso->filename, entryi, entry_name); return false; } @@ -1946,7 +1945,7 @@ case FORM_ERROR: return false; case FORM_INDIRECT: - error (0, 0, "%s: Unsupported " + err (0, "%s: Unsupported " ".debug_line %s %u DW_FORM_indirect", dso->filename, entry_name, entryi); return false; @@ -1967,7 +1966,7 @@ char *s = malloc (comp_dir_len + 1 + file_len + 1 + dir_len + 1); if (s == NULL) { - error (0, ENOMEM, "%s: Reading file table", dso->filename); + err (0, "%s: Reading file table", dso->filename); return false; } if (file[0] == '/') @@ -2013,7 +2012,7 @@ { ssize_t ret = write (list_file_fd, p, size); if (ret == -1) - error (1, errno, "Could not write to '%s'", list_file); + err (1, "Could not write to '%s'", list_file); size -= ret; p += ret; } @@ -2126,7 +2125,7 @@ debug_section *sec = &debug_sections[line_strp ? DEBUG_LINE_STR : DEBUG_STR]; if (sec->data == NULL || idx >= sec->size) - error (1, 0, "%s: Bad string pointer index %zd for comp_dir (%s)", + err (1, "%s: Bad string pointer index %zd for comp_dir (%s)", dso->filename, idx, sec->name); dir = (char *) sec->data + idx; @@ -2229,7 +2228,7 @@ producers will use DW_FORM_strp which is more efficient. */ if (orig_len < new_len) - error (0, 0, "Warning, not replacing comp_dir " + err (0, "Warning, not replacing comp_dir " "'%s' prefix ('%s' -> '%s') encoded as " "DW_FORM_string. " "Replacement too large.", @@ -2281,7 +2280,7 @@ ? DEBUG_LINE_STR : DEBUG_STR]; if (idx >= sec->size) - error (1, 0, + err (1, "%s: Bad string pointer index %zd for unit name (%s)", dso->filename, idx, sec->name); char *name = (char *) sec->data + idx; @@ -2356,7 +2355,7 @@ { ssize_t ret = write (list_file_fd, p, size); if (ret == -1) - error (1, errno, "Could not write to '%s'", list_file); + err (1, "Could not write to '%s'", list_file); size -= ret; p += ret; } @@ -2370,7 +2369,7 @@ else ret = write (list_file_fd, "", 1); if (ret == -1) - error (1, errno, "Could not write to '%s'", list_file); + err (1, "Could not write to '%s'", list_file); } } } @@ -2423,7 +2422,7 @@ /* header size, version, unit_type, ptr_size. */ if (ptr + 4 + 2 + 1 + 1 > endsec) { - error (0, 0, "%s: %s CU header too small", + err (0, "%s: %s CU header too small", dso->filename, sec->name); return 1; } @@ -2432,13 +2431,13 @@ endcu += read_32 (ptr); if (endcu == ptr + 0xffffffff) { - error (0, 0, "%s: 64-bit DWARF not supported", dso->filename); + err (0, "%s: 64-bit DWARF not supported", dso->filename); return 1; } if (endcu > endsec) { - error (0, 0, "%s: %s too small", dso->filename, sec->name); + err (0, "%s: %s too small", dso->filename, sec->name); return 1; } @@ -2446,7 +2445,7 @@ if (cu_version != 2 && cu_version != 3 && cu_version != 4 && cu_version != 5) { - error (0, 0, "%s: DWARF version %d unhandled", dso->filename, + err (0, "%s: DWARF version %d unhandled", dso->filename, cu_version); return 1; } @@ -2458,7 +2457,7 @@ uint8_t unit_type = read_8 (ptr); if (unit_type != DW_UT_compile && unit_type != DW_UT_partial) { - error (0, 0, "%s: Unit type %u unhandled", dso->filename, + err (0, "%s: Unit type %u unhandled", dso->filename, unit_type); return 1; } @@ -2469,7 +2468,7 @@ unsigned char *header_end = (cu_start + 23 + (cu_version < 5 ? 0 : 1)); if (header_end > endsec) { - error (0, 0, "%s: %s CU header too small", dso->filename, sec->name); + err (0, "%s: %s CU header too small", dso->filename, sec->name); return 1; } @@ -2477,9 +2476,9 @@ if (value >= debug_sections[DEBUG_ABBREV].size) { if (debug_sections[DEBUG_ABBREV].data == NULL) - error (0, 0, "%s: .debug_abbrev not present", dso->filename); + err (0, "%s: .debug_abbrev not present", dso->filename); else - error (0, 0, "%s: DWARF CU abbrev offset too large", + err (0, "%s: DWARF CU abbrev offset too large", dso->filename); return 1; } @@ -2492,14 +2491,14 @@ ptr_size = cu_ptr_size; if (ptr_size != 4 && ptr_size != 8) { - error (0, 0, "%s: Invalid DWARF pointer size %d", + err (0, "%s: Invalid DWARF pointer size %d", dso->filename, ptr_size); return 1; } } else if (cu_ptr_size != ptr_size) { - error (0, 0, "%s: DWARF pointer size differs between CUs", + err (0, "%s: DWARF pointer size differs between CUs", dso->filename); return 1; } @@ -2520,7 +2519,7 @@ t = htab_find_with_hash (abbrev, &tag, tag.entry); if (t == NULL) { - error (0, 0, "%s: Could not find DWARF abbreviation %d", + err (0, "%s: Could not find DWARF abbreviation %d", dso->filename, tag.entry); htab_delete (abbrev); return 1; @@ -2592,7 +2591,7 @@ { if (j != DEBUG_MACRO && j != DEBUG_TYPES) { - error (0, 0, "%s: Found two copies of %s section", + err (0, "%s: Found two copies of %s section", dso->filename, name); return 1; } @@ -2603,7 +2602,7 @@ struct debug_section *sec; sec = calloc (sizeof (struct debug_section), 1); if (sec == NULL) - error (1, errno, + err (1, "%s: Could not allocate more %s sections", dso->filename, name); sec->name = name; @@ -2632,7 +2631,7 @@ if (debug_sections[j].name == NULL) { - error (0, 0, "%s: Unknown debugging section %s", + err (0, "%s: Unknown debugging section %s", dso->filename, name); } } @@ -2664,7 +2663,7 @@ multi_sec = multi_sec->next; } if (multi_sec == NULL) - error (0, 1, "No %s reloc section: %s", + err (0, "No %s reloc section: %s", debug_sections[j].name, dso->filename); } else @@ -2690,7 +2689,7 @@ } else { - error (0, 0, "%s: Wrong ELF data enconding", dso->filename); + err (0, "%s: Wrong ELF data enconding", dso->filename); return 1; } @@ -2758,7 +2757,7 @@ rels = dso->shdr[rndx].sh_size / dso->shdr[rndx].sh_entsize; rbuf = malloc (rels * sizeof (LINE_REL)); if (rbuf == NULL) - error (1, errno, "%s: Could not allocate line relocations", + err (1, "%s: Could not allocate line relocations", dso->filename); /* Sort them by offset into section. */ @@ -2768,7 +2767,7 @@ { GElf_Rela rela; if (gelf_getrela (rdata, i, &rela) == NULL) - error (1, 0, "Couldn't get relocation: %s", + err (1, "Couldn't get relocation: %s", elf_errmsg (-1)); rbuf[i].r_offset = rela.r_offset; rbuf[i].ndx = i; @@ -2777,7 +2776,7 @@ { GElf_Rel rel; if (gelf_getrel (rdata, i, &rel) == NULL) - error (1, 0, "Couldn't get relocation: %s", + err (1, "Couldn't get relocation: %s", elf_errmsg (-1)); rbuf[i].r_offset = rel.r_offset; rbuf[i].ndx = i; @@ -2798,14 +2797,14 @@ if (rtype == SHT_RELA) { if (gelf_getrela (rdata, ndx, &rela) == NULL) - error (1, 0, "Couldn't get relocation: %s", + err (1, "Couldn't get relocation: %s", elf_errmsg (-1)); r_offset = rela.r_offset; } else { if (gelf_getrel (rdata, ndx, &rel) == NULL) - error (1, 0, "Couldn't get relocation: %s", + err (1, "Couldn't get relocation: %s", elf_errmsg (-1)); r_offset = rel.r_offset; } @@ -2817,7 +2816,7 @@ lndx++; if (lndx >= dso->lines.used) - error (1, 0, + err (1, ".debug_line relocation offset out of range"); /* Offset (pointing into the line program) moves @@ -2831,14 +2830,14 @@ { rela.r_offset = r_offset; if (gelf_update_rela (rdata, ndx, &rela) == 0) - error (1, 0, "Couldn't update relocation: %s", + err (1, "Couldn't update relocation: %s", elf_errmsg (-1)); } else { rel.r_offset = r_offset; if (gelf_update_rel (rdata, ndx, &rel) == 0) - error (1, 0, "Couldn't update relocation: %s", + err (1, "Couldn't update relocation: %s", elf_errmsg (-1)); } } @@ -2874,17 +2873,17 @@ macro_version = read_16 (ptr); macro_flags = read_8 (ptr); if (macro_version < 4 || macro_version > 5) - error (1, 0, "unhandled .debug_macro version: %d", + err (1, "unhandled .debug_macro version: %d", macro_version); if ((macro_flags & ~2) != 0) - error (1, 0, "unhandled .debug_macro flags: 0x%x", + err (1, "unhandled .debug_macro flags: 0x%x", macro_flags); offset_len = (macro_flags & 0x01) ? 8 : 4; line_offset = (macro_flags & 0x02) ? 1 : 0; if (offset_len != 4) - error (0, 1, + err (0, "Cannot handle 8 byte macro offsets: %s", dso->filename); @@ -2943,7 +2942,7 @@ ptr += offset_len; break; default: - error (1, 0, "Unhandled DW_MACRO op 0x%x", op); + err (1, "Unhandled DW_MACRO op 0x%x", op); break; } } @@ -3098,26 +3097,26 @@ elf = elf_begin (fd, ELF_C_RDWR, NULL); if (elf == NULL) { - error (0, 0, "cannot open ELF file: %s", elf_errmsg (-1)); + err (0, "cannot open ELF file: %s", elf_errmsg (-1)); goto error_out; } if (elf_kind (elf) != ELF_K_ELF) { - error (0, 0, "\"%s\" is not an ELF file", name); + err (0, "\"%s\" is not an ELF file", name); goto error_out; } if (gelf_getehdr (elf, &ehdr) == NULL) { - error (0, 0, "cannot get the ELF header: %s", + err (0, "cannot get the ELF header: %s", elf_errmsg (-1)); goto error_out; } if (ehdr.e_type != ET_DYN && ehdr.e_type != ET_EXEC && ehdr.e_type != ET_REL) { - error (0, 0, "\"%s\" is not a shared library", name); + err (0, "\"%s\" is not a shared library", name); goto error_out; } @@ -3128,13 +3127,13 @@ + (ehdr.e_shnum + 20) * sizeof(Elf_Scn *)); if (!dso) { - error (0, ENOMEM, "Could not open DSO"); + err (0, "Could not open DSO"); goto error_out; } if (elf_getphdrnum (elf, &phnum) != 0) { - error (0, 0, "Couldn't get number of phdrs: %s", elf_errmsg (-1)); + err (0, "Couldn't get number of phdrs: %s", elf_errmsg (-1)); goto error_out; } @@ -3187,7 +3186,7 @@ if (build_id_size != 16 && build_id_size != 20) { - error (1, 0, "Cannot handle %Zu-byte build ID", build_id_size); + err (1, "Cannot handle %Zu-byte build ID", build_id_size); } int i = -1; @@ -3239,7 +3238,7 @@ if (elf64_xlatetom (&x, &x, dso->ehdr.e_ident[EI_DATA]) == NULL) { bad: - error (1, 0, "Failed to compute header checksum: %s", + err (1, "Failed to compute header checksum: %s", elf_errmsg (elf_errno ())); } @@ -3384,7 +3383,7 @@ if (optind != argc - 1) { - error (0, 0, "Need one FILE as input"); + err (0, "Need one FILE as input"); usage (argv[0], true); } @@ -3392,18 +3391,18 @@ { if (base_dir == NULL) { - error (1, 0, "You must specify a base dir if you specify a dest dir"); + err (1, "You must specify a base dir if you specify a dest dir"); } } if (build_id_seed != NULL && do_build_id == 0) { - error (1, 0, "--build-id-seed (-s) needs --build-id (-i)"); + err (1, "--build-id-seed (-s) needs --build-id (-i)"); } if (build_id_seed != NULL && strlen (build_id_seed) < 1) { - error (1, 0, "--build-id-seed (-s) string should be at least 1 char"); + err (1, "--build-id-seed (-s) string should be at least 1 char"); } /* Ensure clean paths, users can muck with these. Also removes any @@ -3422,22 +3421,22 @@ if (elf_version(EV_CURRENT) == EV_NONE) { - error (1, 0, "library out of date"); + err (1, "library out of date"); } if (stat(file, &stat_buf) < 0) { - error (1, errno, "Failed to open input file '%s'", file); + err (1, "Failed to open input file '%s'", file); } /* Make sure we can read and write */ if (chmod (file, stat_buf.st_mode | S_IRUSR | S_IWUSR) != 0) - error (0, errno, "Failed to chmod input file '%s' to make sure we can read and write", file); + err (0, "Failed to chmod input file '%s' to make sure we can read and write", file); fd = open (file, O_RDWR); if (fd < 0) { - error (1, errno, "Failed to open input file '%s'", file); + err (1, "Failed to open input file '%s'", file); } dso = fdopen_dso (fd, file); @@ -3465,7 +3464,7 @@ /* TODO: Handle stabs */ if (strcmp (name, ".stab") == 0) { - error (0, 0, "Stabs debuginfo not supported: %s", file); + err (0, "Stabs debuginfo not supported: %s", file); break; } if (!(do_build_id && no_recompute_build_id && !base_dir && !dest_dir) @@ -3542,7 +3541,7 @@ GElf_Shdr shdr_mem; GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); if (shdr == NULL) - error (1, 0, "Couldn't get shdr: %s", elf_errmsg (-1)); + err (1, "Couldn't get shdr: %s", elf_errmsg (-1)); /* Any sections we have changed aren't allocated sections, so we don't need to lookup any changed section sizes. */ @@ -3562,7 +3561,7 @@ GElf_Shdr shdr_mem; GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); if (shdr == NULL) - error (1, 0, "Couldn't get shdr: %s", elf_errmsg (-1)); + err (1, "Couldn't get shdr: %s", elf_errmsg (-1)); /* A bug in elfutils before 0.169 means we have to write out all section data, even when nothing changed. @@ -3611,7 +3610,7 @@ shdr->sh_size = sec_size; shdr->sh_offset = sec_offset; if (gelf_update_shdr (scn, shdr) == 0) - error (1, 0, "Couldn't update shdr: %s", + err (1, "Couldn't update shdr: %s", elf_errmsg (-1)); } } @@ -3625,13 +3624,13 @@ { dso->ehdr.e_shoff = new_offset; if (gelf_update_ehdr (elf, &dso->ehdr) == 0) - error (1, 0, "Couldn't update ehdr: %s", elf_errmsg (-1)); + err (1, "Couldn't update ehdr: %s", elf_errmsg (-1)); } } if (elf_update (dso->elf, ELF_C_NULL) < 0) { - error (1, 0, "Failed to update file: %s", elf_errmsg (elf_errno ())); + err (1, "Failed to update file: %s", elf_errmsg (elf_errno ())); } if (do_build_id && build_id != NULL) @@ -3639,17 +3638,17 @@ if (elf_update (dso->elf, ELF_C_WRITE) < 0) { - error (1, 0, "Failed to write file: %s", elf_errmsg (elf_errno())); + err (1, "Failed to write file: %s", elf_errmsg (elf_errno())); } if (elf_end (dso->elf) < 0) { - error (1, 0, "elf_end failed: %s", elf_errmsg (elf_errno())); + err (1, "elf_end failed: %s", elf_errmsg (elf_errno())); } close (fd); /* Restore old access rights */ if (chmod (file, stat_buf.st_mode) != 0) - error (0, errno, "Failed to chmod input file '%s' to restore old access rights", file); + err (0, "Failed to chmod input file '%s' to restore old access rights", file); free ((char *) dso->filename); destroy_strings (&dso->debug_str);