<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/76980>76980</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Internal linkage in Picolib
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
DavidSpickett
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
mordante
</td>
</tr>
</table>
<pre>
At least since [C11](https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf#%5B%7B%22num%22%3A429%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C-27%2C816%2Cnull%5D) "Any declaration of a library function shall have external linkage." This is important for C++20 modules. Named declarations with internal linkage can't be exported, which prevents using these declarations in the C++23 `std` and `std.compat` module.
Several declarations in Picolib have internal linkage, for `example static __inline int isblank(int c)`. See https://buildkite.com/llvm-project/libcxx-ci/builds/32428#018c9247-50ba-4728-b13d-fb064eba3707 for more issues. This prevents using this library in the C++ modules
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxkU81u4zgMfhr6QsSQ6f-DD2mDAHtZLNA97O5lIEtMrKksG5actG-_kNNMJy1giCZFUh_5kdJ7c3bMHZRPQHSQF6NfZqNeOQQggvKQyDUM09KN06KlC5z0k37v9gEtSx_QG6cYoXx6zjIoD0DNEMLsId8DHYGO1-s1nWZ2Ox90Oi1noOPPoDKgo1dE0eGcFTc_oKOelAc6uqysRTrrE1AOVEZoZR0PIreOmwQq831BbVSeN8uZ3eeNiBGH--U9Vo786bL9_fPvf3fLh_uO6k02WbVJt1obMRyAWgSivXtHzcrKRQYzOZxOKNGafpHLO55WpzarH6S1OMgLI78FXpy0aI17lWdOgQj_HozH-I3ztATpAp6mBZ-BnoCeSOA46dWyT_FPObL-_UGPVxMGNO4xKyrpgOqAfXwxJmUN9IzXwagB54Uv7ILH1Rt3xjCw58ekxkXrLwQ5QiV80FAJlE5_aKmaxlmGaLwBTEEcQOxv5wtfeJH2W96_jJqs6W_d-Io7YoylQyX4TY6zZfRBBqPwxw_jrHFbCBrfW-legZqoKaAWKpHiCzM-zlu_GqtfTeCIFeho7WXczcv0k1WIqunV29tOmbtrHLecCmqAcpE1qqWi3pWil7uipmbXZ7nenXpRFdzLvBb1BnacFkbj_RoZ2qj81mDjfw3FY2vv1Ca6y3WbtzLhLqtFkTdt0VTJ0GWa85xUwzVlgnUvdd5wk2enqsraUyUS05GgQmSiyOo8y9o0l0XJdVsX1J6YywYKwaM0No3Fx6VLNqxdXbWNSKzs2fqPhXd8vRXysexLtzWsX88eCmGND_4zSzDBcvfH18n7pDhZF9s98nE2YVj738j4zsmtkUDHDd__AQAA__8fPm-Q">