<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/94668>94668</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[lld] empty segment not created with PHDRS
</td>
</tr>
<tr>
<th>Labels</th>
<td>
lld
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
quic-seaswara
</td>
</tr>
</table>
<pre>
Below test with lld does not end up with an empty segment.
Gnu linker produces an empty segment since the user asked for it.
Is this a bug ?
$ ld.lld --version
LLD 19.0.0 (compatible with GNU linkers)
`
cat > 1.c << \!
int foo() { return 0; }
int bar() { return 0; }
!
cat > script.t << \!
PHDRS {
A PT_LOAD;
B PT_LOAD;
C PT_LOAD;
}
SECTIONS {
.foo : { *(.text.foo) } :A
.empty (0x12ccc) : AT(0x4000) { } :B
.bar : { *(.text.bar) } :C
/DISCARD/ : { *(.riscv.attributes) }
}
!
clang -target riscv32 -c 1.c -ffunction-sections -fno-asynchronous-unwind-tables -fdata-sections
riscv-ld 1.o -T script.t -o ld.out
ld.lld 1.o -T script.t -o lld.out
`
**Gnu linker**
$llvm-readelf -l -W ld.out
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x001000 0x00000000 0x00000000 0x00012 0x00012 R E 0x1000
LOAD 0x001012 0x00000000 0x00000000 0x00000 0x00000 0x1000
LOAD 0x001012 0x00000012 0x00000012 0x00012 0x00012 R E 0x1000
**ld.lld**
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x001000 0x00000000 0x00000000 0x00012 0x00012 R E 0x1000
LOAD 0x001012 0x00000012 0x00000012 0x00012 0x00012 R E 0x1000
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVVFv4zYM_jXKC2FDlp3EfvCDG9d3Bbpr0Wbb4yDLtKOdImWS3Db79YPtNGnSYDfgJgSWTH78SJF0yJ2TnUbMyfyGzMsZ7_3G2PyvXorAIXev3PJZbZp9foPKvIJH5-FV-g0o1UBj0IE2HlA30O8mBdeA253fg8Nui9qHhJaEFtPzi-5BSf0dLeysaXqB7pMBOKkFgt8g9A4tcPcdG2iNBXlOdufAb6QDDnXfAYmrj0rCElBNOIQZBC9onTR60tzflxBlIQ0pEJYKs91xL2uFU_hfvv16iNARlp0xLuh0ENwDiW8hCgWQeEXiFZD5irBoUkvtoTWGsJSwDMjyBiz63mqgJL4BsixPsJrbH8GOtOe-nbBy50N_LYDHr-XT88A4vQIU8Lj-4_6hKEl8lN1cka0-yU5hjM_n29X67uHbGXnYGgMkLsYrEFYQloYe33w45mC4WTmoiyN-KjZhKX2LmBBiBMUFFOtRllBKB9HENxmfnNXcXnU2ZvLobPWOJ6wq755XxVNJWHVpaKUTLyH33sq69-gOBJc3vyiA4rqDwHPboYeRImYQiLEbgrbttfDS6MDhuDsIWm0C7vZabKzRpndBr1-lbgLPa4WDvuGeH_GTl5E3UA1EoYFgfSp3YIauNr2fcIcOv4b6CDu27vuVht_pW5zeL74epV62gUXeoGohUBD8fub50ZrO8i18HRDWkfhY4PV-h_DQtg49APwmrS-axgLA42bvDsdKKnyWf8MvuB02qFQHhZKdficZuhDoG6URpXQ8TOvTMWLH_Qlugb4NBldY3nHXWT7sw_ovLFeO_xLLx8RPRfuc9B-k9LQOyf2Z1J7W_5PkS76fTNSsyeMmizM-wzxaRsslZckinW3y-SJtMKVLVkcxnYu05VHS1lmaUWRZ0mYzmTPKErqgiyiLE5aGnMUJW2SJiGPG6yQiCcUtlyocGjw0tptJ53rMs2SxSGeK16jcOA4ZG6vEhrlo8_FzqPvOkYQq6bw72Xvp1ThBB_y8vJhmw3wUFrnHZpow49_zrLcq33i_G8vMKsKqTvpNX4fCbAmrBvLDFuys-ROFJ6waI3WEVVOwLzn7JwAA__8IUyCm">