Commit Graph

3426 Commits

Author SHA1 Message Date
jdp
363b7bd537 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
shin
8c2ccb59ca Getaddrinfo(), getnameinfo(), and etc support in libc/net.
Several udp and raw apps IPv6 support.

Reviewed by: freebsd-arch, cvs-committers
Obtained from: KAME project
1999-12-28 02:37:14 +00:00
peter
070fb078b6 Tidy up some loose ends. nullfs_read/write were returning the wrong value.
Fix some ctype problems - isascii() caused a warning if fed an unsigned
char - it's always > 0 and libstand is compiled with -Wall.
Missing prototype/include in printf.c
1999-12-27 08:45:14 +00:00
peter
0e302599d7 Make this compile with -Wall -Werror 1999-12-27 08:40:40 +00:00
peter
047fa82dd0 Use kldsym(2) to lookup symbol values. This avoids the kvm_mkdb juggling
and is module aware.  Yes, this means that kvm_nlist(3) will find symbols
in loaded modules.  The emulation of the nlist struct is pretty crude but
seems to work well enough for all the users in the tree that I found.
1999-12-27 07:14:58 +00:00
jdp
52ec4df9e8 Add a new function dllockinit() for registering thread locking
functions to be used by the dynamic linker.  This can be called by
threads packages at start-up time.  I will add the call to libc_r
soon.

Also add a default locking method that is used up until dllockinit()
is called.  The default method works by blocking SIGVTALRM, SIGPROF,
and SIGALRM in critical sections.  It is based on the observation
that most user-space threads packages implement thread preemption
with one of these signals (usually SIGVTALRM).

The dynamic linker has never been reentrant, but it became less
reentrant in revision 1.34 of "src/libexec/rtld-elf/rtld.c".
Starting with that revision, multiple threads each doing lazy
binding could interfere with each other.  The usual symptom was
that a symbol was falsely reported as undefined at start-up time.
It was rare but not unseen.  This commit fixes it.
1999-12-27 04:44:04 +00:00
jasone
15ffad75ec Creating weak symbols doesn't work correctly when building an aout libc.
Doing the "right thing" here is difficult, so create two ENTRY points for
each function (for example, __setjmp and setjmp are equivalent).  This
isn't pretty, but it works for both aout and ELF.

libc symbol naming needs an overhaul in order to properly support function
wrapping, specifically in the case of a real libpthread, and these
duplicate entry points should be fixed as part of that overhaul.

Pointed out by:	bde
1999-12-24 00:03:00 +00:00
bde
8a379ba272 Fixed missing #include in synopsis.
Fixed misspelling of VGLPanScreen in its prototype.
Fixed missing installation of link to VGLPanScreen.3.
1999-12-23 16:56:27 +00:00
bde
0e9e667b58 Fixed a formatting error in the prototype for crypt(). 1999-12-23 16:53:18 +00:00
bde
6e13854ccb Fixed bitrot in synopsis. The change from "int *pshared" to "int pshared"
hadn't reached here.
1999-12-23 16:51:27 +00:00
bde
1ab948f6cc Fixed wrong #include in synopsis. 1999-12-23 16:48:57 +00:00
bde
df20178dd3 Fixed missing `const' in synopsis. 1999-12-23 16:46:34 +00:00
bde
8f12d54525 Fixed missing includes in synopsis. 1999-12-23 16:38:51 +00:00
bde
4765c8aea8 Fixed missing installation of a link to ctermid_r.3. 1999-12-23 16:36:48 +00:00
bde
6c2d0e8c30 Fixed wrong prototype and missing include for strsignal(3). strsignal()
takes an int arg and is prototyped in <string.h>.  It has the opposite
interface botches to psignal(3) which takes a bogus unsigned arg but is
prototyped in the right place.

This is not the last of the interface problems for strsignal().  We
obtained it from NetBSD, but NetBSD has moved its prototype to
<unistd.h>.  strsignal() should return const char *, but it returns
char * for historical reasons.  NetBSD declares it as returning
__aconst char, where __aconst is normally empty but can be set to
`const' to give better error checking.  glibc-2.1.1 prototypes
strsignal() in <string.h>.
1999-12-23 16:29:58 +00:00
bde
a7653abdc4 Fixed missing installation of a link to getlogin_r.3. This is the first
example of section 2 and section 3 interfaces sharing a man page.  It's
probably a bad example.
1999-12-23 16:12:24 +00:00
bde
6b050d7244 Fixed missing installation of a link to rand_r.3. 1999-12-23 16:00:50 +00:00
peter
47c0955e5d Fix the fixfsfile() so that it works for both block and character devices
as root.  This could fix the "filesystem still dirty after fsck" problem.

