mirror of https://github.com/dynup/kpatch
Merge pull request #151 from jpoimboe/cdo-error-order
create-diff-object: better reachability error message
This commit is contained in:
commit
ad87448c9f
|
@ -734,10 +734,16 @@ void kpatch_verify_patchability(struct kpatch_elf *kelf)
|
|||
{
|
||||
struct section *sec;
|
||||
int i;
|
||||
int errs = 0;
|
||||
|
||||
for_each_section(i, sec, &kelf->sections)
|
||||
if (sec->status == CHANGED && !sec->include)
|
||||
DIFF_FATAL("changed section %s not selected for inclusion", sec->name);
|
||||
if (sec->status == CHANGED && !sec->include) {
|
||||
log_normal("%s: changed section %s not selected for inclusion\n",
|
||||
objname, sec->name);
|
||||
errs++;
|
||||
}
|
||||
if (errs)
|
||||
DIFF_FATAL("%d unsupported section change(s)", errs);
|
||||
}
|
||||
|
||||
#define inc_printf(fmt, ...) \
|
||||
|
@ -1485,6 +1491,7 @@ int main(int argc, char *argv[])
|
|||
struct kpatch_elf *kelf_base, *kelf_patched, *kelf_out;
|
||||
char *outfile;
|
||||
struct arguments arguments;
|
||||
int num_changed;
|
||||
|
||||
arguments.debug = 0;
|
||||
arguments.inventory = 0;
|
||||
|
@ -1526,12 +1533,14 @@ int main(int argc, char *argv[])
|
|||
kpatch_regenerate_parainstructions_sections(kelf_patched);
|
||||
|
||||
kpatch_include_standard_sections(kelf_patched);
|
||||
if (!kpatch_include_changed_functions(kelf_patched)) {
|
||||
num_changed = kpatch_include_changed_functions(kelf_patched);
|
||||
kpatch_dump_kelf(kelf_patched);
|
||||
kpatch_verify_patchability(kelf_patched);
|
||||
|
||||
if (!num_changed) {
|
||||
log_normal("no changed functions were found\n");
|
||||
return 3; /* 1 is ERROR, 2 is DIFF_FATAL */
|
||||
}
|
||||
kpatch_dump_kelf(kelf_patched);
|
||||
kpatch_verify_patchability(kelf_patched);
|
||||
|
||||
/* Generate the output elf */
|
||||
kpatch_generate_output(kelf_patched, &kelf_out);
|
||||
|
|
Loading…
Reference in New Issue