[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox-cvs
Subject:    [git commit] add busybox_ldscript.README.txt
From:       Denys Vlasenko <vda.linux () googlemail ! com>
Date:       2022-01-23 14:46:05
Message-ID: 20220123143927.8314E81E38 () busybox ! osuosl ! org
[Download RAW message or body]

commit: https://git.busybox.net/busybox/commit/?id=33a9f34df5c53d3dd074a2168ff40d612a36667a
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
 busybox_ldscript.README.txt | 47 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

diff --git a/busybox_ldscript.README.txt b/busybox_ldscript.README.txt
new file mode 100644
index 000000000..1625a970a
--- /dev/null
+++ b/busybox_ldscript.README.txt
@@ -0,0 +1,47 @@
+/* Add SORT_BY_ALIGNMENT to linker script (found in busybox_unstripped.out):
+##  .rodata : { *(.rodata SORT_BY_ALIGNMENT(.rodata.*) .gnu.linkonce.r.*) }
+##  .data   : { *(.data SORT_BY_ALIGNMENT(.data.*) .gnu.linkonce.d.*) }
+##  .bss    : { *(.bss SORT_BY_ALIGNMENT(.bss.*) .gnu.linkonce.b.*) }
+## This will eliminate most of the padding (~3kb).
+## Hmm, "ld --sort-section alignment" should do it too.
+##
+## There is a ld hack which is meant to decrease disk usage
+## at the cost of more RAM usage (??!!) in standard ld script:
+##  . = ALIGN (0x1000) - ((0x1000 - .) & (0x1000 - 1)); . = DATA_SEGMENT_ALIGN (0x1000, 0x1000);
+## Replace it with:
+##  . = ALIGN (0x1000); . = DATA_SEGMENT_ALIGN (0x1000, 0x1000);
+## to unconditionally align .data to the next page boundary,
+## instead of "next page, plus current offset in this page"
+*/
+
+/* To reduce the number of VMAs each bbox process has,
+## move *(.bss SORT_BY_ALIGNMENT(.bss.*) ...)
+## part from .bss : {...} block to .data : { ... } block.
+## (This usually increases .data section by only one page).
+## Result:
+##
+##    text data  bss     dec    hex filename
+## 1050792  560 7580 1058932 102874 busybox.bss
+## 1050792 8149    0 1058941 10287d busybox.nobss
+##
+## $ exec busybox.bss pmap $$
+## 0000000008048000    1028K r-xp  /path/to/busybox.bss
+## 0000000008149000       8K rw-p  /path/to/busybox.bss
+## 000000000814b000       4K rw-p    [ anon ]  <---- this VMA is eliminated
+## 00000000085f5000       4K ---p  [heap]
+## 00000000085f6000       4K rw-p  [heap]
+## 00000000f7778000       8K rw-p    [ anon ]
+## 00000000f777a000      12K r--p  [vvar]
+## 00000000f777d000       8K r-xp  [vdso]
+## 00000000ff7e9000     132K rw-p  [stack]
+##
+## $ exec busybox.nobss pmap $$
+## 0000000008048000    1028K r-xp  /path/to/busybox.nobss
+## 0000000008149000      12K rw-p  /path/to/busybox.nobss
+## 00000000086f0000       4K ---p  [heap]
+## 00000000086f1000       4K rw-p  [heap]
+## 00000000f7783000       8K rw-p    [ anon ]
+## 00000000f7785000      12K r--p  [vvar]
+## 00000000f7788000       8K r-xp  [vdso]
+## 00000000ffac0000     132K rw-p  [stack]
+*/
_______________________________________________
busybox-cvs mailing list
busybox-cvs@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox-cvs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic