[OpenWrt-Devel] [PATCH] toolchain/uClibc: add support of uClibc-ng

Adam Kuklycz adamk at mcservices.com.au
Thu Aug 27 19:03:35 EDT 2015

Just following up on the suspected memory leak, and image build sizes.

With the memory leak, it's not a memory leak as such rather than 
conntrackd filling things up with a log file.

After 22 hours of running:

root at gateway-openwrt:/tmp/log# ls -l
-rw-------    1 root     root      30080612 Aug 28 08:44 
drwxr-xr-x    2 root     root            60 Aug 27 10:37 ddns
-rw-r--r--    1 root     root             0 Aug 25 13:06 lastlog
-rw-r--r--    1 root     root             0 Aug 27 10:36 log.nmbd
-rw-r--r--    1 root     root             0 Aug 27 10:36 log.smbd
-rw-r--r--    1 root     root             0 Aug 25 13:06 wtmp

Deleting the log file and then shutting down conntrackd cleared the used 
space.  I might look at omitting conntrackd from the builds in future.

Now for the build sizes.

musl does produce a larger image.  Below is the result of a 
configuration file I have used for trunk builds with releases 457xx and 
have reused for a build on r46734 the only changes being I selected 
either uclibc or musl for the toolchain, otherwise the config file used 
is identical.


-rw-r--r-- 1 adamk adamk  8126468 Aug 27 23:15 


-rw-r--r-- 1 adamk adamk  7864324 Aug 27 14:19 

Now, for stability sakes I'll want to reduce the image size anyway, with 
the bloat from latest kernels blowing things out by a good 300KB as 
well, but it looks like using musl adds around 300KB too.

Have the devs determined that perhaps the increased performance of using 
musl outweighs the hit on image sizes?


On 27/08/15 22:17, Adam Kuklycz wrote:
> Hi Felix
> Thanks for clarifying.  I've also noticed what appears to be a memory 
> leak in my latest build as well which I am working on drilling down 
> now.  After a couple days of uptime the device is out of memory.  It's 
> much more pronounced when doing downloads with many connections 
> simultaneously.
> So all that said, yes I do agree there is always more bloat with each 
> kernel update sadly.  I'm busy now doing builds with both uclibc and 
> musl and will be interested to see the size comparisons. Will take 
> several hours so will report back in the morning (Australian time)
> Cheers
> On 27/08/15 19:33, Felix Fietkau wrote:
>> On 2015-08-27 01:48, Adam Kuklycz wrote:
>>> Hi all,
>>> I was wondering why OpenWRT switched to musl -- is it purely because
>>> uclibc hasn't actually maintained their code properly?
>> That's only part of the reason. Aside from the maintainenance, the code
>> quality of uClibc is also poor compared to musl.
>> musl also has better runtime performance and uses less RAM.
>>> One of the things I have noticed since the CC trunk builds I did with
>>> kernel 3.18.11 + uclibc is that the image sizes have ballooned out by a
>>> fair bit.
>>> For example, a build on trunk r45705 which uses uclibc and kernel
>>> 3.18.11 would allow for most features to be included in a build e.g.
>>> openvpn, luci + ssl support, more connecting protocols than just pppoe
>>> and so on with a router sporting 8MB of flash.
>>> Now with recent trunk builds, with musl and kernel 4.1.x, I've had to
>>> cut features considerably just to make it fit.  Just adding openvpn 
>>> with
>>> openssl support means that an image prior that built at 7MB would
>>> balloon out to 8MB which would mean that the image would not be 
>>> produced
>>> as it is too big.
>> Last time I compared musl vs uClibc images, the size difference was
>> neglegible. I'd say it's more likely that the switch to Linux 4.1 caused
>> the size increase (the kernel does get more bloated with each new 
>> release).
>> - Felix
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org

More information about the openwrt-devel mailing list