diff --git a/kpatch-build/kpatch-build b/kpatch-build/kpatch-build index 327d40fd3..84d502b69 100755 --- a/kpatch-build/kpatch-build +++ b/kpatch-build/kpatch-build @@ -846,6 +846,9 @@ for i in $FILES; do fi readelf -s --wide "$KOBJFILE_PATH" > "$SYMTAB" + if [[ "$ARCH" = "ppc64le" ]]; then + sed -ri 's/\s+\[: 8\]//' "$SYMTAB" + fi # create-diff-object orig.o patched.o parent-name parent-symtab # Module.symvers patch-mod-name output.o diff --git a/kpatch-build/lookup.c b/kpatch-build/lookup.c index 5c9cb9122..347064fa5 100644 --- a/kpatch-build/lookup.c +++ b/kpatch-build/lookup.c @@ -209,18 +209,8 @@ static void symtab_read(struct lookup_table *table, char *path) ERROR("fopen"); while (fgets(line, 256, file)) { - if (strstr(line, "[: 8]")) { - /* - * 23: 0000000000000008 96 FUNC LOCAL DEFAULT [: 8] 4 cmdline_proc_show - * On Power, local func syms Ndx is preceded with "[: 8]" - * denoting local entry point offset of the function. - */ - matched = sscanf(line, "%*s %lx %s %s %s %*s [: 8] %s %s\n", - &value, size, type, bind, ndx, name); - } else { - matched = sscanf(line, "%*s %lx %s %s %s %*s %s %s\n", - &value, size, type, bind, ndx, name); - } + matched = sscanf(line, "%*s %lx %s %s %s %*s %s %s\n", + &value, size, type, bind, ndx, name); if (matched == 5) { name[0] = '\0'; @@ -243,13 +233,8 @@ static void symtab_read(struct lookup_table *table, char *path) rewind(file); while (fgets(line, 256, file)) { - if (strstr(line, "[: 8]")) { - matched = sscanf(line, "%*s %lx %s %s %s %*s [: 8] %s %s\n", - &value, size, type, bind, ndx, name); - } else { - matched = sscanf(line, "%*s %lx %s %s %s %*s %s %s\n", - &value, size, type, bind, ndx, name); - } + matched = sscanf(line, "%*s %lx %s %s %s %*s %s %s\n", + &value, size, type, bind, ndx, name); if (matched == 5) { name[0] = '\0';