aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-01-06 19:50:35 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2011-01-06 19:50:35 -0500
commit3c0cb7c31c206aaedb967e44b98442bbeb17a6c4 (patch)
tree3ecba45d7ffae4fba4a5aafaef4af5b0b1105bde /scripts
parentf70f5b9dc74ca7d0a64c4ead3fb28da09dc1b234 (diff)
parent404a02cbd2ae8bf256a2fa1169bdfe86bb5ebb34 (diff)
Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm
* 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (416 commits) ARM: DMA: add support for DMA debugging ARM: PL011: add DMA burst threshold support for ST variants ARM: PL011: Add support for transmit DMA ARM: PL011: Ensure IRQs are disabled in UART interrupt handler ARM: PL011: Separate hardware FIFO size from TTY FIFO size ARM: PL011: Allow better handling of vendor data ARM: PL011: Ensure error flags are clear at startup ARM: PL011: include revision number in boot-time port printk ARM: vexpress: add sched_clock() for Versatile Express ARM i.MX53: Make MX53 EVK bootable ARM i.MX53: Some bug fix about MX53 MSL code ARM: 6607/1: sa1100: Update platform device registration ARM: 6606/1: sa1100: Fix platform device registration ARM i.MX51: rename IPU irqs ARM i.MX51: Add ipu clock support ARM: imx/mx27_3ds: Add PMIC support ARM: DMA: Replace page_to_dma()/dma_to_page() with pfn_to_dma()/dma_to_pfn() mx51: fix usb clock support MX51: Add support for usb host 2 arch/arm/plat-mxc/ehci.c: fix errors/typos ...
Diffstat (limited to 'scripts')
-rw-r--r--scripts/recordmcount.c7
-rw-r--r--scripts/recordmcount.h5
2 files changed, 8 insertions, 4 deletions
diff --git a/scripts/recordmcount.c b/scripts/recordmcount.c
index f2f32eee2c5b..038b3d1e2981 100644
--- a/scripts/recordmcount.c
+++ b/scripts/recordmcount.c
@@ -38,6 +38,7 @@ static void *ehdr_curr; /* current ElfXX_Ehdr * for resource cleanup */
38static char gpfx; /* prefix for global symbol name (sometimes '_') */ 38static char gpfx; /* prefix for global symbol name (sometimes '_') */
39static struct stat sb; /* Remember .st_size, etc. */ 39static struct stat sb; /* Remember .st_size, etc. */
40static jmp_buf jmpenv; /* setjmp/longjmp per-file error escape */ 40static jmp_buf jmpenv; /* setjmp/longjmp per-file error escape */
41static const char *altmcount; /* alternate mcount symbol name */
41 42
42/* setjmp() return values */ 43/* setjmp() return values */
43enum { 44enum {
@@ -299,7 +300,9 @@ do_file(char const *const fname)
299 fail_file(); 300 fail_file();
300 } break; 301 } break;
301 case EM_386: reltype = R_386_32; break; 302 case EM_386: reltype = R_386_32; break;
302 case EM_ARM: reltype = R_ARM_ABS32; break; 303 case EM_ARM: reltype = R_ARM_ABS32;
304 altmcount = "__gnu_mcount_nc";
305 break;
303 case EM_IA_64: reltype = R_IA64_IMM64; gpfx = '_'; break; 306 case EM_IA_64: reltype = R_IA64_IMM64; gpfx = '_'; break;
304 case EM_MIPS: /* reltype: e_class */ gpfx = '_'; break; 307 case EM_MIPS: /* reltype: e_class */ gpfx = '_'; break;
305 case EM_PPC: reltype = R_PPC_ADDR32; gpfx = '_'; break; 308 case EM_PPC: reltype = R_PPC_ADDR32; gpfx = '_'; break;
@@ -357,7 +360,7 @@ do_file(char const *const fname)
357int 360int
358main(int argc, char const *argv[]) 361main(int argc, char const *argv[])
359{ 362{
360 const char ftrace[] = "kernel/trace/ftrace.o"; 363 const char ftrace[] = "/ftrace.o";
361 int ftrace_size = sizeof(ftrace) - 1; 364 int ftrace_size = sizeof(ftrace) - 1;
362 int n_error = 0; /* gcc-4.3.0 false positive complaint */ 365 int n_error = 0; /* gcc-4.3.0 false positive complaint */
363 366
diff --git a/scripts/recordmcount.h b/scripts/recordmcount.h
index 39667174971d..baf187bee983 100644
--- a/scripts/recordmcount.h
+++ b/scripts/recordmcount.h
@@ -275,11 +275,12 @@ static uint_t *sift_rel_mcount(uint_t *mlocp,
275 Elf_Sym const *const symp = 275 Elf_Sym const *const symp =
276 &sym0[Elf_r_sym(relp)]; 276 &sym0[Elf_r_sym(relp)];
277 char const *symname = &str0[w(symp->st_name)]; 277 char const *symname = &str0[w(symp->st_name)];
278 char const *mcount = '_' == gpfx ? "_mcount" : "mcount";
278 279
279 if ('.' == symname[0]) 280 if ('.' == symname[0])
280 ++symname; /* ppc64 hack */ 281 ++symname; /* ppc64 hack */
281 if (0 == strcmp((('_' == gpfx) ? "_mcount" : "mcount"), 282 if (0 == strcmp(mcount, symname) ||
282 symname)) 283 (altmcount && 0 == strcmp(altmcount, symname)))
283 mcountsym = Elf_r_sym(relp); 284 mcountsym = Elf_r_sym(relp);
284 } 285 }
285 286