|  | 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; | 
|  | } | 
|  | } |