sh: fix vsyscall compilation due to .eh_frame issue
authorGiuseppe CAVALLARO <peppe.cavallaro@st.com>
Wed, 17 Nov 2010 06:51:52 +0000 (06:51 +0000)
committerPaul Mundt <lethal@linux-sh.org>
Wed, 17 Nov 2010 08:55:37 +0000 (17:55 +0900)
This patch fixes the following error obtained when
compile the Kernel with the VSYSCALL support enabled:

  SYSCALL arch/sh/kernel/vsyscall/vsyscall-trapa.so
  sh4-linux/bin/ld: error in arch/sh/kernel/vsyscall/vsyscall-trapa.o(.eh_frame);
  no .eh_frame_hdr table will be created.
  AS      arch/sh/kernel/vsyscall/vsyscall-syscall.o

Disassembling the vsyscall-trapa.o code, with this fix applied,
we get the __kernel_vsyscall symbol defined; otherwise it was
missing.

Disassembly of section .text:

00000000 <__kernel_vsyscall>:
   0: 10 00        .word 0x0010
   2: 00 00        .word 0x0000
[snip]
0000040 <__kernel_sigreturn>:
  40: 05 93        mov.w 4e <__kernel_sigreturn+0xe>,r3 ! 77
  42: 10 c3        trapa #16
[snip]

00000060 <__kernel_rt_sigreturn>:
  60: 05 93        mov.w 6e <__kernel_rt_sigreturn+0xe>,r3 ! ad
  62: 10 c3        trapa #16
[snip]

Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Reviewed-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/kernel/vsyscall/vsyscall-trapa.S

index 3b6eb34..3e70f85 100644 (file)
@@ -8,9 +8,9 @@ __kernel_vsyscall:
         * fill out .eh_frame -- PFM. */
 .LEND_vsyscall:
        .size __kernel_vsyscall,.-.LSTART_vsyscall
-       .previous
 
        .section .eh_frame,"a",@progbits
+       .previous
 .LCIE:
        .ualong .LCIE_end - .LCIE_start
 .LCIE_start: