diff options
| author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-03-19 16:04:11 +0000 |
|---|---|---|
| committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-03-19 16:04:11 +0000 |
| commit | 3d101dd4670e449a064bd8ea88d5343d83144f49 (patch) | |
| tree | 659c174c2656c573b167bfd0f314caf4c18101f0 /docs | |
| parent | be862096c0b07c42dd3f2f6e3530716efe0fc83c (diff) | |
| download | busybox-w32-3d101dd4670e449a064bd8ea88d5343d83144f49.tar.gz busybox-w32-3d101dd4670e449a064bd8ea88d5343d83144f49.tar.bz2 busybox-w32-3d101dd4670e449a064bd8ea88d5343d83144f49.zip | |
expand documentation
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/keep_data_small.txt | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/docs/keep_data_small.txt b/docs/keep_data_small.txt index 66f92b321..fcd8df4a9 100644 --- a/docs/keep_data_small.txt +++ b/docs/keep_data_small.txt | |||
| @@ -125,3 +125,32 @@ less readable, use #defines: | |||
| 125 | If applet doesn't use much of global data, converting it to use | 125 | If applet doesn't use much of global data, converting it to use |
| 126 | one of above methods is not worth the resulting code obfuscation. | 126 | one of above methods is not worth the resulting code obfuscation. |
| 127 | If you have less than ~300 bytes of global data - don't bother. | 127 | If you have less than ~300 bytes of global data - don't bother. |
| 128 | |||
| 129 | |||
| 130 | gcc's data alignment problem | ||
| 131 | |||
| 132 | The following attribute added in vi.c: | ||
| 133 | |||
| 134 | static int tabstop; | ||
| 135 | static struct termios term_orig __attribute__ ((aligned (4))); | ||
| 136 | static struct termios term_vi __attribute__ ((aligned (4))); | ||
| 137 | |||
| 138 | reduced bss size by 32 bytes, because gcc sometimes aligns structures to | ||
| 139 | ridiculously large values. asm output diff for above example: | ||
| 140 | |||
| 141 | tabstop: | ||
| 142 | .zero 4 | ||
| 143 | .section .bss.term_orig,"aw",@nobits | ||
| 144 | - .align 32 | ||
| 145 | + .align 4 | ||
| 146 | .type term_orig, @object | ||
| 147 | .size term_orig, 60 | ||
| 148 | term_orig: | ||
| 149 | .zero 60 | ||
| 150 | .section .bss.term_vi,"aw",@nobits | ||
| 151 | - .align 32 | ||
| 152 | + .align 4 | ||
| 153 | .type term_vi, @object | ||
| 154 | .size term_vi, 60 | ||
| 155 | |||
| 156 | gcc doesn't seem to have options for altering this behaviour. | ||
