[POWERPC] Tweak VDSO linker script to avoid upsetting old binutils
authorRoland McGrath <roland@redhat.com>
Sun, 11 May 2008 00:40:47 +0000 (10:40 +1000)
committerPaul Mackerras <paulus@samba.org>
Fri, 23 May 2008 05:27:23 +0000 (15:27 +1000)
This works around bugs in older binutils' objcopy.
The placement of these sections does not really matter,
but it confused the buggy old BFD libraries.

Signed-off-by: Roland McGrath <roland@redhat.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/kernel/vdso64/vdso64.lds.S
include/asm-powerpc/ppc_asm.h

index 932b3fdb34b93ced7bd2c10da184f67ff906a66b..7d6585f902776dce82bebe7c018d46409101259c 100644 (file)
@@ -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 = .);
index 2dbd4e7884faee59e96e53b391e1495bee1307e2..ef96bfd4ef4cbda90bb6827a75e6911ff7386ad0 100644 (file)
@@ -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