Не могу собрать djvulibre

Автор: unixoid Дата: 06.09.2008 19:00 подскажите, что за ошибка появляется при линковке djvulibre-3.5.21
---
for d in libdjvu tools xmltools gui i18n desktopfiles ; \
do ( cd $d && make all ) || exit ; done
make[1]: Entering directory `/usr/src/djvulibre-3.5.21/libdjvu'
make[1]: Циклическая зависимость Makefile.dep <- Makefile.dep пропущена.
make[1]: Цель `all' не требует выполнения команд.
make[1]: Leaving directory `/usr/src/djvulibre-3.5.21/libdjvu'
make[1]: Entering directory `/usr/src/djvulibre-3.5.21/tools'
make[1]: Циклическая зависимость Makefile.dep <- Makefile.dep пропущена.
/bin/sh ../libtool --mode=link \
g++ -o bzz -DHAVE_CONFIG_H -I.. -I.. -I../libdjvu -I. -DNDEBUG -Wall -O3 -Wno-non-virtual-dtor -mtune=i686 -pthread -DTHREADMODEL=POSIXTHREADS bzz.o ../libdjvu/libdjvulibre.la -ljpeg -lpthread -lm
g++ -o .libs/bzz -DHAVE_CONFIG_H -I.. -I.. -I../libdjvu -I. -DNDEBUG -Wall -O3 -Wno-non-virtual-dtor -mtune=i686 -pthread -DTHREADMODEL=POSIXTHREADS bzz.o ../libdjvu/.libs/libdjvulibre.so -ljpeg -lpthread -lm -Wl,--rpath -Wl,/usr/local/lib
../libdjvu/.libs/libdjvulibre.so: undefined reference to `__sync_bool_compare_and_swap_4'
../libdjvu/.libs/libdjvulibre.so: undefined reference to `__sync_add_and_fetch_4'
collect2: ld returned 1 exit status
make[1]: *** [bzz] Ошибка 1
make[1]: Leaving directory `/usr/src/djvulibre-3.5.21/tools'
make: *** [all] Ошибка 2
---
нигде в нете не нарыл ничего дельного, хотя бы в какую сторону копать???
Re: не могу собрать djvulibre 07.09.2008 14:41kosmonavt > ../libdjvu/.libs/libdjvulibre.so: undefined reference to `__sync_bool_compare_and_swap_4'
> ../libdjvu/.libs/libdjvulibre.so: undefined reference to `__sync_add_and_fetch_4'

Это похоже на баг оптимизации gcc. Отключите всякие хитрые флаги оптимизации.


---
export CFLAGS='-O2 -march=целевой_процессор'
export CXXFLAGS='-O2 -march=целевой_процессор'
---
перед выполнением ./configure должно помочь.
Re: не могу собрать djvulibre 09.09.2008 02:30Bircoph > Это похоже на баг оптимизации gcc. Отключите всякие хитрые
> флаги оптимизации.

:Улыбка)
Вы глубоко ошибаетесь. Это обращение к неопределённому
символу, например, вызов функции из библиотеки, которая не
прилинкована. Ищите библиотеки, в которых есть эти функции.

P.S.
Кроме того, выше приведены все параметры gcc, там нет ничего
нестандартного -- это обычные опции для x86 и этого пакета,
там даже нет никаких тонких оптимизаций.
Re: не могу собрать djvulibre 09.09.2008 12:39kosmonavt > Кроме того, выше приведены все параметры gcc, там нет ничего
> нестандартного

Это я подумал на -O3, с которым иногда косяки выходят (где-то не заинлайнился вызов встроенной функции, а gcc "думает" что call'ов на эту функцию не существует, поэтому нигде не вставляет тело ф-ции). Тем более, что у меня собралось с '-O2 -march=pentium4'

А тут, оказывается: [www.nabble.com]---`__sync_bool_compare_and_swap_4'-p17875951.html
RSS-материал