Enable symbol versioning by default. Use WITHOUT_SYMVER to disable it.
Warning, after symbol versioning is enabled, going back is not easy (use WITHOUT_SYMVER at your own risk). Change the default thread library to libthr. There most likely still needs to be a version bump for at least the thread libraries. If necessary, this will happen later.
This commit is contained in:
parent
b8fdd70fef
commit
bf3a79274d
@ -1016,7 +1016,7 @@ _prebuild_libs= ${_kerberos5_lib_libasn1} ${_kerberos5_lib_libkrb5} \
|
||||
${_lib_libgssapi} ${_lib_libipx} \
|
||||
lib/libkiconv lib/libkvm lib/libmd \
|
||||
lib/ncurses/ncurses lib/ncurses/ncursesw \
|
||||
lib/libopie lib/libpam lib/libpthread \
|
||||
lib/libopie lib/libpam lib/${DEFAULT_THREAD_LIB} \
|
||||
lib/libradius lib/libsbuf lib/libtacplus lib/libutil \
|
||||
${_lib_libypclnt} lib/libz lib/msun \
|
||||
${_secure_lib_libcrypto} ${_secure_lib_libssh} \
|
||||
|
@ -76,11 +76,9 @@ CFLAGS+= -DNS_CACHING
|
||||
CFLAGS+=-D_FREEFALL_CONFIG
|
||||
.endif
|
||||
|
||||
.if defined(SYMVER_ENABLED)
|
||||
VERSION_DEF=${.CURDIR}/Versions.def
|
||||
SYMBOL_MAPS=${SYM_MAPS}
|
||||
CFLAGS+= -DSYMBOL_VERSIONING
|
||||
.endif
|
||||
|
||||
# If there are no machine dependent sources, append all the
|
||||
# machine-independent sources:
|
||||
|
@ -7,6 +7,13 @@
|
||||
# To included legacy CSRG sccsid strings, add -DLIBC_SCCS and -DSYSLIBC_SCCS
|
||||
# (for system call stubs) to CFLAGS below. -DSYSLIBC_SCCS affects just the
|
||||
# system call stubs.
|
||||
|
||||
.if defined(DEFAULT_THREAD_LIB) && (${DEFAULT_THREAD_LIB} == "libc_r")
|
||||
SHLIBDIR?= /lib
|
||||
.endif
|
||||
|
||||
.include <bsd.own.mk>
|
||||
|
||||
LIB=c_r
|
||||
SHLIB_MAJOR= 6
|
||||
CFLAGS+=-DPTHREAD_KERNEL
|
||||
@ -25,7 +32,7 @@ PRECIOUSLIB=
|
||||
.include "${.CURDIR}/uthread/Makefile.inc"
|
||||
.include "${.CURDIR}/sys/Makefile.inc"
|
||||
|
||||
.if ${MACHINE_ARCH} == "sparc64"
|
||||
.if ${DEFAULT_THREAD_LIB} == "libc_r"
|
||||
SYMLINKS+=lib${LIB}.a ${LIBDIR}/libpthread.a
|
||||
.if !defined(NO_PIC)
|
||||
SYMLINKS+=lib${LIB}.so ${LIBDIR}/libpthread.so
|
||||
|
@ -7,12 +7,14 @@
|
||||
# To included legacy CSRG sccsid strings, add -DLIBC_SCCS and -DSYSLIBC_SCCS
|
||||
# (for system call stubs) to CFLAGS below. -DSYSLIBC_SCCS affects just the
|
||||
# system call stubs.
|
||||
.if ${MACHINE_ARCH} == "sparc64"
|
||||
LIB=kse
|
||||
.else
|
||||
LIB=pthread
|
||||
|
||||
.if defined(DEFAULT_THREAD_LIB) && (${DEFAULT_THREAD_LIB} == "libpthread")
|
||||
SHLIBDIR?= /lib
|
||||
.endif
|
||||
|
||||
.include <bsd.own.mk>
|
||||
|
||||
LIB=kse
|
||||
SHLIB_MAJOR= 2
|
||||
CFLAGS+=-DPTHREAD_KERNEL
|
||||
CFLAGS+=-I${.CURDIR}/../libc/include -I${.CURDIR}/thread \
|
||||
@ -37,13 +39,6 @@ CFLAGS+=-D_PTHREADS_INVARIANTS -Wall
|
||||
|
||||
VERSION_MAP=${.CURDIR}/pthread.map
|
||||
|
||||
.if defined(SYMVER_ENABLED)
|
||||
# Remove this if library version is bumped and LIBPTHREAD_1_0
|
||||
# compatability hacks are removed (see thread/thr_private.h).
|
||||
LDFLAGS+=-Wl,-zmuldefs
|
||||
CFLAGS+=-DSYMBOL_VERSIONING
|
||||
.endif
|
||||
|
||||
PRECIOUSLIB=
|
||||
|
||||
.include "${.CURDIR}/arch/${MACHINE_ARCH}/Makefile.inc"
|
||||
@ -51,4 +46,14 @@ PRECIOUSLIB=
|
||||
.include "${.CURDIR}/sys/Makefile.inc"
|
||||
.include "${.CURDIR}/thread/Makefile.inc"
|
||||
|
||||
.if ${DEFAULT_THREAD_LIB} == "libpthread"
|
||||
SYMLINKS+=lib${LIB}.a ${LIBDIR}/libpthread.a
|
||||
.if !defined(NO_PIC)
|
||||
SYMLINKS+=lib${LIB}.so ${LIBDIR}/libpthread.so
|
||||
.endif
|
||||
.if ${MK_PROFILE} != "no"
|
||||
SYMLINKS+=lib${LIB}_p.a ${LIBDIR}/libpthread_p.a
|
||||
.endif
|
||||
.endif
|
||||
|
||||
.include <bsd.lib.mk>
|
||||
|
@ -64,7 +64,7 @@
|
||||
* LIBTHREAD_1_0, we need to provide a compatible interface for
|
||||
* those symbols.
|
||||
*/
|
||||
#if defined(SYMBOL_VERSIONING) && defined(PIC)
|
||||
#if 0
|
||||
#define SYM_LT10(sym) __CONCAT(sym, _lt10)
|
||||
#define SYM_FB10(sym) __CONCAT(sym, _fb10)
|
||||
#define SYM_FBP10(sym) __CONCAT(sym, _fbp10)
|
||||
|
@ -7,12 +7,14 @@
|
||||
# To included legacy CSRG sccsid strings, add -DLIBC_SCCS and -DSYSLIBC_SCCS
|
||||
# (for system call stubs) to CFLAGS below. -DSYSLIBC_SCCS affects just the
|
||||
# system call stubs.
|
||||
.if ${MACHINE_ARCH} == "sparc64"
|
||||
LIB=kse
|
||||
.else
|
||||
LIB=pthread
|
||||
|
||||
.if defined(DEFAULT_THREAD_LIB) && (${DEFAULT_THREAD_LIB} == "libpthread")
|
||||
SHLIBDIR?= /lib
|
||||
.endif
|
||||
|
||||
.include <bsd.own.mk>
|
||||
|
||||
LIB=kse
|
||||
SHLIB_MAJOR= 2
|
||||
CFLAGS+=-DPTHREAD_KERNEL
|
||||
CFLAGS+=-I${.CURDIR}/../libc/include -I${.CURDIR}/thread \
|
||||
@ -37,13 +39,6 @@ CFLAGS+=-D_PTHREADS_INVARIANTS -Wall
|
||||
|
||||
VERSION_MAP=${.CURDIR}/pthread.map
|
||||
|
||||
.if defined(SYMVER_ENABLED)
|
||||
# Remove this if library version is bumped and LIBPTHREAD_1_0
|
||||
# compatability hacks are removed (see thread/thr_private.h).
|
||||
LDFLAGS+=-Wl,-zmuldefs
|
||||
CFLAGS+=-DSYMBOL_VERSIONING
|
||||
.endif
|
||||
|
||||
PRECIOUSLIB=
|
||||
|
||||
.include "${.CURDIR}/arch/${MACHINE_ARCH}/Makefile.inc"
|
||||
@ -51,4 +46,14 @@ PRECIOUSLIB=
|
||||
.include "${.CURDIR}/sys/Makefile.inc"
|
||||
.include "${.CURDIR}/thread/Makefile.inc"
|
||||
|
||||
.if ${DEFAULT_THREAD_LIB} == "libpthread"
|
||||
SYMLINKS+=lib${LIB}.a ${LIBDIR}/libpthread.a
|
||||
.if !defined(NO_PIC)
|
||||
SYMLINKS+=lib${LIB}.so ${LIBDIR}/libpthread.so
|
||||
.endif
|
||||
.if ${MK_PROFILE} != "no"
|
||||
SYMLINKS+=lib${LIB}_p.a ${LIBDIR}/libpthread_p.a
|
||||
.endif
|
||||
.endif
|
||||
|
||||
.include <bsd.lib.mk>
|
||||
|
@ -2,374 +2,6 @@
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Hack. libpthread had versioning before libc, but we need to
|
||||
* reside in the same namespace as libc if we want to override
|
||||
* libc functions. Use this so we don't break older applications
|
||||
* that require symbols from "LIBTHREAD_1_0".
|
||||
*
|
||||
* From now on, use the same naming scheme as libc.
|
||||
*/
|
||||
LIBTHREAD_1_0 {
|
||||
global:
|
||||
___creat;
|
||||
__accept;
|
||||
__close;
|
||||
__connect;
|
||||
__error;
|
||||
__fcntl;
|
||||
__fsync;
|
||||
__msync;
|
||||
__nanosleep;
|
||||
__open;
|
||||
__poll;
|
||||
__pthread_cond_timedwait;
|
||||
__pthread_cond_wait;
|
||||
__pthread_mutex_init;
|
||||
__pthread_mutex_lock;
|
||||
__pthread_mutex_trylock;
|
||||
__pthread_mutex_timedlock;
|
||||
__read;
|
||||
__readv;
|
||||
__select;
|
||||
__sigsuspend;
|
||||
__sigtimedwait;
|
||||
__sigwait;
|
||||
__sigwaitinfo;
|
||||
__wait4;
|
||||
__write;
|
||||
__writev;
|
||||
_aio_suspend;
|
||||
_execve;
|
||||
_fork;
|
||||
_nanosleep;
|
||||
_pause;
|
||||
_pselect;
|
||||
_pthread_atfork;
|
||||
_pthread_barrier_destroy;
|
||||
_pthread_barrier_init;
|
||||
_pthread_barrier_wait;
|
||||
_pthread_barrierattr_destroy;
|
||||
_pthread_barrierattr_getpshared;
|
||||
_pthread_barrierattr_init;
|
||||
_pthread_barrierattr_setpshared;
|
||||
_pthread_attr_destroy;
|
||||
_pthread_attr_get_np;
|
||||
_pthread_attr_getdetachstate;
|
||||
_pthread_attr_getguardsize;
|
||||
_pthread_attr_getinheritsched;
|
||||
_pthread_attr_getschedparam;
|
||||
_pthread_attr_getschedpolicy;
|
||||
_pthread_attr_getscope;
|
||||
_pthread_attr_getstack;
|
||||
_pthread_attr_getstackaddr;
|
||||
_pthread_attr_getstacksize;
|
||||
_pthread_attr_init;
|
||||
_pthread_attr_setcreatesuspend_np;
|
||||
_pthread_attr_setdetachstate;
|
||||
_pthread_attr_setguardsize;
|
||||
_pthread_attr_setinheritsched;
|
||||
_pthread_attr_setschedparam;
|
||||
_pthread_attr_setschedpolicy;
|
||||
_pthread_attr_setscope;
|
||||
_pthread_attr_setstack;
|
||||
_pthread_attr_setstackaddr;
|
||||
_pthread_attr_setstacksize;
|
||||
_pthread_cancel;
|
||||
_pthread_cleanup_pop;
|
||||
_pthread_cleanup_push;
|
||||
_pthread_cond_broadcast;
|
||||
_pthread_cond_destroy;
|
||||
_pthread_cond_init;
|
||||
_pthread_cond_signal;
|
||||
_pthread_cond_timedwait;
|
||||
_pthread_cond_wait;
|
||||
_pthread_condattr_default;
|
||||
_pthread_condattr_destroy;
|
||||
_pthread_condattr_getpshared;
|
||||
_pthread_condattr_init;
|
||||
_pthread_condattr_setpshared;
|
||||
_pthread_create;
|
||||
_pthread_detach;
|
||||
_pthread_equal;
|
||||
_pthread_exit;
|
||||
_pthread_getconcurrency;
|
||||
_pthread_getprio;
|
||||
_pthread_getschedparam;
|
||||
_pthread_getspecific;
|
||||
_pthread_join;
|
||||
_pthread_key_create;
|
||||
_pthread_key_delete;
|
||||
_pthread_kill;
|
||||
_pthread_main_np;
|
||||
_pthread_multi_np;
|
||||
_pthread_mutex_destroy;
|
||||
_pthread_mutex_getprioceiling;
|
||||
_pthread_mutex_init;
|
||||
_pthread_mutex_lock;
|
||||
_pthread_mutex_setprioceiling;
|
||||
_pthread_mutex_timedlock;
|
||||
_pthread_mutex_trylock;
|
||||
_pthread_mutex_unlock;
|
||||
_pthread_mutexattr_default;
|
||||
_pthread_mutexattr_destroy;
|
||||
_pthread_mutexattr_getkind_np;
|
||||
_pthread_mutexattr_getprioceiling;
|
||||
_pthread_mutexattr_getprotocol;
|
||||
_pthread_mutexattr_getpshared;
|
||||
_pthread_mutexattr_gettype;
|
||||
_pthread_mutexattr_init;
|
||||
_pthread_mutexattr_setkind_np;
|
||||
_pthread_mutexattr_setprioceiling;
|
||||
_pthread_mutexattr_setprotocol;
|
||||
_pthread_mutexattr_setpshared;
|
||||
_pthread_mutexattr_settype;
|
||||
_pthread_once;
|
||||
_pthread_resume_all_np;
|
||||
_pthread_resume_np;
|
||||
_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_getpshared;
|
||||
_pthread_rwlockattr_init;
|
||||
_pthread_rwlockattr_setpshared;
|
||||
_pthread_self;
|
||||
_pthread_set_name_np;
|
||||
_pthread_setcancelstate;
|
||||
_pthread_setcanceltype;
|
||||
_pthread_setconcurrency;
|
||||
_pthread_setprio;
|
||||
_pthread_setschedparam;
|
||||
_pthread_setspecific;
|
||||
_pthread_sigmask;
|
||||
_pthread_single_np;
|
||||
_pthread_spin_destroy;
|
||||
_pthread_spin_init;
|
||||
_pthread_spin_lock;
|
||||
_pthread_spin_trylock;
|
||||
_pthread_spin_unlock;
|
||||
_pthread_suspend_all_np;
|
||||
_pthread_suspend_np;
|
||||
_pthread_switch_add_np;
|
||||
_pthread_switch_delete_np;
|
||||
_pthread_testcancel;
|
||||
_pthread_yield;
|
||||
_raise;
|
||||
_sched_yield;
|
||||
_sem_init;
|
||||
_sem_post;
|
||||
_sem_timedwait;
|
||||
_sem_wait;
|
||||
_sigaction;
|
||||
_sigaltstack;
|
||||
_sigpending;
|
||||
_sigprocmask;
|
||||
_sigsuspend;
|
||||
_sigtimedwait;
|
||||
_sigwait;
|
||||
_sigwaitinfo;
|
||||
_sleep;
|
||||
_spinlock;
|
||||
_spinlock_debug;
|
||||
_spinunlock;
|
||||
_system;
|
||||
_tcdrain;
|
||||
_usleep;
|
||||
_vfork;
|
||||
_wait;
|
||||
_waitpid;
|
||||
accept;
|
||||
aio_suspend;
|
||||
close;
|
||||
connect;
|
||||
creat;
|
||||
execve;
|
||||
fcntl;
|
||||
fork;
|
||||
fsync;
|
||||
msync;
|
||||
nanosleep;
|
||||
open;
|
||||
pause;
|
||||
poll;
|
||||
pselect;
|
||||
pthread_atfork;
|
||||
pthread_barrier_destroy;
|
||||
pthread_barrier_init;
|
||||
pthread_barrier_wait;
|
||||
pthread_barrierattr_destroy;
|
||||
pthread_barrierattr_getpshared;
|
||||
pthread_barrierattr_init;
|
||||
pthread_barrierattr_setpshared;
|
||||
pthread_attr_destroy;
|
||||
pthread_attr_get_np;
|
||||
pthread_attr_getdetachstate;
|
||||
pthread_attr_getguardsize;
|
||||
pthread_attr_getinheritsched;
|
||||
pthread_attr_getschedparam;
|
||||
pthread_attr_getschedpolicy;
|
||||
pthread_attr_getscope;
|
||||
pthread_attr_getstack;
|
||||
pthread_attr_getstackaddr;
|
||||
pthread_attr_getstacksize;
|
||||
pthread_attr_init;
|
||||
pthread_attr_setcreatesuspend_np;
|
||||
pthread_attr_setdetachstate;
|
||||
pthread_attr_setguardsize;
|
||||
pthread_attr_setinheritsched;
|
||||
pthread_attr_setschedparam;
|
||||
pthread_attr_setschedpolicy;
|
||||
pthread_attr_setscope;
|
||||
pthread_attr_setstack;
|
||||
pthread_attr_setstackaddr;
|
||||
pthread_attr_setstacksize;
|
||||
pthread_cancel;
|
||||
pthread_cleanup_pop;
|
||||
pthread_cleanup_push;
|
||||
pthread_cond_broadcast;
|
||||
pthread_cond_destroy;
|
||||
pthread_cond_init;
|
||||
pthread_cond_signal;
|
||||
pthread_cond_timedwait;
|
||||
pthread_cond_wait;
|
||||
pthread_condattr_destroy;
|
||||
pthread_condattr_getpshared;
|
||||
pthread_condattr_init;
|
||||
pthread_condattr_setpshared;
|
||||
pthread_create;
|
||||
pthread_detach;
|
||||
pthread_equal;
|
||||
pthread_exit;
|
||||
pthread_getconcurrency;
|
||||
pthread_getprio;
|
||||
pthread_getschedparam;
|
||||
pthread_getspecific;
|
||||
pthread_join;
|
||||
pthread_key_create;
|
||||
pthread_key_delete;
|
||||
pthread_kill;
|
||||
pthread_main_np;
|
||||
pthread_multi_np;
|
||||
pthread_mutex_destroy;
|
||||
pthread_mutex_getprioceiling;
|
||||
pthread_mutex_init;
|
||||
pthread_mutex_lock;
|
||||
pthread_mutex_setprioceiling;
|
||||
pthread_mutex_timedlock;
|
||||
pthread_mutex_trylock;
|
||||
pthread_mutex_unlock;
|
||||
pthread_mutexattr_destroy;
|
||||
pthread_mutexattr_getkind_np;
|
||||
pthread_mutexattr_getprioceiling;
|
||||
pthread_mutexattr_getprotocol;
|
||||
pthread_mutexattr_getpshared;
|
||||
pthread_mutexattr_gettype;
|
||||
pthread_mutexattr_init;
|
||||
pthread_mutexattr_setkind_np;
|
||||
pthread_mutexattr_setprioceiling;
|
||||
pthread_mutexattr_setprotocol;
|
||||
pthread_mutexattr_setpshared;
|
||||
pthread_mutexattr_settype;
|
||||
pthread_once;
|
||||
pthread_resume_all_np;
|
||||
pthread_resume_np;
|
||||
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_getpshared;
|
||||
pthread_rwlockattr_init;
|
||||
pthread_rwlockattr_setpshared;
|
||||
pthread_self;
|
||||
pthread_set_name_np;
|
||||
pthread_setcancelstate;
|
||||
pthread_setcanceltype;
|
||||
pthread_setconcurrency;
|
||||
pthread_setprio;
|
||||
pthread_setschedparam;
|
||||
pthread_setspecific;
|
||||
pthread_sigmask;
|
||||
pthread_single_np;
|
||||
pthread_spin_destroy;
|
||||
pthread_spin_init;
|
||||
pthread_spin_lock;
|
||||
pthread_spin_trylock;
|
||||
pthread_spin_unlock;
|
||||
pthread_suspend_all_np;
|
||||
pthread_suspend_np;
|
||||
pthread_switch_add_np;
|
||||
pthread_switch_delete_np;
|
||||
pthread_testcancel;
|
||||
pthread_yield;
|
||||
raise;
|
||||
read;
|
||||
readv;
|
||||
sched_yield;
|
||||
select;
|
||||
sem_init;
|
||||
sem_post;
|
||||
sem_timedwait;
|
||||
sem_wait;
|
||||
sigaction;
|
||||
sigaltstack;
|
||||
sigpending;
|
||||
sigprocmask;
|
||||
sigsuspend;
|
||||
sigwait;
|
||||
sigwaitinfo;
|
||||
sigtimedwait;
|
||||
sleep;
|
||||
system;
|
||||
tcdrain;
|
||||
usleep;
|
||||
vfork;
|
||||
wait4;
|
||||
wait;
|
||||
waitpid;
|
||||
write;
|
||||
writev;
|
||||
|
||||
/* Debugger needs these. */
|
||||
_libkse_debug;
|
||||
_thread_activated;
|
||||
_thread_active_threads;
|
||||
_thread_keytable;
|
||||
_thread_list;
|
||||
_thread_max_keys;
|
||||
_thread_off_attr_flags;
|
||||
_thread_off_dtv;
|
||||
_thread_off_linkmap;
|
||||
_thread_off_next;
|
||||
_thread_off_tcb;
|
||||
_thread_off_tmbx;
|
||||
_thread_off_key_allocated;
|
||||
_thread_off_key_destructor;
|
||||
_thread_off_kse;
|
||||
_thread_off_kse_locklevel;
|
||||
_thread_off_state;
|
||||
_thread_off_thr_locklevel;
|
||||
_thread_off_tlsindex;
|
||||
_thread_size_key;
|
||||
_thread_state_running;
|
||||
_thread_state_zoombie;
|
||||
|
||||
local:
|
||||
*;
|
||||
};
|
||||
|
||||
/*
|
||||
* Use the same naming scheme as libc.
|
||||
*/
|
||||
|
@ -64,7 +64,7 @@
|
||||
* LIBTHREAD_1_0, we need to provide a compatible interface for
|
||||
* those symbols.
|
||||
*/
|
||||
#if defined(SYMBOL_VERSIONING) && defined(PIC)
|
||||
#if 0
|
||||
#define SYM_LT10(sym) __CONCAT(sym, _lt10)
|
||||
#define SYM_FB10(sym) __CONCAT(sym, _fb10)
|
||||
#define SYM_FBP10(sym) __CONCAT(sym, _fbp10)
|
||||
|
@ -11,8 +11,6 @@ SRCS+= aio.c mq.c sigev_thread.c timer.c
|
||||
|
||||
PRECIOUSLIB=
|
||||
|
||||
.if defined(SYMVER_ENABLED)
|
||||
VERSION_MAP= ${.CURDIR}/Version.map
|
||||
.endif
|
||||
|
||||
.include <bsd.lib.mk>
|
||||
|
@ -8,12 +8,12 @@
|
||||
# (for system call stubs) to CFLAGS below. -DSYSLIBC_SCCS affects just the
|
||||
# system call stubs.
|
||||
|
||||
.include <bsd.own.mk>
|
||||
|
||||
.if ${MACHINE_ARCH} == "sparc64" || ${MK_LIBPTHREAD} == "no"
|
||||
SHLIBDIR= /lib
|
||||
.if !defined(DEFAULT_THREAD_LIB) || (${DEFAULT_THREAD_LIB} == "libthr")
|
||||
SHLIBDIR?= /lib
|
||||
.endif
|
||||
|
||||
.include <bsd.own.mk>
|
||||
|
||||
LIB=thr
|
||||
SHLIB_MAJOR= 2
|
||||
CFLAGS+=-DPTHREAD_KERNEL
|
||||
@ -28,7 +28,7 @@ CFLAGS+=-Winline
|
||||
|
||||
# CFLAGS+=-DSYSTEM_SCOPE_ONLY
|
||||
|
||||
LDFLAGS= -Wl,--version-script=${.CURDIR}/pthread.map
|
||||
VERSION_MAP=${.CURDIR}/pthread.map
|
||||
|
||||
MAN= libthr.3
|
||||
|
||||
@ -42,7 +42,7 @@ PRECIOUSLIB=
|
||||
.include "${.CURDIR}/sys/Makefile.inc"
|
||||
.include "${.CURDIR}/thread/Makefile.inc"
|
||||
|
||||
.if ${MACHINE_ARCH} == "sparc64" || ${MK_LIBPTHREAD} == "no"
|
||||
.if ${DEFAULT_THREAD_LIB} == "libthr"
|
||||
SYMLINKS+=lib${LIB}.a ${LIBDIR}/libpthread.a
|
||||
.if !defined(NO_PIC)
|
||||
SYMLINKS+=lib${LIB}.so ${LIBDIR}/libpthread.so
|
||||
|
@ -2,380 +2,6 @@
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
LIBTHREAD_1_0 {
|
||||
global:
|
||||
___creat;
|
||||
___pause;
|
||||
___pselect;
|
||||
___sleep;
|
||||
___system;
|
||||
___tcdrain;
|
||||
___usleep;
|
||||
___wait;
|
||||
___waitpid;
|
||||
__accept;
|
||||
__aio_suspend;
|
||||
__close;
|
||||
__connect;
|
||||
__error;
|
||||
__fcntl;
|
||||
__fsync;
|
||||
__msync;
|
||||
__nanosleep;
|
||||
__open;
|
||||
__poll;
|
||||
__pthread_cond_timedwait;
|
||||
__pthread_cond_wait;
|
||||
__pthread_mutex_init;
|
||||
__pthread_mutex_lock;
|
||||
__pthread_mutex_timedlock;
|
||||
__pthread_mutex_trylock;
|
||||
__read;
|
||||
__readv;
|
||||
__recvfrom;
|
||||
__recvmsg;
|
||||
__select;
|
||||
__sendmsg;
|
||||
__sendto;
|
||||
__sigsuspend;
|
||||
__sigtimedwait;
|
||||
__sigwait;
|
||||
__sigwaitinfo;
|
||||
__wait3;
|
||||
__wait4;
|
||||
__write;
|
||||
__writev;
|
||||
_fork;
|
||||
_pthread_atfork;
|
||||
_pthread_barrier_destroy;
|
||||
_pthread_barrier_init;
|
||||
_pthread_barrier_wait;
|
||||
_pthread_barrierattr_destroy;
|
||||
_pthread_barrierattr_getpshared;
|
||||
_pthread_barrierattr_init;
|
||||
_pthread_barrierattr_setpshared;
|
||||
_pthread_attr_destroy;
|
||||
_pthread_attr_get_np;
|
||||
_pthread_attr_getdetachstate;
|
||||
_pthread_attr_getguardsize;
|
||||
_pthread_attr_getinheritsched;
|
||||
_pthread_attr_getschedparam;
|
||||
_pthread_attr_getschedpolicy;
|
||||
_pthread_attr_getscope;
|
||||
_pthread_attr_getstack;
|
||||
_pthread_attr_getstackaddr;
|
||||
_pthread_attr_getstacksize;
|
||||
_pthread_attr_init;
|
||||
_pthread_attr_setcreatesuspend_np;
|
||||
_pthread_attr_setdetachstate;
|
||||
_pthread_attr_setguardsize;
|
||||
_pthread_attr_setinheritsched;
|
||||
_pthread_attr_setschedparam;
|
||||
_pthread_attr_setschedpolicy;
|
||||
_pthread_attr_setscope;
|
||||
_pthread_attr_setstack;
|
||||
_pthread_attr_setstackaddr;
|
||||
_pthread_attr_setstacksize;
|
||||
_pthread_cancel;
|
||||
_pthread_cleanup_pop;
|
||||
_pthread_cleanup_push;
|
||||
_pthread_cond_broadcast;
|
||||
_pthread_cond_destroy;
|
||||
_pthread_cond_init;
|
||||
_pthread_cond_signal;
|
||||
_pthread_cond_timedwait;
|
||||
_pthread_cond_wait;
|
||||
_pthread_condattr_destroy;
|
||||
_pthread_condattr_getclock;
|
||||
_pthread_condattr_getpshared;
|
||||
_pthread_condattr_init;
|
||||
_pthread_condattr_setclock;
|
||||
_pthread_condattr_setpshared;
|
||||
_pthread_create;
|
||||
_pthread_detach;
|
||||
_pthread_equal;
|
||||
_pthread_exit;
|
||||
_pthread_getconcurrency;
|
||||
_pthread_getprio;
|
||||
_pthread_getschedparam;
|
||||
_pthread_getspecific;
|
||||
_pthread_join;
|
||||
_pthread_key_create;
|
||||
_pthread_key_delete;
|
||||
_pthread_kill;
|
||||
_pthread_main_np;
|
||||
_pthread_multi_np;
|
||||
_pthread_mutex_destroy;
|
||||
_pthread_mutex_getprioceiling;
|
||||
_pthread_mutex_init;
|
||||
_pthread_mutex_lock;
|
||||
_pthread_mutex_setprioceiling;
|
||||
_pthread_mutex_timedlock;
|
||||
_pthread_mutex_trylock;
|
||||
_pthread_mutex_unlock;
|
||||
_pthread_mutexattr_destroy;
|
||||
_pthread_mutexattr_getkind_np;
|
||||
_pthread_mutexattr_getprioceiling;
|
||||
_pthread_mutexattr_getprotocol;
|
||||
_pthread_mutexattr_getpshared;
|
||||
_pthread_mutexattr_gettype;
|
||||
_pthread_mutexattr_init;
|
||||
_pthread_mutexattr_setkind_np;
|
||||
_pthread_mutexattr_setprioceiling;
|
||||
_pthread_mutexattr_setprotocol;
|
||||
_pthread_mutexattr_setpshared;
|
||||
_pthread_mutexattr_settype;
|
||||
_pthread_once;
|
||||
_pthread_resume_all_np;
|
||||
_pthread_resume_np;
|
||||
_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_getpshared;
|
||||
_pthread_rwlockattr_init;
|
||||
_pthread_rwlockattr_setpshared;
|
||||
_pthread_self;
|
||||
_pthread_set_name_np;
|
||||
_pthread_setcancelstate;
|
||||
_pthread_setcanceltype;
|
||||
_pthread_setconcurrency;
|
||||
_pthread_setprio;
|
||||
_pthread_setschedparam;
|
||||
_pthread_setspecific;
|
||||
_pthread_sigmask;
|
||||
_pthread_single_np;
|
||||
_pthread_spin_destroy;
|
||||
_pthread_spin_init;
|
||||
_pthread_spin_lock;
|
||||
_pthread_spin_trylock;
|
||||
_pthread_spin_unlock;
|
||||
_pthread_suspend_all_np;
|
||||
_pthread_suspend_np;
|
||||
_pthread_switch_add_np;
|
||||
_pthread_switch_delete_np;
|
||||
_pthread_testcancel;
|
||||
_pthread_timedjoin_np;
|
||||
_pthread_yield;
|
||||
_raise;
|
||||
_sem_destroy;
|
||||
_sem_getvalue;
|
||||
_sem_init;
|
||||
_sem_post;
|
||||
_sem_timedwait;
|
||||
_sem_trywait;
|
||||
_sem_wait;
|
||||
_sigaction;
|
||||
_sigprocmask;
|
||||
_sigsuspend;
|
||||
_sigtimedwait;
|
||||
_sigwait;
|
||||
_sigwaitinfo;
|
||||
_spinlock;
|
||||
_spinlock_debug;
|
||||
_spinunlock;
|
||||
_vfork;
|
||||
accept;
|
||||
aio_suspend;
|
||||
close;
|
||||
connect;
|
||||
creat;
|
||||
execve;
|
||||
fcntl;
|
||||
fork;
|
||||
fsync;
|
||||
msync;
|
||||
nanosleep;
|
||||
open;
|
||||
pause;
|
||||
poll;
|
||||
pselect;
|
||||
pthread_atfork;
|
||||
pthread_barrier_destroy;
|
||||
pthread_barrier_init;
|
||||
pthread_barrier_wait;
|
||||
pthread_barrierattr_destroy;
|
||||
pthread_barrierattr_getpshared;
|
||||
pthread_barrierattr_init;
|
||||
pthread_barrierattr_setpshared;
|
||||
pthread_attr_destroy;
|
||||
pthread_attr_get_np;
|
||||
pthread_attr_getdetachstate;
|
||||
pthread_attr_getguardsize;
|
||||
pthread_attr_getinheritsched;
|
||||
pthread_attr_getschedparam;
|
||||
pthread_attr_getschedpolicy;
|
||||
pthread_attr_getscope;
|
||||
pthread_attr_getstack;
|
||||
pthread_attr_getstackaddr;
|
||||
pthread_attr_getstacksize;
|
||||
pthread_attr_init;
|
||||
pthread_attr_setcreatesuspend_np;
|
||||
pthread_attr_setdetachstate;
|
||||
pthread_attr_setguardsize;
|
||||
pthread_attr_setinheritsched;
|
||||
pthread_attr_setschedparam;
|
||||
pthread_attr_setschedpolicy;
|
||||
pthread_attr_setscope;
|
||||
pthread_attr_setstack;
|
||||
pthread_attr_setstackaddr;
|
||||
pthread_attr_setstacksize;
|
||||
pthread_cancel;
|
||||
pthread_cleanup_pop;
|
||||
pthread_cleanup_push;
|
||||
pthread_cond_broadcast;
|
||||
pthread_cond_destroy;
|
||||
pthread_cond_init;
|
||||
pthread_cond_signal;
|
||||
pthread_cond_timedwait;
|
||||
pthread_cond_wait;
|
||||
pthread_condattr_destroy;
|
||||
pthread_condattr_getclock;
|
||||
pthread_condattr_getpshared;
|
||||
pthread_condattr_init;
|
||||
pthread_condattr_setclock;
|
||||
pthread_condattr_setpshared;
|
||||
pthread_create;
|
||||
pthread_detach;
|
||||
pthread_equal;
|
||||
pthread_exit;
|
||||
pthread_getconcurrency;
|
||||
pthread_getprio;
|
||||
pthread_getschedparam;
|
||||
pthread_getspecific;
|
||||
pthread_join;
|
||||
pthread_key_create;
|
||||
pthread_key_delete;
|
||||
pthread_kill;
|
||||
pthread_main_np;
|
||||
pthread_multi_np;
|
||||
pthread_mutex_destroy;
|
||||
pthread_mutex_getprioceiling;
|
||||
pthread_mutex_init;
|
||||
pthread_mutex_lock;
|
||||
pthread_mutex_setprioceiling;
|
||||
pthread_mutex_timedlock;
|
||||
pthread_mutex_trylock;
|
||||
pthread_mutex_unlock;
|
||||
pthread_mutexattr_destroy;
|
||||
pthread_mutexattr_getkind_np;
|
||||
pthread_mutexattr_getprioceiling;
|
||||
pthread_mutexattr_getpshared;
|
||||
pthread_mutexattr_getprotocol;
|
||||
pthread_mutexattr_gettype;
|
||||
pthread_mutexattr_init;
|
||||
pthread_mutexattr_setkind_np;
|
||||
pthread_mutexattr_setprioceiling;
|
||||
pthread_mutexattr_setprotocol;
|
||||
pthread_mutexattr_setpshared;
|
||||
pthread_mutexattr_settype;
|
||||
pthread_once;
|
||||
pthread_resume_all_np;
|
||||
pthread_resume_np;
|
||||
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_getpshared;
|
||||
pthread_rwlockattr_init;
|
||||
pthread_rwlockattr_setpshared;
|
||||
pthread_self;
|
||||
pthread_set_name_np;
|
||||
pthread_setcancelstate;
|
||||
pthread_setcanceltype;
|
||||
pthread_setconcurrency;
|
||||
pthread_setprio;
|
||||
pthread_setschedparam;
|
||||
pthread_setspecific;
|
||||
pthread_sigmask;
|
||||
pthread_single_np;
|
||||
pthread_spin_destroy;
|
||||
pthread_spin_init;
|
||||
pthread_spin_lock;
|
||||
pthread_spin_trylock;
|
||||
pthread_spin_unlock;
|
||||
pthread_suspend_all_np;
|
||||
pthread_suspend_np;
|
||||
pthread_switch_add_np;
|
||||
pthread_switch_delete_np;
|
||||
pthread_testcancel;
|
||||
pthread_timedjoin_np;
|
||||
pthread_yield;
|
||||
raise;
|
||||
read;
|
||||
readv;
|
||||
recvfrom;
|
||||
recvmsg;
|
||||
select;
|
||||
sem_destroy;
|
||||
sem_getvalue;
|
||||
sem_init;
|
||||
sem_post;
|
||||
sem_timedwait;
|
||||
sem_trywait;
|
||||
sem_wait;
|
||||
sendmsg;
|
||||
sendto;
|
||||
sigaction;
|
||||
sigprocmask;
|
||||
sigsuspend;
|
||||
sigwait;
|
||||
sigwaitinfo;
|
||||
sigtimedwait;
|
||||
sleep;
|
||||
system;
|
||||
tcdrain;
|
||||
usleep;
|
||||
vfork;
|
||||
wait;
|
||||
wait3;
|
||||
wait4;
|
||||
waitpid;
|
||||
write;
|
||||
writev;
|
||||
|
||||
/* Debugger needs these. */
|
||||
_libthr_debug;
|
||||
_thread_active_threads;
|
||||
_thread_bp_create;
|
||||
_thread_bp_death;
|
||||
_thread_event_mask;
|
||||
_thread_keytable;
|
||||
_thread_last_event;
|
||||
_thread_list;
|
||||
_thread_max_keys;
|
||||
_thread_off_attr_flags;
|
||||
_thread_off_dtv;
|
||||
_thread_off_event_buf;
|
||||
_thread_off_event_mask;
|
||||
_thread_off_key_allocated;
|
||||
_thread_off_key_destructor;
|
||||
_thread_off_linkmap;
|
||||
_thread_off_next;
|
||||
_thread_off_report_events;
|
||||
_thread_off_state;
|
||||
_thread_off_tcb;
|
||||
_thread_off_tid;
|
||||
_thread_off_tlsindex;
|
||||
_thread_size_key;
|
||||
_thread_state_running;
|
||||
_thread_state_zoombie;
|
||||
local:
|
||||
*;
|
||||
};
|
||||
|
||||
/*
|
||||
* Use the same naming scheme as libc.
|
||||
*/
|
||||
|
@ -13,9 +13,7 @@ WARNS?= 1
|
||||
CFLAGS+=-I. -I${.CURDIR}
|
||||
SYM_MAPS+=${.CURDIR}/Symbol.map
|
||||
|
||||
.if defined(SYMVER_ENABLED)
|
||||
SYMBOL_MAPS=${SYM_MAPS}
|
||||
VERSION_DEF=${.CURDIR}/../libc/Versions.def
|
||||
.endif
|
||||
|
||||
.include <bsd.lib.mk>
|
||||
|
@ -63,10 +63,8 @@ LIBCDIR= ${.CURDIR}/../libc
|
||||
CFLAGS+= -I${LIBCDIR}/include -I${LIBCDIR}/${MACHINE_ARCH}
|
||||
SYM_MAPS+= ${.CURDIR}/Symbol.map
|
||||
|
||||
.if defined(SYMVER_ENABLED)
|
||||
VERSION_DEF= ${LIBCDIR}/Versions.def
|
||||
SYMBOL_MAPS= ${SYM_MAPS}
|
||||
.endif
|
||||
|
||||
# C99 long double functions
|
||||
COMMON_SRCS+= s_copysignl.c s_fabsl.c s_modfl.c
|
||||
|
@ -1,5 +1,7 @@
|
||||
# $FreeBSD$
|
||||
|
||||
.include <bsd.own.mk>
|
||||
|
||||
PROG?= ld-elf.so.1
|
||||
SRCS= rtld_start.S \
|
||||
reloc.c rtld.c rtld_lock.c map_object.c \
|
||||
@ -21,7 +23,7 @@ LDFLAGS+= -shared -Wl,-Bsymbolic
|
||||
DPADD= ${LIBC_PIC}
|
||||
LDADD= -lc_pic
|
||||
|
||||
.if defined(SYMVER_ENABLED)
|
||||
.if ${MK_SYMVER} == "yes"
|
||||
LIBCDIR= ${.CURDIR}/../../lib/libc
|
||||
VERSION_DEF= ${LIBCDIR}/Versions.def
|
||||
SYMBOL_MAPS= ${.CURDIR}/Symbol.map
|
||||
|
@ -108,7 +108,7 @@ all: objwarn
|
||||
|
||||
# Allow librararies to specify their own version map or have it
|
||||
# automatically generated (see bsd.symver.mk above).
|
||||
.if !empty(VERSION_MAP)
|
||||
.if (${MK_SYMVER} == "yes") && !empty(VERSION_MAP)
|
||||
${SHLIB_NAME}: ${VERSION_MAP}
|
||||
LDFLAGS+= -Wl,--version-script=${VERSION_MAP}
|
||||
.endif
|
||||
|
@ -120,7 +120,11 @@ MINUSLPAM+= -lypclnt
|
||||
LIBPANEL?= ${DESTDIR}${LIBDIR}/libpanel.a
|
||||
LIBPCAP?= ${DESTDIR}${LIBDIR}/libpcap.a
|
||||
LIBPMC?= ${DESTDIR}${LIBDIR}/libpmc.a
|
||||
LIBPTHREAD?= ${DESTDIR}${LIBDIR}/libpthread.a
|
||||
.if defined(DEFAULT_THREAD_LIB)
|
||||
LIBPTHREAD?= ${DESTDIR}${LIBDIR}/${DEFAULT_THREAD_LIB}.a
|
||||
.else
|
||||
LIBPTHREAD?= ${DESTDIR}${LIBDIR}/libthr.a
|
||||
.endif
|
||||
LIBRADIUS?= ${DESTDIR}${LIBDIR}/libradius.a
|
||||
LIBREADLINE?= ${DESTDIR}${LIBDIR}/libreadline.a
|
||||
LIBROKEN?= ${DESTDIR}${LIBDIR}/libroken.a
|
||||
|
@ -162,6 +162,8 @@ NLSOWN?= ${SHAREOWN}
|
||||
NLSGRP?= ${SHAREGRP}
|
||||
NLSMODE?= ${NOBINMODE}
|
||||
|
||||
DEFAULT_THREAD_LIB?= libthr
|
||||
|
||||
INCLUDEDIR?= /usr/include
|
||||
|
||||
# Common variables
|
||||
@ -348,6 +350,7 @@ WITH_IDEA=
|
||||
SENDMAIL \
|
||||
SETUID_LOGIN \
|
||||
SHAREDOCS \
|
||||
SYMVER \
|
||||
SYSCONS \
|
||||
TCSH \
|
||||
TOOLCHAIN \
|
||||
|
@ -7,7 +7,7 @@ __<bsd.symver.mk>__:
|
||||
|
||||
# Generate the version map given the version definitions
|
||||
# and symbol maps.
|
||||
.if !empty(VERSION_DEF) && !empty(SYMBOL_MAPS)
|
||||
.if (${MK_SYMVER} == "yes") && !empty(VERSION_DEF) && !empty(SYMBOL_MAPS)
|
||||
# Find the awk script that generates the version map.
|
||||
VERSION_GEN?= version_gen.awk
|
||||
VERSION_MAP?= Version.map
|
||||
|
Loading…
Reference in New Issue
Block a user