Chromium mit gcc-4.5 bauen

This blog post has been published on 2010-09-20 and may be out of date.

Heute zeige ich wie du Chromium mit gcc-4.5 bauen kannst und den Browser somit ein wenig optimieren kannst.


Root-Rechte beschaffen…
sudo su
…nun fügen wie die aktuellen Chromium-Quellen in unser System ein:
add-apt-repository ppa:chromium-daily/ppa && apt-get update
(ls -al /etc/apt/sources.list.d/chromium-daily-ppa*)
Optional: Wer nun bereits die aktuelle Chromium-Version installieren möchte, kann dies mit folgendem Befehl bewerkstelligen.
sudo aptitude install chromium-browser chromium-browser-l10n chromium-codecs-ffmpeg-extra
Nun installieren wir einige Liberiers und Werkzeuge um Chromium per gcc-4.5 kompilieren zu können.
aptitude install g++-4.5 hardening-wrapper libbz2-dev lzma-dev libhunspell-dev libsqlite3-dev libxss-dev libgnome-keyring-dev gyp
(ggf. wirst du im laufe der Kompilierung aufgefordert noch weitere Liberiers nach zu installieren)
Als nächstes erstellen wir einen neues Verzeichnis…
cd /usr/src
mkdir chromium
cd chromium
… in diesem Verzeichnis, laden wir mit folgenden Befehlen die aktuellen Chromium-Browser-Quellen.
apt-get source chromium-browser
bzr get https://code.launchpad.net/~chromium-team/chromium-browser/chromium-browser.head
Wechseln nun in folgendes Verzeichnis und kopieren ggf. die neuen Konfigurationen hinzu…
cd chromium-browser-*
cp -pvr ../chromium-browser.head/ .
… nun müssen wir noch einige Änderungen / Optimierungen vornehmen, dazu editieren wir folgende Datei:
(dabei sollte man beachten, dass nicht alle CPUs “SSE2” unterstützen)
vim debian/rules
———————————————————-
54c54
< GYP_DEFINES = disable_sse2=1
> #GYP_DEFINES = disable_sse2=1
59a60,62
> # Enable gcc4.5
> GYP_DEFINES=’werror=’
>
119d121
< # Set this to use gcc 4.3 instead of 4.4
122,127d123
<
< ifeq (1/4.4,$(AVOID_GCC_44)/$(CC_VERSION))
< CC  := gcc-4.3
< CXX := g++-4.3
< BUILD_ARGS += CC=$(CC) CXX=$(CXX) CC.host=$(CC) CXX.host=$(CXX)
< endif
129,131c125,130
< ifeq (4.4,$(CC_VERSION))
< GYP_DEFINES += no_strict_aliasing=1 gcc_version=44
< endif
> # gcc-4.5
> CC  := gcc-4.5
> CXX := g++-4.5
> BUILD_ARGS += CC=$(CC) CXX=$(CXX) CC.host=$(CC) CXX.host=$(CXX)
> CFLAGS += -O3
> GYP_DEFINES += no_strict_aliasing=1 gcc_version=45 linux_strip_binary=1 remove_webcore_debug_symbols=1
182c181
< USE_SYSTEM_SQLITE := 0
> USE_SYSTEM_SQLITE := 1
186c185
< GYP_DEFINES += use_system_zlib=0
> GYP_DEFINES += use_system_zlib=1
192,197c191,206
< use_system_bzip2=1 \
< use_system_libjpeg=1 \
< use_system_libpng=1 \
< use_system_sqlite=$(USE_SYSTEM_SQLITE) \
< use_system_libxml=0 \
< use_system_libxslt=1 \
>         gcc_version=45 \
>         no_strict_aliasing=1 \
>         use_system_sqlite=$(USE_SYSTEM_SQLITE) \
>         use_system_libxml=0 \
>         use_system_libxslt=1 \
>         use_system_ffmpeg=1 \
>         proprietary_codecs=1 \
>         use_system_libjpeg=1 \
>         use_system_libxslt=1 \
>         use_system_libxml=1 \
>         use_system_bzip2=1 \
>         use_system_zlib=1 \
>         use_system_libpng=1 \
>         use_system_yasm=1 \
>         use_system_libevent=1 \
>         use_system_ssl=0 \
270c279
< rm -f $(subst_files)
> rm -f $(subst_files) *.cdbs-config_list
———————————————————-
Als nächstes ändern wir noch folgende Datei…
vim debian/control
———————————————————-
15c15
< g++-4.3 | g++-4.2,
> g++-4.5,
———————————————————-
Nun können wir aus diesen Quellen eine neue “.deb”-Datei bauen. :-)
export DEBFULLNAME='chromium-browser';export DEBEMAIL='deine@mail-adresse.de';debuild -i -us -uc
Auf meinem Netbook hat dieser Vorgang zirka 4 Stunden gedauert und schon hat man Chromium neu gebaut ;-) und kann diesen per dpkg installieren.
cd ..
dpkg -i *.deb


Hier noch meine Version: http://drop.io/wbrejzv


Wenn noch jemand Erfahrungen mit dem kompilieren von Programmen hat und mir diesbezüglich (Chromium – Optimierung) noch weitere Tipps geben kann, wäre ich euch sehr dankbar.


PS: Wer Chrom / Chromium unter Windows nutzen möchte, solle sich einmal SRWare Iron anschauen.

Published by

voku

Lars Moelleken | Ich bin root, ich darf das!

%d bloggers like this: