mirror of
git://sourceware.org/git/glibc.git
synced 2024-12-15 04:20:28 +08:00
508ee037a3
This slightly reduces code size, as can be seen below.
__libc_lock_unlock is usually used along with __libc_lock_lock in
the same function. __libc_lock_lock already has an out-of-line
slow path, so this change should not introduce many additional
non-leaf functions.
This change also fixes a link failure in 32-bit Arm thumb mode
because commit 1f9c804fbd
("nptl: Use internal low-level lock type for !IS_IN (libc)")
introduced __libc_do_syscall calls outside of libc.
Before x86-64:
text data bss dec hex filename
1937748 20456 54896 2013100 1eb7ac libc.so.6
25601 856 12768 39225 9939 nss/libnss_db.so.2
40310 952 25144 66406 10366 nss/libnss_files.so.2
After x86-64:
text data bss dec hex filename
1935312 20456 54896 2010664 1eae28 libc.so.6
25559 864 12768 39191 9917 nss/libnss_db.so.2
39764 960 25144 65868 1014c nss/libnss_files.so.2
Before i686:
2110961 11272 39144 2161377 20fae1 libc.so.6
27243 428 12652 40323 9d83 nss/libnss_db.so.2
43062 476 25028 68566 10bd6 nss/libnss_files.so.2
After i686:
2107347 11272 39144 2157763 20ecc3 libc.so.6
26929 432 12652 40013 9c4d nss/libnss_db.so.2
43132 480 25028 68640 10c20 nss/libnss_files.so.2
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
536 lines
12 KiB
Plaintext
536 lines
12 KiB
Plaintext
libc {
|
|
GLIBC_2.0 {
|
|
__pthread_getspecific;
|
|
__pthread_key_create;
|
|
__pthread_mutex_destroy;
|
|
__pthread_mutex_init;
|
|
__pthread_mutex_lock;
|
|
__pthread_mutex_trylock;
|
|
__pthread_mutex_unlock;
|
|
__pthread_mutexattr_destroy;
|
|
__pthread_mutexattr_init;
|
|
__pthread_mutexattr_settype;
|
|
__pthread_once;
|
|
__pthread_setspecific;
|
|
_pthread_cleanup_pop;
|
|
_pthread_cleanup_pop_restore;
|
|
_pthread_cleanup_push;
|
|
_pthread_cleanup_push_defer;
|
|
pthread_atfork;
|
|
pthread_attr_destroy;
|
|
pthread_attr_getdetachstate;
|
|
pthread_attr_getinheritsched;
|
|
pthread_attr_getschedparam;
|
|
pthread_attr_getschedpolicy;
|
|
pthread_attr_getscope;
|
|
pthread_attr_init;
|
|
pthread_attr_setdetachstate;
|
|
pthread_attr_setinheritsched;
|
|
pthread_attr_setschedparam;
|
|
pthread_attr_setschedpolicy;
|
|
pthread_attr_setscope;
|
|
pthread_cancel;
|
|
pthread_cond_broadcast;
|
|
pthread_cond_destroy;
|
|
pthread_cond_init;
|
|
pthread_cond_signal;
|
|
pthread_cond_timedwait;
|
|
pthread_cond_wait;
|
|
pthread_condattr_destroy;
|
|
pthread_condattr_init;
|
|
pthread_create;
|
|
pthread_detach;
|
|
pthread_equal;
|
|
pthread_exit;
|
|
pthread_getschedparam;
|
|
pthread_getspecific;
|
|
pthread_join;
|
|
pthread_key_create;
|
|
pthread_key_delete;
|
|
pthread_kill;
|
|
pthread_kill_other_threads_np;
|
|
pthread_mutex_destroy;
|
|
pthread_mutex_init;
|
|
pthread_mutex_lock;
|
|
pthread_mutex_trylock;
|
|
pthread_mutex_unlock;
|
|
pthread_mutexattr_destroy;
|
|
pthread_mutexattr_getkind_np;
|
|
pthread_mutexattr_init;
|
|
pthread_mutexattr_setkind_np;
|
|
pthread_once;
|
|
pthread_self;
|
|
pthread_setcancelstate;
|
|
pthread_setcanceltype;
|
|
pthread_setschedparam;
|
|
pthread_setspecific;
|
|
pthread_sigmask;
|
|
pthread_testcancel;
|
|
sem_destroy;
|
|
sem_getvalue;
|
|
sem_init;
|
|
sem_post;
|
|
sem_trywait;
|
|
sem_wait;
|
|
}
|
|
GLIBC_2.1 {
|
|
pthread_attr_getguardsize;
|
|
pthread_attr_getstackaddr;
|
|
pthread_attr_getstacksize;
|
|
pthread_attr_init;
|
|
pthread_attr_setguardsize;
|
|
pthread_attr_setstackaddr;
|
|
pthread_attr_setstacksize;
|
|
pthread_create;
|
|
pthread_getconcurrency;
|
|
pthread_mutexattr_gettype;
|
|
pthread_mutexattr_settype;
|
|
pthread_rwlock_destroy;
|
|
pthread_rwlock_init;
|
|
pthread_rwlock_rdlock;
|
|
pthread_rwlock_tryrdlock;
|
|
pthread_rwlock_trywrlock;
|
|
pthread_rwlock_unlock;
|
|
pthread_rwlock_wrlock;
|
|
pthread_rwlockattr_destroy;
|
|
pthread_rwlockattr_getkind_np;
|
|
pthread_rwlockattr_getpshared;
|
|
pthread_rwlockattr_init;
|
|
pthread_rwlockattr_setkind_np;
|
|
pthread_rwlockattr_setpshared;
|
|
pthread_setconcurrency;
|
|
sem_destroy;
|
|
sem_getvalue;
|
|
sem_init;
|
|
sem_post;
|
|
sem_trywait;
|
|
sem_wait;
|
|
}
|
|
GLIBC_2.1.1 {
|
|
sem_close;
|
|
sem_open;
|
|
sem_unlink;
|
|
}
|
|
GLIBC_2.2 {
|
|
__pthread_rwlock_destroy;
|
|
__pthread_rwlock_init;
|
|
__pthread_rwlock_rdlock;
|
|
__pthread_rwlock_tryrdlock;
|
|
__pthread_rwlock_trywrlock;
|
|
__pthread_rwlock_unlock;
|
|
__pthread_rwlock_wrlock;
|
|
pthread_attr_getstack;
|
|
pthread_attr_setstack;
|
|
pthread_barrier_destroy;
|
|
pthread_barrier_init;
|
|
pthread_barrier_wait;
|
|
pthread_barrierattr_destroy;
|
|
pthread_barrierattr_init;
|
|
pthread_barrierattr_setpshared;
|
|
pthread_condattr_getpshared;
|
|
pthread_condattr_setpshared;
|
|
pthread_getcpuclockid;
|
|
pthread_mutex_timedlock;
|
|
pthread_mutexattr_getpshared;
|
|
pthread_mutexattr_setpshared;
|
|
pthread_rwlock_timedrdlock;
|
|
pthread_rwlock_timedwrlock;
|
|
pthread_spin_destroy;
|
|
pthread_spin_init;
|
|
pthread_spin_lock;
|
|
pthread_spin_trylock;
|
|
pthread_spin_unlock;
|
|
pthread_yield;
|
|
sem_timedwait;
|
|
}
|
|
GLIBC_2.2.3 {
|
|
pthread_getattr_np;
|
|
}
|
|
GLIBC_2.3.2 {
|
|
__register_atfork;
|
|
pthread_cond_broadcast;
|
|
pthread_cond_destroy;
|
|
pthread_cond_init;
|
|
pthread_cond_signal;
|
|
pthread_cond_timedwait;
|
|
pthread_cond_wait;
|
|
}
|
|
GLIBC_2.3.3 {
|
|
__pthread_cleanup_routine;
|
|
__pthread_register_cancel;
|
|
__pthread_register_cancel_defer;
|
|
__pthread_unregister_cancel;
|
|
__pthread_unregister_cancel_restore;
|
|
__pthread_unwind_next;
|
|
pthread_attr_getaffinity_np;
|
|
pthread_attr_setaffinity_np;
|
|
pthread_barrierattr_getpshared;
|
|
pthread_condattr_getclock;
|
|
pthread_condattr_setclock;
|
|
pthread_getaffinity_np;
|
|
pthread_setaffinity_np;
|
|
pthread_timedjoin_np;
|
|
pthread_tryjoin_np;
|
|
}
|
|
GLIBC_2.3.4 {
|
|
pthread_attr_getaffinity_np;
|
|
pthread_attr_setaffinity_np;
|
|
pthread_getaffinity_np;
|
|
pthread_setaffinity_np;
|
|
pthread_setschedprio;
|
|
}
|
|
GLIBC_2.4 {
|
|
pthread_mutex_consistent_np;
|
|
pthread_mutex_getprioceiling;
|
|
pthread_mutex_setprioceiling;
|
|
pthread_mutexattr_getprioceiling;
|
|
pthread_mutexattr_getprotocol;
|
|
pthread_mutexattr_getrobust_np;
|
|
pthread_mutexattr_setprioceiling;
|
|
pthread_mutexattr_setprotocol;
|
|
pthread_mutexattr_setrobust_np;
|
|
}
|
|
GLIBC_2.11 {
|
|
pthread_sigqueue;
|
|
}
|
|
GLIBC_2.12 {
|
|
pthread_getname_np;
|
|
pthread_mutex_consistent;
|
|
pthread_mutexattr_getrobust;
|
|
pthread_mutexattr_setrobust;
|
|
pthread_setname_np;
|
|
}
|
|
GLIBC_2.18 {
|
|
pthread_getattr_default_np;
|
|
pthread_setattr_default_np;
|
|
}
|
|
# C11 thread symbols.
|
|
GLIBC_2.28 {
|
|
call_once;
|
|
cnd_broadcast;
|
|
cnd_destroy;
|
|
cnd_init;
|
|
cnd_signal;
|
|
cnd_timedwait;
|
|
cnd_wait;
|
|
mtx_destroy;
|
|
mtx_init;
|
|
mtx_lock;
|
|
mtx_timedlock;
|
|
mtx_trylock;
|
|
mtx_unlock;
|
|
thrd_current;
|
|
thrd_create;
|
|
thrd_detach;
|
|
thrd_equal;
|
|
thrd_exit;
|
|
thrd_join;
|
|
thrd_sleep;
|
|
thrd_yield;
|
|
tss_create;
|
|
tss_delete;
|
|
tss_get;
|
|
tss_set;
|
|
}
|
|
GLIBC_2.30 {
|
|
pthread_cond_clockwait;
|
|
pthread_mutex_clocklock;
|
|
pthread_rwlock_clockrdlock;
|
|
pthread_rwlock_clockwrlock;
|
|
sem_clockwait;
|
|
}
|
|
GLIBC_2.31 {
|
|
pthread_clockjoin_np;
|
|
}
|
|
GLIBC_2.32 {
|
|
pthread_attr_getsigmask_np;
|
|
pthread_attr_setaffinity_np;
|
|
pthread_attr_setsigmask_np;
|
|
pthread_getaffinity_np;
|
|
pthread_getattr_np;
|
|
pthread_sigmask;
|
|
}
|
|
GLIBC_2.34 {
|
|
__pthread_cleanup_routine;
|
|
__pthread_key_create;
|
|
__pthread_register_cancel;
|
|
__pthread_register_cancel_defer;
|
|
__pthread_unregister_cancel;
|
|
__pthread_unregister_cancel_restore;
|
|
__pthread_unwind_next;
|
|
_pthread_cleanup_pop;
|
|
_pthread_cleanup_push;
|
|
call_once;
|
|
cnd_broadcast;
|
|
cnd_destroy;
|
|
cnd_init;
|
|
cnd_signal;
|
|
cnd_timedwait;
|
|
cnd_wait;
|
|
mtx_destroy;
|
|
mtx_init;
|
|
mtx_lock;
|
|
mtx_timedlock;
|
|
mtx_trylock;
|
|
mtx_unlock;
|
|
pthread_attr_getaffinity_np;
|
|
pthread_attr_getguardsize;
|
|
pthread_attr_getstack;
|
|
pthread_attr_getstackaddr;
|
|
pthread_attr_getstacksize;
|
|
pthread_attr_setguardsize;
|
|
pthread_attr_setstack;
|
|
pthread_attr_setstackaddr;
|
|
pthread_attr_setstacksize;
|
|
pthread_barrier_destroy;
|
|
pthread_barrier_init;
|
|
pthread_barrier_wait;
|
|
pthread_barrierattr_destroy;
|
|
pthread_barrierattr_getpshared;
|
|
pthread_barrierattr_init;
|
|
pthread_barrierattr_setpshared;
|
|
pthread_cancel;
|
|
pthread_clockjoin_np;
|
|
pthread_cond_clockwait;
|
|
pthread_condattr_getclock;
|
|
pthread_condattr_getpshared;
|
|
pthread_condattr_setclock;
|
|
pthread_condattr_setpshared;
|
|
pthread_create;
|
|
pthread_detach;
|
|
pthread_getattr_default_np;
|
|
pthread_getconcurrency;
|
|
pthread_getcpuclockid;
|
|
pthread_getname_np;
|
|
pthread_getspecific;
|
|
pthread_join;
|
|
pthread_key_create;
|
|
pthread_key_delete;
|
|
pthread_kill;
|
|
pthread_mutex_clocklock;
|
|
pthread_mutex_consistent;
|
|
pthread_mutex_getprioceiling;
|
|
pthread_mutex_setprioceiling;
|
|
pthread_mutex_timedlock;
|
|
pthread_mutex_trylock;
|
|
pthread_mutexattr_destroy;
|
|
pthread_mutexattr_getprioceiling;
|
|
pthread_mutexattr_getprotocol;
|
|
pthread_mutexattr_getpshared;
|
|
pthread_mutexattr_getrobust;
|
|
pthread_mutexattr_gettype;
|
|
pthread_mutexattr_init;
|
|
pthread_mutexattr_setprioceiling;
|
|
pthread_mutexattr_setprotocol;
|
|
pthread_mutexattr_setpshared;
|
|
pthread_mutexattr_setrobust;
|
|
pthread_mutexattr_settype;
|
|
pthread_once;
|
|
pthread_rwlock_clockrdlock;
|
|
pthread_rwlock_clockwrlock;
|
|
pthread_rwlock_destroy;
|
|
pthread_rwlock_init;
|
|
pthread_rwlock_rdlock;
|
|
pthread_rwlock_timedrdlock;
|
|
pthread_rwlock_timedwrlock;
|
|
pthread_rwlock_tryrdlock;
|
|
pthread_rwlock_trywrlock;
|
|
pthread_rwlock_unlock;
|
|
pthread_rwlock_wrlock;
|
|
pthread_rwlockattr_destroy;
|
|
pthread_rwlockattr_getkind_np;
|
|
pthread_rwlockattr_getpshared;
|
|
pthread_rwlockattr_init;
|
|
pthread_rwlockattr_setkind_np;
|
|
pthread_rwlockattr_setpshared;
|
|
pthread_setaffinity_np;
|
|
pthread_setattr_default_np;
|
|
pthread_setconcurrency;
|
|
pthread_setname_np;
|
|
pthread_setschedprio;
|
|
pthread_setspecific;
|
|
pthread_sigqueue;
|
|
pthread_spin_destroy;
|
|
pthread_spin_init;
|
|
pthread_spin_lock;
|
|
pthread_spin_trylock;
|
|
pthread_spin_unlock;
|
|
pthread_testcancel;
|
|
pthread_timedjoin_np;
|
|
pthread_tryjoin_np;
|
|
sem_clockwait;
|
|
sem_close;
|
|
sem_destroy;
|
|
sem_getvalue;
|
|
sem_init;
|
|
sem_open;
|
|
sem_post;
|
|
sem_timedwait;
|
|
sem_trywait;
|
|
sem_unlink;
|
|
sem_wait;
|
|
thrd_create;
|
|
thrd_detach;
|
|
thrd_exit;
|
|
thrd_join;
|
|
tss_create;
|
|
tss_delete;
|
|
tss_get;
|
|
tss_set;
|
|
}
|
|
GLIBC_PRIVATE {
|
|
__libc_alloca_cutoff;
|
|
__lll_lock_wake_private;
|
|
__lll_lock_wait_private;
|
|
__nptl_create_event;
|
|
__nptl_death_event;
|
|
__nptl_last_event;
|
|
__nptl_nthreads;
|
|
__nptl_rtld_global;
|
|
__nptl_threads_events;
|
|
__nptl_version;
|
|
__pthread_get_minstack;
|
|
__pthread_keys;
|
|
_thread_db___nptl_last_event;
|
|
_thread_db___nptl_nthreads;
|
|
_thread_db___nptl_rtld_global;
|
|
_thread_db___pthread_keys;
|
|
_thread_db_const_thread_area;
|
|
_thread_db_dtv_dtv;
|
|
_thread_db_dtv_slotinfo_gen;
|
|
_thread_db_dtv_slotinfo_list_len;
|
|
_thread_db_dtv_slotinfo_list_next;
|
|
_thread_db_dtv_slotinfo_list_slotinfo;
|
|
_thread_db_dtv_slotinfo_map;
|
|
_thread_db_dtv_t_counter;
|
|
_thread_db_dtv_t_pointer_val;
|
|
_thread_db_link_map_l_tls_modid;
|
|
_thread_db_link_map_l_tls_offset;
|
|
_thread_db_list_t_next;
|
|
_thread_db_list_t_prev;
|
|
_thread_db_pthread_cancelhandling;
|
|
_thread_db_pthread_dtvp;
|
|
_thread_db_pthread_eventbuf;
|
|
_thread_db_pthread_eventbuf_eventmask;
|
|
_thread_db_pthread_eventbuf_eventmask_event_bits;
|
|
_thread_db_pthread_key_data_data;
|
|
_thread_db_pthread_key_data_level2_data;
|
|
_thread_db_pthread_key_data_seq;
|
|
_thread_db_pthread_key_struct_destr;
|
|
_thread_db_pthread_key_struct_seq;
|
|
_thread_db_pthread_list;
|
|
_thread_db_pthread_nextevent;
|
|
_thread_db_pthread_report_events;
|
|
_thread_db_pthread_schedparam_sched_priority;
|
|
_thread_db_pthread_schedpolicy;
|
|
_thread_db_pthread_specific;
|
|
_thread_db_pthread_start_routine;
|
|
_thread_db_pthread_tid;
|
|
_thread_db_register32;
|
|
_thread_db_register32_thread_area;
|
|
_thread_db_register64;
|
|
_thread_db_register64_thread_area;
|
|
_thread_db_rtld_global__dl_stack_used;
|
|
_thread_db_rtld_global__dl_stack_user;
|
|
_thread_db_rtld_global__dl_tls_dtv_slotinfo_list;
|
|
_thread_db_sizeof_dtv_slotinfo;
|
|
_thread_db_sizeof_dtv_slotinfo_list;
|
|
_thread_db_sizeof_list_t;
|
|
_thread_db_sizeof_pthread;
|
|
_thread_db_sizeof_pthread_key_data;
|
|
_thread_db_sizeof_pthread_key_data_level2;
|
|
_thread_db_sizeof_pthread_key_struct;
|
|
_thread_db_sizeof_td_eventbuf_t;
|
|
_thread_db_sizeof_td_thr_events_t;
|
|
_thread_db_td_eventbuf_t_eventdata;
|
|
_thread_db_td_eventbuf_t_eventnum;
|
|
_thread_db_td_thr_events_t_event_bits;
|
|
}
|
|
}
|
|
|
|
libpthread {
|
|
GLIBC_2.0 {
|
|
__libpthread_version_placeholder;
|
|
}
|
|
|
|
GLIBC_2.1 {
|
|
__libpthread_version_placeholder;
|
|
}
|
|
|
|
GLIBC_2.1.1 {
|
|
__libpthread_version_placeholder;
|
|
}
|
|
|
|
GLIBC_2.1.2 {
|
|
__libpthread_version_placeholder;
|
|
}
|
|
|
|
GLIBC_2.2 {
|
|
__libpthread_version_placeholder;
|
|
}
|
|
|
|
GLIBC_2.2.3 {
|
|
__libpthread_version_placeholder;
|
|
}
|
|
|
|
GLIBC_2.2.6 {
|
|
__libpthread_version_placeholder;
|
|
}
|
|
|
|
GLIBC_2.3.2 {
|
|
__libpthread_version_placeholder;
|
|
}
|
|
|
|
GLIBC_2.3.3 {
|
|
__libpthread_version_placeholder;
|
|
}
|
|
|
|
GLIBC_2.3.4 {
|
|
__libpthread_version_placeholder;
|
|
}
|
|
|
|
GLIBC_2.4 {
|
|
__libpthread_version_placeholder;
|
|
};
|
|
|
|
GLIBC_2.11 {
|
|
__libpthread_version_placeholder;
|
|
};
|
|
|
|
GLIBC_2.12 {
|
|
__libpthread_version_placeholder;
|
|
};
|
|
|
|
GLIBC_2.13 {
|
|
}
|
|
|
|
GLIBC_2.18 {
|
|
__libpthread_version_placeholder;
|
|
}
|
|
|
|
GLIBC_2.19 {
|
|
}
|
|
|
|
GLIBC_2.28 {
|
|
__libpthread_version_placeholder;
|
|
}
|
|
|
|
GLIBC_2.29 {
|
|
}
|
|
|
|
GLIBC_2.30 {
|
|
__libpthread_version_placeholder;
|
|
}
|
|
|
|
GLIBC_2.31 {
|
|
__libpthread_version_placeholder;
|
|
}
|
|
}
|
|
|
|
ld {
|
|
GLIBC_PRIVATE {
|
|
__nptl_initial_report_events;
|
|
__nptl_set_robust_list_avail;
|
|
}
|
|
}
|