[asterisk-dev] ast_atomic_fetchadd_int_slow and cross-compiles feedback

Brian Capouch brianc at palaver.net
Fri Dec 21 02:37:33 CST 2007

I'm trying to watch the commits, but I'm missing some.  I want to watch 
how all this gets resolved, but it's starting to become like whack-a-mole.

I think file is the one doing the work on ~utils/check_expr.c and 

The history goes like this:

* I used to have to always manually move this function (from 
~main/utils.c) into those two files before I could cross-compile.

* One day a week or so ago, after seeing a commit from Josh, extconfig.c 
built without my having to modify it.  check_expr.c still had to have 
the function pasted in for it to compile.

* Then, soon thereafter, despite the fact that it was still there, the 
compile couldn't see the definition anymore in extconfig.c, either.  The 
trailing #else that led to this definition:

	AST_INLINE_API(int ast_atomic_fetchadd_int(volatile int *p, int
		return ast_atomic_fetchadd_int_slow(p, v);

wasn't getting hit.  Why?  That's still the case today for my 
cross-compiles under openWRT.

The fix is to remove the #else/#endif so that it's always defined.  This 
seems very strange to me, since none of the other cases in that #if 
defined series should fire. . .

* Starting with today's checkout, ast_atomic_fetchadd_int_slow is now in 
check_expr.c.  Yay!!  It's done differently than in extconfig.c, but it 
works fine.

So, as things stand, my builds go great if in extconfig.c I change the 
trailing #else into an unconditional definition.  I could *swear* for 
one build only, very recently, I didn't have to do that.

I lost the link that shows me a commit-by-commit list of changes to the 
trunk source.

I'd love to get clued in on this.  It's *almost* there. . . it's the 
next-to-last "issue" with my cross builds.


This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.

More information about the asterisk-dev mailing list