On Thu, 29 Jul 2010, Denys Vlasenko wrote: > Try attached patch. > > # ./busybox dc 18014398509481982 4503599627370496 mod p > 4503599627370494 > # ./busybox dc 18014398509481982 9007199254740992 mod p > 9007199254740990 > > > function old new delta > print_base 176 238 +62 > or 91 103 +12 > eor 91 103 +12 > and 91 103 +12 > not 60 64 +4 > mod 103 105 +2 > ------------------------------------------------------------------------------ > (add/remove: 0/0 grow/shrink: 6/0 up/down: 104/0) Total: 104 bytes
Thanks. That seems to work much better. Still. My gcc: $ gcc -v Using built-in specs. Target: i486-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.4-7' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-targets=all --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu Thread model: posix gcc version 4.4.4 (Debian 4.4.4-7) generates bigger code: Final link with: crypt m function old new delta print_base 219 498 +279 mod 123 321 +198 or 120 315 +195 eor 120 315 +195 and 120 315 +195 not 79 198 +119 .rodata 105913 105957 +44 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 7/0 up/down: 1225/0) Total: 1225 bytes text data bss dec hex filename 849424 2106 9020 860550 d2186 busybox_old 850649 2106 9020 861775 d264f busybox_unstripped There's also the warnings (the gcc odd option -Wbad-function-cast picks up): editors/awk.c: In function 'handle_special': editors/awk.c:1699: warning: cast from function call of type 'double' to non-matching type 'int' editors/awk.c: In function 'awk_printf': editors/awk.c:1965: warning: cast from function call of type 'double' to non-matching type 'char' editors/awk.c: In function 'evaluate': editors/awk.c:2627: warning: cast from function call of type 'int' to non-matching type 'double' editors/awk.c:2747: warning: cast from function call of type 'double' to non-matching type 'int' procps/mpstat.c: In function 'percent_value': procps/mpstat.c:153: warning: cast from function call of type 'data_t' to non-matching type 'double' procps/mpstat.c: In function 'hz_value': procps/mpstat.c:158: warning: cast from function call of type 'data_t' to non-matching type 'double' that might indicate the need to check the code for similar shortages as in miscutils/dc.c. Cheers, -- Cristian _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
