<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi,<div><br><div>Having run away from OpenSolaris (but not too far) I've recently migrated to Nexenta and had a go at building / running FreeSWITCH. I run a few low-throughput SIP-based projects and have thus far been running Asterisk (is that a dirty word in these parts?) on a Debian VM which horribly exploded when I tried to build on nexenta. Not being much of a fan of Asterisk, I decided to give FS a go.</div><div><br></div><div>For reference, my git repo HEAD is at 6cdd3e2a2e4677b061b9fbb9ee516fae9601cd16.</div><div><br></div><div>It wasn't a clean build, per se, but I managed it with a couple of compile non-default switches and a slight hack that I figured I'd offer back for comment / improvement;</div><div><br></div><div>* configure guessed my platform as "i386-pc-solaris2.11" which caused a multitude of issues, principally bad linker behaviour meaning the libtool libraries failed with gcc complaining about bad file format (or something along those lines) for the generated .lo files half way through the build, as well as some atomic lock symbols missing from the c-library which I believe are emulated in libraries for i386 processors, but present on the amd64 host. (not an expert on these things). </div><div><br></div><div>These were fixed (after a while picking through non-obvious errors) by simply adding the configure arg --build=amd64-pc-solaris5.11</div><div>Apologies if this is obvious to some, but it wasn't to me and took a while to figure out.</div><div><br></div><div>* a couple of modules wouldn't build cleanly but because I didn't require them I just commented them out from modules.conf. Trying to be useful I tried to build as many as I could and ended up with these modules removed:</div></div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><div><div>#applications/mod_osp</div></div></div><div><div><div>#applications/mod_hash</div></div></div><div><div><div>#applications/mod_spandsp</div></div></div><div><div><div>#applications/mod_memcache</div></div></div><div><div><div>#codecs/mod_sangoma_codec</div></div></div><div><div><div>#codecs/mod_dahdi_codec</div></div></div><div><div><div>##directories/mod_ldap</div></div></div><div><div><div>#endpoints/mod_dingaling</div></div></div><div><div><div>##endpoints/mod_portaudio</div></div></div><div><div><div>#endpoints/mod_loopback</div></div></div><div><div><div>##endpoints/mod_alsa</div></div></div><div><div><div>##endpoints/mod_opal</div></div></div><div><div><div>##endpoints/mod_skinny</div></div></div><div><div><div>##endpoints/mod_skypopen</div></div></div><div><div><div>#endpoints/mod_h323</div></div></div><div><div><div>##../../libs/openzap/mod_openzap</div></div></div><div><div><div>##../../libs/freetdm/mod_freetdm</div></div></div><div><div><div>#asr_tts/mod_unimrcp</div></div></div><div><div><div>#asr_tts/mod_flite</div></div></div><div><div><div>#asr_tts/mod_pocketsphinx</div></div></div><div><div><div>#asr_tts/mod_cepstral</div></div></div><div><div><div>##asr_tts/mod_tts_commandline</div></div></div><div><div><div>#event_handlers/mod_erlang_event</div></div></div><div><div><div>#formats/mod_portaudio_stream</div></div></div><div><div><div>#languages/mod_python</div></div></div><div><div><div>#languages/mod_spidermonkey</div></div></div><div><div><div>#languages/mod_perl</div></div></div><div><div><div>#languages/mod_java</div></div></div><div><div><div>#languages/mod_managed</div></div></div><div><div><div>#xml_int/mod_xml_ldap</div></div></div></blockquote><div><div><div>I believe a lot of these were simply missing 3rd party libraries but, since I didn't need them, I didn't spend much time working it out. I can do this if anyone is particularly interested.</div></div></div><div><br></div><div>* I had a couple of missing symbols (herror was one) which was simply resolved by adding LDFLAGS='-lresolv' to the configure command</div><div><br></div><div>* I had some issue with compiler warnings complaining about C-standards (don't have the error to hand), but I sorted this by simply adding CFLAGS='-fgnu89-inline', again to the configure.</div><div><br></div><div>* The only other fix was a missing definition for strcasecmp, which I struggled to sort the problem as <strings.h> was included in the appropriate files. I'm a little ashamed to say that I sorted this out by simply adding these library prototypes (lifted from strings.h) to libs/esl/src/include/esl.h:</div><div><br></div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><div>extern int ffs(int);</div></div><div><div>extern int strcasecmp(const char *, const char *);</div></div><div><div>extern int strncasecmp(const char *, const char *, size_t);</div></div></blockquote><div><br></div><div><br></div><div>After this the build proceeded (after quite some time) without issue and installed (and ran) fine. If anyone wants the specific errors in each case, I'll run through a build and try to reproduce and also file a bug if this is appropriate.</div><div><br></div><div>Now to figure out the Freeswitch configuration :)</div><div><br></div><div>Thomas.</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></body></html>