Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/GStreamer/orc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'orc/orccodemem.c')
-rw-r--r--orc/orccodemem.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/orc/orccodemem.c b/orc/orccodemem.c
index a996e76..728f347 100644
--- a/orc/orccodemem.c
+++ b/orc/orccodemem.c
@@ -264,11 +264,15 @@ orc_code_region_allocate_codemem_dual_map (OrcCodeRegion *region,
#define MAP_ANONYMOUS MAP_ANON
#endif
+#ifndef MAP_JIT
+#define MAP_JIT 0
+#endif
+
static int
orc_code_region_allocate_codemem_anon_map (OrcCodeRegion *region)
{
region->exec_ptr = mmap (NULL, SIZE, PROT_READ|PROT_WRITE|PROT_EXEC,
- MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
+ MAP_PRIVATE|MAP_ANONYMOUS|MAP_JIT, -1, 0);
if (region->exec_ptr == MAP_FAILED) {
ORC_WARNING("failed to create write/exec map. err=%i", errno);
return FALSE;
@@ -300,9 +304,15 @@ orc_code_region_allocate_codemem (OrcCodeRegion *region)
if (orc_code_region_allocate_codemem_anon_map (region)) return;
+#ifdef __APPLE__
+ ORC_ERROR("Failed to create write and exec mmap regions. This "
+ "is probably because the Hardened Runtime is enabled without "
+ "the com.apple.security.cs.allow-jit entitlement.");
+#else
ORC_ERROR("Failed to create write and exec mmap regions. This "
"is probably because SELinux execmem check is enabled (good) "
"and $TMPDIR and $HOME are mounted noexec (bad).");
+#endif
}
#endif