author | jurikm |
Sun, 12 Feb 2012 14:04:10 +0000 | |
changeset 8245 | 383896da4129 |
parent 3064 | 6f76bdc54801 |
permissions | -rw-r--r-- |
3064
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
1 |
From 5a28b84746b15ec9fd666238a01f1d8a3291b71b Mon Sep 17 00:00:00 2001 |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
2 |
From: Thiago Macieira <[email protected]> |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
3 |
Date: Thu, 23 Jul 2009 17:11:23 +0200 |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
4 |
Subject: [PATCH 05/17] Fix crash misaligned reads on Sparc processors. |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
5 |
|
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
6 |
Sparc cannot do 32-bit reads on misaligned boundaries. The program |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
7 |
crashes if you try to do so. |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
8 |
|
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
9 |
t@1 (l@1) signal BUS (invalid address alignment) in WebCore::equal at 0xffffffff7e2719fc |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
10 |
0xffffffff7e2719fc: equal+0x002c: ld [%o1], %g1 |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
11 |
(dbx) where -q 1 |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
12 |
=>[1] WebCore::equal(WebCore::StringImpl*,const unsigned short*,unsigned) |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
13 |
(dbx) print -fx $o1 |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
14 |
$o1 = 0x45d15a |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
15 |
--- |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
16 |
.../webkit/WebCore/platform/text/AtomicString.cpp | 2 +- |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
17 |
1 files changed, 1 insertions(+), 1 deletions(-) |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
18 |
|
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
19 |
--- a/src/3rdparty/webkit/WebCore/platform/text/AtomicString.cpp.orig 2010-07-09 00:26:39.247786047 +0200 |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
20 |
+++ b/src/3rdparty/webkit/WebCore/platform/text/AtomicString.cpp 2010-07-09 00:28:42.170006407 +0200 |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
21 |
@@ -105,7 +105,7 @@ |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
22 |
|
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
23 |
// FIXME: perhaps we should have a more abstract macro that indicates when |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
24 |
// going 4 bytes at a time is unsafe |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
25 |
-#if CPU(ARM) || CPU(SH4) |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
26 |
+#if CPU(ARM) || CPU(SH4) || CPU(SPARC) |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
27 |
const UChar* stringCharacters = string->characters(); |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
28 |
for (unsigned i = 0; i != length; ++i) { |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
29 |
if (*stringCharacters++ != *characters++) |