~vcs-imports/busybox/trunk

« back to all changes in this revision

Viewing changes to busybox_ldscript.README.txt

  • Committer: Eric Andersen
  • Date: 1999-11-24 09:04:33 UTC
  • Revision ID: git-v1:b99df0fd65abe3245fa2d04115326100847f865e
First draft

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Add SORT_BY_ALIGNMENT to linker script (found in busybox_unstripped.out):
2
 
##  .rodata : { *(.rodata SORT_BY_ALIGNMENT(.rodata.*) .gnu.linkonce.r.*) }
3
 
##  .data   : { *(.data SORT_BY_ALIGNMENT(.data.*) .gnu.linkonce.d.*) }
4
 
##  .bss    : { *(.bss SORT_BY_ALIGNMENT(.bss.*) .gnu.linkonce.b.*) }
5
 
## This will eliminate most of the padding (~3kb).
6
 
## Hmm, "ld --sort-section alignment" should do it too.
7
 
##
8
 
## There is a ld hack which is meant to decrease disk usage
9
 
## at the cost of more RAM usage (??!!) in standard ld script:
10
 
##  . = ALIGN (0x1000) - ((0x1000 - .) & (0x1000 - 1)); . = DATA_SEGMENT_ALIGN (0x1000, 0x1000);
11
 
## Replace it with:
12
 
##  . = ALIGN (0x1000); . = DATA_SEGMENT_ALIGN (0x1000, 0x1000);
13
 
## to unconditionally align .data to the next page boundary,
14
 
## instead of "next page, plus current offset in this page"
15
 
*/
16
 
 
17
 
/* To reduce the number of VMAs each bbox process has,
18
 
## move *(.bss SORT_BY_ALIGNMENT(.bss.*) ...)
19
 
## part from .bss : {...} block to .data : { ... } block.
20
 
## (This usually increases .data section by only one page).
21
 
## Result:
22
 
##
23
 
##    text data  bss     dec    hex filename
24
 
## 1050792  560 7580 1058932 102874 busybox.bss
25
 
## 1050792 8149    0 1058941 10287d busybox.nobss
26
 
##
27
 
## $ exec busybox.bss pmap $$
28
 
## 0000000008048000    1028K r-xp  /path/to/busybox.bss
29
 
## 0000000008149000       8K rw-p  /path/to/busybox.bss
30
 
## 000000000814b000       4K rw-p    [ anon ]  <---- this VMA is eliminated
31
 
## 00000000085f5000       4K ---p  [heap]
32
 
## 00000000085f6000       4K rw-p  [heap]
33
 
## 00000000f7778000       8K rw-p    [ anon ]
34
 
## 00000000f777a000      12K r--p  [vvar]
35
 
## 00000000f777d000       8K r-xp  [vdso]
36
 
## 00000000ff7e9000     132K rw-p  [stack]
37
 
##
38
 
## $ exec busybox.nobss pmap $$
39
 
## 0000000008048000    1028K r-xp  /path/to/busybox.nobss
40
 
## 0000000008149000      12K rw-p  /path/to/busybox.nobss
41
 
## 00000000086f0000       4K ---p  [heap]
42
 
## 00000000086f1000       4K rw-p  [heap]
43
 
## 00000000f7783000       8K rw-p    [ anon ]
44
 
## 00000000f7785000      12K r--p  [vvar]
45
 
## 00000000f7788000       8K r-xp  [vdso]
46
 
## 00000000ffac0000     132K rw-p  [stack]
47
 
*/