Submitted by:   bde
1999-12-23 14:44:36 +00:00
phk
e396740391 Just on the off-chance that somebody might use libdisk in a totally
lobotomized environment, say booted from a floppy with no /etc full
of password and group files, give sensible fallbacks for roots uid
and operators gid.

This might fix sysinstall.
1999-12-22 19:06:29 +00:00
sheldonh
54243b8e7a Document the current behaviour with respect to the handling of errno.
Approved by:	phk
1999-12-22 17:04:46 +00:00
bde
5de8ef466a Aargh, the $FreeBSD$ check caused an inconsistent commit by rejecting
this makefile update which should have been together with the file
removal.

Removed vlimit.3 and vtimes.3.  Removed vlimit.c and vtimes.c from
the "MISSING" list.  These were old variants of get/setrlimit() and
getrusage(), respectively, and were never implemented in FreeBSD.
vlimit.3 referred to <sys/vlimit.h> which was removed recently.
vtimes.3 referred to <sys/vtimes.h> which never existed in FreeBSD.
1999-12-22 13:49:14 +00:00
bde
984286854c Removed vlimit.3 and vtimes.3. Removed vlimit.c and vtimes.c from
the "MISSING" list.  These were old variants of get/setrlimit() and
getrusage(), respectively, and were never implemented in FreeBSD.
vlimit.3 referred to <sys/vlimit.h> which was removed recently.
vtimes.3 referred to <sys/vtimes.h> which never existed in FreeBSD.
1999-12-22 12:24:25 +00:00
asmodai
70260fd3cb Fix a typo which I cannot believe I missed after rereading this text
about 6-7 times prior to commit.

Reported by: sheldonh
1999-12-21 11:55:44 +00:00
asmodai
fc6ea6bcd8 Properly manify this manpage.
Fix some spelling mistakes and typo's inspired by Nicholas' initial
PR submission.

PR:		docs/15597
Submitted by:	Nicholas Esborn <nick@flatlan.net>
1999-12-21 11:19:32 +00:00
roberto
6452b5bbe6 Fix a bug where a pointer would be one character too far after putting
a '\0' at the end of a string.

Submitted by:	Martin Birgmeier <Martin.Birgmeier@aon.at>
1999-12-21 10:17:36 +00:00
obrien
90b4d2da64 What was I smoking? Use the proper form of the library names. 1999-12-21 06:19:03 +00:00
julian
443430016e Manual page style work.
Submitted by:	Alexey Zelkin <phantom@FreeBSD.org>
thanks!
1999-12-21 01:25:21 +00:00
obrien
b8abdf85ce Forgot a library. 1999-12-20 22:57:49 +00:00
obrien
970778c48f Add needed 3.x libraries from 3.4-RELEASE. 1999-12-20 22:57:12 +00:00
marcel
3ae4773224 Make sure curses.h is generated when making build-tools make_keys
and make_hash depend on it.
1999-12-20 10:37:55 +00:00
roberto
b7335626ed Rewriting of flags_to_string() and string_to_flags() to use an array.
PR:		bin/3648
Submitted by:	Martin Birgmeier <mbirg@austria.ds.philips.com>
1999-12-19 15:31:24 +00:00
peter
a80a848739 This commit was generated by cvs2svn to compensate for changes in r54820,
which included commits to RCS files with non-trunk default branches.
1999-12-19 14:14:37 +00:00
peter
3cf81c35ae Import fparseln(3) from NetBSD. It's used for easily dealing with \
escaped lines etc.  (used by mailwrapper)
1999-12-19 14:14:37 +00:00
obrien
e723c230ec Initialize a var to quiet -Wall. 1999-12-18 04:47:43 +00:00
green
74c1e8397d Switch over to the OpenBSD fts.c, fixing lots of things.
Obtained from:	OpenBSD
1999-12-18 04:36:14 +00:00
jasone
432d84cbec Fix some minor POSIX/SUSv2 compliance nits.
PR:		kern/11982
1999-12-18 01:00:42 +00:00
peter
81c8f9fa6d Make a dlopen failure consistant with dlsym(). "Shouldn't happen." 1999-12-17 20:21:45 +00:00
peter
3da8bcb7dc patch glitch 1999-12-17 20:19:28 +00:00
peter
1c7b33fb91 Remove -lmd. Use dlopen() and dlsym() instead for calls to the MD5* and
SHA* routines so that callers of libcrypt are not exposed to the internal
implementation.
1999-12-17 20:04:01 +00:00
phantom
37b2004d09 Back up following macros by functions: ishexnumber, isideogram, isnumber,
isphonogram, isrune, isspecial. Fix ordering.

