Update to 0.4.17 and rebase patches
Signed-off-by: Fabian Deutsch <fabiand@fedoraproject.org>
This commit is contained in:
parent
09028b5bee
commit
57eadd59c5
1
.gitignore
vendored
1
.gitignore
vendored
@ -8,3 +8,4 @@ orc-0.4.7.tar.gz
|
|||||||
/orc-0.4.14.tar.gz
|
/orc-0.4.14.tar.gz
|
||||||
/orc-0.4.15.tar.gz
|
/orc-0.4.15.tar.gz
|
||||||
/orc-0.4.16.tar.gz
|
/orc-0.4.16.tar.gz
|
||||||
|
/orc-0.4.17.tar.gz
|
||||||
|
56
0001-Use-a-subdirectory-for-temporary-files.patch
Normal file
56
0001-Use-a-subdirectory-for-temporary-files.patch
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
From 048ecb97881ad2763c34458eb705fedf09dcc5ff Mon Sep 17 00:00:00 2001
|
||||||
|
From: Fabian Deutsch <fabian.deutsch@gmx.de>
|
||||||
|
Date: Tue, 4 Oct 2011 13:28:38 +0200
|
||||||
|
Subject: [PATCH 1/2] Use a subdirectory for temporary files.
|
||||||
|
|
||||||
|
This allows the a better integration with selinux, as the rule can use the path name and doesn't need globbing.
|
||||||
|
|
||||||
|
Signed-off-by: Fabian Deutsch <fabian.deutsch@gmx.de>
|
||||||
|
---
|
||||||
|
orc/orccodemem.c | 19 ++++++++++++++++++-
|
||||||
|
1 files changed, 18 insertions(+), 1 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/orc/orccodemem.c b/orc/orccodemem.c
|
||||||
|
index f470be5..295a880 100644
|
||||||
|
--- a/orc/orccodemem.c
|
||||||
|
+++ b/orc/orccodemem.c
|
||||||
|
@@ -193,11 +193,27 @@ orc_code_chunk_free (OrcCodeChunk *chunk)
|
||||||
|
#ifdef HAVE_CODEMEM_MMAP
|
||||||
|
int
|
||||||
|
orc_code_region_allocate_codemem_dual_map (OrcCodeRegion *region,
|
||||||
|
- const char *dir, int force_unlink)
|
||||||
|
+ const char *basedir, int force_unlink)
|
||||||
|
{
|
||||||
|
int fd;
|
||||||
|
int n;
|
||||||
|
char *filename;
|
||||||
|
+ char *dir;
|
||||||
|
+ struct stat stat_p;
|
||||||
|
+
|
||||||
|
+ dir = malloc (strlen (basedir) + strlen ("/.orc") + 1);
|
||||||
|
+ sprintf (dir, "%s/.orc", basedir);
|
||||||
|
+
|
||||||
|
+ if (stat (dir, &stat_p) == -1 ||
|
||||||
|
+ !S_ISDIR (stat_p.st_mode))
|
||||||
|
+ {
|
||||||
|
+ n = mkdir (dir, S_IRWXU);
|
||||||
|
+ if (n < 0)
|
||||||
|
+ {
|
||||||
|
+ ORC_WARNING ("failed to create subdir");
|
||||||
|
+ return FALSE;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
|
||||||
|
filename = malloc (strlen ("/orcexec..") +
|
||||||
|
strlen (dir) + 6 + 1);
|
||||||
|
@@ -211,6 +227,7 @@ orc_code_region_allocate_codemem_dual_map (OrcCodeRegion *region,
|
||||||
|
if (force_unlink || !_orc_compiler_flag_debug) {
|
||||||
|
unlink (filename);
|
||||||
|
}
|
||||||
|
+ free (dir);
|
||||||
|
free (filename);
|
||||||
|
|
||||||
|
n = ftruncate (fd, SIZE);
|
||||||
|
--
|
||||||
|
1.7.7.6
|
||||||
|
|
65
0002-Add-compiler-option-for-ENABLE_USER_CODEMEM.patch
Normal file
65
0002-Add-compiler-option-for-ENABLE_USER_CODEMEM.patch
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
From bded311d32daa2339055341a7f1c1782ff39d047 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Fabian Deutsch <fabian.deutsch@gmx.de>
|
||||||
|
Date: Sun, 1 Jan 2012 21:41:04 +0100
|
||||||
|
Subject: [PATCH 2/2] Add compiler option for ENABLE_USER_CODEMEM.
|
||||||
|
|
||||||
|
This option disbales non-user-dependent path checking at compile time. If enabled, only paths corresponding to a user are checked.
|
||||||
|
|
||||||
|
Signed-off-by: Fabian Deutsch <fabian.deutsch@gmx.de>
|
||||||
|
---
|
||||||
|
configure.ac | 4 ++++
|
||||||
|
orc/Makefile.am | 3 +++
|
||||||
|
orc/orccodemem.c | 2 ++
|
||||||
|
3 files changed, 9 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 00e1916..4daee88 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -176,6 +176,10 @@ AM_CONDITIONAL(ENABLE_BACKEND_ARM, test "x$ENABLE_BACKEND_ARM" = "xyes")
|
||||||
|
AM_CONDITIONAL(ENABLE_BACKEND_C64X, test "x$ENABLE_BACKEND_C64X" = "xyes")
|
||||||
|
AM_CONDITIONAL(ENABLE_BACKEND_MIPS, test "x$ENABLE_BACKEND_MIPS" = "xyes")
|
||||||
|
|
||||||
|
+AC_ARG_ENABLE(user-codemem,
|
||||||
|
+ AC_HELP_STRING([--enable-user-codemem],[Force codemem allocation to be user dependent (default is no)]),
|
||||||
|
+ [], [enable_user_codemem=no])
|
||||||
|
+AM_CONDITIONAL(ENABLE_USER_CODEMEM, test "x$enable_user_codemem" = "xyes")
|
||||||
|
|
||||||
|
AC_DEFINE(ORC_EXPORTS, 1, [Defined for compiling internal code])
|
||||||
|
|
||||||
|
diff --git a/orc/Makefile.am b/orc/Makefile.am
|
||||||
|
index 26263e0..887d36b 100644
|
||||||
|
--- a/orc/Makefile.am
|
||||||
|
+++ b/orc/Makefile.am
|
||||||
|
@@ -9,6 +9,9 @@ liborc_@ORC_MAJORMINOR@_la_LDFLAGS = \
|
||||||
|
-no-undefined -export-symbols-regex 'orc_'
|
||||||
|
liborc_@ORC_MAJORMINOR@_la_CFLAGS = $(ORC_CFLAGS) \
|
||||||
|
-DORC_ENABLE_UNSTABLE_API
|
||||||
|
+if ENABLE_USER_CODEMEM
|
||||||
|
+liborc_@ORC_MAJORMINOR@_la_CFLAGS += -DORC_FORCE_USER_CODEMEM
|
||||||
|
+endif
|
||||||
|
|
||||||
|
liborc_@ORC_MAJORMINOR@_la_SOURCES = \
|
||||||
|
orc.c \
|
||||||
|
diff --git a/orc/orccodemem.c b/orc/orccodemem.c
|
||||||
|
index 295a880..4a91e3e 100644
|
||||||
|
--- a/orc/orccodemem.c
|
||||||
|
+++ b/orc/orccodemem.c
|
||||||
|
@@ -280,12 +280,14 @@ orc_code_region_allocate_codemem (OrcCodeRegion *region)
|
||||||
|
{
|
||||||
|
const char *tmpdir;
|
||||||
|
|
||||||
|
+#ifndef ORC_FORCE_USER_CODEMEM
|
||||||
|
tmpdir = getenv ("TMPDIR");
|
||||||
|
if (tmpdir && orc_code_region_allocate_codemem_dual_map (region,
|
||||||
|
tmpdir, FALSE)) return;
|
||||||
|
|
||||||
|
if (orc_code_region_allocate_codemem_dual_map (region,
|
||||||
|
"/tmp", FALSE)) return;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
tmpdir = getenv ("XDG_RUNTIME_DIR");
|
||||||
|
if (tmpdir && orc_code_region_allocate_codemem_dual_map (region,
|
||||||
|
--
|
||||||
|
1.7.7.6
|
||||||
|
|
@ -1,40 +0,0 @@
|
|||||||
From 4f813175b93ba44ba3f91cec28f8393d996ff918 Mon Sep 17 00:00:00 2001
|
|
||||||
From: David Schleef <ds@schleef.org>
|
|
||||||
Date: Thu, 13 Oct 2011 23:02:00 -0700
|
|
||||||
Subject: [PATCH] x86insn: quick fix for lack of nopl support
|
|
||||||
|
|
||||||
Geode (as well as others) don't have nopl. So don't use it
|
|
||||||
for alignment.
|
|
||||||
---
|
|
||||||
orc/orcx86insn.c | 9 +++++++++
|
|
||||||
1 files changed, 9 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/orc/orcx86insn.c b/orc/orcx86insn.c
|
|
||||||
index 659ebc5..78ca30d 100644
|
|
||||||
--- a/orc/orcx86insn.c
|
|
||||||
+++ b/orc/orcx86insn.c
|
|
||||||
@@ -520,12 +520,21 @@ orc_uint8 nop_codes[][16] = {
|
|
||||||
{ 0 /* MSVC wants something here */ },
|
|
||||||
{ 0x90 },
|
|
||||||
{ 0x66, 0x90 }, /* xchg %ax,%ax */
|
|
||||||
+#if 0
|
|
||||||
{ 0x0f, 0x1f, 0x00 }, /* nopl (%rax) */
|
|
||||||
{ 0x0f, 0x1f, 0x40, 0x00 }, /* nopl 0x0(%rax) */
|
|
||||||
{ 0x0f, 0x1f, 0x44, 0x00, 0x00 }, /* nopl 0x0(%rax,%rax,1) */
|
|
||||||
{ 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00 }, /* nopw 0x0(%rax,%rax,1) */
|
|
||||||
{ 0x0f, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00 }, /* nopl 0x0(%rax) */
|
|
||||||
{ 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* nopl 0x0(%rax,%rax,1) */
|
|
||||||
+#else
|
|
||||||
+ { 0x90, 0x90, 0x90 },
|
|
||||||
+ { 0x90, 0x90, 0x90, 0x90 },
|
|
||||||
+ { 0x90, 0x90, 0x90, 0x90, 0x90 },
|
|
||||||
+ { 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00 }, /* nopw 0x0(%rax,%rax,1) */
|
|
||||||
+ { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 },
|
|
||||||
+ { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 },
|
|
||||||
+#endif
|
|
||||||
{ 0x66, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* nopw 0x0(%rax,%rax,1) */
|
|
||||||
/* Forms of nopw %cs:0x0(%rax,%rax,1) */
|
|
||||||
{ 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
||||||
--
|
|
||||||
1.7.0.4
|
|
||||||
|
|
@ -1,56 +0,0 @@
|
|||||||
From 574ee1ee5025d9941e44238e846f6074fbdf2e87 Mon Sep 17 00:00:00 2001
|
|
||||||
From: David Schleef <ds@schleef.org>
|
|
||||||
Date: Sat, 15 Oct 2011 11:51:17 -0700
|
|
||||||
Subject: [PATCH] x86insn: switch to ultra-conservative nops
|
|
||||||
|
|
||||||
---
|
|
||||||
orc/orcx86insn.c | 26 ++++++++++++++++++--------
|
|
||||||
1 files changed, 18 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/orc/orcx86insn.c b/orc/orcx86insn.c
|
|
||||||
index 78ca30d..33982e2 100644
|
|
||||||
--- a/orc/orcx86insn.c
|
|
||||||
+++ b/orc/orcx86insn.c
|
|
||||||
@@ -527,14 +527,6 @@ orc_uint8 nop_codes[][16] = {
|
|
||||||
{ 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00 }, /* nopw 0x0(%rax,%rax,1) */
|
|
||||||
{ 0x0f, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00 }, /* nopl 0x0(%rax) */
|
|
||||||
{ 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* nopl 0x0(%rax,%rax,1) */
|
|
||||||
-#else
|
|
||||||
- { 0x90, 0x90, 0x90 },
|
|
||||||
- { 0x90, 0x90, 0x90, 0x90 },
|
|
||||||
- { 0x90, 0x90, 0x90, 0x90, 0x90 },
|
|
||||||
- { 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00 }, /* nopw 0x0(%rax,%rax,1) */
|
|
||||||
- { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 },
|
|
||||||
- { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 },
|
|
||||||
-#endif
|
|
||||||
{ 0x66, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* nopw 0x0(%rax,%rax,1) */
|
|
||||||
/* Forms of nopw %cs:0x0(%rax,%rax,1) */
|
|
||||||
{ 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
|
||||||
@@ -546,6 +538,24 @@ orc_uint8 nop_codes[][16] = {
|
|
||||||
0x00, 0x00 },
|
|
||||||
{ 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00 },
|
|
||||||
+#else
|
|
||||||
+ { 0x90, 0x90, 0x90 },
|
|
||||||
+ { 0x90, 0x90, 0x90, 0x90 },
|
|
||||||
+ { 0x90, 0x90, 0x90, 0x90, 0x90 },
|
|
||||||
+ { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 },
|
|
||||||
+ { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 },
|
|
||||||
+ { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 },
|
|
||||||
+ { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 },
|
|
||||||
+ { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 },
|
|
||||||
+ { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 },
|
|
||||||
+ { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 },
|
|
||||||
+ { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
|
|
||||||
+ 0x90, },
|
|
||||||
+ { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
|
|
||||||
+ 0x90, 0x90, },
|
|
||||||
+ { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
|
|
||||||
+ 0x90, 0x90, 0x90, },
|
|
||||||
+#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
void
|
|
||||||
--
|
|
||||||
1.7.0.4
|
|
||||||
|
|
176
orc-subdir.patch
176
orc-subdir.patch
@ -1,176 +0,0 @@
|
|||||||
From 30a9f48e8dd12f7b607d1dbc9a795f939208f5d6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Fabian Deutsch <fabian.deutsch@gmx.de>
|
|
||||||
Date: Tue, 4 Oct 2011 13:28:38 +0200
|
|
||||||
Subject: [PATCH 1/4] Use a subdirectory for temporary files.
|
|
||||||
|
|
||||||
This allows the a better integration with selinux, as the rule can use the path name and doesn't need globbing.
|
|
||||||
|
|
||||||
Signed-off-by: Fabian Deutsch <fabian.deutsch@gmx.de>
|
|
||||||
---
|
|
||||||
orc/orccodemem.c | 18 +++++++++++++++++-
|
|
||||||
1 files changed, 17 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/orc/orccodemem.c b/orc/orccodemem.c
|
|
||||||
index f470be5..e125faa 100644
|
|
||||||
--- a/orc/orccodemem.c
|
|
||||||
+++ b/orc/orccodemem.c
|
|
||||||
@@ -193,11 +193,27 @@ orc_code_chunk_free (OrcCodeChunk *chunk)
|
|
||||||
#ifdef HAVE_CODEMEM_MMAP
|
|
||||||
int
|
|
||||||
orc_code_region_allocate_codemem_dual_map (OrcCodeRegion *region,
|
|
||||||
- const char *dir, int force_unlink)
|
|
||||||
+ const char *basedir, int force_unlink)
|
|
||||||
{
|
|
||||||
int fd;
|
|
||||||
int n;
|
|
||||||
char *filename;
|
|
||||||
+ char *dir;
|
|
||||||
+ struct stat stat_p;
|
|
||||||
+
|
|
||||||
+ dir = malloc (strlen (basedir) + strlen ("/.orc"));
|
|
||||||
+ sprintf (dir, "%s/.orc", basedir);
|
|
||||||
+
|
|
||||||
+ stat (dir, &stat_p);
|
|
||||||
+ if (!S_ISDIR (stat_p.st_mode))
|
|
||||||
+ {
|
|
||||||
+ n = mkdir (dir, S_IRWXU);
|
|
||||||
+ if (n < 0)
|
|
||||||
+ {
|
|
||||||
+ ORC_WARNING ("failed to create subdir");
|
|
||||||
+ return FALSE;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
|
|
||||||
filename = malloc (strlen ("/orcexec..") +
|
|
||||||
strlen (dir) + 6 + 1);
|
|
||||||
--
|
|
||||||
1.7.7.5
|
|
||||||
|
|
||||||
|
|
||||||
From 2e35ab7bca7eef855b12eed26da9d543c8b225b6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Fabian Deutsch <fabian.deutsch@gmx.de>
|
|
||||||
Date: Sun, 1 Jan 2012 21:25:28 +0100
|
|
||||||
Subject: [PATCH 2/4] orccodemem.c: Fix memory allocation and directory
|
|
||||||
existance.
|
|
||||||
|
|
||||||
Noted in https://bugzilla.redhat.com/show_bug.cgi?id=770602
|
|
||||||
|
|
||||||
Signed-off-by: Fabian Deutsch <fabian.deutsch@gmx.de>
|
|
||||||
---
|
|
||||||
orc/orccodemem.c | 6 +++---
|
|
||||||
1 files changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/orc/orccodemem.c b/orc/orccodemem.c
|
|
||||||
index e125faa..be76472 100644
|
|
||||||
--- a/orc/orccodemem.c
|
|
||||||
+++ b/orc/orccodemem.c
|
|
||||||
@@ -201,11 +201,11 @@ orc_code_region_allocate_codemem_dual_map (OrcCodeRegion *region,
|
|
||||||
char *dir;
|
|
||||||
struct stat stat_p;
|
|
||||||
|
|
||||||
- dir = malloc (strlen (basedir) + strlen ("/.orc"));
|
|
||||||
+ dir = malloc (strlen (basedir) + strlen ("/.orc") + 1);
|
|
||||||
sprintf (dir, "%s/.orc", basedir);
|
|
||||||
|
|
||||||
- stat (dir, &stat_p);
|
|
||||||
- if (!S_ISDIR (stat_p.st_mode))
|
|
||||||
+ if (stat (dir, &stat_p) == -1 ||
|
|
||||||
+ !S_ISDIR (stat_p.st_mode))
|
|
||||||
{
|
|
||||||
n = mkdir (dir, S_IRWXU);
|
|
||||||
if (n < 0)
|
|
||||||
--
|
|
||||||
1.7.7.5
|
|
||||||
|
|
||||||
|
|
||||||
From 5a9009d4275fd40a0079a8bf44a7de31c2962bb0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Fabian Deutsch <fabian.deutsch@gmx.de>
|
|
||||||
Date: Sun, 1 Jan 2012 21:41:04 +0100
|
|
||||||
Subject: [PATCH 3/4] Add compiler option for ENABLE_USER_CODEMEM.
|
|
||||||
|
|
||||||
This option disbales non-user-dependent path checking at compile time. If enabled, only paths corresponding to a user are checked.
|
|
||||||
|
|
||||||
Signed-off-by: Fabian Deutsch <fabian.deutsch@gmx.de>
|
|
||||||
---
|
|
||||||
configure.ac | 4 ++++
|
|
||||||
orc/Makefile.am | 3 +++
|
|
||||||
orc/orccodemem.c | 2 ++
|
|
||||||
3 files changed, 9 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/configure.ac b/configure.ac
|
|
||||||
index 6637b8e..52edb5c 100644
|
|
||||||
--- a/configure.ac
|
|
||||||
+++ b/configure.ac
|
|
||||||
@@ -164,6 +164,10 @@ AM_CONDITIONAL(ENABLE_BACKEND_NEON, test "x$ENABLE_BACKEND_NEON" = "xyes")
|
|
||||||
AM_CONDITIONAL(ENABLE_BACKEND_ARM, test "x$ENABLE_BACKEND_ARM" = "xyes")
|
|
||||||
AM_CONDITIONAL(ENABLE_BACKEND_C64X, test "x$ENABLE_BACKEND_C64X" = "xyes")
|
|
||||||
|
|
||||||
+AC_ARG_ENABLE(user-codemem,
|
|
||||||
+ AC_HELP_STRING([--enable-user-codemem],[Force codemem allocation to be user dependent (default is no)]),
|
|
||||||
+ [], [enable_user_codemem=no])
|
|
||||||
+AM_CONDITIONAL(ENABLE_USER_CODEMEM, test "x$enable_user_codemem" = "xyes")
|
|
||||||
|
|
||||||
AC_DEFINE(ORC_EXPORTS, 1, [Defined for compiling internal code])
|
|
||||||
|
|
||||||
diff --git a/orc/Makefile.am b/orc/Makefile.am
|
|
||||||
index 8f379e0..43e9028 100644
|
|
||||||
--- a/orc/Makefile.am
|
|
||||||
+++ b/orc/Makefile.am
|
|
||||||
@@ -9,6 +9,9 @@ liborc_@ORC_MAJORMINOR@_la_LDFLAGS = \
|
|
||||||
-no-undefined -export-symbols-regex 'orc_'
|
|
||||||
liborc_@ORC_MAJORMINOR@_la_CFLAGS = $(ORC_CFLAGS) \
|
|
||||||
-DORC_ENABLE_UNSTABLE_API
|
|
||||||
+if ENABLE_USER_CODEMEM
|
|
||||||
+liborc_@ORC_MAJORMINOR@_la_CFLAGS += -DORC_FORCE_USER_CODEMEM
|
|
||||||
+endif
|
|
||||||
|
|
||||||
liborc_@ORC_MAJORMINOR@_la_SOURCES = \
|
|
||||||
orc.c \
|
|
||||||
diff --git a/orc/orccodemem.c b/orc/orccodemem.c
|
|
||||||
index be76472..32c14f1 100644
|
|
||||||
--- a/orc/orccodemem.c
|
|
||||||
+++ b/orc/orccodemem.c
|
|
||||||
@@ -279,12 +279,14 @@ orc_code_region_allocate_codemem (OrcCodeRegion *region)
|
|
||||||
{
|
|
||||||
const char *tmpdir;
|
|
||||||
|
|
||||||
+#ifndef ORC_FORCE_USER_CODEMEM
|
|
||||||
tmpdir = getenv ("TMPDIR");
|
|
||||||
if (tmpdir && orc_code_region_allocate_codemem_dual_map (region,
|
|
||||||
tmpdir, FALSE)) return;
|
|
||||||
|
|
||||||
if (orc_code_region_allocate_codemem_dual_map (region,
|
|
||||||
"/tmp", FALSE)) return;
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
tmpdir = getenv ("XDG_RUNTIME_DIR");
|
|
||||||
if (tmpdir && orc_code_region_allocate_codemem_dual_map (region,
|
|
||||||
--
|
|
||||||
1.7.7.5
|
|
||||||
|
|
||||||
|
|
||||||
From 53f540b0856d0e5c03f3d65edcce8d909f204dd4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Fabian Deutsch <fabian.deutsch@gmx.de>
|
|
||||||
Date: Sat, 7 Jan 2012 22:37:08 +0100
|
|
||||||
Subject: [PATCH 4/4] orccodemem: Fix a small leak.
|
|
||||||
|
|
||||||
Signed-off-by: Fabian Deutsch <fabian.deutsch@gmx.de>
|
|
||||||
---
|
|
||||||
orc/orccodemem.c | 1 +
|
|
||||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/orc/orccodemem.c b/orc/orccodemem.c
|
|
||||||
index 32c14f1..fc16ebc 100644
|
|
||||||
--- a/orc/orccodemem.c
|
|
||||||
+++ b/orc/orccodemem.c
|
|
||||||
@@ -227,6 +227,7 @@ orc_code_region_allocate_codemem_dual_map (OrcCodeRegion *region,
|
|
||||||
if (force_unlink || !_orc_compiler_flag_debug) {
|
|
||||||
unlink (filename);
|
|
||||||
}
|
|
||||||
+ free (dir);
|
|
||||||
free (filename);
|
|
||||||
|
|
||||||
n = ftruncate (fd, SIZE);
|
|
||||||
--
|
|
||||||
1.7.7.5
|
|
||||||
|
|
27
orc.spec
27
orc.spec
@ -1,24 +1,19 @@
|
|||||||
Name: orc
|
Name: orc
|
||||||
Version: 0.4.16
|
Version: 0.4.17
|
||||||
Release: 8%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: The Oil Run-time Compiler
|
Summary: The Oil Run-time Compiler
|
||||||
|
|
||||||
Group: System Environment/Libraries
|
Group: System Environment/Libraries
|
||||||
License: BSD
|
License: BSD
|
||||||
URL: http://code.entropywave.com/projects/orc/
|
URL: http://cgit.freedesktop.org/gstreamer/orc/
|
||||||
Source0: http://code.entropywave.com/download/orc/orc-%{version}.tar.gz
|
Source0: http://code.entropywave.com/download/orc/orc-%{version}.tar.gz
|
||||||
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
||||||
|
|
||||||
BuildRequires: gtk-doc, libtool
|
BuildRequires: gtk-doc, libtool
|
||||||
|
|
||||||
Patch1: orc-no-nopl.patch
|
# Upstream bugs: https://bugs.freedesktop.org/show_bug.cgi?id=41446
|
||||||
Patch2: orc-no-nopw.patch
|
Patch1: 0001-Use-a-subdirectory-for-temporary-files.patch
|
||||||
|
Patch2: 0002-Add-compiler-option-for-ENABLE_USER_CODEMEM.patch
|
||||||
# Upstream bug: https://bugs.freedesktop.org/show_bug.cgi?id=41446
|
|
||||||
Patch3: orc-subdir.patch
|
|
||||||
|
|
||||||
# Fix fallback when register allocation fails
|
|
||||||
Patch4: reg-alloc-fail.patch
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Orc is a library and set of tools for compiling and executing
|
Orc is a library and set of tools for compiling and executing
|
||||||
@ -60,10 +55,8 @@ The Orc compiler, to produce optimized code.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch1 -p1 -b .nopl
|
%patch1 -p1 -b .subdir
|
||||||
%patch2 -p1 -b .nopw
|
%patch2 -p1 -b .condtmp
|
||||||
%patch3 -p1 -b .subdir
|
|
||||||
%patch4 -p1 -b .regalloc
|
|
||||||
|
|
||||||
autoreconf -vif
|
autoreconf -vif
|
||||||
|
|
||||||
@ -127,6 +120,10 @@ make check
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Feb 20 2013 Fabian Deutsch <fabiand@fedoraproject.org> - 0.4.17-1
|
||||||
|
- Update to latest upstream release
|
||||||
|
- Removed obsolete patches
|
||||||
|
|
||||||
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.16-8
|
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.16-8
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||||
|
|
||||||
|
@ -1,58 +0,0 @@
|
|||||||
Fixes http://dev.laptop.org/ticket/12463
|
|
||||||
|
|
||||||
From b4f7fcaf99a4d952e59f2a9fa9286d24cc4b3a5a Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= <sebastian.droege@collabora.co.uk>
|
|
||||||
Date: Thu, 10 Jan 2013 18:13:32 +0100
|
|
||||||
Subject: [PATCH] orccompiler: Allow fallback to backup/emulation if the
|
|
||||||
target specific register allocation fails
|
|
||||||
|
|
||||||
The OrcCode of the program wouldn't be filled with all required fields
|
|
||||||
if the register allocation happens to early.
|
|
||||||
---
|
|
||||||
orc/orccompiler.c | 16 +++++++---------
|
|
||||||
1 file changed, 7 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/orc/orccompiler.c b/orc/orccompiler.c
|
|
||||||
index 68eb01e..2175206 100644
|
|
||||||
--- a/orc/orccompiler.c
|
|
||||||
+++ b/orc/orccompiler.c
|
|
||||||
@@ -254,12 +254,6 @@ orc_program_compile_full (OrcProgram *program, OrcTarget *target,
|
|
||||||
orc_compiler_rewrite_vars (compiler);
|
|
||||||
if (compiler->error) goto error;
|
|
||||||
|
|
||||||
- if (compiler->target) {
|
|
||||||
- orc_compiler_global_reg_alloc (compiler);
|
|
||||||
-
|
|
||||||
- orc_compiler_rewrite_vars2 (compiler);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
#if 0
|
|
||||||
{
|
|
||||||
ORC_ERROR("variables");
|
|
||||||
@@ -285,9 +279,6 @@ orc_program_compile_full (OrcProgram *program, OrcTarget *target,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
-
|
|
||||||
- if (compiler->error) goto error;
|
|
||||||
-
|
|
||||||
program->orccode = orc_code_new ();
|
|
||||||
|
|
||||||
program->orccode->is_2d = program->is_2d;
|
|
||||||
@@ -323,6 +314,13 @@ orc_program_compile_full (OrcProgram *program, OrcTarget *target,
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (compiler->target) {
|
|
||||||
+ orc_compiler_global_reg_alloc (compiler);
|
|
||||||
+
|
|
||||||
+ orc_compiler_rewrite_vars2 (compiler);
|
|
||||||
+ }
|
|
||||||
+ if (compiler->error) goto error;
|
|
||||||
+
|
|
||||||
orc_compiler_assign_rules (compiler);
|
|
||||||
if (compiler->error) goto error;
|
|
||||||
|
|
||||||
--
|
|
||||||
1.7.9.5
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user