[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

How to tell the compiler NOT to assume cpu provides atomic instructions



Hello All,

I'm trying to compile the latest Asterisk release 1.8.3 on a V240 Sparc running Debian Squeeze. However, during make, it crashes with the following:

Generating embedded module rules ...
   [LD] abstract_jb.o acl.o alaw.o aoc.o app.o ast_expr2.o ast_expr2f.o asterisk.o astfd.o astmm.o astobj2.o audiohook.o autochan.o autoservice.o bridging.o callerid.o ccss.o cdr.o cel.o channel.o chanvars.o cli.o config.o data.o datastore.o db.o devicestate.o dial.o dns.o dnsmgr.o dsp.o enum.o event.o features.o file.o fixedjitterbuf.o frame.o framehook.o fskmodem.o global_datastores.o hashtab.o heap.o http.o image.o indications.o io.o jitterbuf.o loader.o lock.o logger.o manager.o md5.o netsock.o netsock2.o pbx.o plc.o poll.o privacy.o rtp_engine.o say.o sched.o security_events.o sha1.o slinfactory.o srv.o ssl.o stdtime/localtime.o strcompat.o strings.o stun.o syslog.o taskprocessor.o tcptls.o tdd.o term.o test.o threadstorage.o timing.o translate.o udptl.o ulaw.o utils.o version.o xml.o xmldoc.o editline/libedit.a db1-ast/libdb1.a  -> asterisk
astobj2.o: In function `ast_atomic_fetchadd_int':
/usr/src/asterisk-1.8.3/include/asterisk/lock.h:589: undefined reference to `__sync_fetch_and_add_4'
/usr/src/asterisk-1.8.3/include/asterisk/lock.h:589: undefined reference to `__sync_fetch_and_add_4'
/usr/src/asterisk-1.8.3/include/asterisk/lock.h:589: undefined reference to `__sync_fetch_and_add_4'
/usr/src/asterisk-1.8.3/include/asterisk/lock.h:589: undefined reference to `__sync_fetch_and_add_4'
/usr/src/asterisk-1.8.3/include/asterisk/lock.h:589: undefined reference to `__sync_fetch_and_add_4'
astobj2.o:/usr/src/asterisk-1.8.3/include/asterisk/lock.h:589: more undefined references to `__sync_fetch_and_add_4' follow
utils.o: In function `ast_atomic_dec_and_test':
/usr/src/asterisk-1.8.3/include/asterisk/lock.h:635: undefined reference to `__sync_sub_and_fetch_4'
utils.o: In function `ast_atomic_fetchadd_int':
/usr/src/asterisk-1.8.3/include/asterisk/lock.h:589: undefined reference to `__sync_fetch_and_add_4'
collect2: ld returned 1 exit status
make[1]: *** [asterisk] Error 1
make: *** [main] Error 2

Credible people in the Asterisk list believe that it's because the configure script is somehow determining that my CPU provides atomic instructions but it fails to find it when it tries to link. Does anyone know what options can be provided to the "configure" script via CFLAGS or CXXFLAGS etc to tell make/compiler about this or to fix this?

Thanks so much
\RR

Reply to: