Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Установка MaNGOS (http://mangos.ytdb.ru/forumdisplay.php?f=25)
-   -   ошибка компиляции (undefined reference to `__sync_add_and_fetch_4') (http://mangos.ytdb.ru/showthread.php?t=2927)

maximt 16.11.2010 08:53

ошибка компиляции (undefined reference to `__sync_add_and_fetch_4')
 
сервер на mandriva 2009.0
Linux 2.6.27 i686 Intel(R) Pentium(R) Dual CPU E2200
версия gcc 4.3.2

компилирую по гайду, на последней (10721) столкнулся с проблемой:
Код:

../shared/libmangosshared.a(Threading.o): In function `ACE_Atomic_Op_GCC<long>::operator--()':
/usr/servers/mangos/compile/objdir/src/shared/../../../dep/ACE_wrappers/ace/Atomic_Op_GCC_T.inl:49: undefined reference to `__sync_sub_and_fetch_4'
/usr/servers/mangos/compile/objdir/src/shared/../../../dep/ACE_wrappers/ace/Atomic_Op_GCC_T.inl:49: undefined reference to `__sync_sub_and_fetch_4'
/usr/servers/mangos/compile/objdir/src/shared/../../../dep/ACE_wrappers/ace/Atomic_Op_GCC_T.inl:49: undefined reference to `__sync_sub_and_fetch_4'
/usr/servers/mangos/compile/objdir/src/shared/../../../dep/ACE_wrappers/ace/Atomic_Op_GCC_T.inl:49: undefined reference to `__sync_sub_and_fetch_4'
../../dep/ACE_wrappers/ace/.libs/libACE.so: undefined reference to `__sync_add_and_fetch_4'
../../dep/ACE_wrappers/ace/.libs/libACE.so: undefined reference to `__sync_fetch_and_sub_4'
collect2: ld returned 1 exit status

пробовал добавить флаги ../configure CFLAGS="-march=i686" ACE_CFLAGS="-march=i686"
не помогло..

Йоха 16.11.2010 13:06

это ошибка не компилятора, а линковщика. Проверь настройки/пути наличие библиотек от ACE, возможно сам ACE сперва надо собрать.

maximt 17.11.2010 03:27

__sync_add_and_fetch_4 и __sync_fetch_and_sub_4 это функции gcc

организовал простенький тест
Код:

# cat test.c
int main()
{
    int i = 3;
    int j = __sync_add_and_fetch(&i, 1);
    return 0;
}

Код:

# gcc test.c
/tmp/cccOSsgM.o: In function `main':
test.c:(.text+0x27): undefined reference to `__sync_add_and_fetch_4'
collect2: выполнение ld завершилось с кодом возврата 1
#

с ключом ошибок не выдает
Код:

# gcc -march=i686 test.c
#

победил с помощью
Код:

../configure CXXFLAGS="-march=i686" ...

WildLynx 16.01.2011 11:04

Ошибка при компиляции mangoszero
 
OS - Mandriva 2010 x86

загрузка - как обычно
autoreconf -fvi
configure - только с путями

при сборке make выдаёт ошибку:

Код:

../shared/libmangosshared.a(Threading.o): In function `ACE_Atomic_Op_GCC<long>::operator--()':
/home/lynx/_MANGOS/dst/z1245/objects/src/shared/../../../dep/ACE_wrappers/ace/Atomic_Op_GCC_T.inl:49: undefined reference to `__sync_sub_and_fetch_4'
/home/lynx/_MANGOS/dst/z1245/objects/src/shared/../../../dep/ACE_wrappers/ace/Atomic_Op_GCC_T.inl:49: undefined reference to `__sync_sub_and_fetch_4'
/home/lynx/_MANGOS/dst/z1245/objects/src/shared/../../../dep/ACE_wrappers/ace/Atomic_Op_GCC_T.inl:49: undefined reference to `__sync_sub_and_fetch_4'
/home/lynx/_MANGOS/dst/z1245/objects/src/shared/../../../dep/ACE_wrappers/ace/Atomic_Op_GCC_T.inl:49: undefined reference to `__sync_sub_and_fetch_4'
../../dep/ACE_wrappers/ace/.libs/libACE.so: undefined reference to `__sync_add_and_fetch_4'
../../dep/ACE_wrappers/ace/.libs/libACE.so: undefined reference to `__sync_fetch_and_sub_4'
collect2: ld returned 1 exit status
make[3]: *** [mangos-realmd] Ошибка 1
make[3]: Leaving directory `/home/lynx/_MANGOS/dst/z1245/objects/src/realmd'
make[2]: *** [all-recursive] Ошибка 1
make[2]: Leaving directory `/home/lynx/_MANGOS/dst/z1245/objects/src'
make[1]: *** [all-recursive] Ошибка 1
make[1]: Leaving directory `/home/lynx/_MANGOS/dst/z1245/objects'
make: *** [all] Ошибка 2

Помогите, пожалуйста понять, в чём дело.

Кстати, в последней (z1245), поправили наконец то патч для scriptdevzero - и тут же поломали - он пишет в configure.ac строчку
scriptdev2.conf.dist
, а файл на самом деле существует и упоминается в исходниках по старому - scriptdevzero.conf.dist.in

Vladimir 16.01.2011 14:56

проблемы с линоковкой ACE может быть стоит спрашивать в разделах для master-ветки - всеравно никакой разницы нет в использовании ACE в разных ветках мангоса. Выглядит как проблема ACE для конкретной платформы. Может погуглить стоит "ACE Mandriva"

MaS0n 16.01.2011 15:13

имхо стоит обратить внимание в низ страницы, там есть фрейм с названием "Похожие темы" и такая ошибка уже обсуждалась, и вроде бы там даже было найдено решение :)









------------------
tempura
Слил ветки

WildLynx 16.01.2011 21:13

Прошу прощения за повторяющуюся тему. Я за пределами раздела mangoszero не глянул - привык смотреть только там, так как проект вроде обособленный.

Добавление ключа в ./configure ..... не сработало, выдаёт ошибку
Обошел, назначив переменной окружения CXXFLAGS то же значение

вроде помогло, но тут же вылезло вот это:

http://www.ru-mangos.ru/showthread.php?t=989

далее в той теме.


Текущее время: 11:47. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS