| Index: sandbox/linux/seccomp-bpf/syscall.cc
|
| diff --git a/sandbox/linux/seccomp-bpf/syscall.cc b/sandbox/linux/seccomp-bpf/syscall.cc
|
| index 3b3c8db5b86dc9ad55c8c4c4c7787418ba095feb..bc6461f11773b245919596162eb4230162be56a4 100644
|
| --- a/sandbox/linux/seccomp-bpf/syscall.cc
|
| +++ b/sandbox/linux/seccomp-bpf/syscall.cc
|
| @@ -133,16 +133,21 @@ asm(// We need to be able to tell the kernel exactly where we made a
|
| #else
|
| ".arm\n"
|
| #endif
|
| - "SyscallAsm:.fnstart\n"
|
| + "SyscallAsm:\n"
|
| +#if !defined(__native_client_nonsfi__)
|
| + // .fnstart and .fnend pseudo operations creates unwind table.
|
| + // It also creates a reference to the symbol __aeabi_unwind_cpp_pr0, which
|
| + // is not provided by PNaCl toolchain. Disable it.
|
| + ".fnstart\n"
|
| +#endif
|
| "@ args = 0, pretend = 0, frame = 8\n"
|
| "@ frame_needed = 1, uses_anonymous_args = 0\n"
|
| #if defined(__thumb__)
|
| ".cfi_startproc\n"
|
| "push {r7, lr}\n"
|
| + ".save {r7, lr}\n"
|
| ".cfi_offset 14, -4\n"
|
| ".cfi_offset 7, -8\n"
|
| - "mov r7, sp\n"
|
| - ".cfi_def_cfa_register 7\n"
|
| ".cfi_def_cfa_offset 8\n"
|
| #else
|
| "stmfd sp!, {fp, lr}\n"
|
| @@ -177,7 +182,11 @@ asm(// We need to be able to tell the kernel exactly where we made a
|
| #else
|
| "2:ldmfd sp!, {fp, pc}\n"
|
| #endif
|
| +#if !defined(__native_client_nonsfi__)
|
| + // Do not use .fnstart and .fnend for PNaCl toolchain. See above comment,
|
| + // for more details.
|
| ".fnend\n"
|
| +#endif
|
| "9:.size SyscallAsm, 9b-SyscallAsm\n"
|
| #elif defined(__mips__)
|
| ".text\n"
|
|
|