diff options
author | ro <ro@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-06-09 12:30:46 +0000 |
---|---|---|
committer | ro <ro@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-06-09 12:30:46 +0000 |
commit | a6f0616915578a047b2f21ff19f64c2631fc799a (patch) | |
tree | d044985af6a76f58c9fe909ce81f475be183312a /gcc/config/openbsd.h | |
parent | c9dc79a6d057cc5fddfbc18d374da9761cd3a5c2 (diff) | |
download | gcc-a6f0616915578a047b2f21ff19f64c2631fc799a.tar.gz |
2011-05-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Joseph Myers <joseph@codesourcery.com>
gcc:
* config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
(HAVE_ENABLE_EXECUTE_STACK): Define.
* config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
(HAVE_ENABLE_EXECUTE_STACK): Define.
* config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
(HAVE_ENABLE_EXECUTE_STACK): Define.
* config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
(ENABLE_EXECUTE_STACK): Remove.
(HAVE_ENABLE_EXECUTE_STACK): Define.
[IN_LIBGCC2]: Don't include <windows.h>.
* config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
(HAVE_ENABLE_EXECUTE_STACK): Define.
* config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
(HAVE_ENABLE_EXECUTE_STACK): Define.
* config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
* config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
(HAVE_ENABLE_EXECUTE_STACK): Define.
* config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
(HAVE_ENABLE_EXECUTE_STACK): Define.
* config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
(HAVE_ENABLE_EXECUTE_STACK): Define.
* config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
(HAVE_ENABLE_EXECUTE_STACK): Define.
* config/alpha/alpha.c (alpha_trampoline_init): Test
HAVE_ENABLE_EXECUTE_STACK.
* config/i386/i386.c (ix86_trampoline_init): Likewise.
* config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
(sparc64_initialize_trampoline): Likewise.
* libgcc2.c [L_enable_execute_stack]: Remove.
* system.h (ENABLE_EXECUTE_STACK): Poison.
* doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
* doc/tm.texi: Regenerate.
* Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
gcc/c-family:
* c.opt (fbuilding-libgcc): New option.
* c-cppbuiltin.c (c_cpp_builtins): Define
__LIBGCC_TRAMPOLINE_SIZE__ if flag_building_libgcc.
libgcc:
* enable-execute-stack-empty.c: New file.
* enable-execute-stack-mprotect.c: New file.
* config/i386/enable-execute-stack-mingw32.c: New file.
* config.host (enable_execute_stack): New variable.
Select appropriate variants.
* configure.ac: Link enable-execute-stack.c to
$enable_execute_stack.
* configure: Regenerate.
* Makefile.in (LIB2ADD): Add enable-execute-stack.c.
(lib2funcs): Remove _enable_execute_stack.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174843 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/openbsd.h')
-rw-r--r-- | gcc/config/openbsd.h | 18 |
1 files changed, 1 insertions, 17 deletions
diff --git a/gcc/config/openbsd.h b/gcc/config/openbsd.h index ae08ed8b5e1..aa279ed4738 100644 --- a/gcc/config/openbsd.h +++ b/gcc/config/openbsd.h @@ -281,20 +281,4 @@ do { \ /* Storage layout. */ -/* Stack is explicitly denied execution rights on OpenBSD platforms. */ -#define ENABLE_EXECUTE_STACK \ -extern void __enable_execute_stack (void *); \ -void \ -__enable_execute_stack (void *addr) \ -{ \ - long size = getpagesize (); \ - long mask = ~(size-1); \ - char *page = (char *) (((long) addr) & mask); \ - char *end = (char *) ((((long) (addr + TRAMPOLINE_SIZE)) & mask) + size); \ - \ - if (mprotect (page, end - page, PROT_READ | PROT_WRITE | PROT_EXEC) < 0) \ - perror ("mprotect of trampoline code"); \ -} - -#include <sys/types.h> -#include <sys/mman.h> +#define HAVE_ENABLE_EXECUTE_STACK |