Hello everybody,
I've been trying to compile chromium browser for armv5 (compiling firefox for < armv7 seems like an impossible task), and while I had some success I always get stuck at ffmpeg not being able to compile (or unable to use the system one). So if anybody is interested in helping to get to compile here's what I've got so far:
Error when trying to compile without using system's ffmpeg (use chromium provided version):
$this->bbcode_second_pass_code('', 'distcc[21102] ERROR: compile /root/.ccache/tmp/dct32_fixe.tmp.Arch Linux ARM install.21073.i on 192.168.1.8 failed
distcc[21102] (dcc_build_somewhere) Warning: remote compilation of '/root/.ccache/tmp/dct32_fixe.tmp.Arch Linux ARM install.21073.i' failed, retrying locally
distcc[21102] Warning: failed to distribute /root/.ccache/tmp/dct32_fixe.tmp.Arch Linux ARM install.21073.i to 192.168.1.8, running locally instead
distcc[21110] (dcc_build_somewhere) Warning: failed to distribute, running locally instead
distcc[21102] ERROR: compile /root/.ccache/tmp/dct32_fixe.tmp.Arch Linux ARM install.21073.i on localhost failed
{standard input}: Assembler messages:
{standard input}:37: Error: selected processor does not support Thumb mode `smmul r4,r3,r4'
{standard input}:48: Error: selected processor does not support Thumb mode `smmul r3,r3,r2'
{standard input}:58: Error: selected processor does not support Thumb mode `smmul ip,r5,r2'
{standard input}:67: Error: selected processor does not support Thumb mode `smmul r6,r3,r6'
{standard input}:79: Error: selected processor does not support Thumb mode `smmul r7,r3,r7'
{standard input}:90: Error: selected processor does not support Thumb mode `smmul sl,r3,r4'
{standard input}:101: Error: selected processor does not support Thumb mode `smmul r3,r2,r3'
{standard input}:110: Error: selected processor does not support Thumb mode `smmul r7,r7,r2'
{standard input}:123: Error: selected processor does not support Thumb mode `smmul r9,r8,r4'
{standard input}:138: Error: selected processor does not support Thumb mode `smmul r8,ip,r3'
{standard input}:151: Error: selected processor does not support Thumb mode `smmul r8,r2,r4'
{standard input}:163: Error: selected processor does not support Thumb mode `smmul r5,r7,r3'
{standard input}:175: Error: selected processor does not support Thumb mode `smmul r5,r3,r5'
{standard input}:185: Error: selected processor does not support Thumb mode `smmul r3,r3,r2'
{standard input}:198: Error: selected processor does not support Thumb mode `smmul r9,r6,r2'
{standard input}:206: Error: selected processor does not support Thumb mode `smmul r7,r3,r7'
{standard input}:217: Error: selected processor does not support Thumb mode `smmul r6,r3,r6'
{standard input}:227: Error: selected processor does not support Thumb mode `smmul r3,r3,r2'
{standard input}:238: Error: selected processor does not support Thumb mode `smmul r2,r2,r4'
{standard input}:247: Error: selected processor does not support Thumb mode `smmul r8,r3,r6'
{standard input}:262: Error: selected processor does not support Thumb mode `smmul r5,r5,r4'
{standard input}:273: Error: selected processor does not support Thumb mode `smmul r2,r2,r3'
{standard input}:287: Error: selected processor does not support Thumb mode `smmul sl,r4,sl'
{standard input}:296: Error: selected processor does not support Thumb mode `smmul r7,r7,r9'
{standard input}:307: Error: selected processor does not support Thumb mode `smmul r8,ip,r6'
{standard input}:323: Error: selected processor does not support Thumb mode `smmul r4,ip,r5'
{standard input}:335: Error: selected processor does not support Thumb mode `smmul r8,r4,r6'
{standard input}:349: Error: selected processor does not support Thumb mode `smmul r4,r2,r5'
{standard input}:362: Error: selected processor does not support Thumb mode `smmul r4,r3,r6'
{standard input}:375: Error: selected processor does not support Thumb mode `smmul r8,r2,r5'
{standard input}:391: Error: selected processor does not support Thumb mode `smmul r3,r4,r6'
{standard input}:403: Error: selected processor does not support Thumb mode `smmul r3,r7,r5'
{standard input}:415: Error: selected processor does not support Thumb mode `smmul r4,r3,r4'
{standard input}:428: Error: selected processor does not support Thumb mode `smmul r3,r3,r2'
{standard input}:434: Error: selected processor does not support Thumb mode `smmul r8,r5,r2'
{standard input}:445: Error: selected processor does not support Thumb mode `smmul r5,r3,r5'
{standard input}:456: Error: selected processor does not support Thumb mode `smmul r9,r3,r2'
{standard input}:468: Error: selected processor does not support Thumb mode `smmul r4,r4,r3'
{standard input}:479: Error: selected processor does not support Thumb mode `smmul r3,r3,r6'
{standard input}:489: Error: selected processor does not support Thumb mode `smmul r4,r4,r6'
{standard input}:499: Error: selected processor does not support Thumb mode `smmul r9,r7,r2'
{standard input}:514: Error: selected processor does not support Thumb mode `smmul r7,r8,r3'
{standard input}:527: Error: selected processor does not support Thumb mode `smmul r7,r6,r2'
{standard input}:537: Error: selected processor does not support Thumb mode `smmul r6,r4,r3'
{standard input}:548: Error: selected processor does not support Thumb mode `smmul r5,r3,r5'
{standard input}:562: Error: selected processor does not support Thumb mode `smmul r3,r3,r2'
{standard input}:573: Error: selected processor does not support Thumb mode `smmul sl,r3,r5'
{standard input}:576: Error: selected processor does not support Thumb mode `smmul r4,r4,r2'
{standard input}:589: Error: selected processor does not support Thumb mode `smmul r3,r3,r5'
{standard input}:600: Error: selected processor does not support Thumb mode `smmul r9,r5,r2'
{standard input}:611: Error: selected processor does not support Thumb mode `smmul r1,r1,r2'
{standard input}:622: Error: selected processor does not support Thumb mode `smmul r9,r3,r2'
{standard input}:631: Error: selected processor does not support Thumb mode `smmul r6,r6,r5'
{standard input}:646: Error: selected processor does not support Thumb mode `smmul r2,r2,r8'
{standard input}:659: Error: selected processor does not support Thumb mode `smmul r9,r3,r4'
{standard input}:662: Error: selected processor does not support Thumb mode `smmul r1,r1,r4'
{standard input}:679: Error: selected processor does not support Thumb mode `smmul sl,r6,r7'
{standard input}:692: Error: selected processor does not support Thumb mode `smmul r3,r3,r4'
{standard input}:699: Error: selected processor does not support Thumb mode `smmul sl,r5,r4'
{standard input}:712: Error: selected processor does not support Thumb mode `smmul r6,r1,r7'
{standard input}:778: Error: selected processor does not support Thumb mode `smmul ip,r6,r4'
{standard input}:789: Error: selected processor does not support Thumb mode `smmul r5,r2,r7'
{standard input}:800: Error: selected processor does not support Thumb mode `smmul r6,r1,r4'
{standard input}:817: Error: selected processor does not support Thumb mode `smmul r9,r4,r7'
{standard input}:832: Error: selected processor does not support Thumb mode `smmul r4,r8,r7'
{standard input}:844: Error: selected processor does not support Thumb mode `smmul r2,r8,r3'
{standard input}:854: Error: selected processor does not support Thumb mode `smmul sl,r4,r7'
{standard input}:866: Error: selected processor does not support Thumb mode `smmul r5,r6,r3'
{standard input}:879: Error: selected processor does not support Thumb mode `smmul r5,r1,r7'
{standard input}:890: Error: selected processor does not support Thumb mode `smmul r4,r5,r3'
{standard input}:910: Error: selected processor does not support Thumb mode `smmul r1,r1,r3'
{standard input}:918: Error: selected processor does not support Thumb mode `smmul r8,r6,r7'
{standard input}:933: Error: selected processor does not support Thumb mode `smmul r4,r5,r7'
{standard input}:948: Error: selected processor does not support Thumb mode `smmul r5,r6,r3'
{standard input}:965: Error: selected processor does not support Thumb mode `smmul ip,r2,r7'
{standard input}:974: Error: selected processor does not support Thumb mode `smmul r2,r2,r3'
{standard input}:996: Error: selected processor does not support Thumb mode `smmul ip,r6,r7'
{standard input}:1007: Error: selected processor does not support Thumb mode `smmul r4,r4,r3'
{standard input}:1016: Error: selected processor does not support Thumb mode `smmul r7,r5,r7'
{standard input}:1026: Error: selected processor does not support Thumb mode `smmul r3,r6,r3'
make: *** [out/Release/obj.target/ffmpegsumo/third_party/ffmpeg/libavcodec/dct32_fixed.o] Error 1
make: *** Waiting for unfinished jobs....')
Error when trying to use system ffmpeg libraries:
$this->bbcode_second_pass_code('', 'distcc[14824] ERROR: compile out/Release/obj.target/ffmpeg/geni/ffmpeg_stubs.cc on 192.168.1.8 failed
distcc[14824] (dcc_build_somewhere) Warning: remote compilation of 'out/Release/obj.target/ffmpeg/geni/ffmpeg_stubs.cc' failed, retrying locally
distcc[14824] Warning: failed to distribute out/Release/obj.target/ffmpeg/geni/ffmpeg_stubs.cc to 192.168.1.8, running locally instead
CXX(target) out/Release/obj.target/skia/third_party/skia/src/images/bmpdecoderhelper.o
distcc[14862] (dcc_build_somewhere) Warning: failed to distribute, running locally instead
out/Release/obj.target/ffmpeg/geni/ffmpeg_stubs.cc:19:29: fatal error: libavformat/url.h: No such file or directory
compilation terminated.
distcc[14824] ERROR: compile out/Release/obj.target/ffmpeg/geni/ffmpeg_stubs.cc on localhost failed
make: *** [out/Release/obj.target/ffmpeg/geni/ffmpeg_stubs.o] Error 1
make: *** Waiting for unfinished jobs....')
My pkgbuild:
$this->bbcode_second_pass_code('', '# $Id: PKGBUILD 160354 2012-06-01 12:58:14Z dreisner $
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
# Building for x86_64 requires lib32-glibc & lib32-zlib from [multilib]. These
# libraries are linked from the NaCl toolchain, and are only needed during
# build time.
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - removed NaCl, not for ARM
# - adjusted gyp flags for v7h
buildarch=2
pkgname=chromium
pkgver=24.0.1312.52
pkgrel=1
pkgdesc="The open-source project behind Google Chrome, an attempt at creating a safer, faster, and more stable browser"
arch=('arm')
url="http://www.chromium.org/"
license=('BSD')
depends=('gtk2' 'nss' 'alsa-lib' 'xdg-utils' 'bzip2' 'libevent' 'libxss'
'libgcrypt' 'ttf-dejavu' 'desktop-file-utils' 'hicolor-icon-theme')
makedepends=('python2' 'perl' 'gperf' 'yasm' 'mesa' 'libgnome-keyring'
'elfutils' 'subversion')
optdepends=('kdebase-kdialog: needed for file dialogs in KDE')
# Needed for the NaCl toolchain
[[ $CARCH == x86_64 ]] && makedepends+=('lib32-zlib')
provides=('chromium-browser')
conflicts=('chromium-browser')
backup=('etc/chromium/default')
install=chromium.install
source=(http://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.bz2
chromium.desktop
chromium.default
chromium.sh
chromium-20.0.1132.57-glib-2.16-use-siginfo_t.patch
chromium-ppapi-r0.patch
chromium-no-pnacl-r0.patch)
sha256sums=('f30df8b0f4c999185bb11d873f0caa5d8bc581eb4f37ce0fe85fb7900a01d711'
'09bfac44104f4ccda4c228053f689c947b3e97da9a4ab6fa34ce061ee83d0322'
'478340d5760a9bd6c549e19b1b5d1c5b4933ebf5f8cfb2b3e2d70d07443fe232'
'4999fded897af692f4974f0a3e3bbb215193519918a1fa9b31ed51e74a2dccb9'
'c1baf14121502efbc2a31b64029dcafa0e28ca5b71ad0e28a3c6342d18198615'
'1f4b57670d317959bc2dc60e5d2a44aa8fc6028f7ed540cdb502fa0aa99c81bd')
build() {
cd "$srcdir/chromium-$pkgver"
msg "Fix build with glibc 2.16"
patch -Np1 -i "$srcdir/chromium-20.0.1132.57-glib-2.16-use-siginfo_t.patch"
msg "Fix build without NaCl glibc toolchain (patch from Gentoo)"
patch -Np0 -i "$srcdir/chromium-ppapi-r0.patch"
msg "Fix build without NaCl pnacl toolchain (patch from Gentoo)"
patch -Np0 -i "$srcdir/chromium-no-pnacl-r0.patch"
# http://code.google.com/p/chromium/issues/detail?id=109527
sed -i 's|glib/gutils.h|glib.h|' ui/base/l10n/l10n_util.cc
msg "Missing gyp files in tarball (http://crbug.com/144823)"
sed -i '/nacl_test_data\.gyp/d' chrome/chrome_tests.gypi
msg "Use Python 2"
find . -type f -exec sed -i -r \
-e 's|/usr/bin/python$|&2|g' \
-e 's|(/usr/bin/python2)\.4$|\1|g' \
{} +
msg "Pyhton2: There are still a lot of relative calls which need a workaround"
mkdir "$srcdir/python2-path"
ln -s /usr/bin/python2 "$srcdir/python2-path/python"
export PATH="$srcdir/python2-path:$PATH"
ln -s "$srcdir/pepper_${_nacl_sdk%%.*}/toolchain/linux_x86_newlib" \
native_client/toolchain/linux_x86_newlib
# CFLAGS are passed through release_extra_cflags below
export -n CFLAGS CXXFLAGS
msg "Building!"
build/gyp_chromium --depth=. \
-Dwerror= \
-Dlinux_sandbox_path=/usr/lib/chromium/chromium-sandbox \
-Dlinux_strip_binary=1 \
-Dlinux_use_gold_binary=0 \
-Dlinux_use_gold_flags=0 \
-Drelease_extra_cflags="$CFLAGS" \
-Dffmpeg_branding=Chrome \
-Dproprietary_codecs=1 \
-Duse_system_bzip2=1 \
-Duse_system_ffmpeg=0 \
-Duse_system_libevent=1 \
-Duse_system_libjpeg=1 \
-Duse_system_libpng=1 \
-Duse_system_libxml=0 \
-Duse_system_ssl=0 \
-Duse_system_yasm=1 \
-Duse_system_zlib=1 \
-Duse_gconf=0 \
-Ddisable_glibc=1 \
-Ddisable_sse2=1 \
-Darm_thumb=0 \
-Darmv7=0 \
-Dtarget_arch=arm \
-Darm_neon=0 \
-Dlinux_use_tcmalloc=0 \
-Ddisable_nacl=1
make chrome chrome_sandbox BUILDTYPE=Release
}
package() {
cd "$srcdir/chromium-$pkgver"
install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium"
install -Dm4755 -o root -g root out/Release/chrome_sandbox \
"$pkgdir/usr/lib/chromium/chromium-sandbox"
cp out/Release/{*.pak,libffmpegsumo.so} \
"$pkgdir/usr/lib/chromium/"
# Allow users to override command-line options
install -Dm644 "$srcdir/chromium.default" "$pkgdir/etc/chromium/default"
cp -a out/Release/locales "$pkgdir/usr/lib/chromium/"
install -Dm644 out/Release/chrome.1 "$pkgdir/usr/share/man/man1/chromium.1"
install -Dm644 "$srcdir/chromium.desktop" \
"$pkgdir/usr/share/applications/chromium.desktop"
for size in 22 24 48 64 128 256; do
install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \
"$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
done
for size in 16 32; do
install -Dm644 "chrome/app/theme/default_100_percent/chromium/product_logo_$size.png" \
"$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
done
install -D "$srcdir/chromium.sh" "$pkgdir/usr/bin/chromium"
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/chromium/LICENSE"
}
# vim:set ts=2 sw=2 et:
')
All patches being used are at: https://github.com/archlinuxarm/PKGBUIL ... a/chromium
Either download them or checkout archlinuxarm github repo.
EDIT: files to look in (i guess)
third_party/ffmpeg/ffmpeg.gyp
third_party/ffmpeg/chromium/scripts/build_ffmpeg.sh
seems they hardcoded armv7 + thumb in the config.