* [tip: objtool/core] objtool: Do not assume order of parent/child functions
@ 2020-04-22 22:24 tip-bot2 for Kristen Carlson Accardi
0 siblings, 0 replies; 2+ messages in thread
From: tip-bot2 for Kristen Carlson Accardi @ 2020-04-22 22:24 UTC (permalink / raw)
To: linux-tip-commits; +Cc: Kristen Carlson Accardi, Josh Poimboeuf, x86, LKML
The following commit has been merged into the objtool/core branch of tip:
Commit-ID: 5920038dc2aa75b7aa3f5ca767b06a71c67cf897
Gitweb: https://git.kernel.org/tip/5920038dc2aa75b7aa3f5ca767b06a71c67cf897
Author: Kristen Carlson Accardi <kristen@linux.intel.com>
AuthorDate: Wed, 15 Apr 2020 14:04:43 -07:00
Committer: Josh Poimboeuf <jpoimboe@redhat.com>
CommitterDate: Tue, 21 Apr 2020 18:50:26 -05:00
objtool: Do not assume order of parent/child functions
If a .cold function is examined prior to it's parent, the link
to the parent/child function can be overwritten when the parent
is examined. Only update pfunc and cfunc if they were previously
nil to prevent this from happening.
This fixes an -ffunction-sections issue.
Signed-off-by: Kristen Carlson Accardi <kristen@linux.intel.com>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
---
tools/objtool/elf.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/tools/objtool/elf.c b/tools/objtool/elf.c
index 43748cb..03e542d 100644
--- a/tools/objtool/elf.c
+++ b/tools/objtool/elf.c
@@ -418,7 +418,13 @@ static int read_symbols(struct elf *elf)
size_t pnamelen;
if (sym->type != STT_FUNC)
continue;
- sym->pfunc = sym->cfunc = sym;
+
+ if (sym->pfunc == NULL)
+ sym->pfunc = sym;
+
+ if (sym->cfunc == NULL)
+ sym->cfunc = sym;
+
coldstr = strstr(sym->name, ".cold");
if (!coldstr)
continue;
^ permalink raw reply [flat|nested] 2+ messages in thread
* [tip: objtool/core] objtool: Do not assume order of parent/child functions
@ 2020-06-17 10:04 tip-bot2 for Kristen Carlson Accardi
0 siblings, 0 replies; 2+ messages in thread
From: tip-bot2 for Kristen Carlson Accardi @ 2020-06-17 10:04 UTC (permalink / raw)
To: linux-tip-commits; +Cc: Kristen Carlson Accardi, Josh Poimboeuf, x86, LKML
The following commit has been merged into the objtool/core branch of tip:
Commit-ID: e000acc145928693833f09152244242a678d3cd5
Gitweb: https://git.kernel.org/tip/e000acc145928693833f09152244242a678d3cd5
Author: Kristen Carlson Accardi <kristen@linux.intel.com>
AuthorDate: Wed, 15 Apr 2020 14:04:43 -07:00
Committer: Josh Poimboeuf <jpoimboe@redhat.com>
CommitterDate: Thu, 28 May 2020 11:06:05 -05:00
objtool: Do not assume order of parent/child functions
If a .cold function is examined prior to it's parent, the link
to the parent/child function can be overwritten when the parent
is examined. Only update pfunc and cfunc if they were previously
nil to prevent this from happening.
This fixes an issue seen when compiling with -ffunction-sections.
Signed-off-by: Kristen Carlson Accardi <kristen@linux.intel.com>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
---
tools/objtool/elf.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/tools/objtool/elf.c b/tools/objtool/elf.c
index 8422567..f953d3a 100644
--- a/tools/objtool/elf.c
+++ b/tools/objtool/elf.c
@@ -434,7 +434,13 @@ static int read_symbols(struct elf *elf)
size_t pnamelen;
if (sym->type != STT_FUNC)
continue;
- sym->pfunc = sym->cfunc = sym;
+
+ if (sym->pfunc == NULL)
+ sym->pfunc = sym;
+
+ if (sym->cfunc == NULL)
+ sym->cfunc = sym;
+
coldstr = strstr(sym->name, ".cold");
if (!coldstr)
continue;
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-06-17 10:04 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-22 22:24 [tip: objtool/core] objtool: Do not assume order of parent/child functions tip-bot2 for Kristen Carlson Accardi
2020-06-17 10:04 tip-bot2 for Kristen Carlson Accardi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®