Дополнено: проблема решена, вот бинари для Debian 5 backports (на другом линуксе тоже работает, пробовал в Gentoo):
firefox-37.0.2.tar.xz
firefox-38.0.1esr.tar.xz
Исходное сообщение:
Пилю чисто для себя репо для старого линукса (Opensuse 11.4 и Debian 5), в который входят свежее ядро, Glibc, GCC и графический стек. Потому что мне очень симпатичен старый Linux, но там не работает новый софт.
Начал собирать Firefox 37.0.2. Скопировал .mozconfig из SRPM для CentOS 5 и наложил некоторые патчи (например бэкпорт для старого Pango). В процессе компиляции - ошибка:
make[5]: Entering directory `/1/zenitur/firefox/mozilla-release/objdir/gfx/skia'
mkdir -p '.deps/'
SkBlitRow_opts_SSE4_asm.o
gcc -o SkBlitRow_opts_SSE4_asm.o -fPIC -Wa,--noexecstack -include ../../mozilla-config.h -DMOZILLA_CLIENT -g -I/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/include/config -I/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/include/core -I/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/include/effects -I/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/include/gpu -I/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/include/images -I/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/include/pathops -I/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/include/pipe -I/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/include/ports -I/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/include/utils -I/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/include/utils/mac -I/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/include/utils/win -I/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/include/views -I/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/src/core -I/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/src/gpu -I/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/src/gpu/effects -I/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/src/gpu/gl -I/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/src/image -I/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/src/lazy -I/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/src/opts -I/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/src/sfnt -I/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/src/utils -I/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/src/utils/mac -I/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/src/utils/win -c /1/zenitur/firefox/mozilla-release/gfx/skia/trunk/src/opts/SkBlitRow_opts_SSE4_asm.S
SkAdvancedTypefaceMetrics.o
/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/src/opts/SkBlitRow_opts_SSE4_asm.S: Assembler messages:
/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/src/opts/SkBlitRow_opts_SSE4_asm.S:119: Error: suffix or operands invalid for `pblendvb'
/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/src/opts/SkBlitRow_opts_SSE4_asm.S:147: Error: suffix or operands invalid for `pblendvb'
/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/src/opts/SkBlitRow_opts_SSE4_asm.S:199: Error: suffix or operands invalid for `pblendvb'
/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/src/opts/SkBlitRow_opts_SSE4_asm.S:240: Error: suffix or operands invalid for `pblendvb'
/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/src/opts/SkBlitRow_opts_SSE4_asm.S:304: Error: suffix or operands invalid for `pblendvb'
/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/src/opts/SkBlitRow_opts_SSE4_asm.S:329: Error: suffix or operands invalid for `pblendvb'
/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/src/opts/SkBlitRow_opts_SSE4_asm.S:365: Error: suffix or operands invalid for `pblendvb'
/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/src/opts/SkBlitRow_opts_SSE4_asm.S:402: Error: suffix or operands invalid for `pblendvb'
/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/src/opts/SkBlitRow_opts_SSE4_asm.S:427: Error: suffix or operands invalid for `pblendvb'
/1/zenitur/firefox/mozilla-release/gfx/skia/trunk/src/opts/SkBlitRow_opts_SSE4_asm.S:463: Error: suffix or operands invalid for `pblendvb'
make[5]: *** [SkBlitRow_opts_SSE4_asm.o] Error 1
make[5]: Leaving directory `/1/zenitur/firefox/mozilla-release/objdir/gfx/skia'
make[4]: *** [gfx/skia/target] Error 2
В процессе поиска ошибки в Google я нашёл такую же в KDE: https://bugs.kde.org/show_bug.cgi?id=271438 Причём там прямым текстом упоминается Debian 5:
Anybody has objections to applying the patch?
Without your patch, regtest fail to compile on debian5.
With your patch, it is ok.
So, looks ok to me.
Thanks
Собственно патч:
===================================================================
--- configure.in (revision 12325)
+++ configure.in (working copy) @@
-1551,7 +1551,9 @@
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
do { long long int x;
__asm__ __volatile__(
- "crc32q %%r15,%%r15" : : : "r15" ); }
+ "crc32q %%r15,%%r15" : : : "r15" );
+ __asm__ __volatile__(
+ "pblendvb (%rcx), %xmm11"); }
while (0)
]])], [
ac_have_as_sse42=yes
Как его применить к Firefox? Больше поиском я не нашёл в точности такую же ошибку! Попробовал дописать в .mozconfig ac_add_options --enable-optimize="-march=i686"
- не помогло.