 Chromium Code Reviews
 Chromium Code Reviews Issue 401243002:
  Non-SFI NaCl: Do not create unwind tables for libc_free.c  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master
    
  
    Issue 401243002:
  Non-SFI NaCl: Do not create unwind tables for libc_free.c  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master| Index: chrome/test/data/nacl/nonsfi/libc_free.c | 
| diff --git a/chrome/test/data/nacl/nonsfi/libc_free.c b/chrome/test/data/nacl/nonsfi/libc_free.c | 
| index cc8eb839ab039e564b8046bf45244000743b782c..87ff58e0b11577eee583ea4ee037943918494d89 100644 | 
| --- a/chrome/test/data/nacl/nonsfi/libc_free.c | 
| +++ b/chrome/test/data/nacl/nonsfi/libc_free.c | 
| @@ -210,6 +210,14 @@ static void HandleMessage(PP_Instance instance, struct PP_Var message) { | 
| } | 
| } | 
| +#if defined(__arm__) | 
| +// ARM GCC emits references to them. They should not be called unless | 
| 
Mark Seaborn
2014/07/21 22:49:33
Hmm, where in the code do the references come from
 
hamaji
2014/07/22 08:17:23
They are in exidx section. Ah, -funwind-tables is
 
Mark Seaborn
2014/07/22 15:19:48
Yes, that's what we do for nacl_helper_bootstrap,
 | 
| +// an exception occurs. We exit with a unique exit code just in case. | 
| +static const int kUnwindExitCode = 2; | 
| +void __aeabi_unwind_cpp_pr0() { __libnacl_irt_basic.exit(kUnwindExitCode); } | 
| 
Mark Seaborn
2014/07/21 22:49:33
Nit: the function body should be on a separate lin
 
hamaji
2014/07/22 08:17:23
It seems ARM GCC uses abort() to implement __built
 | 
| +void __aeabi_unwind_cpp_pr1() { __libnacl_irt_basic.exit(kUnwindExitCode); } | 
| +#endif | 
| + | 
| void _start(uintptr_t info[]) { | 
| Elf_auxv_t* auxv = nacl_startup_auxv(info); | 
| grok_auxv(auxv); |