On Fri, May 27, 2005 at 06:47:40PM -0500, Benjamin West
wrote:> Has anyone tried or had success statically linking Asterisk? I'd like
> to do this to deploy to smaller boxes that don't have the toolchain
> and libraries to build the thing.
You don't need all the toolchain on the target box just to deploy
Asterisk. Debian binary packages work just fine (even for the kernel
modules, at least the ones I build, and Xorcom Rapid, of course).
Astlinux is another binary distribution, and is intended for small systems.
You just need to be careful enough with your build system.
Anyway, as Asterisk loads modules at runtime, I wouldn't expect your
troubles to be over just by static linking.
>
> I've tried using statifier (at sf.net) which claims to take a dynamic
> executable and transform it into a static executable.
A nice tool, indeed.
> It seemed to
> work on my box, but when I tried it on the target box it did this:
> [root@0060ef21765a /]# asterisk
> Illegal instruction
Maybe strace could give you a better idea at what's happening. Adding
some '-s'-s and some '-d' never harms anybody as well, in case
you
managed to get to Asterisk's main().
> [root@0060ef21765a /]#
>
> I've also tried messing with the Makefile. Specifically I did this:
> #ASTLINK=-Wl,-E
> #SOLINK=-shared -Xlinker -x
> ASTLINK=-Wl,-E
> SOLINK=-static -Xlinker -x
Statifier still needs the same dinamically-linked binary, IIUC. It will
do that "statification" magic on its own. To quote the homepage:
| Files, created by statifier ("pseudo-static") combine disadvantages
of
| both of them:
|
| * Huge - much bigger than statically linked
| * Still use PIC code
--
Tzafrir Cohen | tzafrir@jbr.cohens.org.il | VIM is
http://tzafrir.org.il | | a Mutt's
tzafrir@cohens.org.il | | best
ICQ# 16849755 | | friend