Ok.  That looks like a bug in the older binutils (objcopy) you are using.
It is confused by the empty .rela.dyn section right next to the .dynamic
section.  Current binutils don't seem to have a problem with this.

I haven't tried to get an old binutils running to reproduce this.
I suspect the following change will work around the problem.
It should not cause any problem with newer or older binutils.


Thanks,
Roland

---
[PATCH] powerpc vdso64 linker script tweak

This should work 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 <[EMAIL PROTECTED]>
---
 arch/powerpc/kernel/vdso64/vdso64.lds.S |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/kernel/vdso64/vdso64.lds.S 
b/arch/powerpc/kernel/vdso64/vdso64.lds.S
index 932b3fd..7d6585f 100644
--- a/arch/powerpc/kernel/vdso64/vdso64.lds.S
+++ b/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 = .);
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to