94ab115fd3
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>
42 lines
1.1 KiB
ArmAsm
42 lines
1.1 KiB
ArmAsm
.text
|
|
.globl __kernel_vsyscall
|
|
.type __kernel_vsyscall,@function
|
|
__kernel_vsyscall:
|
|
.LSTART_vsyscall:
|
|
/* XXX: We'll have to do something here once we opt to use the vDSO
|
|
* page for something other than the signal trampoline.. as well as
|
|
* fill out .eh_frame -- PFM. */
|
|
.LEND_vsyscall:
|
|
.size __kernel_vsyscall,.-.LSTART_vsyscall
|
|
|
|
.section .eh_frame,"a",@progbits
|
|
.previous
|
|
.LCIE:
|
|
.ualong .LCIE_end - .LCIE_start
|
|
.LCIE_start:
|
|
.ualong 0 /* CIE ID */
|
|
.byte 0x1 /* Version number */
|
|
.string "zRS" /* NUL-terminated augmentation string */
|
|
.uleb128 0x1 /* Code alignment factor */
|
|
.sleb128 -4 /* Data alignment factor */
|
|
.byte 0x11 /* Return address register column */
|
|
/* Augmentation length and data (none) */
|
|
.byte 0xc /* DW_CFA_def_cfa */
|
|
.uleb128 0xf /* r15 */
|
|
.uleb128 0x0 /* offset 0 */
|
|
|
|
.align 2
|
|
.LCIE_end:
|
|
|
|
.ualong .LFDE_end-.LFDE_start /* Length FDE */
|
|
.LFDE_start:
|
|
.ualong .LCIE /* CIE pointer */
|
|
.ualong .LSTART_vsyscall-. /* start address */
|
|
.ualong .LEND_vsyscall-.LSTART_vsyscall
|
|
.uleb128 0
|
|
.align 2
|
|
.LFDE_end:
|
|
.previous
|
|
|
|
/* Get the common code for the sigreturn entry points */
|
|
#include "vsyscall-sigreturn.S"
|