ru [Mon, 19 Feb 2001 14:19:57 +0000 (14:19 +0000)]
Implement one nice feature of original BSD man(1):
: As some manual pages are intended only for specific architectures,
: man searches any subdirectories, with the same name as the current
: architecture, in every directory which it searches. Machine specific
: areas are checked before general areas. The current machine type may
: be overridden by setting the environment variable MACHINE to the name
: of a specific architecture.
sobomax [Mon, 19 Feb 2001 13:26:13 +0000 (13:26 +0000)]
Improve pkg_delete(1) behaviour when deleting several packages at once.
Instead of trying to delete packages in the same order as they were specified
in the command line, reorder deletion in such a way that if package A depends
on package B then package A will be deleted before B no matter in which order
they were specified in the command line.
ume [Mon, 19 Feb 2001 13:13:51 +0000 (13:13 +0000)]
Enable AI_ADDRCONFIG as a valid flag of getaddrinfo(3). Some
applications specify AI_ADDRCONFIG and fail to run under FreeBSD.
Latest mews is known. Now, getaddrinfo(3) behaves according to
AI_ADDRCONFIG.
ru [Mon, 19 Feb 2001 13:08:14 +0000 (13:08 +0000)]
Create directory infrastructure required to format, display
and store preformatted /usr/share/man manual pages in 8-bit
iso-8859-1 charset for all *_*.ISO_8859-1 locales.
mckay [Mon, 19 Feb 2001 12:04:46 +0000 (12:04 +0000)]
There is an arbitrary file size limit in ctm of 20MB. By my reckoning,
ports/INDEX,v is currently 19.97MB and will blow this limit on the next
update. Let's try doubling the limit again, to give us time to get
around to removing the limit altogether.
bde [Mon, 19 Feb 2001 09:40:58 +0000 (09:40 +0000)]
Fixed a longstanding latency bug in signal delivery. When a signal
is sent to a process, psignal() needs to schedule an AST for the
process if the process is runnable, not just if it is current, so that
pending signals get checked for on the next return of the process to
user mode. This wasn't practical until recently because the AST flag
was per-cpu so setting it for a non-current process would usually just
cause a bogus AST for the current process.
For non-current processes looping in user mode, it took accidental
(?) magic to deliver signals at all. Signals were usually delivered
late as a side effect of rescheduling (need_resched() sets astpending,
etc.). In pre-SMPng, delivery was delayed by at most 1 quantum (the
need_resched() call in roundrobin() is certain to occur within 1
quantum for looping processes). In -current, things are complicated
by normal interrupt handlers being threads. Missing handling of the
complications makes roundrobin() a bogus no-op, but preemptive
scheduling sort of works anyway due to even larger bogons elsewhere.
peter [Mon, 19 Feb 2001 04:43:21 +0000 (04:43 +0000)]
${BDECFLAGS} work. And fix a real error in the process. A "MAXUSERS"
string could have been passed to free(); There are some warnings here
I am not sure how to fix as they are in the lex scanner code, etc.
bde [Mon, 19 Feb 2001 04:15:59 +0000 (04:15 +0000)]
Changed the aston() family to operate on a specified process instead of
always on curproc. This is needed to implement signal delivery properly
(see a future log message for kern_sig.c).
Debogotified the definition of aston(). aston() was defined in terms
of signotify() (perhaps because only the latter already operated on
a specified process), but aston() is the primitive.
Similar changes are needed in the ia64 versions of cpu.h and trap.c.
I didn't make them because the ia64 is missing the prerequisite changes
to make astpending and need_resched per-process and those changes are
too large to make without testing.
kris [Mon, 19 Feb 2001 03:59:05 +0000 (03:59 +0000)]
Introduce support for using OpenSSL ASM optimizations. This is done
through the use of a new build directive, MACHINE_CPU, which contains a
list of the CPU generations/features for which optimizations are desired.
This feature will be extended to cover the ports tree in the future.
Currently OpenSSL provides optimizations for i386, i586 and i686-class
CPUs. Currently it has not been tested on an i386 or i486.
Teach make(1) to provide sensible defaults for MACHINE_CPU if it is not
defined (namely, the lowest common denominator CPU we support for each
architecture). Currently this is i386 for the i386 architecture and ev4
for the alpha. sys.mk also sets the variable as a last resort for
consistency with MACHINE_ARCH and bootstrapping from very old versions of
make.
Benchmarks show a significant speed increase even in the i386 case, with
additional improvements for i586 and i686 systems. For maximum performance
define MACHINE_CPU=i686 i586 i386 in /etc/make.conf.
Based on a patch submitted by: Mike Silbersack <silby@silby.com>
Reviewed by: current
bde [Mon, 19 Feb 2001 03:00:34 +0000 (03:00 +0000)]
Fixed style bugs in clock.c rev.1.164 and cpu.h rev.1.52-1.53 -- declare
tsc_present in the right places (together with other variables of the
same linkage), and don't use messy ifdefs just to avoid exporting it in
some cases.
peter [Mon, 19 Feb 2001 02:47:42 +0000 (02:47 +0000)]
Move the sendmail -q from cron to periodic, as suggested by a few people.
This has the benefit of adding a random start time element as daily
processing takes a different amount of time on different machines.
markm [Sun, 18 Feb 2001 17:40:47 +0000 (17:40 +0000)]
Provide the infrastructure for sysadmins to select the broad class
of entropy harvesting they wish to perform: "ethernet" (LAN),
point-to-point and interrupt.
green [Sun, 18 Feb 2001 13:30:20 +0000 (13:30 +0000)]
Switch to using a struct xucred instead of a struct xucred when not
actually in the kernel. This structure is a different size than
what is currently in -CURRENT, but should hopefully be the last time
any application breakage is caused there. As soon as any major
inconveniences are removed, the definition of the in-kernel struct
ucred should be conditionalized upon defined(_KERNEL).
This also changes struct export_args to remove dependency on the
constantly-changing struct ucred, as well as limiting the bounds
of the size fields to the correct size. This means: a) mountd and
friends won't break all the time, b) mountd and friends won't crash
the kernel all the time if they don't know what they're doing wrt
actual struct export_args layout.
phk [Sun, 18 Feb 2001 09:34:55 +0000 (09:34 +0000)]
Remove unneeded loop increment in src/sys/netinet/in_pcb.c:in_pcbnotify
Add new PRC_UNREACH_ADMIN_PROHIB in sys/sys/protosw.h
Remove condition on TCP in src/sys/netinet/ip_icmp.c:icmp_input
In src/sys/netinet/ip_icmp.c:icmp_input set code = PRC_UNREACH_ADMIN_PROHIB
or PRC_UNREACH_HOST for all unreachables except ICMP_UNREACH_NEEDFRAG
Rename sysctl icmp_admin_prohib_like_rst to icmp_unreach_like_rst
to reflect the fact that we also react on ICMP unreachables that
are not administrative prohibited. Also update the comments to
reflect this.
In sys/netinet/tcp_subr.c:tcp_ctlinput add code to treat
PRC_UNREACH_ADMIN_PROHIB and PRC_UNREACH_HOST different.
luigi [Sun, 18 Feb 2001 07:21:28 +0000 (07:21 +0000)]
Add a check in the interrupt service routine to return quickly in
case there is nothing to do. This happens normally when the card shares
the interrupt line with other devices.
This code saves a couple of microseconds per interrupt even on a
fast CPU. You normally would not care, except under heavy tinygram
traffic where you can have some 50-100.000 interrupts per second...
bde [Sun, 18 Feb 2001 02:22:58 +0000 (02:22 +0000)]
Added a dummy lookup vop. Specfs was broken by removing its dummy
lookup vop so that it defaulted to using vop_eopnotsupp for strange
lookups like the ones for open("/dev/null/", ...) and stat("/dev/null/",
...). This mainly caused the wrong errno to be returned by vfs syscalls
(EOPNOTSUPP is not in POSIX, and is not documented in connection with
specfs in open.2 and is not documented in stat.2 at all). Also, lookup
vops are apparently required to set *ap->a_vpp to NULL on error, but
vop_eopnotsupp is too broken to do this.
bde [Sun, 18 Feb 2001 01:06:13 +0000 (01:06 +0000)]
Quick fix for attempts to free non-malloc()ed memory. The variables
current_file_name and current_link_name sometimes point into the
middle of malloc()ed memory and sometimes point to alloca()ed memory,
but free() is sometimes called on them. This seems to be harmless
for the usual tar operations, but it is usually fatal for `tar -W'.
E.g., for `cd /etc; tar Wcf /tmp/foo rc', at the start of
verify_volume(), current_file_name points to alloca()ed memory, and
tar attempts to free it.
phk [Sat, 17 Feb 2001 19:14:42 +0000 (19:14 +0000)]
Add some FreeBSD logo material to the tree:
"FreeBSD.pfa" - the (postscript) font used to write "FreeBSD".
"beastie.fig" - a 4.3 BSD style Daemon in vector graphic.
"beastie.eps" - same converted to encapsulated postscript.
"poster.sh" - an example how to use this stuff.
"README" - the full story.
obrien [Sat, 17 Feb 2001 09:06:31 +0000 (09:06 +0000)]
Merge rev 1.2 (-fformat-extensions); 1.{7,9} (complain about -O2 on the
Alpha & FORCE_OPTIMIZATION_DOWNGRADE); 1.8 (-Wnon-const-format)
into GCC 2.95.3(RC#3).
gibbs [Sat, 17 Feb 2001 01:53:22 +0000 (01:53 +0000)]
Limit CHANNEL_B_PRIMARY's effect to twin channel adapters where we can easily
register our sub-busses in the reversed order. In the future, we may provide
a hint to CAM on how to order the scans for multi-function adapters that also
set this flag, but trying to do it the "twin channel" way will lead to
a panic.
imp [Fri, 16 Feb 2001 21:09:49 +0000 (21:09 +0000)]
Extra needs to be initialized for our usual pool of FILEs. This was
causing some versions of as to dump core. This survived make
buildworld/installworld and the building gettext port afterwards.
Submitted by: <nnd@mail.nsk.ru> "N.Dudorov"
Reviewed by: "Daniel M. Eischen" <eischen@vigrid.com>