diff options
| author | James Hogan <james.hogan@imgtec.com> | 2012-10-05 11:27:31 -0400 |
|---|---|---|
| committer | James Hogan <james.hogan@imgtec.com> | 2013-03-02 15:09:55 -0500 |
| commit | 00512bdd4573674d10af1c1d60328b4b0f9dcafd (patch) | |
| tree | 31f0db0a3ea2887bc6b6bb17dd1e09c508d2f803 /scripts | |
| parent | 903b20ad6810e05bc5f7cc038257e80463e71001 (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.c | 13 |
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 | |||
| 36 | static int fd_map; /* File descriptor for file being modified. */ | 43 | static int fd_map; /* File descriptor for file being modified. */ |
| 37 | static int mmap_failed; /* Boolean flag. */ | 44 | static int mmap_failed; /* Boolean flag. */ |
| 38 | static void *ehdr_curr; /* current ElfXX_Ehdr * for resource cleanup */ | 45 | static 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; |
