[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