<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/54075>54075</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
huge binaries
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Jolyon0202
</td>
</tr>
</table>
<pre>
# Description
I'm expecting objcopy to create a binary from the attached ELF like this:
llvm-objcopy test.elf -O binary test.bin
Running size tells me that the binary is 2.3GB big. It's Too Big. Is there any way to reduce size??
And I found that the reason of big size is that the section .vectors's and .startup's address (0xffff0000 and 0x70040000) is all filled.
And I am not sure that it's should be all filled. Or How could I reduce size (not modify the layout of sections)?
$ readelf -Sl test.elf
There are 35 section headers, starting at offset 0x45654:
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .vectors PROGBITS ffff0000 001000 000078 00 AX 0 0 256
[ 2] .startup PROGBITS 70040000 002000 00054a 00 AX 0 0 256
[ 3] .text PROGBITS 80000000 003000 001c94 00 AX 0 0 256
[ 4] .ctors NOBITS 80001c94 004c94 000000 00 AX 0 0 1
[ 5] .dtors NOBITS 80001c94 004c94 000000 00 AX 0 0 1
[ 6] .api_text PROGBITS 80001cc0 004cc0 00056c 00 AX 0 0 4
[ 7] .rodata PROGBITS 80002240 005240 000600 00 AMS 0 0 8
[ 8] .stack_sizes NOBITS 80002840 005840 000000 00 WA 0 0 4
[ 9] .kernel_bss NOBITS 80002840 005840 004950 00 WA 0 0 8
[10] .tbss PROGBITS 80007190 00a190 000000 00 WA 0 0 8
[11] .sbss NOBITS 80007190 00a190 000000 00 WA 0 0 8
[12] .sbss2 PROGBITS 80007190 00a190 000000 00 WA 0 0 8
[13] .kernel_data PROGBITS 80007190 00a190 00008c 00 WA 0 0 4
[14] .api_bss NOBITS 80007240 00a21c 000000 00 WA 0 0 8
[15] .api_data NOBITS 80007240 00a21c 000000 00 WA 0 0 4
[16] .app1_bss PROGBITS 80007240 00a240 000000 00 WA 0 0 8
[17] .app1_data NOBITS 80007240 00a240 000000 00 WA 0 0 4
[18] .bss_cpu0 NOBITS 80007240 00a240 000040 00 WA 0 0 8
[19] .app1_stack NOBITS 80007280 00a240 000404 00 WA 0 0 8
[20] .cpu0.stack NOBITS 800076c0 00a240 003400 00 WA 0 0 16
[21] .ARM.attributes ARM_ATTRIBUTES 00000000 00a240 000047 00 0 0 1
[22] .debug_str PROGBITS 00000000 00a287 005379 01 MS 0 0 1
[23] .debug_loc PROGBITS 00000000 00f600 004606 00 0 0 1
[24] .debug_abbrev PROGBITS 00000000 013c06 0036da 00 0 0 1
[25] .debug_info PROGBITS 00000000 0172e0 0180a5 00 0 0 1
[26] .debug_macinfo PROGBITS 00000000 02f385 00002a 00 0 0 1
[27] .comment PROGBITS 00000000 02f3af 000056 01 MS 0 0 1
[28] .debug_line PROGBITS 00000000 02f405 00f93a 00 0 0 1
[29] .debug_frame PROGBITS 00000000 03ed40 0012f4 00 0 0 4
[30] .debug_ranges PROGBITS 00000000 040034 000480 00 0 0 1
[31] .debug_aranges PROGBITS 00000000 0404b4 000088 00 0 0 1
[32] .symtab SYMTAB 00000000 04053c 002b60 10 34 398 4
[33] .shstrtab STRTAB 00000000 04309c 000164 00 0 0 1
[34] .strtab STRTAB 00000000 043200 002453 00 0 0 1
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings)
I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown)
O (extra OS processing required) o (OS specific), p (processor specific)
Elf file type is EXEC (Executable file)
Entry point 0xffff0000
There are 5 program headers, starting at offset 52
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x001000 0xffff0000 0xffff0000 0x00078 0x00078 R E 0x1000
LOAD 0x002000 0x70040000 0x70040000 0x0054a 0x0054a R E 0x1000
LOAD 0x003000 0x80000000 0x80000000 0x02840 0x02840 R E 0x1000
LOAD 0x005840 0x80002840 0x80002840 0x04a00 0x04e44 RW 0x1000
GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0
Section to Segment mapping:
Segment Sections...
00 .vectors
01 .startup
02 .text .ctors .dtors .api_text .rodata
03 .stack_sizes .kernel_bss .tbss .sbss .sbss2 .kernel_data .api_bss .api_data .app1_data .bss_cpu0 .app1_stack
04
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy1mF1z2jgUhn8N3GjK-Bv7ggvSkjTbJHQC3XavMrItgxtjsZLdwP76PfqwLZPgsDu7DCDryH50dKwj63VM0-Ns5LjoE-EJy_dVTsuR9WlkzdX_7ciZ7hA57ElS5eUG0fhnQvdHVFGUMIIrgjCK8xKzI8oY3aFqC5aqwsmWpGhxd42K_JmANecjVyOL4tfuQ8shvJqQIkMflg1HmuDYdOOxLkvRPc__AhopCo52Aosr2aO-MufImbg3V1DfTNBtBb5ztKYUXck6F-cy8K88ohcsx8BIWidEYkfutfganc7LFN2ijNZQtl3BoDktEc1EJ8qfnHfNXMQJ2ie_4IAyLl3AAJjwCrOq3itDmjLCORo5oXXI4GPBR55mHaaW5YnqyIkEGRcFyvKiIOnktW94h0paIV4zHYxcjZlvaV2kKCbm5WjJ0Gf6ghLZdmuOXTgiQDua5tlRDqTAR1pXYpx6SDCU6CRA-t_xRFRSeRdXRXtLVetahRx-rt9GZytOF8H5iGRYxK3ForOMkwpi4PmB77UTRv2v9LWf9bVNK0Ij_-qBjfxP6AHDpOh91sd9zzKHwMuDZZaJYiUGj9Biha6LDbp7RrdlhuaFQUaWIL_-PHy7uzPrlv6g00I3q59lkm1BbiZKR_r6uLy5ul2vmno7PyzLbsjTUJLnPxqy4wcm2pFoPeXOo5u5BjBHo30PD6Ndia7IoerF4xQddvFwtfNJ5A2jPYk-CQeEemmCFVrDPFW0oe7QEF2D7Ety-j-QA0nG-_ypF5K3wmEniSXJiYp0kJySPZM8lWRGU1zhdwLtOJ5A-qqwAuXz_H7VkkOTHDazI3l-EunPz0fDCRVZFW00vs_f9jmS5GfCSlI8xbwJ9vtkL_JfkU2fbUtNu455PhpTOxIsrIq3fO6RVRryU_JbPv9DstOSnf_YZ9eMczdBLiGHydAdtL12PvcC8mY01HTDjp1c4rPfknsz-t-Rez43Obi3e06_GY2GfHY-93yedmTT6UGfL8oUW-UguPuU7Gvrsmhosjfsc9T5LFN8kByaZM_yhsiOykHh7-RdcpAYZNd7FQ3bXPkdlYPzx_sJbB5ZHteVXJTA8DRfrx9vr76tF6veQ7aLxvT0IWuuz47KwZTE9QbCwc7NjR45FEjfnUbIshEyVtEe2TXIBU0uIGdqYfYCKxj02TPIOI4Z-fUO2XYTiXSDFA-SfYOclxl912d76hBRhBb2B8mBQd7hpIGfJzuZG_qy7gz7rHIwobsdKY09xyAZZ7LuB4N3MDTvYF6SC8ieJXzOInfY58ggZ6zdlp4nuySV89mGLk7J5rrhWgaZ4XKjH97nyZ5IP5nd4avtqOmza5uzrkMPkb1Y7ZHCcJCsn4PHXYXj7gai1R_36_lVVzfJvitWficOYKVQZBiEG4Un0VA5yLeQ2SZ7tX48R3atSD5T7OBVnHs-e3qPxE58HiA7aiPt-e4Z8hciRed1gTemfvku5NcLyysiJBZoorkwgHKjiTb8EAZyIEndnnMvTDvCNo1hJQzgL2gpKdU0_FaYRTbq0-5EHSb7M6IMdJS23gjrhlGhT6VhLQzru5WuLpQDSVGnTX8HYarL55K-lEZ_S3VmxTBartCe0QSErtB3jPxZ56A5ha6l4iRo5nuS5FneDHMvzPoSynqthhBcgM4ESQuKV4g7kMiLH4uP4sqFDBCOoUm0t5ctyood0Z7mpdCWjZw6lae-cHYDufqOOvUd05mv-prXqvREei7V1Qj9nrNKy9Cv2yPXh9fgMIhRdE92opBydF7km7LB3S3npgy1Do0a7N4f9A4tJRJ1-Qh30DrY7bDf5CkJeOhEoXmolaEuL-Ip3XfolKB5qPf_uryIp6TCoRMP5qHlYcX1iOehx-_ohHfz8O1ptZ5__NLxukidO2xLyTPvO2peR0A-r8hGPpp2sOeCuWLMgaZFn8wnk0nT1CwR7Yui1m4re_O-qLUrDaGUtxbJWtF28lPLxe4it4W1Ws-UZ0pQKfGjhUpPVbRCoNu3G7vhbvtqbDe7vvVKPU5nbhq5ER5XeVWQ2bbe6Dd2OeHjmhWzbVXtZeo41_Dd5NW2jsUDHyriZaEuPkB-_oRgQTXnvCaQoNe-Z0398XYW-y5JXNuOkyQIwyQIcEJSO3J9G-RPHLrjAsek4DNY2UeOU5IXJBEjuT0c5zMHJDR8fStyYK8zcSG3Ut_GYTINvSizR55FdjgvJsKPCWWbMZtJl-BZyaGxyHnFu0YMK96mJER2B3xcV1vKZr_R4khLSDNnLHufSe__BmLyYNg">