summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoland McGrath <[email protected]>2009-01-05 18:05:32 -0800
committerUlrich Drepper <[email protected]>2009-01-21 16:05:59 -0800
commit3614d99198838a888005e923b36e8e0fbd5ec432 (patch)
tree98eb934a403c22ccc58db2b293bddcd356ccee03
parent07ba31fc8249d8d0ff77b11e8ffc2df7fa775123 (diff)
Make elfcmp exit 2 for trouble and 1 only for mismatch, like all its cousins.
-rw-r--r--src/ChangeLog4
-rw-r--r--src/elfcmp.c34
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