Fix fallback when register allocation fails
A register allocation failure was causing no program to be made available, not even a safe/slow "fallback" equivalent. Upstream patch from git fixes this. http://dev.laptop.org/ticket/12463
This commit is contained in:
parent
f39256968b
commit
519b9772c8
11
orc.spec
11
orc.spec
@ -1,6 +1,6 @@
|
||||
Name: orc
|
||||
Version: 0.4.16
|
||||
Release: 6%{?dist}
|
||||
Release: 7%{?dist}
|
||||
Summary: The Oil Run-time Compiler
|
||||
|
||||
Group: System Environment/Libraries
|
||||
@ -13,9 +13,13 @@ BuildRequires: gtk-doc, libtool
|
||||
|
||||
Patch1: orc-no-nopl.patch
|
||||
Patch2: orc-no-nopw.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
|
||||
Orc is a library and set of tools for compiling and executing
|
||||
very simple programs that operate on arrays of data. The "language"
|
||||
@ -59,6 +63,7 @@ The Orc compiler, to produce optimized code.
|
||||
%patch1 -p1 -b .nopl
|
||||
%patch2 -p1 -b .nopw
|
||||
%patch3 -p1 -b .subdir
|
||||
%patch4 -p1 -b .regalloc
|
||||
|
||||
autoreconf -vif
|
||||
|
||||
@ -122,6 +127,10 @@ make check
|
||||
|
||||
|
||||
%changelog
|
||||
* Sat Jan 19 2012 Daniel Drake <dsd@laptop.org> - 0.4.16-7
|
||||
- Fix fallback path when register allocation fails
|
||||
- Fixes gstreamer-1.0 crash on OLPC XO-1.75
|
||||
|
||||
* Fri Jul 27 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.16-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||
|
||||
|
58
reg-alloc-fail.patch
Normal file
58
reg-alloc-fail.patch
Normal file
@ -0,0 +1,58 @@
|
||||
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