<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJzVVdtu4zYQ_Rr5ZSBBkePIfvCDc_E2RTYBNtnmcUGJI4kNJQokFcf79T2UlYuxaLttnyoIEi_DuZwzMyyM3K_PuTKWKUtP8jg9ibIL0jLRWtLgWJI3JLQ2pfBMrhclE6Tp4u7z57tbcvu2MNqR6ig6S2OLD7VGckIPjXK0E44q9QItxZ4a73sXzTdRtsVr-VnxzsHOc5sYW2PpMluulqdRehmlm8P3J4-QkBI2nGmZTO-V6RzBsm84WA_nP-iMss3oayy5Uh3HpWlb0wXHRScPO535YRNKEGTDVnlYqqxpqTaAKJxRHcR64VWhmXbKN_Tp9iswpChbHkfgzGBL3gnLk__FUH9XWouw15jdN8yTslbRfKtkNEd0yxyErBLalKWxUnV14ONYaQm8HQtbNonkQoku6dgHheMaBT6BBAgGIZ0BqaLm5BgLGSKE3Dgup8krHLKf4r-OsvyZyVsFCARVvCNE7dkGuCEsWipN9ww4Qto0wlNth4IaUBGo8U1wX6snHtU-wgYSBp9gPXm3fWyYpIHXHlpg-sj38btFLv5kBAccpgQJYJhO74mrikuvoPzHHL6uO2NHzI_OCYRpLU6RanvNLXdehL1gYeg0Ozcyv-8NznlVonz2IBHnemt-D-e8eGL3bs0Mvh_8lEvAs7fsUVM-uKQwMrsOpbQfBQKSyBTAwg4Wc09u6HtjfVB3_8vtt0NlBrWqg9apEh1z64hfvIW_CBt-gggMQI6qgi3JAoU8pi-iboUmy2PZi5DWphgdrxTCQxjBzbGoAzLCOW4hFMgMmjpm6UKe_plnRwwGasbXNa9JuaC6LCmuehW-hxqk2GKMjhTrUBlFBfMJtg1-1gDwM7xwWUjWFcWPblrPL4hryz0k8tuhDVWDpRfMDtaI6LCMAf0m9MD09tyr70wP-35cOldAHyIAc3xu5Qvdipbf1BCtgpr0-Dkdd07p7vzXq4sHok83d-ebG7q82m6-3mAOUODNPws8ftRj3ZT_DwjSv4GAKH-D4DUZPmbIvaFr5FJds_O0Y0TYmmf-N0186gmtmHrQoWtsPzSN7XvjEaiD2PQJMEBH-6v-pI15OjS2oQt3ZrAzOYn6aJOZXM_lar4SMzH4xtj1Z-Gevoj9bLB6fdzMa9TfAFZNi0m46KZfPLUOTJVzAzsMFvOzs3TWrHmeipNlnspFUXB2kkpRlJLLkzyfrypxejrTomDt1tHiPMoyHdJoc3UDa1m0uJz9dw_UOkszvOnyZJnN00WyqiQvz_JlkeX5gqWMTlNuhdJvN_fMrkeVuO4cNrVy_v1an6GfqBpNZHQYHnrlNa-_HACdrtajOzeOIQmyIHxE-ciUKVw54PYL5GVbkDYb3V-Pvv8Ba8i-jg>53660</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Remove GNU ld incompatible --[no-]define-common and obscure -dc/-dp
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            lld:ELF
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          MaskRay
      </td>
    </tr>
</table>

<pre>
    Before 2017-01, ld.lld used to allocate space for COMMON symbols in `-r` mode. This was fixed by https://reviews.llvm.org/D28984

https://reviews.llvm.org/D28984 added some options as the fix:

