зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1525416 - Teach libffi/src/closures.c about ARM64_WIN64 r=froydnj
I added ARM64_WIN64 to every line that mentioned X86_WIN32 and X86_WIN64. This makes sure the allocation routines do the proper VirtualProtect on the trampolines. Differential Revision: https://phabricator.services.mozilla.com/D19567 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
45bcb305e9
Коммит
e68d42b99d
|
@ -45,7 +45,7 @@
|
|||
# define FFI_MMAP_EXEC_WRIT 1
|
||||
# define HAVE_MNTENT 1
|
||||
# endif
|
||||
# if defined(X86_WIN32) || defined(X86_WIN64) || defined(__OS2__)
|
||||
# if defined(X86_WIN32) || defined(X86_WIN64) || defined(ARM64_WIN64) || defined(__OS2__)
|
||||
/* Windows systems may have Data Execution Protection (DEP) enabled,
|
||||
which requires the use of VirtualMalloc/VirtualFree to alloc/free
|
||||
executable memory. */
|
||||
|
@ -111,7 +111,7 @@
|
|||
#endif
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#if !defined(X86_WIN32) && !defined(X86_WIN64)
|
||||
#if !defined(X86_WIN32) && !defined(X86_WIN64) && !defined(ARM64_WIN64)
|
||||
#ifdef HAVE_MNTENT
|
||||
#include <mntent.h>
|
||||
#endif /* HAVE_MNTENT */
|
||||
|
@ -214,7 +214,7 @@ emutramp_enabled_check (void)
|
|||
/* Cygwin is Linux-like, but not quite that Linux-like. */
|
||||
#define is_selinux_enabled() 0
|
||||
|
||||
#endif /* !defined(X86_WIN32) && !defined(X86_WIN64) */
|
||||
#endif /* !defined(X86_WIN32) && !defined(X86_WIN64) && !defined(ARM64_WIN64) */
|
||||
|
||||
#ifndef FFI_MMAP_EXEC_EMUTRAMP_PAX
|
||||
#define is_emutramp_enabled() 0
|
||||
|
@ -237,11 +237,11 @@ static int dlmalloc_trim(size_t) MAYBE_UNUSED;
|
|||
static size_t dlmalloc_usable_size(void*) MAYBE_UNUSED;
|
||||
static void dlmalloc_stats(void) MAYBE_UNUSED;
|
||||
|
||||
#if !(defined(X86_WIN32) || defined(X86_WIN64) || defined(__OS2__)) || defined (__CYGWIN__) || defined(__INTERIX)
|
||||
#if !(defined(X86_WIN32) || defined(X86_WIN64) || defined(ARM64_WIN64) || defined(__OS2__)) || defined (__CYGWIN__) || defined(__INTERIX)
|
||||
/* Use these for mmap and munmap within dlmalloc.c. */
|
||||
static void *dlmmap(void *, size_t, int, int, int, off_t);
|
||||
static int dlmunmap(void *, size_t);
|
||||
#endif /* !(defined(X86_WIN32) || defined(X86_WIN64) || defined(__OS2__)) || defined (__CYGWIN__) || defined(__INTERIX) */
|
||||
#endif /* !(defined(X86_WIN32) || defined(X86_WIN64) || defined(ARM64_WIN64) || defined(__OS2__)) || defined (__CYGWIN__) || defined(__INTERIX) */
|
||||
|
||||
#define mmap dlmmap
|
||||
#define munmap dlmunmap
|
||||
|
@ -251,7 +251,7 @@ static int dlmunmap(void *, size_t);
|
|||
#undef mmap
|
||||
#undef munmap
|
||||
|
||||
#if !(defined(X86_WIN32) || defined(X86_WIN64) || defined(__OS2__)) || defined (__CYGWIN__) || defined(__INTERIX)
|
||||
#if !(defined(X86_WIN32) || defined(X86_WIN64) || defined(ARM64_WIN64) || defined(__OS2__)) || defined (__CYGWIN__) || defined(__INTERIX)
|
||||
|
||||
/* A mutex used to synchronize access to *exec* variables in this file. */
|
||||
static pthread_mutex_t open_temp_exec_file_mutex = PTHREAD_MUTEX_INITIALIZER;
|
||||
|
@ -572,7 +572,7 @@ segment_holding_code (mstate m, char* addr)
|
|||
}
|
||||
#endif
|
||||
|
||||
#endif /* !(defined(X86_WIN32) || defined(X86_WIN64) || defined(__OS2__)) || defined (__CYGWIN__) || defined(__INTERIX) */
|
||||
#endif /* !(defined(X86_WIN32) || defined(X86_WIN64) || defined(ARM64_WIN64) || defined(__OS2__)) || defined (__CYGWIN__) || defined(__INTERIX) */
|
||||
|
||||
/* Allocate a chunk of memory with the given size. Returns a pointer
|
||||
to the writable address, and sets *CODE to the executable
|
||||
|
|
Загрузка…
Ссылка в новой задаче