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