From 15541aaff22c3aba43d4bae3c783f345effceae3 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Sun, 11 May 2008 10:40:47 +1000 Subject: [PATCH] --- yaml --- r: 101607 b: refs/heads/master c: 2ca7633dc73405ee775a2e9b7961b47a38bc882d h: refs/heads/master i: 101605: b6fbb8a6f7e5c553f557a6ee511fe11d5397c26f 101603: 840c85e17b450117a046cc241bb997e17c8012ae 101599: 2a003164317a0096f9fdfadbfebac949b1c315e8 v: v3 --- [refs] | 2 +- trunk/arch/powerpc/kernel/vdso64/vdso64.lds.S | 6 +++--- trunk/include/asm-powerpc/ppc_asm.h | 6 ++++++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 98984ffbd9cf..028dc398d524 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 21451155d8858773ee764e9218de2ca0f4d6fc38 +refs/heads/master: 2ca7633dc73405ee775a2e9b7961b47a38bc882d diff --git a/trunk/arch/powerpc/kernel/vdso64/vdso64.lds.S b/trunk/arch/powerpc/kernel/vdso64/vdso64.lds.S index 932b3fdb34b9..7d6585f90277 100644 --- a/trunk/arch/powerpc/kernel/vdso64/vdso64.lds.S +++ b/trunk/arch/powerpc/kernel/vdso64/vdso64.lds.S @@ -43,15 +43,15 @@ SECTIONS .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } + .dynamic : { *(.dynamic) } :text :dynamic + .eh_frame_hdr : { *(.eh_frame_hdr) } :text :eh_frame_hdr .eh_frame : { KEEP (*(.eh_frame)) } :text .gcc_except_table : { *(.gcc_except_table) } + .rela.dyn ALIGN(8) : { *(.rela.dyn) } .opd ALIGN(8) : { KEEP (*(.opd)) } .got ALIGN(8) : { *(.got .toc) } - .rela.dyn ALIGN(8) : { *(.rela.dyn) } - - .dynamic : { *(.dynamic) } :text :dynamic _end = .; PROVIDE(end = .); diff --git a/trunk/include/asm-powerpc/ppc_asm.h b/trunk/include/asm-powerpc/ppc_asm.h index 2dbd4e7884fa..ef96bfd4ef4c 100644 --- a/trunk/include/asm-powerpc/ppc_asm.h +++ b/trunk/include/asm-powerpc/ppc_asm.h @@ -356,6 +356,12 @@ END_FTR_SECTION_IFCLR(CPU_FTR_601) #define toreal(rd) #define fromreal(rd) +/* + * We use addis to ensure compatibility with the "classic" ppc versions of + * these macros, which use rs = 0 to get the tophys offset in rd, rather than + * converting the address in r0, and so this version has to do that too + * (i.e. set register rd to 0 when rs == 0). + */ #define tophys(rd,rs) \ addis rd,rs,0