On Fri, Oct 10, 2008 at 07:07:52PM +0200, walter harms wrote: > > >Bernhard Reutner-Fischer schrieb: >> On Fri, Oct 10, 2008 at 04:21:51PM +0200, Loïc Grenié wrote: >>> I've noticed that busybox uses few functions from libm. >> >> Actually, you can turn off ASH_MATH_SUPPORT_64 FEATURE_AWK_MATH and >> you don't need libm at all. >> >>> I've written some replacements for those functions. Right >>> now this is just the test program and I've not made the >>> effort of including them in Busybox. However I'd like to >>> have your opinion: would it be a good idea to include >>> them ? >> >> I don't think so (but perhaps vda likes it anyway). Just: >> 1) turn off the abovementioned two features >> or, if either of that is really needed desperately, you can >> 2a) link busybox statically (very likely in the scenarios you mention >> below) >> 2b) Use a trimmed libm which only contains those few functions that will >> be needed by your initramfs (usually 0, see #1 above). >> >>> They are neither very fast nor very precise (the >>> trigonometric functions are awful, up to 16 bits are >>> false) but libm is rather large and usually a user of >>> Busybox on an initrd or embedded platform does not >>> need neither speed nor excellent precision. Otherwise >> >> I think that neither of them need ASH_MATH_SUPPORT_64 FEATURE_AWK_MATH, >> so busybox wouldn't link against libm anyway. > > >Hi Bernhard, >you are right but the idea is nice and we do not have a lot of libm functions.
text data bss dec hex filename 754 0 0 754 2f2 e_log.os (ex libm-mini.a) 12 0 0 12 c w_log.os (ex libm-mini.a) 688 0 0 688 2b0 e_exp.os (ex libm-mini.a) 12 0 0 12 c w_exp.os (ex libm-mini.a) 2340 0 0 2340 924 e_pow.os (ex libm-mini.a) 12 0 0 12 c w_pow.os (ex libm-mini.a) 316 0 0 316 13c k_cos.os (ex libm-mini.a) 236 0 0 236 ec s_cos.os (ex libm-mini.a) 246 0 0 246 f6 k_sin.os (ex libm-mini.a) 238 0 0 238 ee s_sin.os (ex libm-mini.a) 670 0 0 670 29e k_tan.os (ex libm-mini.a) 138 0 0 138 8a s_tan.os (ex libm-mini.a) 408 0 0 408 198 e_sqrt.os (ex libm-mini.a) 12 0 0 12 c w_sqrt.os (ex libm-mini.a) 660 0 0 660 294 e_atan2.os (ex libm-mini.a) 12 0 0 12 c w_atan2.os (ex libm-mini.a) 52 0 0 52 34 s_fabs.os (ex libm-mini.a) 1308 0 0 1308 51c e_rem_pio2.os (ex libm-mini.a) 1530 0 0 1530 5fa k_rem_pio2.os (ex libm-mini.a) 9644 0 0 9644 25ac (TOTALS) 10324 172 0 10496 2900 libm-mini.so $ file libm-mini.so libm-mini.so: ELF 32-bit MSB shared object, Motorola 68020, version 1 (SYSV), dynamically linked, not stripped So approximately 10k for a random m68k smallish-libm with accurate precision. Loïc didnt' paste the size, but if they are not precise then it's easy to cut down on the size :) >Perhaps we can put these functions on the bb webpage ? >We should add something like supplements/unsupported stuff to keep good idea >that are not incorporate for one reason or an other. I'm sure that vda will comment. If not then ping him in a couple of days, IIRC he currently has intermittent access to the net. _______________________________________________ busybox mailing list busybox@busybox.net http://busybox.net/cgi-bin/mailman/listinfo/busybox