Reviewed by: bde
1999-12-17 15:12:21 +00:00
phantom
47918de226 Fix typos
PR:		docs/14858
Submitted by:	OKAZAKI Tetsurou <okazaki@be.to>
1999-12-17 14:48:00 +00:00
deischen
b043dd936d Change to work with recent signal changes. The signal being handled is
now added to the signal mask; this test failed because it didn't allow
for this.
1999-12-17 11:46:55 +00:00
jkh
dd89aff001 Fix handling of trailing :'s to match what other OSes do (spit out
a diagnostis).

Submitted by:	Guy Harris <gharris@flashcom.net>
1999-12-17 01:52:15 +00:00
deischen
8456ca7311 Fix problems with cancellation while in critical regions.
o Cancellation flags were not getting properly set/cleared.
  o Loops waiting for internal locks were not being exited
    correctly by a cancelled thread.
  o Minor spelling (cancelation -> cancellation) and formatting
    corrections (missing tab).

Found by:	tg
Reviewed by:	jasone
1999-12-17 00:57:54 +00:00
deischen
17ee572a14 Fixes for signal handling:
o Don't call signal handlers with the signal handler access lock
    held.
  o Remove pending signals before calling signal handlers.  If
    pending signals were not removed prior to handling them,
    invocation of the handler could cause the handler to be
    called more than once for the same signal.  Found by: JB
  o When SIGCHLD arrives, wake up all threads in PS_WAIT_WAIT
    (wait4).

PR:		bin/15328
Reviewed by:	jasone
1999-12-17 00:56:36 +00:00
jasone
395027ca77 Avoid an infinite loop if the last element of the iov array passed to
writev() has an iov_len of 0.

PR:		bin/8281
1999-12-16 22:35:40 +00:00
shin
985fda16e7 KAME 4th patch
IPv6 specific library functions addition.
(getnameinfo(), getaddrinfo(), and IPv6 transport support is not yet)

Reviewed by: freebsd-arch, cvs-committers
Obtained from: KAME project
1999-12-16 18:32:01 +00:00
cracauer
eda32af3b4 Document SA_SIGINFO
Reviewed by:	Sheldon Hearn <sheldonh@uunet.co.za>
1999-12-15 16:51:35 +00:00
jkh
19ab44d39b Catch up to the fact that block devices are toast.
Teach about the afd driver.
Teach new char dev for ad driver.
Make ownerships correct.

Submitted by:	jhb
1999-12-15 08:33:56 +00:00
jasone
2edcbc2e0b Make setjmp, longjmp, sigsetjmp, and siglongjmp weak aliases for
__setjmp, __longjmp, __sigsetjmp, and __siglongjmp, respectively.
This supports cancellation in the linuxthreads port.  In the long run,
a much more comprehensive solution will necessitate more dramatic changes
to libc symbol naming, and these aliases will probably need modification
at that time.
1999-12-14 20:17:52 +00:00
nik
6ef9746e27 Commented out
MAN8+= rstat_svc.8

