From dcb00f2e8e70792f01931899d0084682cdfd167b Mon Sep 17 00:00:00 2001 From: Rainer Orth Date: Thu, 10 Dec 2009 10:09:17 +0000 Subject: [PATCH] re PR libffi/40700 (All amd64 libffi execution tests fail on Solaris 10/x86) PR libffi/40700 * src/closures.c [X86_64 && __sun__ && __svr4__] (FFI_MMAP_EXEC_WRIT): Define. From-SVN: r155124 --- libffi/ChangeLog | 6 ++++++ libffi/src/closures.c | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/libffi/ChangeLog b/libffi/ChangeLog index 950b7fd43fe1..029735f49bda 100644 --- a/libffi/ChangeLog +++ b/libffi/ChangeLog @@ -1,3 +1,9 @@ +2009-12-10 Rainer Orth + + PR libffi/40700 + * src/closures.c [X86_64 && __sun__ && __svr4__] + (FFI_MMAP_EXEC_WRIT): Define. + 2009-12-08 David Daney * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-* diff --git a/libffi/src/closures.c b/libffi/src/closures.c index f07ad06bf33b..48cb41567a99 100644 --- a/libffi/src/closures.c +++ b/libffi/src/closures.c @@ -1,6 +1,6 @@ /* ----------------------------------------------------------------------- closures.c - Copyright (c) 2007 Red Hat, Inc. - Copyright (C) 2007 Free Software Foundation, Inc + Copyright (C) 2007, 2009 Free Software Foundation, Inc Code to allocate and deallocate memory for closures. @@ -50,6 +50,11 @@ executable memory. */ # define FFI_MMAP_EXEC_WRIT 1 # endif +# if defined(X86_64) && defined(__sun__) && defined(__svr4__) +/* The data segment on 64-bit Solaris/x86 isn't executable, so use mmap + instead. */ +# define FFI_MMAP_EXEC_WRIT 1 +# endif #endif #if FFI_MMAP_EXEC_WRIT && !defined FFI_MMAP_EXEC_SELINUX