Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c4b8ac2c authored by Li Hong's avatar Li Hong Committed by Steven Rostedt
Browse files

tracing: Exit with error if a weak function is used in recordmcount.pl



If a weak function is used as a relocation reference for mcount callers
and that function is overridden, it will cause ftrace to fail at run time.

The current code should prevent a weak function from being used, but if
one is, the code should exit with an error to fail at compile time.

Signed-off-by: default avatarLi Hong <lihong.hi@gmail.com>
LKML-Reference: <20091028050743.GH30758@uhli>
Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
parent 6092858c
Loading
Loading
Loading
Loading
+3 −7
Original line number Diff line number Diff line
@@ -350,15 +350,11 @@ sub update_funcs
{
    return unless ($ref_func and @offsets);

    # A section only had a weak function, to represent it.
    # Unfortunately, a weak function may be overwritten by another
    # function of the same name, making all these offsets incorrect.
    # To be safe, we simply print a warning and bail.
    # Sanity check on weak function. A weak function may be overwritten by
    # another function of the same name, making all these offsets incorrect.
    if (defined $weak{$ref_func}) {
	print STDERR
	    "$inputfile: WARNING: referencing weak function" .
	die "$inputfile: ERROR: referencing weak function" .
	    " $ref_func for mcount\n";
	return;
    }

    # is this function static? If so, note this fact.