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