aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorJames Hogan <james.hogan@imgtec.com>2012-10-05 11:27:31 -0400
committerJames Hogan <james.hogan@imgtec.com>2013-03-02 15:09:55 -0500
commit00512bdd4573674d10af1c1d60328b4b0f9dcafd (patch)
tree31f0db0a3ea2887bc6b6bb17dd1e09c508d2f803 /scripts
parent903b20ad6810e05bc5f7cc038257e80463e71001 (diff)
metag: ftrace support
Add ftrace support for metag. Signed-off-by: James Hogan <james.hogan@imgtec.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@redhat.com> Reviewed-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/recordmcount.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/scripts/recordmcount.c b/scripts/recordmcount.c
index ee52cb8e17ad..9c22317778eb 100644
--- a/scripts/recordmcount.c
+++ b/scripts/recordmcount.c
@@ -33,6 +33,13 @@
33#include <string.h> 33#include <string.h>
34#include <unistd.h> 34#include <unistd.h>
35 35
36#ifndef EM_METAG
37/* Remove this when these make it to the standard system elf.h. */
38#define EM_METAG 174
39#define R_METAG_ADDR32 2
40#define R_METAG_NONE 3
41#endif
42
36static int fd_map; /* File descriptor for file being modified. */ 43static int fd_map; /* File descriptor for file being modified. */
37static int mmap_failed; /* Boolean flag. */ 44static int mmap_failed; /* Boolean flag. */
38static void *ehdr_curr; /* current ElfXX_Ehdr * for resource cleanup */ 45static void *ehdr_curr; /* current ElfXX_Ehdr * for resource cleanup */
@@ -341,6 +348,12 @@ do_file(char const *const fname)
341 altmcount = "__gnu_mcount_nc"; 348 altmcount = "__gnu_mcount_nc";
342 break; 349 break;
343 case EM_IA_64: reltype = R_IA64_IMM64; gpfx = '_'; break; 350 case EM_IA_64: reltype = R_IA64_IMM64; gpfx = '_'; break;
351 case EM_METAG: reltype = R_METAG_ADDR32;
352 altmcount = "_mcount_wrapper";
353 rel_type_nop = R_METAG_NONE;
354 /* We happen to have the same requirement as MIPS */
355 is_fake_mcount32 = MIPS32_is_fake_mcount;
356 break;
344 case EM_MIPS: /* reltype: e_class */ gpfx = '_'; break; 357 case EM_MIPS: /* reltype: e_class */ gpfx = '_'; break;
345 case EM_PPC: reltype = R_PPC_ADDR32; gpfx = '_'; break; 358 case EM_PPC: reltype = R_PPC_ADDR32; gpfx = '_'; break;
346 case EM_PPC64: reltype = R_PPC64_ADDR64; gpfx = '_'; break; 359 case EM_PPC64: reltype = R_PPC64_ADDR64; gpfx = '_'; break;