the skia patch here is tested and critical for armel.

I am unable to test the rest cause I am having issues in the linking
stage with chromium 20 with symbols that should be provided by the vpx
library. I was using chromium-browser-20.0.1132.21~r139451-1

Since these problems do not seem arm-specific (even though the
libvpx.gyp file has a alot of arm stuff, i think that is special to
building it, which we thankfully are not doing...although we might have
to suffer those issues with v8...) I wonder if you have ran into/fixed
these problems.


The alternate to the 0001 patch is what the libv8 package has

CXXFLAGS += -mno-thumb-interwork

under the armel section

-- 
-Shawn Landden
>From 55ea481d31adca7b4a7eb720fb4c079bf1daf671 Mon Sep 17 00:00:00 2001
From: Shawn Landden <shawnland...@gmail.com>
Date: Thu, 31 May 2012 20:13:25 -0700
Subject: [PATCH] this transposition is neccisary to build on arm <armv7

---
 src/skia/skia.gyp |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/skia/skia.gyp b/src/skia/skia.gyp
index 49ed9cf..e9621af 100644
--- a/src/skia/skia.gyp
+++ b/src/skia/skia.gyp
@@ -1095,9 +1095,11 @@
         [ 'target_arch == "arm" and armv7 != 1', {
           'sources': [
             '../third_party/skia/src/opts/SkBlitRow_opts_none.cpp',
+            '../third_party/skia/src/opts/opts_check_arm.cpp'
           ],
           'sources!': [
             '../third_party/skia/src/opts/SkBlitRow_opts_arm.cpp',
+            '../third_party/skia/src/opts/SkUtils_opts_none.cpp',
           ],
         }],
       ],
-- 
1.7.9.5

>From 555f4101987816ebecd5e4dbd10f95d0df43ae8f Mon Sep 17 00:00:00 2001
From: Shawn Landden <shawnland...@gmail.com>
Date: Sat, 16 Jun 2012 07:47:23 +0300
Subject: [PATCH 1/3] I believe this has been fixed

---
 src/v8/src/arm/macro-assembler-arm.cc |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/v8/src/arm/macro-assembler-arm.cc b/src/v8/src/arm/macro-assembler-arm.cc
index 42c9961..e45dd03 100644
--- a/src/v8/src/arm/macro-assembler-arm.cc
+++ b/src/v8/src/arm/macro-assembler-arm.cc
@@ -61,9 +61,9 @@ MacroAssembler::MacroAssembler(Isolate* arg_isolate, void* buffer, int size)
 // We do not support thumb inter-working with an arm architecture not supporting
 // the blx instruction (below v5t).  If you know what CPU you are compiling for
 // you can use -march=armv7 or similar.
-#if defined(USE_THUMB_INTERWORK) && !defined(CAN_USE_THUMB_INSTRUCTIONS)
-# error "For thumb inter-working we require an architecture which supports blx"
-#endif
+//#if defined(USE_THUMB_INTERWORK) && !defined(CAN_USE_THUMB_INSTRUCTIONS)
+//# error "For thumb inter-working we require an architecture which supports blx"
+//#endif
 
 
 // Using bx does not yield better code, so use it only when required
-- 
1.7.2.5

>From 0043253972d0cf6521f32f475acffe05258476df Mon Sep 17 00:00:00 2001
From: Shawn Landden <shawnland...@gmail.com>
Date: Sat, 16 Jun 2012 08:20:12 +0300
Subject: [PATCH 2/3] Fix arm when using embedded v8

---
 debian/rules |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/debian/rules b/debian/rules
index 8a64f68..e4d43c3 100755
--- a/debian/rules
+++ b/debian/rules
@@ -92,6 +92,7 @@ GYP_DEFINES += \
 ifeq (armel,$(DEB_HOST_ARCH))
 AVOID_GCC_44 := 0
 GYP_DEFINES += \
+	v8_use_arm_eabi_hardfloat=false \
 	arm_float_abi=soft \
 	arm_thumb=0 \
 	armv7=0 \
@@ -100,6 +101,8 @@ GYP_DEFINES += \
 endif
 ifeq (armhf,$(DEB_HOST_ARCH))
 GYP_DEFINES += \
+	v8_use_arm_eabi_hardfloat=true \
+	arm_fpu=vfpv3 \
 	arm_float_abi=hard \
 	arm_thumb=1 \
 	armv7=1 \
-- 
1.7.2.5

>From a147302e876fff1b53cb24c128e6a91a3f36a085 Mon Sep 17 00:00:00 2001
From: Shawn Landden <shawnland...@gmail.com>
Date: Sat, 16 Jun 2012 08:24:57 +0300
Subject: [PATCH 3/3] alignment

---
 src/ui/base/resource/data_pack.cc |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/src/ui/base/resource/data_pack.cc b/src/ui/base/resource/data_pack.cc
index 0fa97a8..837ad32 100644
--- a/src/ui/base/resource/data_pack.cc
+++ b/src/ui/base/resource/data_pack.cc
@@ -130,9 +130,11 @@ bool DataPack::Load(const FilePath& path) {
   // 2) Verify the entries are within the appropriate bounds. There's an extra
   // entry after the last item which gives us the length of the last item.
   for (size_t i = 0; i < resource_count_ + 1; ++i) {
+    uint32 t;
     const DataPackEntry* entry = reinterpret_cast<const DataPackEntry*>(
         mmap_->data() + kHeaderLength + (i * sizeof(DataPackEntry)));
-    if (entry->file_offset > mmap_->length()) {
+    memcpy(&t, &entry->file_offset, 32/8);
+    if (t > mmap_->length()) {
       LOG(ERROR) << "Entry #" << i << " in data pack points off end of file. "
                  << "Was the file corrupted?";
       UMA_HISTOGRAM_ENUMERATION("DataPack.Load", ENTRY_NOT_FOUND,
-- 
1.7.2.5

Reply via email to