* `--define-common` and `--no-define-common`: inherited from gold and incompatible with GNU ld (https://sourceware.org/bugzilla/show_bug.cgi?id=28871). According to https://codesearch.debian.net/search , there is no usage.
* `-d`, `-dc`, and `-dp`: I've tried a few patterns and am convinced that grub has something like `-W,-r,-d`. `-dc` and `-dp` do not have usage.

For `-d`, `-dc`, and `-dp`, the option is only effective in `-r` mode. Ignoring the option is a correct implementation, unless (hypothetically) a project takes `-r` output and interprets it in its own way and somehow doesn't support `SHN_COMMON` input. This seems extremely unlikely as if it deals with normal relocatable object files printed by the assembler, it needs to support `SHN_COMMON`.

```sh
% gcc -fpic -fcommon -r -fuse-ld=bfd b.c -o b.ro && readelf -Ws b.ro | egrep 'Num:| x'
   Num:    Value          Size Type    Bind   Vis      Ndx Name
     9: 0000000000000004     4 OBJECT  GLOBAL DEFAULT  COM x
% gcc -fpic -fcommon -r -fuse-ld=bfd -Wl,-dc b.c -o b.ro && readelf -Ws b.ro | egrep 'Num:| x'
   Num:    Value          Size Type    Bind   Vis      Ndx Name
     9: 0000000000000000     4 OBJECT  GLOBAL DEFAULT    7 x
```

So I suggest we remove `--define-common` and `--no-define-common`, and make `-d`/`-dc`/`-dp` a no-op. Since `-dc` and `-dp` do look like unused, remove them.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzVVctu4zYU_Rp5cyFBlh-yF144D09TZBxgkpksB5R0JbGhRIGk4ni-voey8jAGbafd1RBkUiTvOffcBzNdHDcXXGrDlMTTNIynQXJJqoiUKqi3XJDTJJTSuXBMthM5E3bT5d3nz3d7sscm08qSbClYxqHBixpdcEQPtbR0EJZK-QIr2ZFq5zobzLZBssNj-FnywQLnuYm0qfDpKlmtV_Mgvgri7en9i0dIFAUwrG6YdOekbi0B2dXs0f35DzaDZDtwDQsuZcthrptGt564aIvTSqt_WoQROFmzkQ5IpdENVRoS-TOyxbZOOJkppoN0NX3af4WGFCSrcw-s7k3OB2F45J_11Q-plPBrtT58xzzKKxnMdrIIZvBulSIg64i2ea5NIdvKx-PcaA69LQuT11HBmRRt1LLzBodv5OMJJRBgBKTVCKqoODrXovAeYt8wzsfJqxxFN_p_EyTpM5MzEhIIKvlA8Nqx8XJjs2go1-0z5PBpUwtHlekzqhEKHxpXe_pKPvFg9hEYSBi8PHr0jn0OTIUGawcrgD7jPrx3yMVf9OCkw5ggXgzdqiNxWXLuJIz_nMM3VavNoPnZOQE3jcEpkk2nuOHWCb_mEfpWsbVD5I-dxjknc5TPEUHEuc7oP_w5J57YvqPp3nW9G3MJenaGHWrKeUoSI31oUUrHYYNXEpkCWdgCMXVk-67Txnlz97_tv58q05uVLayOlWiZG0v84gz4wm3wRCAwQHBk6bEKFijkIX3hdSMUGR7KXvi01tlAvJRwD254mkNRe2WEtdxgkw-mt9QyF9bn6V8xO4ugD83w2Po1KRdU5TmFZSf9-1SDFBqM0ZFC5SsjKwEfYVnjz2gIvsQDyqJgVVL4aMfv6SVxZbjDjnTfN75q8OkFsxMaEZ0-Y0DfhOqZ3n738gfTw7EbPl1IqI8tEHP47YsX2ouG38wQrb2Z-Pw3H1bmdHfx-_XlA9Gn27uL7S1dXe-2X28xhyhg8-8cDx_VUDf5_0OC-B8kIErfJHhNho8Zcq_pBrlUVWwdHRgeNvqZ_0sTH3tCI8YedOoauw9NY_feeATqINRdBA3Q0f6uPymtn06NrW_9nelxRpKojyaaFJtZsZ6txcRJp3jz5bQ23hJn10cYBosL4AaLqzP2A6jObN6jkXseyQ74k96ozfltUKGAe6SFbjDxN-X4F469B1Npbc8Wg8VsuYwn9WaRJMvVMp-Xs3Q2Xa0W6_k6n3KazKfzOS-ybKJExspuQC1IEuXzcHt9C7QENCdyk8QJnng1XSWzeBGty4JXy3SVJWm64KII5jE3Qqq3i3tiNgMl3HYWi0pa936rT9BOZIUeMsDBvuhdrc3ms7BPX8RxMrDfDNT_BD4Mp70">