Fix gstreamer crash on Geode (#746185)
This commit is contained in:
parent
1ce530b2ea
commit
84217fdd05
40
orc-no-nopl.patch
Normal file
40
orc-no-nopl.patch
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
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
|
||||||
|
|
56
orc-no-nopw.patch
Normal file
56
orc-no-nopw.patch
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
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
|
||||||
|
|
11
orc.spec
11
orc.spec
@ -1,6 +1,6 @@
|
|||||||
Name: orc
|
Name: orc
|
||||||
Version: 0.4.16
|
Version: 0.4.16
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
Summary: The Oil Run-time Compiler
|
Summary: The Oil Run-time Compiler
|
||||||
|
|
||||||
Group: System Environment/Libraries
|
Group: System Environment/Libraries
|
||||||
@ -11,6 +11,8 @@ BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
|||||||
|
|
||||||
BuildRequires: gtk-doc, libtool
|
BuildRequires: gtk-doc, libtool
|
||||||
|
|
||||||
|
Patch1: orc-no-nopl.patch
|
||||||
|
Patch2: orc-no-nopw.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
|
||||||
@ -51,7 +53,9 @@ The Orc compiler, to produce optimized code.
|
|||||||
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
%patch1 -p1
|
||||||
|
%patch2 -p1
|
||||||
|
|
||||||
autoreconf -vif
|
autoreconf -vif
|
||||||
|
|
||||||
@ -115,6 +119,9 @@ make check
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun Oct 16 2011 Daniel Drake <dsd@laptop.org> - 0.4.16-2
|
||||||
|
- Add upstream patches to fix gstreamer crash on Geode (#746185)
|
||||||
|
|
||||||
* Mon Oct 03 2011 Fabian Deutsch <fabiand@fedoraproject.org> - 0.4.16-1
|
* Mon Oct 03 2011 Fabian Deutsch <fabiand@fedoraproject.org> - 0.4.16-1
|
||||||
- Update to 0.4.16
|
- Update to 0.4.16
|
||||||
- Fixing regression introdcued by 0.4.15 (#742534 and #734911)
|
- Fixing regression introdcued by 0.4.15 (#742534 and #734911)
|
||||||
|
Loading…
Reference in New Issue
Block a user