diff options
author | Roland McGrath <[email protected]> | 2009-01-05 18:05:32 -0800 |
---|---|---|
committer | Ulrich Drepper <[email protected]> | 2009-01-21 16:05:59 -0800 |
commit | 3614d99198838a888005e923b36e8e0fbd5ec432 (patch) | |
tree | 98eb934a403c22ccc58db2b293bddcd356ccee03 | |
parent | 07ba31fc8249d8d0ff77b11e8ffc2df7fa775123 (diff) |
Make elfcmp exit 2 for trouble and 1 only for mismatch, like all its cousins.
-rw-r--r-- | src/ChangeLog | 4 | ||||
-rw-r--r-- | src/elfcmp.c | 34 |
2 files changed, 21 insertions, 17 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index a8453be2..f4686df3 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -80,6 +80,10 @@ 2009-01-06 Ulrich Drepper <[email protected]> * readelf.c: Implement call frame debug section dumping. +2009-01-05 Roland McGrath <[email protected]> + + * elfcmp.c: Exit with status 2 for errors (like cmp, diff, grep). + Status 1 (aka EXIT_FAILURE) is only for completed OK but not equal. 2009-01-01 Ulrich Drepper <[email protected]> diff --git a/src/elfcmp.c b/src/elfcmp.c index a1596365..7f871ecf 100644 --- a/src/elfcmp.c +++ b/src/elfcmp.c @@ -165,12 +165,12 @@ main (int argc, char *argv[]) GElf_Ehdr ehdr1_mem; GElf_Ehdr *ehdr1 = gelf_getehdr (elf1, &ehdr1_mem); if (ehdr1 == NULL) - error (EXIT_FAILURE, 0, gettext ("cannot get ELF header of '%s': %s"), + error (2, 0, gettext ("cannot get ELF header of '%s': %s"), fname1, elf_errmsg (-1)); GElf_Ehdr ehdr2_mem; GElf_Ehdr *ehdr2 = gelf_getehdr (elf2, &ehdr2_mem); if (ehdr2 == NULL) - error (EXIT_FAILURE, 0, gettext ("cannot get ELF header of '%s': %s"), + error (2, 0, gettext ("cannot get ELF header of '%s': %s"), fname2, elf_errmsg (-1)); /* Compare the ELF headers. */ @@ -272,13 +272,13 @@ main (int argc, char *argv[]) Elf_Data *data1 = elf_getdata (scn1, NULL); if (data1 == NULL) - error (EXIT_FAILURE, 0, + error (2, 0, gettext ("cannot get content of section %zu in '%s': %s"), elf_ndxscn (scn1), fname1, elf_errmsg (-1)); Elf_Data *data2 = elf_getdata (scn2, NULL); if (data2 == NULL) - error (EXIT_FAILURE, 0, + error (2, 0, gettext ("cannot get content of section %zu in '%s': %s"), elf_ndxscn (scn2), fname2, elf_errmsg (-1)); @@ -294,13 +294,13 @@ main (int argc, char *argv[]) GElf_Sym sym1_mem; GElf_Sym *sym1 = gelf_getsym (data1, ndx, &sym1_mem); if (sym1 == NULL) - error (EXIT_FAILURE, 0, + error (2, 0, gettext ("cannot get symbol in '%s': %s"), fname1, elf_errmsg (-1)); GElf_Sym sym2_mem; GElf_Sym *sym2 = gelf_getsym (data2, ndx, &sym2_mem); if (sym2 == NULL) - error (EXIT_FAILURE, 0, + error (2, 0, gettext ("cannot get symbol in '%s': %s"), fname2, elf_errmsg (-1)); @@ -427,12 +427,12 @@ main (int argc, char *argv[]) { raw1 = elf_rawfile (elf1, &size1); if (raw1 == NULL ) - error (EXIT_FAILURE, 0, gettext ("cannot load data of '%s': %s"), + error (2, 0, gettext ("cannot load data of '%s': %s"), fname1, elf_errmsg (-1)); raw2 = elf_rawfile (elf2, &size2); if (raw2 == NULL ) - error (EXIT_FAILURE, 0, gettext ("cannot load data of '%s': %s"), + error (2, 0, gettext ("cannot load data of '%s': %s"), fname2, elf_errmsg (-1)); for (size_t cnt = 0; cnt < nregions; ++cnt) @@ -450,13 +450,13 @@ main (int argc, char *argv[]) GElf_Phdr phdr1_mem; GElf_Phdr *phdr1 = gelf_getphdr (elf1, ndx, &phdr1_mem); if (ehdr1 == NULL) - error (EXIT_FAILURE, 0, + error (2, 0, gettext ("cannot get program header entry %d of '%s': %s"), ndx, fname1, elf_errmsg (-1)); GElf_Phdr phdr2_mem; GElf_Phdr *phdr2 = gelf_getphdr (elf2, ndx, &phdr2_mem); if (ehdr2 == NULL) - error (EXIT_FAILURE, 0, + error (2, 0, gettext ("cannot get program header entry %d of '%s': %s"), ndx, fname2, elf_errmsg (-1)); @@ -571,15 +571,15 @@ open_file (const char *fname, int *fdp, Ebl **eblp) { int fd = open (fname, O_RDONLY); if (unlikely (fd == -1)) - error (EXIT_FAILURE, errno, gettext ("cannot open '%s'"), fname); + error (2, errno, gettext ("cannot open '%s'"), fname); Elf *elf = elf_begin (fd, ELF_C_READ_MMAP, NULL); if (elf == NULL) - error (EXIT_FAILURE, 0, + error (2, 0, gettext ("cannot create ELF descriptor for '%s': %s"), fname, elf_errmsg (-1)); Ebl *ebl = ebl_openbackend (elf); if (ebl == NULL) - error (EXIT_FAILURE, 0, + error (2, 0, gettext ("cannot create EBL descriptor for '%s'"), fname); *fdp = fd; @@ -597,7 +597,7 @@ search_for_copy_reloc (Ebl *ebl, size_t scnndx, int symndx) GElf_Shdr shdr_mem; GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); if (shdr == NULL) - error (EXIT_FAILURE, 0, + error (2, 0, gettext ("cannot get section header of section %zu: %s"), elf_ndxscn (scn), elf_errmsg (-1)); @@ -607,7 +607,7 @@ search_for_copy_reloc (Ebl *ebl, size_t scnndx, int symndx) Elf_Data *data = elf_getdata (scn, NULL); if (data == NULL) - error (EXIT_FAILURE, 0, + error (2, 0, gettext ("cannot get content of section %zu: %s"), elf_ndxscn (scn), elf_errmsg (-1)); @@ -618,7 +618,7 @@ search_for_copy_reloc (Ebl *ebl, size_t scnndx, int symndx) GElf_Rel rel_mem; GElf_Rel *rel = gelf_getrel (data, ndx, &rel_mem); if (rel == NULL) - error (EXIT_FAILURE, 0, gettext ("cannot get relocation: %s"), + error (2, 0, gettext ("cannot get relocation: %s"), elf_errmsg (-1)); if ((int) GELF_R_SYM (rel->r_info) == symndx @@ -632,7 +632,7 @@ search_for_copy_reloc (Ebl *ebl, size_t scnndx, int symndx) GElf_Rela rela_mem; GElf_Rela *rela = gelf_getrela (data, ndx, &rela_mem); if (rela == NULL) - error (EXIT_FAILURE, 0, gettext ("cannot get relocation: %s"), + error (2, 0, gettext ("cannot get relocation: %s"), elf_errmsg (-1)); if ((int) GELF_R_SYM (rela->r_info) == symndx |