Проблемы со сборкой 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)