<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/56610>56610</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Unexcepted behavior when use OVERLAY in link script
</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>
Hi I found an Unexcepted behavior in lld.
Here is my test. We use OVERLAY in link script. If the fist section of OVERLAY is empty, the second section's LMA is not the address we defined(it's 0!!). Like is:
```
# REQUIRES: x86
# RUN: echo 'nop; .section .small, "a"; .long 0; .section .big, "a"; .quad 1;' \
# RUN: | llvm-mc -filetype=obj -triple=x86_64-unknown-linux - -o %t.o
# RUN: ld.lld %t.o --script %s -o %t
SECTIONS {
.out.big : AT(0x4000) { *(.big) }
OVERLAY 0x1000 : AT ( 0x4000 ) {
.out.empty { *(.empty) }
.out.small { *(.small) }
}
}
# RUN: llvm-readelf --sections -l %t | FileCheck %s
```
Result
`
Section Headers:
[Nr] Name Type Address Off Size ES Flg Lk Inf Al
[ 0] NULL 0000000000000000 000000 000000 00 0 0 0
[ 1] .out.big PROGBITS 0000000000000000 001000 000008 00 A 0 0 1
[ 2] .out.small PROGBITS 0000000000001000 002000 000004 00 A 0 0 1
[ 3] .text PROGBITS 0000000000001004 002004 000001 00 AX 0 0 4
[ 4] .comment PROGBITS 0000000000000000 002005 000067 01 MS 0 0 1
[ 5] .symtab SYMTAB 0000000000000000 002070 000018 18 7 1 8
[ 6] .shstrtab STRTAB 0000000000000000 002088 00003e 00 0 0 1
[ 7] .strtab STRTAB 0000000000000000 0020c6 000001 00 0 0 1
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
L (link order), O (extra OS processing required), G (group), T (TLS),
C (compressed), x (unknown), o (OS specific), E (exclude),
l (large), p (processor specific)
Elf file type is EXEC (Executable file)
Entry point 0x1004
There are 4 program headers, starting at offset 64
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x001000 0x0000000000000000 0x0000000000004000 0x000008 0x000008 R 0x1000
LOAD 0x002000 0x0000000000001000 0x0000000000000000 0x000004 0x000004 R 0x1000 <- Look Here!
LOAD 0x002004 0x0000000000001004 0x0000000000000004 0x000001 0x000001 R E 0x1000
GNU_STACK 0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW 0x0
Section to Segment mapping:
Segment Sections...
00 .out.big
01 .out.small
02 .text
03
None .comment .symtab .shstrtab .strtab
`
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyNV9132joM_2vCiw6cJAQIDzyklG7cUdgldN2edvLhEK9JnCXOCvevv7LjfAA97XJCY8uyfrIkS6rPwvPiM4U1RKzKQvAyeMrIKSA5JyH4JPb-UFYAzSBJwpGm32u6U__9TAoCtIT0DJyUfATPBKqSwO7bar9xfsgtNHuBMihojsvrCHhMIKIlh5IEnLIMWNSxl0DSnJ81cyn5kIWhPopTM2clbB4dwZYxLjm8MCxIWcIrgZBENCOhZtqUS1ZdMw35zkewoS9CUW3s9NXXprp666k5hv3q36f1fuUiJ5zsaW_haStoJIgZoPiM5dr4DkbNKUZl6iWJUFwzTQ9_cjVh2RH1uGD06fGa7XflhWDgEAWDNlneoAJosyVa_086TAMYRjQh_JwTbXzP_F8w5GjdRMxQ459Ta1hlLxl7zYZo--oEQxgKlSd8xG4Eoz_Rp2oVhsPaUWJeNrv6BnNXy8N6t3VRnbuaAjBiFReHAiHPOaD99ZOl62j9uWBDGQho18cWlPtmY-N1_WQgu9qO7DbUAkBJaPgVlIyQvmQVMheyFa90Sp9XeemCtx12gxszCcsXxAtJEgkr1b5EEyXSRNI7D-iUZUyCF2m9NwNsT8oq4d1SbVMVGJ-F-KILUVRscrcttMk9bL2UwMVzQO_35466B-2ziyLxcel_gm_lwkNyhM0LrLMInKSHgOGJCLfP9mmz6c_1qweuP4qt_ul9BEMgtGHSPl_3u09364P7DoLRItg1gtMiGH0Es0WoPf4XCEq02SJY7yKMJQInJ35hpQ8QrBrBqumGRHC-twhWH8GSCAFLU5Lxv0PQ2zNMJH06AwSBR_ftM0wkQnlOuef3zuD-eDw4d-962tRntZUMG_CVzwx_CGb3EaY1Qlzyoo_hHvYfI9i2pI_JdSxdnGFWI1zK_0uEYNr3wy3CF4JljOFN8Y79a_gsctJrQTnBxCFStyMIGGYsUITvgkBOJKhankdBSklxbAiuIKDeNEPhNWktSDSLWD1v8DaCLMsmKzAjKOZdjcELD3Yu5AUL8L6jMCjI74oWovBJvk-C71iwKlcEmVIPG_cSRBQgG4MtF2mj3XwSVFU9FEkUARsRy5wENKLNkVe1OkFSheRSciLV97qT54KgFMY2oi-ol21XmFlFXQNR2ESJX31fSSVX0q6enxC53m5bZbw4Q84o3hZZQtRtOsSiKfHwZwkzHQsvhVjlVtSm5F7Bhd08jq1HVBIOU6uvyFe15zYfXyXdXb0b4BstuEjA_bwQn8srkqgPmI7xepJUfmVKdhJ6zFrP75x-KtZPTZo63cbzBcnqkexusJdChIh3EMxbcR-AWt2gQ1AStfFyiJ8NYy8gukPRgL2Lbd1iX5P6kEY32GMQXp7u0_bpp3twll86hDeM9RGpG-yfpZB-dEBTrjFRuOQoc3Xq5TlGVC9SmhXFXI5Go7YzUaZq6mFHNzp63aa0K2a9IqpPRxy3wy3LRFy2taNJ8V0iVgnzqvMYhItxOB_PvQGnPCGLt5r-15hk77T0g6pIFjHnubwn5gO-R8rjyhfK4EQ0TuozxMv4C-2BU1qWFcHb-DCZTg19EC_0iTHXxzPTMHzftq1wGkaeNffnUYiJVjfHg8TzSVIusAJgz5yRV5AiRP88uR_QhambWKKMuWHpY90a-VN_bkWGYXiGMfNtolk6ST2ajIQeI1YcB8VCquRXmIwtPcH_R8pu0cPEeswIkXAo36t4zIrFPyw5swxj1hxI9IXU_n9ovmk1">