| libc { | 
 |   GLIBC_2.0 { | 
 |     __errno_location_tls; | 
 |     __errstr_location_tls; | 
 |     ros_errno_loc; | 
 |     ros_errstr_loc; | 
 |     __errno_location; | 
 |     errstr; | 
 |     werrstr; | 
 |     ros_syscall_blockon; | 
 |     ros_syscall_sync; | 
 |     __ros_early_syscall_blockon; | 
 |     __ros_scp_simple_evq; | 
 |     __ros_syscall_noerrno; | 
 |     __ros_syscall_errno; | 
 |     save_err; | 
 |     restore_err; | 
 |  | 
 |     set_tls_desc; | 
 |     get_tls_desc; | 
 |     allocate_tls; | 
 |     free_tls; | 
 |     reinit_tls; | 
 |  | 
 |     _sys_siglist; | 
 |     sys_siglist; | 
 |     sys_sigabbrev; | 
 |     signal_ops; | 
 |     trigger_posix_signal; | 
 |  | 
 |     init_empty_dir; | 
 |     convM2S; | 
 |     convS2M; | 
 |     sizeS2M; | 
 |     statcheck; | 
 |     convM2D; | 
 |     convD2M; | 
 |     sizeD2M; | 
 |  | 
 |     sched_getcpu; | 
 |  | 
 |     serialize_argv_envp; | 
 |     free_serialized_data; | 
 |  | 
 |     # Imports from other OpenBSD. | 
 |     reallocarray; | 
 |     strlcat; | 
 |     strlcpy; | 
 |  | 
 |     # helper functions from resolv (which we don't build) | 
 |     __h_errno_location; | 
 |  | 
 |     # Normally not exported by glibc, but we do all of our threading in | 
 |     # userspace and need to set this up for each of our uthreads that have TLS. | 
 |     __ctype_init; | 
 |  | 
 |     ufd_get_fd; | 
 |     ufd_lookup; | 
 |  | 
 |     register_close_cb; | 
 |     register_fork_cb; | 
 |  | 
 |     _sock_lookup_rock_fds; | 
 |     get_sibling_fd; | 
 |     write_hex_to_fd; | 
 |  | 
 |     u64_to_str; | 
 |  | 
 |     eventfd; | 
 |     eventfd_read; | 
 |     eventfd_write; | 
 |  | 
 |     timerfd_create; | 
 |     timerfd_settime; | 
 |     timerfd_gettime; | 
 |     add_timespecs; | 
 |     subtract_timespecs; | 
 |     epoch_nsec; | 
 |     epoch_nsec_to_tsc; | 
 |     tsc_to_epoch_nsec; | 
 |  | 
 |     # Weak symbols in parlib-compat.c | 
 |     __vcoreid; | 
 |     __vcore_context; | 
 |     akaros_printf; | 
 |     trace_printf; | 
 |     print_user_context; | 
 |     _assert_failed; | 
 |     nsec2tsc; | 
 |     tsc2nsec; | 
 |     spin_pdr_init; | 
 |     spin_pdr_trylock; | 
 |     spin_pdr_lock; | 
 |     spin_pdr_unlock; | 
 |     cpu_relax_vc; | 
 |     uthread_sched_yield; | 
 |     uth_mutex_init; | 
 |     uth_mutex_destroy; | 
 |     uth_mutex_lock; | 
 |     uth_mutex_trylock; | 
 |     uth_mutex_unlock; | 
 |     uth_recurse_mutex_init; | 
 |     uth_recurse_mutex_destroy; | 
 |     uth_recurse_mutex_lock; | 
 |     uth_recurse_mutex_trylock; | 
 |     uth_recurse_mutex_unlock; | 
 |     uth_rwlock_init; | 
 |     uth_rwlock_destroy; | 
 |     uth_rwlock_rdlock; | 
 |     uth_rwlock_try_rdlock; | 
 |     uth_rwlock_wrlock; | 
 |     uth_rwlock_try_wrlock; | 
 |     uth_rwlock_unlock; | 
 |     dtls_key_create; | 
 |     set_dtls; | 
 |     get_dtls; | 
 |  | 
 |     # Function pointers in fork_cb.c | 
 |     pre_fork_2ls; | 
 |     post_fork_2ls; | 
 |   } | 
 | } |