Проблемы со сборкой libvpx-0.9.6 - попытка собрать xfce (РЕШЕНО)
subclox 28 мая, 2011 - 13:21
Ставлю Gentoo на удалённой машине через sshd. Всё подготовлено (x-server тоже), но без среды. Так как процессор и видеокарта не очень сильная, решили поставить xfce -следовали мануалу http://www.gentoo.org/doc/en/xfce-config.xml
При попытке собрать libvpx неустранимо появляется ошибка (последние несколько строк лога):
[AS] vpx_ports/x86_abi_support.asm.o [CREATE] libvpx.ver [AR] libvpx_g.a [LD] libvpx.so.0.9.6 [STRIP] libvpx.a < libvpx_g.a vp8/common/x86/vp8_asm_stubs.c.o: In function `vp8_sixtap_predict8x4_sse2': vp8_asm_stubs.c:(.text+0x4a0): undefined reference to `vp8_six_tap_mmx' vp8_asm_stubs.c:(.text+0x4ee): undefined reference to `vp8_six_tap_mmx' vp8_asm_stubs.c:(.text+0x538): undefined reference to `vp8_six_tap_mmx' vp8_asm_stubs.c:(.text+0x590): undefined reference to `vp8_six_tap_mmx' vp8/common/x86/vp8_asm_stubs.c.o: In function `vp8_sixtap_predict8x8_sse2': vp8_asm_stubs.c:(.text+0x619): undefined reference to `vp8_six_tap_mmx' vp8/common/x86/vp8_asm_stubs.c.o:vp8_asm_stubs.c:(.text+0x667): more undefined references to `vp8_six_tap_mmx' follow vp8/encoder/x86/variance_sse2.c.o: In function `vp8_sub_pixel_variance4x4_wmt': variance_sse2.c:(.text+0xe3a): undefined reference to `vp8_vp7_bilinear_filters_mmx' variance_sse2.c:(.text+0xe82): undefined reference to `vp8_filter_block2d_bil4x4_var_mmx' vp8/encoder/x86/variance_sse2.c.o: In function `vp8_variance4x4_wmt': variance_sse2.c:(.text+0xf91): undefined reference to `vp8_get4x4var_mmx' vp8/common/x86/subpixel_sse2.asm.o: In function `no symbol': vp8/common/x86/subpixel_sse2.asm:(.text+0x76f): undefined reference to `vp8_bilinear_filters_mmx' /usr/lib/gcc/i686-pc-linux-gnu/4.4.5/../../../../i686-pc-linux-gnu/bin/ld: vp8/common/x86/subpixel_sse2.asm.o: relocation R_386_GOTOFF against undefined symbol `vp8_bilinear_filters_mmx' can not be used when making a shared object /usr/lib/gcc/i686-pc-linux-gnu/4.4.5/../../../../i686-pc-linux-gnu/bin/ld: final link failed: Bad value collect2: выполнение ld завершилось с кодом возврата 1 make[1]: *** [libvpx.so.0.9.6] Ошибка 1 make[1]: *** Ожидание завершения заданий... make: *** [.DEFAULT] Ошибка 2 emake failed
Для того, чтобы собрать остальные пакеты, выставлял флаг --keep-going, но пакеты, зависящие от libvpx, не собираются. Как можно локализовать проблему?
Содержание файла /etc/make.conf:
# These settings were set by the catalyst build script that automatically # built this stage. # Please consult /usr/share/portage/config/make.conf.example for a more # detailed example. CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" CXXFLAGS="${CFLAGS}" # WARNING: Changing your CHOST is not something that should be done lightly. # Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing. CHOST="i686-pc-linux-gnu" USE="sse sse2 sse3 ssse3 threads -cups -gnome -kde cdr alsa sqlite \ kdrive apng -minimal -qt4 dbus jpeg lock session thunar udev X \ startup-notification" INPUT_DEVICES="keyboard mouse evdev" VIDEO_CARDS="radeon" LINGUAS="ru en" MAKEOPTS="-j2" ACCEPT_KEYWORDS="~x86" ACCEPT_LICENSE="*"
»
- Для комментирования войдите или зарегистрируйтесь
,
Интересно, насколько же он "не очень сильный", что при этом поддерживает ssse3 (неужели нынешние "-march=pentium4" такие крутые)?! Да и в логе у вас как раз жалобы на модули с SIMD-инструкциями... Имхо, имеет смысл точно разобраться с командами, поддерживаемыми именно этим процессором, а затем согласовать с use-флагами (а возможно, и с CFLAGS - но делать это стОит только если реально понимаете, что именно вы делаете)
Мы тоже не всего читали Шнитке!.. © В. Вишневский
Ну, для нынешних мерок
Ну, для нынешних мерок процессор не самый быстрый - Celeron одноядерный на 2.4 ГГц. Только я не знаю, как правильно расставить CFLAGS, чтобы избежать этой проблемы.
Проблема действительно была в
Проблема действительно была в неправильно расставленных флагах. Не был включен mmx и sse3. Глупую ошибку допустил. Попробовал просто скопировать флаги со своей системы:
Проблема решилась.
Где-то был баг, в котором
Где-то был баг, в котором было сообщение, что libvpx не собирается без mmx.
Не грусти, товарищ! Всё хорошо, beautiful good!
ещё libvpx-0.9.6 не
ещё libvpx-0.9.6 не собирается c doc или без него с установленным doxygen и php.
выдаёт sandbox access violation на (php -v из configure)