<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">