<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/92116>92116</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [lld] Why use PROVIDE_HIDDEN defined symbol in linker script is GLOBAL when partial linking?
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          hstk30-hw
      </td>
    </tr>
</table>

<pre>
    lds:
```
SECTIONS
{
 . mySec:
  {
    PROVIDE_HIDDEN(__mysec_start = .);
    KEEP (*(SORT(.probs*)))
    PROVIDE_HIDDEN(__mysec_end = .);
 }
};
```
main.c
```
extern void *__mysec_start;
extern void *__mysec_end;

int getNum(void) {
    return &__mysec_end - &__mysec_start;
}

int main() {
  return getNum();
}
```

Command like:

```
clang -c main.c -o main.o
ld.lld main.o -o main -T lds -r
```

And the symbol info like:

     8: 0000000000000000     0 NOTYPE  GLOBAL HIDDEN     1 __mysec_end
     9: 0000000000000000     0 NOTYPE  GLOBAL HIDDEN     1 __mysec_start

without `-r` the output like:

     8: 0000000000000000     0 NOTYPE  LOCAL HIDDEN     1 __mysec_end
     9: 0000000000000000     0 NOTYPE  LOCAL HIDDEN     1 __mysec_start

And `ld` always `LOCAL` w/wo `-r`

`gold` is `GLOBAL` with `-r`.

I'm not found the standard about this (about the bindind of symbol defined in linker script).



</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVV1zqzYQ_TXLyw4MCMzHAw9OsNtMM3HmJtNOnzICyUaNkDxIXNf_voOwsZ2mtw-5HkZG-3FW52i9psaIneK8hMUdLCqPDrbVfdka-x6Hfnvwas2OpWQG4iWEFYRLSMPT47Yvq_vXh83Ty8mZ3U0vGGB3fOHNnIZ48SHi87fN7w_V6u3Xh6paPQHJ3966o-HNm7G0twhxhQGQAuKrnN9Wq2cEkgNZAslfNt9egeTBvte1cabi9Px_Ea7YJyUgq84sqtn6gW5HhQqaT138b8t7hd-1YAhkeUNohvuPIK7YpaJbhbK44_Zp6IDkYziQ4lbCntuhVwgkvablXxtua1_4zRVGOk7RG-wT8lz-WqULyC37ab3XXUcVQyne-aVjPotvJFU79BucFEVfT296cksWSMlOprMT_VeUzKDf_-AIS8XQthzNsau1RKG2-rPjjApiDvESww8f5wnxafP65_MK8ZfHzd3yEacecr4Ir6_tglZ8EW26raszHoRt9WAR0tDvIQ0dLz3Y_WC_ROlxc__zGP0A7F-ExruBNJRsJEPlgR7NuHcQo-kAZH3QM98P7bPTU6JwSZOSLkvYds4JrpMegGQdKm1xq4dzX1iqGO0Z0nrU1rYjHMnPO461UEwohnp77iHGt0JxhkKhFOqd92iaXuwtkOKm3LR6rIxZERfU42WURYu0iNMi8toybWi0YFkUZzTfkqJI6pxvI87CRZZkdRN7oiQhScJFlERxnCR5QEiWbeuChk1aJDxdQBLyjgoZSPm9C3S_84QxAy8LEkWpJ2nNpXGTnBApGRAyjvS-HKP9etgZSEIpjDWXfCusdMN_jF9U-Ed7xMHwD6NzVmD-Ud0KMV7JqbMPLVe4p70VVLogoXYQr72hl2Vr7d79kZA1kPVO2Haog0Z3QNbjgU5f_r7Xf_HGAlk7dgbI2hH8JwAA__9d79ZZ">