[asterisk-dev] Asterisk trunk on openWRT: build report

Brian Capouch brianc at palaver.net
Wed Sep 19 21:12:37 CDT 2007


For those who may be interested in replicating what I'm doing, here is 
a punch list of issues I encountered when building the trunk version of 
Asterisk (r8299) with a reasonably-recent build of openWRT trunk 
(r8566).  An earlier mail with an attached Makefile didn't make it to 
the list, so I assume attachments are verboten on these emails.  If 
anyone wants a copy just drop me a note.

I run trunk on a number of Netgear WGT634U boxes, and for home/SOHO 
purposes it works quite well.  It doesn't like to transcode some of the 
more complex codecs (no hardware FPU); otherwise it is fully functional.

Here is the current set of issues:

* For whatever reason the menuselect process, which works perfectly when 
building 1.4.X under the same openWRT build tree, breaks when building 
trunk.  It bombs out immediately after ending the process of selecting 
options with the menu.  So far (awful kludge #1) the only way I've found 
around it is to wait for the error, go into the source tree and delete 
the menuselect.makeopts target.  If I delete it before it bombs then it 
doesn't generate the select menu.

* The curl config autoconf logic picks up the curl configs from host 
instead of target.  The result of this on my build system is that I have 
to edit ~/makeopts and remove -Lidn from the CURL_LIB definition.

* Selecting func_iconv causes the build to bomb--as I recall a library 
issue arises later on in the build process.  I quit choosing it in the 
mneu some time ago so that's the best I can say for now.

* Despite my choosing the "Enable full C99 math support" when building 
openWRT I still don't seem to have the ISOC99 math functions in libm, so 
I have to go into ~/main/ast_expr2.c and #undef __USE_ISOC99.

* Even after doing that, I don't have round() and trunc() and so (nasty, 
nasty kludge #2) I simply remove the logic for ROUND and TRUNC in 
ast_expr2.c

* The function ast_atomic_fetchadd_int_slow can't be found by 
~/utils/extconf.c nor ~/utils/check_expr.c at link time, so I cut and 
paste it into both those files from ~/main/utils.c into those files, and 
everyone is happy.

* This Makefile assumes the CURL and PGSQL libraries and includes are
installed on the system.  (See below)

* There are a number of libraries/includes that have to be put into the 
~/staging_dir/toolchain-mipsel_gcc4.1.2 lib and include directories on 
the build machine.  Generally this is done by using the openWRT package 
system to build the various pieces, and then copying over the libraries 
(and their associated .h files) into the build system directories:

     libcurl
     libdl
     libtermcap
     libstdc++
     libpq (Postgres)
     libgcc_s

Thanks.

b.

-- 
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