Hi I have two remarks to the recent changes to udhcp.
networking/udhcp/script.c contains "static int mton()" to count the bits of a network mask. This could use the ffs() function: The ffs() function returns the position of the first (least significant) bit set in the word i. The least significant bit is position 1 and the most significant position is 32. So mton could be written as return 32 - (ffs (ntohl(mask)) - 1); Newer version of gcc also contain __builtin_clz which counts leading (high) zero bits. As we want to count leading one bits, we must first invert mask. return __builtin_clz (~ntohl(mask)); Both examples are not tested, so some modifications might be necessary. __builtin_clz and probably also ffs use special CPU instructions where available, so they would be both faster and smaller in that case. Otherwise they probably call into libgcc, which is present anyway. In networking/udhcp/leases.c I found the comment "= { 0 } helps gcc to put it in rodata, not bss". Why is it desirable to have it in rodata instead of bss? rodata consumes space in the file while bss doesn't. Regards Ralf Friedl _______________________________________________ busybox mailing list busybox@busybox.net http://busybox.net/cgi-bin/mailman/listinfo/busybox