Date: Mon, 10 Sep 2007 04:23:55 -0700 From: Luigi Rizzo <rizzo@icir.org> To: Ian FREISLICH <ianf@clue.co.za> Cc: current@freebsd.org Subject: Re: Building asterisk - undefined reference to `__sync_fetch_and_add_4' Message-ID: <20070910042355.A45937@xorpc.icir.org> In-Reply-To: <E1IUg7m-0004n7-8M@clue.co.za>; from ianf@clue.co.za on Mon, Sep 10, 2007 at 12:04:10PM %2B0200 References: <E1IUg7m-0004n7-8M@clue.co.za>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Sep 10, 2007 at 12:04:10PM +0200, Ian FREISLICH wrote: > Hi > > I was wondering if anyone else is having this problem building > asterisk on -CURRENT. The problem may not be with FreeBSD - it > looks like gnu configure is incorrectly detecting the CPU as "i386" > when it's actually a pentium3: > > configure: Package configured for: > configure: OS type : freebsd7.0 > configure: Host CPU : i386 > ===> Building for asterisk-1.4.11 > > The i386 doesn't have any atomic primatives or something like that > (maybe just according to gcc-4.2). If I frob the configured sources > and change the i386 to pentium3, then the build works, but I don't > have enough asterisk foo at this point to verify that it actually > works. i don't completely understand what is happening here - i386 presumably refers to the architecture, not to the very-low-level details of the architecture, so there should not be anything specific to one processor of the family in the flags passed to the compiler. Could it be that it's a compiler bug instead (or something in your /etc/make.conf which is forcing compiler-specific optimizations but only for a part of the build or the libraries) ? cheers luigi > ast_expr2f.o asterisk.o astmm.o autoservice.o callerid.o cdr.o channel.o chanv > ars.o cli.o config.o cryptostub.o db.o devicestate.o dial.o dns.o dnsmgr.o dsp.o > enum.o file.o fixedjitterbuf.o frame.o fskmodem.o http.o image.o indications.o > io.o jitterbuf.o loader.o logger.o manager.o md5.o netsock.o pbx.o plc.o privacy > .o rtp.o say.o sched.o sha1.o slinfactory.o srv.o stdtime/localtime.o strcompat. > o tdd.o term.o threadstorage.o translate.o udptl.o ulaw.o utils.o editline/libed > it.a -> asterisk > channel.o(.text+0x2b52): In function `ast_channel_alloc': > /usr/ports/net/asterisk/work/asterisk-1.4.11/include/asterisk/lock.h:775: undefi > ned reference to `__sync_fetch_and_add_4' > channel.o(.text+0x2ec1):/usr/ports/net/asterisk/work/asterisk-1.4.11/include/ast > erisk/lock.h:775: undefined reference to `__sync_fetch_and_add_4' > cli.o(.text+0x3a4a): In function `ast_cli_command': > /usr/ports/net/asterisk/work/asterisk-1.4.11/include/asterisk/lock.h:775: undefi > ned reference to `__sync_fetch_and_add_4' > dial.o(.text+0x3da): In function `ast_dial_append': > /usr/ports/net/asterisk/work/asterisk-1.4.11/include/asterisk/lock.h:775: undefi > ned reference to `__sync_fetch_and_add_4' > loader.o(.text+0xe3c): In function `__ast_module_user_add': > /usr/ports/net/asterisk/work/asterisk-1.4.11/include/asterisk/lock.h:775: undefi > ned reference to `__sync_fetch_and_add_4' > loader.o(.text+0xec9):/usr/ports/net/asterisk/work/asterisk-1.4.11/include/aster > isk/lock.h:775: more undefined references to `__sync_fetch_and_add_4' follow > manager.o(.text+0x197): In function `process_events': > /usr/ports/net/asterisk/work/asterisk-1.4.11/include/asterisk/lock.h:809: undefi > ned reference to `__sync_sub_and_fetch_4' > manager.o(.text+0x173e): In function `free_session': > /usr/ports/net/asterisk/work/asterisk-1.4.11/include/asterisk/lock.h:809: undefi > ned reference to `__sync_sub_and_fetch_4' > manager.o(.text+0x18ab): In function `accept_thread': > /usr/ports/net/asterisk/work/asterisk-1.4.11/include/asterisk/lock.h:775: undefi > ned reference to `__sync_fetch_and_add_4' > manager.o(.text+0x1962):/usr/ports/net/asterisk/work/asterisk-1.4.11/include/ast > erisk/lock.h:775: undefined reference to `__sync_fetch_and_add_4' > manager.o(.text+0x1a67):/usr/ports/net/asterisk/work/asterisk-1.4.11/include/ast > erisk/lock.h:775: undefined reference to `__sync_fetch_and_add_4' > manager.o(.text+0x1b15):/usr/ports/net/asterisk/work/asterisk-1.4.11/include/ast > erisk/lock.h:775: undefined reference to `__sync_fetch_and_add_4' > manager.o(.text+0x4774): In function `action_waitevent': > /usr/ports/net/asterisk/work/asterisk-1.4.11/include/asterisk/lock.h:809: undefi > ned reference to `__sync_sub_and_fetch_4' > manager.o(.text+0x5f81): In function `generic_http_callback': > /usr/ports/net/asterisk/work/asterisk-1.4.11/include/asterisk/lock.h:775: undefi > ned reference to `__sync_fetch_and_add_4' > manager.o(.text+0x5f8f):/usr/ports/net/asterisk/work/asterisk-1.4.11/include/ast > erisk/lock.h:775: undefined reference to `__sync_fetch_and_add_4' > manager.o(.text+0x6a65):/usr/ports/net/asterisk/work/asterisk-1.4.11/include/ast > erisk/lock.h:775: undefined reference to `__sync_fetch_and_add_4' > manager.o(.text+0x70b5): In function `session_do': > /usr/ports/net/asterisk/work/asterisk-1.4.11/include/asterisk/lock.h:775: undefi > ned reference to `__sync_fetch_and_add_4' > utils.o(.text+0xde8): In function `ast_atomic_dec_and_test': > /usr/ports/net/asterisk/work/asterisk-1.4.11/include/asterisk/lock.h:809: undefi > ned reference to `__sync_sub_and_fetch_4' > utils.o(.text+0xe01): In function `ast_atomic_fetchadd_int': > /usr/ports/net/asterisk/work/asterisk-1.4.11/include/asterisk/lock.h:775: undefi > ned reference to `__sync_fetch_and_add_4' > gmake[1]: *** [asterisk] Error 1 > gmake: *** [main] Error 2 > *** Error code 2 > > Stop in /usr/ports/net/asterisk. > *** Error code 1 > > Stop in /usr/ports/net/asterisk. > > > -- > Ian Freislich > > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070910042355.A45937>