Skip to content

Commit

Permalink
arm: LLVMLinux: use static inline in ARM ftrace.h
Browse files Browse the repository at this point in the history
With compilers which follow the C99 standard (like modern versions of gcc and
clang), "extern inline" does the wrong thing (emits code for an externally
linkable version of the inline function). In this case using static inline
and removing the NULL version of return_address in return_address.c does
the right thing.

Signed-off-by: Behan Webster <behanw@converseincode.com>
Reviewed-by: Mark Charlebois <charlebm@gmail.com>

source: http://www.serverphorums.com/read.php?12,880351,880351#msg-880351
  • Loading branch information
zanezam committed Mar 30, 2015
1 parent 7e34656 commit ef4fea1
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 1 deletion.
2 changes: 1 addition & 1 deletion arch/arm/include/asm/ftrace.h
Expand Up @@ -45,7 +45,7 @@ void *return_address(unsigned int);

#else

extern inline void *return_address(unsigned int level)
static inline void *return_address(unsigned int level)
{
return NULL;
}
Expand Down
2 changes: 2 additions & 0 deletions arch/arm/kernel/return_address.c
Expand Up @@ -62,10 +62,12 @@ void *return_address(unsigned int level)
/* #warning "TODO: return_address should use unwind tables" */
#endif

/*
void *return_address(unsigned int level)
{
return NULL;
}
*/

#endif /* if defined(CONFIG_FRAME_POINTER) && !defined(CONFIG_ARM_UNWIND) / else */

Expand Down

0 comments on commit ef4fea1

Please sign in to comment.