diff options
| author | Nick Kledzik <kledzik@apple.com> | 2010-03-31 19:52:01 +0000 |
|---|---|---|
| committer | Nick Kledzik <kledzik@apple.com> | 2010-03-31 19:52:01 +0000 |
| commit | b3d3ec7091de0c7c76545a09daedb68df40fd9d7 (patch) | |
| tree | 8091f80941a157d8c46af2b172fb7fb72166093f | |
| parent | 74729ae0940379feff9d4d1ab6652e7c3462ac33 (diff) | |
| download | bcm5719-llvm-b3d3ec7091de0c7c76545a09daedb68df40fd9d7.tar.gz bcm5719-llvm-b3d3ec7091de0c7c76545a09daedb68df40fd9d7.zip | |
<rdar://problem/7813254> check enable_execute_stack implementation
llvm-svn: 100036
| -rw-r--r-- | compiler-rt/lib/enable_execute_stack.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/compiler-rt/lib/enable_execute_stack.c b/compiler-rt/lib/enable_execute_stack.c index b349d2f312b..193e7dbc23b 100644 --- a/compiler-rt/lib/enable_execute_stack.c +++ b/compiler-rt/lib/enable_execute_stack.c @@ -21,6 +21,11 @@ #include <unistd.h> #endif /* __APPLE__ */ +#if __LP64__ + #define TRAMPOLINE_SIZE 48 +#else + #define TRAMPOLINE_SIZE 40 +#endif /* * The compiler generates calls to __enable_execute_stack() when creating @@ -45,7 +50,7 @@ void __enable_execute_stack(void* addr) const uintptr_t pageAlignMask = ~(pageSize-1); uintptr_t p = (uintptr_t)addr; unsigned char* startPage = (unsigned char*)(p & pageAlignMask); - unsigned char* endPage = (unsigned char*)((p+48+pageSize) & pageAlignMask); + unsigned char* endPage = (unsigned char*)((p+TRAMPOLINE_SIZE+pageSize) & pageAlignMask); size_t length = endPage - startPage; (void) mprotect((void *)startPage, length, PROT_READ | PROT_WRITE | PROT_EXEC); } |

