Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sun, 4 May 2014 12:55:41 +0300
From: Timo Teras <timo.teras@....fi>
To: musl@...ts.openwall.com
Cc: lancethepants@...il.com
Subject: Re: Minimal asterisk compilation

On Sun, 04 May 2014 01:23:02 -0600
Lance Fredrickson <lancethepants@...il.com> wrote:

> Musl has caught my eye, and I've compiled various one-off binaries,
> but wanted to compile a minimal asterisk setup for an embedded mipsel
> device (router).
> 
> I've put my code here.
> https://github.com/lancethepants/asterisk-embedded-musl
> Sorry, I do things hacky.
> 
> I later moved over libc.so, and created ld-musl-mipsel.so.1
> 
> All the binaries I've compiled so far work fine, but the modules in 
> asterisk have issues.
> One example is
> 
> # /opt/asterisk/bin/ldd ./codec_ulaw.so /opt/asterisk/bin/ldd
> (0x55550000) libc.so => /opt/asterisk/bin/ldd (0x55550000)
> Error relocating ./codec_ulaw.so: ast_format_set: symbol not found
> Error relocating ./codec_ulaw.so: __ast_mulaw: symbol not found
> Error relocating ./codec_ulaw.so: ast_unregister_file_version: symbol 
> not found
> Error relocating ./codec_ulaw.so: ast_module_unregister: symbol not
> found Error relocating ./codec_ulaw.so: __ast_lin2mu: symbol not found
> Error relocating ./codec_ulaw.so: ast_unregister_translator: symbol
> not found
> Error relocating ./codec_ulaw.so: __ast_register_translator: symbol
> not found
> Error relocating ./codec_ulaw.so: ast_register_file_version: symbol
> not found
> Error relocating ./codec_ulaw.so: ast_module_register: symbol not
> found

Those are symbols from the main 'asterisk' binary that the modules use.
ldd cannot resolve them because it does not know about the main
asterisk binary anything.

The modules should work just fine in case asterisk loads them.

> This happens for each module. The symbols look to be inside when
> looking at them with the readelf command. This breaks the all of
> asterisk. I tried throwing in -fPIC in the LDFLAGS but did nothing.
> In order to get it compile at all, I grabbed some patches from here.
> https://github.com/uggedal/aports/blob/master/main/asterisk/musl-glob-compat.patch
> and also did some cheating throwing in a cdefs file from the same
> repo mentioned, and some sed commands to fix some PTHREAD stuff.
> I thought I was home free once it compiled, but I can't figure out
> why the modules won't work.  Maybe there's something simple I'm 
> overlooking.  Any suggestions are appreciated.

Just try running them. I think ldd will give similar errors even with
glibc.

- Timo

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.