While working on it, I realized that there were more symbols which were never exposed, and AIUI it's just by luck that glibc libraries never made a reference to them, because gcc was by luck always inlining them.
* hurd/Versions (libc: GLIBC_2.22): Add _hurd_fd_error_signal, _hurd_fd_error, __hurd_dfail, __hurd_sockfail, __hurd_threadvar_location_from_sp, __hurd_threadvar_location, _hurd_userlink_link, _hurd_userlink_unlink, _hurd_userlink_clear. diff --git a/hurd/Versions b/hurd/Versions index 77f5b42..91403a6 100644 --- a/hurd/Versions +++ b/hurd/Versions @@ -129,6 +129,14 @@ libc { # functions used in macros & inline functions __errno_location; } + GLIBC_2.22 { + # These always existed as inlines but the real functions were not exported. + _hurd_fd_error_signal; _hurd_fd_error; + __hurd_dfail; __hurd_sockfail; + __hurd_threadvar_location_from_sp; + __hurd_threadvar_location; + _hurd_userlink_link; _hurd_userlink_unlink; _hurd_userlink_clear; + } HURD_CTHREADS_0.3 { # weak refs to libthreads functions that libc calls iff libthreads in use