The file it talks about doesn't exist on FreeBSD, so there's no point in
installing the manual page.  There was already a comment to this effect in
this file, but the entry hadn't been commented out.

rstat.1 and rstat_svc.8 can probably actually be removed.

PR:             docs/13767
Submitted by:   Seth <seth@freebie.dp.ny.frb.org>
1999-12-14 16:56:46 +00:00
billf
5b92abcf9d Remove x-ref to itself.
Reviewed by:	mpp
1999-12-14 11:34:47 +00:00
phantom
0cd874ce43 Correct "standard compilance" notes
Reminded by: bde
1999-12-14 10:35:09 +00:00
marcel
81282dc103 Add a `build-tools' target for make_hash and make_keys. 1999-12-13 21:25:08 +00:00
abial
008c554e69 Document VGLGetXY and VGLSetXY functions.
Reviewed by:	sos
1999-12-13 10:48:22 +00:00
dillon
b66fb2c648 Add MAP_NOSYNC feature to mmap(), and MADV_NOSYNC and MADV_AUTOSYNC to
madvise().

    This feature prevents the update daemon from gratuitously flushing
    dirty pages associated with a mapped file-backed region of memory.  The
    system pager will still page the memory as necessary and the VM system
    will still be fully coherent with the filesystem.  Modifications made
    by other means to the same area of memory, for example by write(), are
    unaffected.  The feature works on a page-granularity basis.

    MAP_NOSYNC allows one to use mmap() to share memory between processes
    without incuring any significant filesystem overhead, putting it in
    the same performance category as SysV Shared memory and anonymous memory.

Reviewed by: julian, alc, dg
1999-12-12 03:19:33 +00:00
peter
afa6f15fc7 While comparing this with OpenBSD (ie: trying to figure out what mkstemps()
is good for... :-)), I discovered that part of the change when mkstemps()
was brought in was missed - it was missing the termination case to make
sure it doesn't walk into the suffix.  This isn't the same code OpenBSD
has, I think this is a little better as we terminate the loop in a better
spot.
1999-12-11 14:48:24 +00:00
marcel
1d263c29d4 Install include files with mode 444. 1999-12-11 13:38:04 +00:00
archie
da5ff8ce2a Fix a '&&' that should have been a '&'.
Submitted by:	Erik Salander <erik@whistle.com>
1999-12-10 20:04:53 +00:00
archie
8f028897e2 Fix several typos.
Submitted by:	Erik Salander <erik@whistle.com>
1999-12-09 21:36:34 +00:00
sheldonh
785c739893 Remove discussion of %C in the BUGS section. The limitations on valid
centuries are much more serious than those mentioned and this is not the
place to discuss the limitations of time_t.
1999-12-09 07:58:28 +00:00
sheldonh
310ae47a90 Prevent digit-gobbling for all but %l and %e, which can't be fixed.
Discuss in the BUGS section of the manpage, problems involved with
the use of %C, %e, %l, %p, %U and %W.

PR:		13901
Reported by:	scott@chronis.pobox.com
1999-12-08 15:49:10 +00:00
sheldonh
da906acc18 Accept 12 for %l, because it's logical to expect "%l:%M" to work for
"12:00" and because strftime(3) does the same.
1999-12-08 11:11:40 +00:00
chris
ed204f848e Add a cross-reference to fabs(3) man page.
PR:		docs/15337
Submitted by:	Bruce A. Mah <bmah@ca.sandia.gov>
1999-12-07 23:09:58 +00:00
archie
d7553d3a9a Add reference to netgraph(4) in the 'see also' section. 1999-12-06 23:35:40 +00:00
kris
7edfaee15b Fix buffer overflows.
Reviewed by:	imp, audit@freebsd.org
1999-12-05 21:02:41 +00:00
deischen
7f8a2b1734 Make work for sigset_t change. Also modify tests to account for
recent changes to signal handling.
1999-12-05 00:48:53 +00:00
deischen
795e5a14ec Change signal handling to conform to POSIX specified semantics.
Before this change, a signal was delivered to each thread that
didn't have the signal masked.  Signals also improperly woke up
threads waiting on I/O.  With this change, signals are now
handled in the following way:

  o If a thread is waiting in a sigwait for the signal,
    then the thread is woken up.

  o If no threads are sigwait'ing on the signal and a
    thread is in a sigsuspend waiting for the signal,
    then the thread is woken up.

  o In the case that no threads are waiting or suspended
    on the signal, then the signal is delivered to the
    first thread we find that has the signal unmasked.

  o If no threads are waiting or suspended on the signal,
    and no threads have the signal unmasked, then the signal
    is added to the process wide pending signal set.  The
    signal will be delivered to the first thread that unmasks
    the signal.

If there is an installed signal handler, it is only invoked
if the chosen thread was not in a sigwait.

In the case that multiple threads are waiting or suspended
on a signal, or multiple threads have the signal unmasked,
we wake up/deliver the signal to the first thread we find.
The above rules still apply.

Reported by:	Scott Hess <scott@avantgo.com>
Reviewed by:	jb, jasone
1999-12-04 22:55:59 +00:00
green
06557349e2 Add RLIMIT_SBSIZE here, too. 1999-12-03 23:25:14 +00:00
archie
26c759c431 Missed part of previous commit. 1999-12-03 23:15:33 +00:00
archie
32595af070 Recognize NGM_BPF_COOKIE. 1999-12-03 23:12:41 +00:00
sheldonh
8d21f19e4e Replace the -q option to pwd_mkdb with a test for PW_SCAN_BIG_IDS in
the environment.  This allows big ID warnings to be suppressed for
vipw and chpass as well.

Since the environment variable test is only performed for callers
of pw_scan() that do not set pw_big_ids_warning, the test can still
be overriden.  Currently, chpass and pwd_mkdb are the only users
of pw_scan() and neither of them overrides the environment variable
test.
1999-12-02 16:39:15 +00:00
green
b879977360 Separate some common sysctl code into sysctl_find_oid() and calling
thereof.  Also, make the errno returns  _correct_, and add a new one
which is more appropriate.
1999-12-01 02:25:19 +00:00
ache
220fa35680 %Ex -> %Ef to not conflict with POSIX
Add %EF (long months name / day order)
Check that O and E not intermixed
Add missing POSIX extension to example
1999-11-30 19:24:07 +00:00
ache
764544f79d Document %Ex and %OB 1999-11-30 18:37:36 +00:00
ache
6219664f07 Stricter checking %A vs %a 1999-11-30 08:11:13 +00:00
ache
228a52df6f Fix %C handling
Use locale for %c
Add %+
Add %Ex and %OB
1999-11-30 08:05:09 +00:00
ache
f72436c9ac Add %Ex extension to determine "%e %b" or "%b %e" order
Separate alternative for O and E cases
1999-11-30 07:33:37 +00:00
peter
8e520b90cb Turn libbind back on, it should be ok now. 1999-11-30 06:13:10 +00:00
peter
090e2faa81 EEK! termios mode wasn't activated..
Noticed by:	Christian Weisgerber <naddy@mips.rhein-neckar.de>
1999-11-30 05:56:12 +00:00
peter
d9072a44c5 Build more components to get named to build. 1999-11-30 04:40:54 +00:00
peter
00616cc316 oops, forgot to disconnect libbind while it's broken. 1999-11-30 04:22:25 +00:00
peter
ed6bdd2977 Update for Bind 8.2.2.p5 1999-11-30 04:20:05 +00:00
archie
81fceb37a9 Add two new generic control messages, NGM_ASCII2BINARY and
NGM_BINARY2ASCII, which convert control messages to ASCII and back.
This allows control messages to be sent and received in ASCII form
using ngctl(8), which makes ngctl a lot more useful.

This also allows all the type-specific debugging code in libnetgraph
to go away -- instead, we just ask the node itself to do the ASCII
translation for us.

Currently, all generic control messages are supported, as well as
messages associated with the following node types: async, cisco,
ksocket, and ppp.

See /usr/share/examples/netgraph/ngctl for an example of using this.

Also give ngctl(8) the ability to print out incoming data and
control messages at any time.  Eventually nghook(8) may be subsumed.

Several other misc. bug fixes.

Reviewed by:	julian
1999-11-30 02:45:32 +00:00
phk
9809b71a89 Report swapdevices as cdevs rather than bdevs.
Remove unused dev2budev() function.
1999-11-29 21:37:18 +00:00
alfred
f7d7085dbe style fixes, remove extra braces.
readdir_r is not POSIX according to POSIX_SOURCE, bruce says:
> readdir_r() is in the _POSIX_SOURCE section, but is not a POSIX.1-1990
> function.  It's POSIX.1-1996 so it should be under a different feature
> test which we don't support yet.

make sure errno is saved so that its contents are cleared unless
necessary.

Submitted by: bde
1999-11-29 19:12:50 +00:00
green
bcc4466e40 Add the PAM SSH RSA key authentication module. For example, you can add,
"login  auth    sufficient      pam_ssh.so" to your /etc/pam.conf, and
users with a ~/.ssh/identity can login(1) with their SSH key :)

PR:		15158
Submitted by:	Andrew J. Korty <ajk@waterspout.com>
Reviewed by:	obrien
1999-11-29 07:09:44 +00:00
wes
34470507ed Provide a man page for Alfreds lovely readdir_r function. Also
fixed a minor indentation nit and added a few {}s to make readdir_r
easier on old eyes.
1999-11-29 06:12:22 +00:00
wes
6c73ef33e3 Provide and document ctermid_r function. 1999-11-28 23:28:49 +00:00
wes
7cf3e9fa26 Document the getlogin_r function. 1999-11-28 22:41:50 +00:00
wes
6ed770d488 Provide the getlogin_r function. 1999-11-28 22:41:38 +00:00
dfr
40f75646e1 * Fix the stack allocation code so that it works for alpha. Change it
to use mmap(..., MAP_STACK, ...) on alpha too since that should work
  now.
* Add hooks to allow GDB to access the internals of pthreads without
  having to know the exact layout of struct pthread.

Reviewed by: deischen
1999-11-28 19:47:43 +00:00
alfred
e7efcb5302 add pthread_cancel, obtained from OpenBSD.
eischen (Daniel Eischen) added wrappers to protect against cancled
threads orphaning internal resources.

the cancelability code is still a bit fuzzy but works for test
programs of my own, OpenBSD's and some examples from ORA's books.

add readdir_r to both libc and libc_r

add some 'const' attributes to function parameters

Reviewed by: eischen, jasone
1999-11-28 05:38:13 +00:00
msmith
517fd10f04 Remove 'sd' support. SCSI disks are known as 'da' these days. 1999-11-27 21:20:57 +00:00
phk
ba79ac5ee3 Remove BAD144 support 1999-11-27 14:33:30 +00:00
peter
e9a637e9c9 To avoid confusion, zap libtermcap. ncurses provides both curses, termcap
and termlib (terminfo) support.
1999-11-26 09:33:02 +00:00
peter
434ff9c85c To avoid confusion, zap libcurses. ncurses provides both curses, termcap
and termlib (terminfo) support.
1999-11-26 09:28:33 +00:00
phk
2431275ac4 General clean-up of socket.h and associated sources to synchronise up
with NetBSD and the Single Unix Specification v2.

This updates some structures with other, almost equivalent types and
effort is under way to get the whole more consistent.

Also removes a double definition of INET6 and some other clean-ups.

Reviewed by: green, bde, phk
Some part obtained from: NetBSD, SUSv2 specification
1999-11-24 20:49:04 +00:00
peter
89bff97f82 longjumperror() and abort() don't exist in libstand.. Don't test
for a condition we can't handle (like the x86 longjmp).  This was
highlighted by attempting to build FICL into the alpha loader.
1999-11-24 13:54:46 +00:00
peter
48603c7746 Ensure libmytinfo stays dead.. I originally left it here so that we might
be able to build the old shared versions rather than taking a binary for
the compat area, but that seems to have caused confusion.
1999-11-24 12:34:28 +00:00