freebsd-dev/lib/libc/gen
John Polstra 3600eb76c6 Work around an assert failure in the dynamic linker's default thread
locking functions.  If an application loads a shared object with
dlopen() and the shared object has an init function which requires
lazy binding, then _rtld_bind is called when the thread is already
inside the dynamic linker.  This leads to a recursive acquisition
of the lock, which I was not expecting -- hence the assert failure.

This work-around makes the default locking functions handle recursive
locking.  It is NOT the correct fix -- that should be implemented
at the generic locking level rather than in the default locking
functions.  I will implement the correct fix in a future commit.

Since the dllockinit() interface will likely need to change, warn
about that in both the man page and the header file.
1999-12-28 04:38:17 +00:00
..
__xuname.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
_rand48.c Added *ran48 functions, and put them in the correct place this time. 1994-09-23 00:37:55 +00:00
_spinlock_stub.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
alarm.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
alarm.c BSD 4.4 Lite Lib Sources 1994-05-27 05:00:24 +00:00
arc4random.3 mdoc(7)'fy 1999-10-30 15:12:25 +00:00
arc4random.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
assert.c Don't include <sys/types.h> when it isn't used. 1996-04-19 18:40:25 +00:00
clock.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
clock.c Change CLK_TCK to CLOCKS_PER_SEC. (CLK_TCK is a deprecated POSIX feature 1995-02-03 21:59:45 +00:00
closedir.c General -Wall warning cleanup, part I. 1996-07-12 18:57:58 +00:00
confstr.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
confstr.c Minor cleanup, mostly unused vars and missing #includes. 1995-10-22 14:37:11 +00:00
crypt.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
crypt.c $Header$ -> $FreeBSD$ 1999-08-28 05:11:36 +00:00
ctermid.3 Provide and document ctermid_r function. 1999-11-28 23:28:49 +00:00
ctermid.c Provide and document ctermid_r function. 1999-11-28 23:28:49 +00:00
daemon.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
daemon.c BSD 4.4 Lite Lib Sources 1994-05-27 05:00:24 +00:00
devname.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
devname.c Make devname(3) return something more intelligent than NULL if it doesn't 1999-07-18 10:19:48 +00:00
directory.3 Provide a man page for Alfreds lovely readdir_r function. Also 1999-11-29 06:12:22 +00:00
disklabel.c Add unsigned char cast to isdigit 1999-11-04 04:46:18 +00:00
dladdr.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
dlfcn.c Add a new function dllockinit() for registering thread locking 1999-12-27 04:44:04 +00:00
dllockinit.3 Work around an assert failure in the dynamic linker's default thread 1999-12-28 04:38:17 +00:00
dlopen.3 It is no longer necessary to prepend underscores to external symbols under 1999-11-02 18:18:26 +00:00
drand48.c Added *ran48 functions, and put them in the correct place this time. 1994-09-23 00:37:55 +00:00
erand48.c Added *ran48 functions, and put them in the correct place this time. 1994-09-23 00:37:55 +00:00
err.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
err.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
errlst.c Add missing strings. 1999-04-24 18:28:24 +00:00
exec.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
exec.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
fnmatch.3 mdoc(7)'fy 1999-10-30 15:12:25 +00:00
fnmatch.c Style optimization in newly added POSIX range []] conformance, redo 1997-06-07 01:33:10 +00:00
frexp.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
fstab.c Fix the fixfsfile() so that it works for both block and character devices 1999-12-23 14:44:36 +00:00
ftok.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
ftok.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
fts-compat.c Switch over to the OpenBSD fts.c, fixing lots of things. 1999-12-18 04:36:14 +00:00
fts-compat.h Back out all of yesterdays include file changes. 1997-05-07 20:01:10 +00:00
fts.3 fts_pathlen and fts_namelen are u_short, not short 1999-11-15 03:29:19 +00:00
fts.c Switch over to the OpenBSD fts.c, fixing lots of things. 1999-12-18 04:36:14 +00:00
getbootfile.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getbootfile.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getbsize.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getbsize.c Fixed printf format errors. 1998-08-02 14:41:34 +00:00
getcap.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getcap.c Add unsigned char cast to isspace arg 1999-11-04 04:16:28 +00:00
getcwd.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getcwd.c Explicitly use sigemptyset to clear a sigset_t. Explicit 1999-09-28 13:24:13 +00:00
getdiskbyname.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getdomainname.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getdomainname.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getfsent.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getgrent.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getgrent.c Replace memory leaking instances of realloc with non-leaking reallocf. 1998-09-16 04:17:47 +00:00
getgrouplist.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getgrouplist.c Fixed merging error. Lite2 fixed premature failure and didn't 1997-03-12 14:54:22 +00:00
gethostname.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
gethostname.c gethostname() returns int, not long. Answered my own question by 1996-12-05 18:14:56 +00:00
getloadavg.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getloadavg.c BSD 4.4 Lite Lib Sources 1994-05-27 05:00:24 +00:00
getlogin.c Provide the getlogin_r function. 1999-11-28 22:41:38 +00:00
getmntinfo.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getmntinfo.c BSD 4.4 Lite Lib Sources 1994-05-27 05:00:24 +00:00
getnetgrent.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getnetgrent.c Add unsigned char cast to isspace arg 1999-11-04 04:16:28 +00:00
getobjformat.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getobjformat.c Initialize a var to quiet -Wall. 1999-12-18 04:47:43 +00:00
getosreldate.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getpagesize.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getpagesize.c Cache the result of getpagesize() so we only make one syscall. 1996-05-02 08:43:05 +00:00
getpass.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getpass.c Do signal handlig he Posix way 1998-02-10 20:05:15 +00:00
getpwent.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getpwent.c YP/NIS code: remove unnecessary endgrent() calls which can cause fail on 1999-10-16 12:31:49 +00:00
getttyent.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getttyent.c Add unsigned char cast to isspace arg 1999-11-04 04:16:28 +00:00
getusershell.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getusershell.c Add unsigned char cast to isspace arg 1999-11-04 04:16:28 +00:00
getvfsbyname.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getvfsbyname.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getvfsent.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
getvfsent.c vfsload maps into kldload only now, no more fork/exec of modload(8). 1999-04-19 14:28:45 +00:00
glob.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
glob.c NetBSD kernels don't have issetugid(), so #ifdef this out when 1998-02-20 07:54:56 +00:00
initgroups.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
initgroups.c General -Wall warning cleanup, part I. 1996-07-12 18:57:58 +00:00
isatty.c Implement compile time debug mode for thread locks. 1998-06-09 08:32:23 +00:00
isinf.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
jrand48.c Added *ran48 functions, and put them in the correct place this time. 1994-09-23 00:37:55 +00:00
lcong48.c Added *ran48 functions, and put them in the correct place this time. 1994-09-23 00:37:55 +00:00
ldexp.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
lockf.3 Remove useless section. 1999-11-09 00:28:34 +00:00
lockf.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
lrand48.c Added *ran48 functions, and put them in the correct place this time. 1994-09-23 00:37:55 +00:00
Makefile.inc Add a new function dllockinit() for registering thread locking 1999-12-27 04:44:04 +00:00
modf.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
mrand48.c Added *ran48 functions, and put them in the correct place this time. 1994-09-23 00:37:55 +00:00
msgctl.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
msgctl.c Added SYSV ipc system calls. 1994-09-13 14:52:45 +00:00
msgget.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
msgget.c Added SYSV ipc system calls. 1994-09-13 14:52:45 +00:00
msgrcv.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
msgrcv.c Added SYSV ipc system calls. 1994-09-13 14:52:45 +00:00
msgsnd.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
msgsnd.c Added SYSV ipc system calls. 1994-09-13 14:52:45 +00:00
nice.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
nice.c Remove extern int errno and #include <errno.h> to get the proper definition. 1998-05-05 22:04:13 +00:00
nlist.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
nlist.c Handle ELF symbols better. This fixes "vmstat -i" for the case 1998-10-28 06:37:49 +00:00
nrand48.c Added *ran48 functions, and put them in the correct place this time. 1994-09-23 00:37:55 +00:00
ntp_gettime.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
opendir.c Replace memory leaking instances of realloc with non-leaking reallocf. 1998-09-16 04:17:47 +00:00
pause.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
pause.c BSD 4.4 Lite Lib Sources 1994-05-27 05:00:24 +00:00
popen.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
popen.c Conform to POSIX and close any copies of popen() descriptors inherited by a 1998-10-15 01:47:40 +00:00
psignal.3 Fixed wrong prototype and missing include for strsignal(3). strsignal() 1999-12-23 16:29:58 +00:00
psignal.c The man page implies that the string argument to psignal() may be 1998-10-29 11:39:39 +00:00
pw_scan.c Replace the -q option to pwd_mkdb with a test for PW_SCAN_BIG_IDS in 1999-12-02 16:39:15 +00:00
pw_scan.h Add to pwd_mkdb a -q option to silence warnings about large IDs. Add a 1999-11-15 16:45:37 +00:00
pwcache.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
pwcache.c Honor the nouser/nogroup flag when determing if NULL should 1997-04-03 01:51:34 +00:00
raise.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
raise.c General -Wall warning cleanup, part I. 1996-07-12 18:57:58 +00:00
rand48.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
rand48.h Added *ran48 functions, and put them in the correct place this time. 1994-09-23 00:37:55 +00:00
readdir.c style fixes, remove extra braces. 1999-11-29 19:12:50 +00:00
rewinddir.c General -Wall warning cleanup, part I. 1996-07-12 18:57:58 +00:00
scandir.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
scandir.c Fix a memory leak 1998-10-07 01:30:02 +00:00
seed48.c Added *ran48 functions, and put them in the correct place this time. 1994-09-23 00:37:55 +00:00
seekdir.c General -Wall warning cleanup, part I. 1996-07-12 18:57:58 +00:00
semconfig.c Added SYSV ipc system calls. 1994-09-13 14:52:45 +00:00
semctl.c Fix this so that it compiles in the !__STDC__ case. 1998-06-06 18:52:43 +00:00
semget.c Added SYSV ipc system calls. 1994-09-13 14:52:45 +00:00
semop.c Added SYSV ipc system calls. 1994-09-13 14:52:45 +00:00
setdomainname.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
setflags.c Fix a bug where a pointer would be one character too far after putting 1999-12-21 10:17:36 +00:00
setflagsbyname.c Fix a bug where a pointer would be one character too far after putting 1999-12-21 10:17:36 +00:00
sethostname.c sethostname() returns int, not long. I could get used to having this 1996-12-05 18:27:20 +00:00
setjmp.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
setjmperr.c BSD 4.4 Lite Lib Sources 1994-05-27 05:00:24 +00:00
setmode.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
setmode.c Add unsigned char cast to isdigit 1999-11-04 04:46:18 +00:00
setproctitle.3 Make setproctitle(NULL) restore all of the original arguments 1999-11-17 21:12:17 +00:00
setproctitle.c Make setproctitle(NULL) restore all of the original arguments 1999-11-17 21:12:17 +00:00
shmat.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
shmctl.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
shmdt.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
shmget.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
siginterrupt.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
siginterrupt.c General -Wall warning cleanup, part I. 1996-07-12 18:57:58 +00:00
siglist.c Add a strsignal(3) (like strerror(3)) for libc compatability with other 1999-05-18 04:48:58 +00:00
signal.3 - add reference to siginterrupt(3) 1999-09-06 15:15:51 +00:00
signal.c BSD 4.4 Lite Lib Sources 1994-05-27 05:00:24 +00:00
sigsetops.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
sigsetops.c o Add $FreeBSD$ as a rcsid instead of in a comment 1999-10-02 19:37:14 +00:00
sleep.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
sleep.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
srand48.c Added *ran48 functions, and put them in the correct place this time. 1994-09-23 00:37:55 +00:00
stringlist.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
stringlist.c Replace memory leaking instances of realloc with non-leaking reallocf. 1998-09-16 04:17:47 +00:00
strtofflags.c Fix a bug where a pointer would be one character too far after putting 1999-12-21 10:17:36 +00:00
sysconf.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
sysconf.c Add a trivial mechanism for returning a useful default value if one is 1998-06-01 20:58:03 +00:00
sysctl.3 Separate some common sysctl code into sysctl_find_oid() and calling 1999-12-01 02:25:19 +00:00
sysctl.c Make the implementation and documentation agree. Specifically: 1999-01-06 18:11:53 +00:00
sysctlbyname.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
syslog.3 "S" comes before "U"... 1999-10-25 03:51:01 +00:00
syslog.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
tcgetpgrp.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
tcsendbreak.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
tcsetattr.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
tcsetpgrp.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
telldir.c Remove trailing whitespace. 1995-05-30 05:51:47 +00:00
termios.c Back out one of my previous changes: don't clear PARODD, 1996-03-28 13:33:18 +00:00
time.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
time.c BSD 4.4 Lite Lib Sources 1994-05-27 05:00:24 +00:00
times.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
times.c BSD 4.4 Lite Lib Sources 1994-05-27 05:00:24 +00:00
timezone.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
timezone.c Eliminate sprintf 1998-01-21 21:46:36 +00:00
ttyname.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
ttyname.c Implement compile time debug mode for thread locks. 1998-06-09 08:32:23 +00:00
ttyslot.c General -Wall warning cleanup, part I. 1996-07-12 18:57:58 +00:00
tzset.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
ualarm.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
ualarm.c Remove trailing whitespace. 1995-05-30 05:51:47 +00:00
uname.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
uname.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
unvis.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
unvis.c General -Wall warning cleanup, part I. 1996-07-12 18:57:58 +00:00
usleep.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
usleep.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
utime.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
utime.c BSD 4.4 Lite Lib Sources 1994-05-27 05:00:24 +00:00
valloc.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
valloc.c Fix a cast from a pointer to a long instead of an int which was enough 1998-01-24 20:57:38 +00:00
vis.3 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
vis.c General -Wall warning cleanup, part I. 1996-07-12 18:57:58 +00:00
wait3.c BSD 4.4 Lite Lib Sources 1994-05-27 05:00:24 +00:00
wait.c BSD 4.4 Lite Lib Sources 1994-05-27 05:00:24 +00:00
waitpid.c BSD 4.4 Lite Lib Sources 1994-05-27 05:00:24 +00:00