На моём компьютере с процессором Athlon XP 1600+ не запускается bleeding edge браузер Chromium, потому что бинарная сборка оптимизирована под Pentium4 и SSE2. SSE2 мой Атлон не поддерживает, вестимо.
$ chromium-browser
[28898:28898:32389465322:ERROR:/build/buildd/chromium-browser-2.0.178.0~svn20090430r14953/build-tree/src/chrome/common/temp_scaffolding_stubs.cc(132)] Not implemented reached in static bool FirstRun::IsChromeFirstRun()
Illegal instruction
$
Как в Ubuntu перекомпилировать Chromium под Athlon XP и прочие не-SSE2 процессоры? Можно либо последовать совету разработчиков и собрать его просто из исходников, либо пересобрать сам пакет по-дебиановски вот так:
1. Точно так же, как ночные бинарники, скачиваем пакет свежего исходного кода:
$ apt-get source chromium-browser
2. Скачиваем и устанавливаем зависимости:
$ sudo apt-get build-dep chromium-browser
3. В текущем каталоге появится исходный код (метров триста) и папка chromium-browser-3.0* c правилами сборки и пакетом того же самого исходного кода chromium-browser-2.0.178.0~svn20090502r15142-source.tar.bz2.
4. Однако, в файле build-tree/src/build/common.gypi прописаны те самые параметры оптимизации под P4 и SSE2 для профиля Debug (для Release их нет):
'cflags': [Мы можем либо заменить их, например, на
'-m32',
'-pthread',
'-march=pentium4',
'-fno-exceptions',
'-mfpmath=sse',
'-msse2',
'-Wall',
'cflags': [Для этого пишем патч:
'-m32',
'-pthread',
'-mtune=athlon-xp',
'-fno-exceptions',
'-mfpmath=sse',
'-msse',
'-Wall',
Index: src/build/common.gypi
===================================================================
--- src.orig/build/common.gypi 2009-05-29 19:01:23.000000000 +0200
+++ src/build/common.gypi 2009-05-30 19:02:27.000000000 +0200
@@ -285,7 +285,7 @@
# Some utility binaries need to be build with the host's native
# config (i.e. no 32-bit override).
'Tool': {
- 'cflags!': ['-m32', '-march=pentium4', '-msse2', '-mfpmath=sse'],
+ 'cflags!': ['-m32', '-mtune=athlon-xp', '-msse', '-mfpmath=sse'],
'ldflags!': ['-m32'],
'cflags': [ '-O2' ],
},
@@ -343,8 +343,8 @@
'conditions': [
['branding=="Chromium"', {
'cflags': [
- '-march=pentium4',
- '-msse2',
+ '-mtune=athlon-xp',
+ '-msse',
'-mfpmath=sse',
],
}],
и кладем его в файл chromium-browser-3.0*/debian/patches/drop_sse2.patch
5. Теперь этот пакет можно собрать, как обычно,
$ debuild -uc -us
7. Всё. На моём несчастном Athlon XP 1600+ сборка пакета занимает 6 часов, зато браузер
потом работает.
Update: Быстрый какой, как настоящий! Супер! Жаль только, что рамка окна видна и настройки пока не все можно менять. Ну и ещё много багов наверняка найдётся.
$ debuild -uc -us
7. Всё. На моём несчастном Athlon XP 1600+ сборка пакета занимает 6 часов, зато браузер
потом работает.
Update: Быстрый какой, как настоящий! Супер! Жаль только, что рамка окна видна и настройки пока не все можно менять. Ну и ещё много багов наверняка найдётся.
No comments:
Post a Comment