[asterisk-users] [1.8.3] Error compiling Asterisk: __sync_fetch_and_add

Kevin P. Fleming kpfleming at digium.com
Mon Mar 7 16:34:58 CST 2011


On 03/07/2011 04:31 PM, RR wrote:
> On Mon, Mar 7, 2011 at 5:25 PM, Kevin P. Fleming <kpfleming at digium.com
> <mailto:kpfleming at digium.com>> wrote:

Please do not reply directly to posters on the mailing list unless they 
request it.

>
>     On 03/07/2011 03:35 PM, RR wrote:
>
>         Hello all,
>
>         mmm a bit embarrassing about not having a clue as to why we're
>         getting
>         this error on make of 1.8.3
>
>            [AR] hash/hash.o hash/hash_bigkey.o hash/hash_buf.o
>         hash/hash_func.o
>         hash/hash_log2.o hash/hash_page.o hash/ndbm.o btree/bt_close.o
>         btree/bt_conv.o btree/bt_debug.o btree/bt_delete.o btree/bt_get.o
>         btree/bt_open.o btree/bt_overflow.o btree/bt_page.o btree/bt_put.o
>         btree/bt_search.o btree/bt_seq.o btree/bt_split.o btree/bt_utils.o
>         db/db.o mpool/mpool.o recno/rec_close.o recno/rec_delete.o
>         recno/rec_get.o recno/rec_open.o recno/rec_put.o recno/rec_search.o
>         recno/rec_seq.o recno/rec_utils.o -> libdb1.a
>             [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
>
>         Any idea where this is coming from? seems like something is selected
>         that doesn't have other related stuff unselected? no clue where
>         to start
>         looking
>
>
>     Have you specified any '-march' or '-mcpu' options to the compiler?
>     This sort of thing can occur if you are building for a plain-jane
>     i386 processor or something similar.
>
>
> Hey Kevin,
> nope, nothing...just doing the standard
>
> ./configure; make menuselect; make
>
> this is a Sun Sparc v240 machine running Debian 6.0 Squeeze sparc64-smp
> kernel

Someone with SPARC experience will have to chime in then... for some 
reason the configure script has determined that your compiler provides 
atomic instructions, but they aren't being found at link time.

-- 
Kevin P. Fleming
Digium, Inc. | Director of Software Technologies
Jabber: kfleming at digium.com | SIP: kpfleming at digium.com | Skype: kpfleming
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
Check us out at www.digium.com & www.asterisk.org



More information about the asterisk-users mailing list