214 |
text data bss dec hex filename |
text data bss dec hex filename |
215 |
634416 2736 23856 661008 a1610 busybox |
634416 2736 23856 661008 a1610 busybox |
216 |
632580 2672 22944 658196 a0b14 busybox_noalign |
632580 2672 22944 658196 a0b14 busybox_noalign |
217 |
|
|
218 |
|
|
219 |
|
|
220 |
|
Keeping code small |
221 |
|
|
222 |
|
Set CONFIG_EXTRA_CFLAGS="-fno-inline-functions-called-once", |
223 |
|
produce "make bloatcheck", see the biggest auto-inlined functions. |
224 |
|
Now, set CONFIG_EXTRA_CFLAGS back to "", but add NOINLINE |
225 |
|
to some of these functions. In 1.16.x timeframe, the results were |
226 |
|
(annotated "make bloatcheck" output): |
227 |
|
|
228 |
|
function old new delta |
229 |
|
expand_vars_to_list - 1712 +1712 win |
230 |
|
lzo1x_optimize - 1429 +1429 win |
231 |
|
arith_apply - 1326 +1326 win |
232 |
|
read_interfaces - 1163 +1163 loss, leave w/o NOINLINE |
233 |
|
logdir_open - 1148 +1148 win |
234 |
|
check_deps - 1148 +1148 loss |
235 |
|
rewrite - 1039 +1039 win |
236 |
|
run_pipe 358 1396 +1038 win |
237 |
|
write_status_file - 1029 +1029 almost the same, leave w/o NOINLINE |
238 |
|
dump_identity - 987 +987 win |
239 |
|
mainQSort3 - 921 +921 win |
240 |
|
parse_one_line - 916 +916 loss |
241 |
|
summarize - 897 +897 almost the same |
242 |
|
do_shm - 884 +884 win |
243 |
|
cpio_o - 863 +863 win |
244 |
|
subCommand - 841 +841 loss |
245 |
|
receive - 834 +834 loss |
246 |
|
|
247 |
|
855 bytes saved in total. |
248 |
|
|
249 |
|
scripts/mkdiff_obj_bloat may be useful to automate this process: run |
250 |
|
"scripts/mkdiff_obj_bloat NORMALLY_BUILT_TREE FORCED_NOINLINE_TREE" |
251 |
|
and select modules which shrank. |