diff -Nru chromium-browser-20.0.1132.57~r145807/debian/changelog chromium-browser-20.0.1132.57~r145807/debian/changelog --- chromium-browser-20.0.1132.57~r145807/debian/changelog 2012-07-13 20:35:33.000000000 +0100 +++ chromium-browser-20.0.1132.57~r145807/debian/changelog 2012-07-16 19:52:33.000000000 +0100 @@ -1,3 +1,14 @@ +chromium-browser (20.0.1132.57~r145807-1+rpi1) wheezy-staging; urgency=low + + * Add fix-rpi.patch: + - Fix ffmpeg armv6/vfp2 build + - Fix skia armv6 build + - Fix v8 vfp2 build, based on a patch by Andy Nichols for Qt + * debian/rules: Build for armv6/vfp2 in armhf + * Do not use binutils-gold in armhf + + -- Florian Will Sun, 15 Jul 2012 12:44:26 +0000 + chromium-browser (20.0.1132.57~r145807-1) unstable; urgency=medium [ Michael Gilbert ] diff -Nru chromium-browser-20.0.1132.57~r145807/debian/control chromium-browser-20.0.1132.57~r145807/debian/control --- chromium-browser-20.0.1132.57~r145807/debian/control 2012-07-12 20:05:23.000000000 +0100 +++ chromium-browser-20.0.1132.57~r145807/debian/control 2012-07-16 19:27:28.000000000 +0100 @@ -64,7 +64,7 @@ libxt-dev, libxtst-dev, libpam0g-dev, - binutils-gold, + binutils-gold [!armhf], libflac-dev, libwebp-dev, autotools-dev, diff -Nru chromium-browser-20.0.1132.57~r145807/debian/patches/fix-rpi chromium-browser-20.0.1132.57~r145807/debian/patches/fix-rpi --- chromium-browser-20.0.1132.57~r145807/debian/patches/fix-rpi 1970-01-01 01:00:00.000000000 +0100 +++ chromium-browser-20.0.1132.57~r145807/debian/patches/fix-rpi 2012-07-16 19:27:28.000000000 +0100 @@ -0,0 +1,277 @@ +Index: chromium-browser-20.0.1132.57~r145807/src/third_party/ffmpeg/ffmpeg.gyp +=================================================================== +--- chromium-browser-20.0.1132.57~r145807.orig/src/third_party/ffmpeg/ffmpeg.gyp 2012-07-13 00:18:26.000000000 +0000 ++++ chromium-browser-20.0.1132.57~r145807/src/third_party/ffmpeg/ffmpeg.gyp 2012-07-15 14:12:09.000000000 +0000 +@@ -173,15 +173,25 @@ + 'cflags!': [ + '-marm', + ], +- 'cflags': [ +- '-mthumb', +- '-march=armv7-a', +- '-mtune=cortex-a8', +- ], + 'conditions': [ ++ ['armv7 == 1', { ++ 'cflags': [ ++ '-march=armv7-a', ++ ], ++ }, { ++ 'cflags': [ ++ '-march=armv6', ++ ], ++ }], ++ ['arm_thumb == 1', { ++ 'cflags': [ ++ '-mthumb', ++ '-mtune=cortex-a8', ++ ], ++ }], + ['arm_neon == 0', { + 'cflags': [ +- '-mfpu=vfpv3-d16', ++ '-mfpu=<(arm_fpu)', + ], + }, { + 'cflags': [ +Index: chromium-browser-20.0.1132.57~r145807/src/third_party/ffmpeg/chromium/config/Chrome/linux/arm/config.h +=================================================================== +--- chromium-browser-20.0.1132.57~r145807.orig/src/third_party/ffmpeg/chromium/config/Chrome/linux/arm/config.h 2012-07-13 00:16:31.000000000 +0000 ++++ chromium-browser-20.0.1132.57~r145807/src/third_party/ffmpeg/chromium/config/Chrome/linux/arm/config.h 2012-07-15 14:12:09.000000000 +0000 +@@ -1,7 +1,7 @@ + /* Automatically generated by configure - do not modify! */ + #ifndef FFMPEG_CONFIG_H + #define FFMPEG_CONFIG_H +-#define FFMPEG_CONFIGURATION "--disable-everything --enable-fft --enable-rdft --disable-network --disable-bzlib --disable-zlib --disable-swscale --disable-amd3dnow --disable-amd3dnowext --enable-shared --optflags=-O2 --enable-decoder='theora,vorbis,vp8' --enable-decoder='pcm_u8,pcm_s16le,pcm_f32le' --enable-demuxer='ogg,matroska,wav' --enable-parser=vp8 --enable-cross-compile --cross-prefix=/usr/bin/armv7a-cros-linux-gnueabi- --target-os=linux --arch=arm --enable-armv6 --enable-armv6t2 --enable-armvfp --enable-thumb --disable-neon --extra-cflags='-march=armv7-a' --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfpu=vfpv3-d16' --extra-cflags='-mfloat-abi=softfp' --enable-pic --enable-decoder='aac,h264,mp3' --enable-demuxer='mp3,mov' --enable-parser=mpegaudio --enable-bsf=h264_mp4toannexb" ++#define FFMPEG_CONFIGURATION "--disable-everything --enable-fft --enable-rdft --disable-network --disable-bzlib --disable-zlib --disable-swscale --disable-amd3dnow --disable-amd3dnowext --enable-shared --optflags=-O2 --enable-decoder='theora,vorbis,vp8' --enable-decoder='pcm_u8,pcm_s16le,pcm_f32le' --enable-demuxer='ogg,matroska,wav' --enable-parser=vp8 --target-os=linux --arch=arm --enable-armv6 --enable-armvfp --disable-neon --extra-cflags='-march=armv6' --extra-cflags='-mfpu=vfp' --extra-cflags='-mfloat-abi=hard' --enable-pic --enable-decoder='aac,h264,mp3' --enable-demuxer='mp3,mov' --enable-parser=mpegaudio --enable-bsf=h264_mp4toannexb" + #define FFMPEG_LICENSE "LGPL version 2.1 or later" + #define FFMPEG_DATADIR "/usr/local/share/ffmpeg" + #define AVCONV_DATADIR "/usr/local/share/ffmpeg" +@@ -37,7 +37,7 @@ + #define HAVE_AMD3DNOWEXT 0 + #define HAVE_ARMV5TE 1 + #define HAVE_ARMV6 1 +-#define HAVE_ARMV6T2 1 ++#define HAVE_ARMV6T2 0 + #define HAVE_ARMVFP 1 + #define HAVE_AVX 0 + #define HAVE_MMI 0 +@@ -47,7 +47,7 @@ + #define HAVE_PPC4XX 0 + #define HAVE_SSE 0 + #define HAVE_SSSE3 0 +-#define HAVE_VFPV3 1 ++#define HAVE_VFPV3 0 + #define HAVE_VIS 0 + #define HAVE_BIGENDIAN 0 + #define HAVE_FAST_UNALIGNED 1 +@@ -113,7 +113,7 @@ + #define HAVE_LZO1X_999_COMPRESS 0 + #define HAVE_MACHINE_IOCTL_BT848_H 0 + #define HAVE_MACHINE_IOCTL_METEOR_H 0 +-#define HAVE_MAKEINFO 1 ++#define HAVE_MAKEINFO 0 + #define HAVE_MALLOC_H 1 + #define HAVE_MAPVIEWOFFILE 0 + #define HAVE_MEMALIGN 1 +@@ -186,7 +186,7 @@ + #define CONFIG_BZLIB 0 + #define CONFIG_CRYSTALHD 0 + #define CONFIG_DCT 1 +-#define CONFIG_DOC 1 ++#define CONFIG_DOC 0 + #define CONFIG_DWT 0 + #define CONFIG_DXVA2 0 + #define CONFIG_FASTDIV 1 +@@ -251,7 +251,7 @@ + #define CONFIG_SWRESAMPLE 1 + #define CONFIG_SWSCALE 0 + #define CONFIG_SWSCALE_ALPHA 1 +-#define CONFIG_THUMB 1 ++#define CONFIG_THUMB 0 + #define CONFIG_VAAPI 0 + #define CONFIG_VDA 0 + #define CONFIG_VDPAU 0 +Index: chromium-browser-20.0.1132.57~r145807/src/skia/skia.gyp +=================================================================== +--- chromium-browser-20.0.1132.57~r145807.orig/src/skia/skia.gyp 2012-07-15 12:17:16.000000000 +0000 ++++ chromium-browser-20.0.1132.57~r145807/src/skia/skia.gyp 2012-07-15 14:12:09.000000000 +0000 +@@ -1143,7 +1143,7 @@ + '../third_party/skia/src/opts/opts_check_arm.cpp', + ], + }], +- [ 'armv7 == 1 and arm_neon == 0', { ++ [ 'arm_neon == 0', { + 'sources': [ + '../third_party/skia/src/opts/memset.arm.S', + ], +Index: chromium-browser-20.0.1132.57~r145807/src/v8/build/common.gypi +=================================================================== +--- chromium-browser-20.0.1132.57~r145807.orig/src/v8/build/common.gypi 2012-07-13 00:20:40.000000000 +0000 ++++ chromium-browser-20.0.1132.57~r145807/src/v8/build/common.gypi 2012-07-15 14:12:09.000000000 +0000 +@@ -48,7 +48,8 @@ + # both for the snapshot and for the ARM target. Leaving the default value + # of 'false' will avoid VFP instructions in the snapshot and use CPU feature + # probing when running on the target. +- 'v8_can_use_vfp_instructions%': 'false', ++ 'v8_can_use_vfp2_instructions%': 'false', ++ 'v8_can_use_vfp3_instructions%': 'false', + + # Similar to vfp but on MIPS. + 'v8_can_use_fpu_instructions%': 'true', +@@ -132,9 +133,14 @@ + 'CAN_USE_UNALIGNED_ACCESSES=0', + ], + }], +- [ 'v8_can_use_vfp_instructions=="true"', { ++ [ 'v8_can_use_vfp2_instructions=="true"', { + 'defines': [ +- 'CAN_USE_VFP_INSTRUCTIONS', ++ 'CAN_USE_VFP2_INSTRUCTIONS', ++ ], ++ }], ++ [ 'v8_can_use_vfp3_instructions=="true"', { ++ 'defines': [ ++ 'CAN_USE_VFP3_INSTRUCTIONS', + ], + }], + [ 'v8_use_arm_eabi_hardfloat=="true"', { +Index: chromium-browser-20.0.1132.57~r145807/src/v8/src/arm/assembler-arm.cc +=================================================================== +--- chromium-browser-20.0.1132.57~r145807.orig/src/v8/src/arm/assembler-arm.cc 2012-07-13 00:20:39.000000000 +0000 ++++ chromium-browser-20.0.1132.57~r145807/src/v8/src/arm/assembler-arm.cc 2012-07-15 14:12:09.000000000 +0000 +@@ -52,7 +52,7 @@ + + + // Get the CPU features enabled by the build. For cross compilation the +-// preprocessor symbols CAN_USE_ARMV7_INSTRUCTIONS and CAN_USE_VFP_INSTRUCTIONS ++// preprocessor symbols CAN_USE_ARMV7_INSTRUCTIONS and CAN_USE_VFP3_INSTRUCTIONS + // can be defined to enable ARMv7 and VFPv3 instructions when building the + // snapshot. + static uint64_t CpuFeaturesImpliedByCompiler() { +@@ -60,9 +60,12 @@ + #ifdef CAN_USE_ARMV7_INSTRUCTIONS + answer |= 1u << ARMv7; + #endif // def CAN_USE_ARMV7_INSTRUCTIONS +-#ifdef CAN_USE_VFP_INSTRUCTIONS +- answer |= 1u << VFP3 | 1u << ARMv7; +-#endif // def CAN_USE_VFP_INSTRUCTIONS ++#ifdef CAN_USE_VFP3_INSTRUCTIONS ++ answer |= 1u << VFP3 | 1u << VFP2 | 1u << ARMv7; ++#endif // def CAN_USE_VFP3_INSTRUCTIONS ++#ifdef CAN_USE_VFP2_INSTRUCTIONS ++ answer |= 1u << VFP2; ++#endif // def CAN_USE_VFP2_INSTRUCTIONS + + #ifdef __arm__ + // If the compiler is allowed to use VFP then we can use VFP too in our code +@@ -1742,7 +1745,7 @@ + // Instruction details available in ARM DDI 0406A, A8-786. + // cond(31-28) | 1101(27-24)| U000(23-20) | | Rbase(19-16) | + // Vsrc(15-12) | 1011(11-8) | (offset/4) +- ASSERT(CpuFeatures::IsEnabled(VFP3)); ++ ASSERT(CpuFeatures::IsEnabled(VFP3) || CpuFeatures::IsEnabled(VFP2)); + int u = 1; + if (offset < 0) { + offset = -offset; +@@ -2028,7 +2031,7 @@ + // Instruction details available in ARM DDI 0406A, A8-646. + // cond(31-28) | 1100(27-24)| 010(23-21) | op=0(20) | Rt2(19-16) | + // Rt(15-12) | 1011(11-8) | 00(7-6) | M(5) | 1(4) | Vm +- ASSERT(CpuFeatures::IsEnabled(VFP3)); ++ ASSERT(CpuFeatures::IsEnabled(VFP3) || CpuFeatures::IsEnabled(VFP2)); + ASSERT(!src1.is(pc) && !src2.is(pc)); + emit(cond | 0xC*B24 | B22 | src2.code()*B16 | + src1.code()*B12 | 0xB*B8 | B4 | dst.code()); +Index: chromium-browser-20.0.1132.57~r145807/src/v8/src/arm/code-stubs-arm.cc +=================================================================== +--- chromium-browser-20.0.1132.57~r145807.orig/src/v8/src/arm/code-stubs-arm.cc 2012-07-13 00:20:39.000000000 +0000 ++++ chromium-browser-20.0.1132.57~r145807/src/v8/src/arm/code-stubs-arm.cc 2012-07-15 14:12:09.000000000 +0000 +@@ -978,7 +978,7 @@ + __ push(lr); + __ PrepareCallCFunction(0, 2, scratch); + if (masm->use_eabi_hardfloat()) { +- CpuFeatures::Scope scope(VFP3); ++ CpuFeatures::Scope scope(VFP2); + __ vmov(d0, r0, r1); + __ vmov(d1, r2, r3); + } +@@ -990,7 +990,7 @@ + // Store answer in the overwritable heap number. Double returned in + // registers r0 and r1 or in d0. + if (masm->use_eabi_hardfloat()) { +- CpuFeatures::Scope scope(VFP3); ++ CpuFeatures::Scope scope(VFP2); + __ vstr(d0, + FieldMemOperand(heap_number_result, HeapNumber::kValueOffset)); + } else { +@@ -1362,7 +1362,7 @@ + __ push(lr); + __ PrepareCallCFunction(0, 2, r5); + if (masm->use_eabi_hardfloat()) { +- CpuFeatures::Scope scope(VFP3); ++ CpuFeatures::Scope scope(VFP2); + __ vmov(d0, r0, r1); + __ vmov(d1, r2, r3); + } +@@ -3389,7 +3389,7 @@ + + __ push(lr); + __ PrepareCallCFunction(0, 1, scratch); +- if (masm->use_eabi_hardfloat()) { ++ if (masm->use_eabi_hardfloat() && CpuFeatures::IsSupported(VFP3)) { + __ vmov(d0, d2); + } else { + __ vmov(r0, r1, d2); +Index: chromium-browser-20.0.1132.57~r145807/src/v8/src/arm/macro-assembler-arm.cc +=================================================================== +--- chromium-browser-20.0.1132.57~r145807.orig/src/v8/src/arm/macro-assembler-arm.cc 2012-07-15 12:17:16.000000000 +0000 ++++ chromium-browser-20.0.1132.57~r145807/src/v8/src/arm/macro-assembler-arm.cc 2012-07-15 14:12:09.000000000 +0000 +@@ -930,7 +930,7 @@ + } + + void MacroAssembler::GetCFunctionDoubleResult(const DoubleRegister dst) { +- if (use_eabi_hardfloat()) { ++ if (use_eabi_hardfloat() && CpuFeatures::IsSupported(VFP3)) { + Move(dst, d0); + } else { + vmov(dst, r0, r1); +@@ -3313,7 +3313,7 @@ + + + void MacroAssembler::SetCallCDoubleArguments(DoubleRegister dreg) { +- if (use_eabi_hardfloat()) { ++ if (use_eabi_hardfloat() && CpuFeatures::IsSupported(VFP3)) { + Move(d0, dreg); + } else { + vmov(r0, r1, dreg); +@@ -3323,7 +3323,7 @@ + + void MacroAssembler::SetCallCDoubleArguments(DoubleRegister dreg1, + DoubleRegister dreg2) { +- if (use_eabi_hardfloat()) { ++ if (use_eabi_hardfloat() && CpuFeatures::IsSupported(VFP3)) { + if (dreg2.is(d0)) { + ASSERT(!dreg1.is(d1)); + Move(d1, dreg2); +@@ -3341,7 +3341,7 @@ + + void MacroAssembler::SetCallCDoubleArguments(DoubleRegister dreg, + Register reg) { +- if (use_eabi_hardfloat()) { ++ if (use_eabi_hardfloat() && CpuFeatures::IsSupported(VFP3)) { + Move(d0, dreg); + Move(r0, reg); + } else { +Index: chromium-browser-20.0.1132.57~r145807/src/v8/src/v8globals.h +=================================================================== +--- chromium-browser-20.0.1132.57~r145807.orig/src/v8/src/v8globals.h 2012-07-13 00:20:40.000000000 +0000 ++++ chromium-browser-20.0.1132.57~r145807/src/v8/src/v8globals.h 2012-07-15 14:12:09.000000000 +0000 +@@ -442,6 +442,7 @@ + CPUID = 10, // x86 + VFP3 = 1, // ARM + ARMv7 = 2, // ARM ++ VFP2 = 4, // ARM + SAHF = 0, // x86 + FPU = 1}; // MIPS + diff -Nru chromium-browser-20.0.1132.57~r145807/debian/patches/series chromium-browser-20.0.1132.57~r145807/debian/patches/series --- chromium-browser-20.0.1132.57~r145807/debian/patches/series 2012-07-01 20:25:18.000000000 +0100 +++ chromium-browser-20.0.1132.57~r145807/debian/patches/series 2012-07-16 19:27:28.000000000 +0100 @@ -26,3 +26,4 @@ alignment.patch arm.patch icon.patch +fix-rpi diff -Nru chromium-browser-20.0.1132.57~r145807/debian/rules chromium-browser-20.0.1132.57~r145807/debian/rules --- chromium-browser-20.0.1132.57~r145807/debian/rules 2012-07-01 20:25:18.000000000 +0100 +++ chromium-browser-20.0.1132.57~r145807/debian/rules 2012-07-16 19:27:28.000000000 +0100 @@ -107,10 +107,11 @@ GYP_DEFINES += -DUSE_EABI_HARDFLOAT GYP_DEFINES += \ v8_use_arm_eabi_hardfloat=true \ - arm_fpu=vfpv3 \ + v8_can_use_vfp2_instructions=true \ + arm_fpu=vfp \ arm_float_abi=hard \ - arm_thumb=1 \ - armv7=1 \ + arm_thumb=0 \ + armv7=0 \ arm_neon=0 \ $(NULL) endif