The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
" undefined reference to `__sync_val_compare_and_swap_4'"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Изначальное сообщение [ Отслеживать ]

" undefined reference to `__sync_val_compare_and_swap_4'"  +/
Сообщение от goliath (ok) on 20-Фев-12, 14:34 
Пользуясь скриптами crosstool (http://kegel.com/crosstool/) я собрал под Cygwin(http://www.cygwin.com/) два кросс компилятора gcc-4.1.1 и 4.2.0 20061024 (prerelease) для архитектуры Sparc:

$ ./sparc-unknown-linux-gnu-gcc -v
Using built-in specs.
Target: sparc-unknown-linux-gnu
Configured with: /crosstool-0.43/build/sparc-unknown-linux-gnu/gcc-4.1.1-glibc-2.3.6/gcc-4.1.1/configure --target=sparc-unknown-linux-gnu --host=i686-host_pc-cygwin --prefix=/opt/crosstool/gcc-4.1.1-glibc-2.3.6/sparc-unknown-linux-gnu --with-headers=/opt/crosstool/gcc-4.1.1-glibc-2.3.6/sparc-unknown-linux-gnu/sparc-unknown-linux-gnu/include --with-local-prefix=/opt/crosstool/gcc-4.1.1-glibc-2.3.6/sparc-unknown-linux-gnu/sparc-unknown-linux-gnu --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 4.1.1

и
$ ./sparc-unknown-linux-gnu-gcc -v
Using built-in specs.
Target: sparc-unknown-linux-gnu
Configured with: /crosstool-0.43/build/sparc-unknown-linux-gnu/gcc-4.2-20061024- glibc-2.3.6/gcc-4.2-20061024/configure --target=sparc-unknown-linux-gnu --host=i 686-host_pc-cygwin --prefix=/opt/crosstool/gcc-4.2-20061024-glibc-2.3.6/sparc-un known-linux-gnu --with-headers=/opt/crosstool/gcc-4.2-20061024-glibc-2.3.6/sparc -unknown-linux-gnu/sparc-unknown-linux-gnu/include --with-local-prefix=/opt/cros stool/gcc-4.2-20061024-glibc-2.3.6/sparc-unknown-linux-gnu/sparc-unknown-linux-g nu --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atex it --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 4.2.0 20061024 (prerelease)

Мне необходимо, чтобы в программе можно было использовать функцию __sync_val_compare_and_swap, относящуюсь к Atomic-Builtins, поддержка которых, согласно http://gcc.gnu.org, включена с версии gcc 4.1.*

Я пробую скомпилировать простенький 'Hello World":

long cmpxchg( long* value, long comp_val, long new_val )
{
return __sync_val_compare_and_swap( value, comp_val, new_val );
}

int main()
{
return 0;
}
При компиляции выдаётся ошибка (на обоих компиляторах):

$ ./sparc-unknown-linux-gnu-gcc test_cas.c -o test_cas
/tmp/ccREXHsP.o: In function `cmpxchg':
test_cas.c:(.text+0x24): undefined reference to `__sync_val_compare_and_swap_4'
collect2: ld returned 1 exit status
Я пробовал искать функцию __sync_val_compare_and_swap:

$ nm -A *.so | grep
__sync_val_compare_and_swap_4
nm: libc.so: File format not recognized
nm: libpthread.so: File format not recognized
Пробовал компилировать __sync_val_compare_and_swap_4 с -lpthread, всё равно тоже самое.
В чём может быть ошибка/проблема? Может ли быть такое, что компиляторы как-то криво был собран мною (я в этом деле совсем новичок, тонкостей совсем не знаю). Может быть архитектура не поддерживает? Пробовал компилировать другие свои программы на C, нормально всё компилится и работает, т.е. вроде как компилятор нормально собран.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. " undefined reference to `__sync_val_compare_and_swap_4'"  +/
Сообщение от parad (??) on 20-Фев-12, 16:10 
Укажи -march=native/i686/nocona ( выбери один из 3х ) и будет счастье.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. " undefined reference to `__sync_val_compare_and_swap_4'"  +/
Сообщение от parad (??) on 20-Фев-12, 16:13 
> Укажи -march=native/i686/nocona ( выбери один из 3х ) и будет счастье.

пардон- не заметил под что ты компилишь. конечно укаже тип соответствующий спраку.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. " undefined reference to `__sync_val_compare_and_swap_4'"  +/
Сообщение от goliath (ok) on 20-Фев-12, 17:17 
>> Укажи -march=native/i686/nocona ( выбери один из 3х ) и будет счастье.
> пардон- не заметил под что ты компилишь. конечно укаже тип соответствующий спраку.

да ничерта не получается
я пробую отсюда:
http://uw714doc.sco.com/cgi-bin/info2html?(gcc)SPARC%2520Options&lang=en
различные варианты, а как правильно нужно указать?

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. " undefined reference to `__sync_val_compare_and_swap_4'"  +/
Сообщение от parad (??) on 20-Фев-12, 23:25 
не можешь определиться - укажи native.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. " undefined reference to `__sync_val_compare_and_swap_4'"  +/
Сообщение от Аноним (??) on 21-Фев-12, 22:19 
> Укажи -march=native/i686/nocona ( выбери один из 3х ) и будет счастье.

А без -march? Пакет собирается под другую машину, и что там будет неизвестно.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

6. " undefined reference to `__sync_val_compare_and_swap_4'"  +/
Сообщение от parad (??) on 24-Фев-12, 09:49 
а такого быть не может. либо компилятор либо ты за него, когда он сам не может это однозначно сделать, должны определить архитектуру. другой вопрос что можно указывать достаточно универсальные - i586 и nocona для всех современных x86 и x86_64 соответственно.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. " undefined reference to `__sync_val_compare_and_swap_4'"  +/
Сообщение от Аноним (??) on 24-Фев-12, 16:06 
> а такого быть не может. либо компилятор либо ты за него

Это чушь. Мне нужен универсальный бинарник.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. " undefined reference to `__sync_val_compare_and_swap_4'"  +/
Сообщение от parad (ok) on 28-Фев-12, 23:01 
скорее всего ты не понимаешь что говоришь. универсальный бинарник - это в твоей терминологии означает под любые архитектуры? перл, пхп, питон и ява тебе в зубы. к сям не подходи - они тоже чушь.
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру