<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/78261>78261</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
.bss section is accumulated in ELF file
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
deepa2015
</td>
</tr>
</table>
<pre>
Hello,
With lld 18.0.0, it is seen that the ELF section file offset computation is incorrect for sections processed after uninitialized section (.bss).
The uninitialized section (.bss) also gets accumulated in raw ELF file which ideally should not.
### Details:
Consider test
bss-test-arr.c
```
int arr[1000];
int main()
{
return 0;
}
```
### Linker description file(rep.lds)
```
SECTIONS {
.rodata : {}
.text : {}
.data : {}
.bss : {}
.ldata : {
. = ALIGN(8);
}
}
```
### Commands executed
```
clang --target=x86_64 -c bss-test-arr.c -o bss-test-arr.o -v
ld.lld -v -m elf_x86_64 -T ./rep.lds bss-test-arr.o -static -o bss-test-arr.out
llvm-readelf -S -l bss-test-arr.out > bss-test-arr.out.txt
```
### Readelf output snippet
Section Headers:
[Nr] Name Type Address Off Size ES Flg Lk Inf Al
..
[ 3] .bss NOBITS 0000000000000050 001050 000fa0 00 WA 0 0 16
[ 4] .ldata PROGBITS 0000000000000ff0 **001ff0** 000000 00 WA 0 0 1
..
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
..
LOAD 0x001050 0x0000000000000050 0x0000000000000050 **0x000fa0** 0x000fa0 RW 0x1000
..
The .ldata section file offset should be same as .bss section which is of type NOBITS i.e 0x1050. The program header for .bss also has file size of 0xfa0.
The readelf output is attached for reference.
[bss-test-arr.out.txt](https://github.com/llvm/llvm-project/files/13949235/bss-test-arr.out.txt)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUVlFvozgQ_jXOywhkDCTkIQ9J0-xW6jWrpro-rhw8BN8ajGzTpv31JwxpShPt7VmAYTz-ZvyNZwy3Vh5qxAVJVyRdT3jrSm0WArHhjEbpZK_F2-I7KqUJuyF0TejyWboSlBIQZSENKWE3IB1ICxaxBldyB65EuL3fgMXcSV1DIRWCLgqLDnJdNa3jXi4tyDrXxmDuoNDmNMFCY3SO1qIAXjg00Naylk5yJd9RfOASloV7awmbh71vTyX-pypwZTUc0Fnged5WreIOBcgaDH_1bnt3X0uZlyAFcqXewJa6VQJq7QZLw5PF_QVrdFwqS-Jh5EbXVgo04NC6XgR7a4PuM-DGhPmAMKXD9QlW1g64MSRdRZRSkq5JvDqPVFzWhGWEzYc5s2HQoGtNDfRDm8zWv7Fydv5e1r_QgECbG9l8hIywzGATKmHPtq7B7W5vnu62Dzv48AQgNFpwx4HESy8-eQKhw6O7FEN4XR26qF0Tq5H-SQokXsPy_u7bA2GZpyj-GDyz8Ye03Oiq4rWwgEfMW4fiNxzkitcHCALHzQEdidfHbPpzmkCQfwk7BHos0RC89BhKhF1eBS8QVICq-HnCeIKQsM0Qi4vZtsumK7jtsO-UeqkCg1ygKiDYQaAuFIHEtxfC0B3dH_H0OGDr1jWtA1vLpkH3WXc3ZOH3TtOcswSApKsHQ9I1PPAKYdSe3pqRZCmEQWvPgm1RwE6-d0q3O9ioA9z_gru6gKXq4cPwkxmIOzN-O43aw3Z197QDOmopBUqjvqMF7zqA5yUAhe6Opp-BEw_cb8gfj9tvHm9oI9SioEDYkrAlpVFR0P590PlqYryE_vnD6IPh1RUev5C17YstwN_SuI44-FG-Wf9ybhupcCffAf7Cyveew6WSh_orf_fb5Rro8cTJ8ZKtS9Gw0mPP4Gmtwyc8PgM9-vJ2ZZ1dHR8IvXaGDNV4j2C7XcNtH9aT6lC6LegCXMfLEGIZoreZ0hA6C83AZunZ9AeQx_EHRMltb9N2O0wXQI8FpxdemvHelxa4czwvUXg8gwUarHM8TUxXV9MsXROWlc41PqZsQ9jmIF3Z7sNcV4RtuhweuqAx-h_MHWGbzj9L2CaK58mcxSlhm6vo4-o9EYtYzOM5n-AimtE0oemM0Um52E_nmKSYU-RRlNAZj_YznhRZkdFObzaRC0ZZQqNoGkVJltAwncUZzeOE5nM-z5kgCcWKSxV2jobaHCbS2hYXs4xNo4nie1TW_2swVuMr-EHCWPfrYRZ-cfv2YElClbTOnlGcdAoXoyDLi-P7dHRPWqMW_5tL70tHpvf13wAAAP__qn2ZZA">