peter [Wed, 18 Sep 1996 06:45:17 +0000 (06:45 +0000)]
When running native on freebsd (ie: in /usr/bin, /usr/libexec, not the
gnu-style /usr/local/lib/gcc* layout), only search the paths that
exist for the modules (cc1, cc1plus , cc1obj etc)
.TARGETOBJDIR has been removed from make and CANONICALOBJDIR set in
bsd.obj.mk. Also, a make target called objwarn checks to see
if ${.OBJDIR} != ${.CURDIR} and ${.OBJDIR} != ${CANONICALOBJDIR}
and outputs a warning. (No warning for the latter if MAKEOBJDIR or MAKEOBJDIRP
REFIX is set). objwarn is called from all targets in bsd.prog.mk, bsd.kmod.mk,
and bsd.lib.mk.
Restore previous compatibility of ${.CURDIR}/obj.`uname -m` and
$(.CURDIR}/obj search while retaining compatability of new
prefix with cwd for the current source tree builds.
.TARGETOBJDIR has been removed from make and CANONICALOBJDIR set in
bsd.obj.mk
The builtin object directory searching is defined specifically as:
If MAKEOBJDIRPREFIX is defined, the search order is
${MAKEOBJDIRPREFIX}${.CURDIR}
${.CURDIR}
Else if MAKEOBJDIR is defined, the search order is
${MAKEOBJDIR}
${.CURDIR}
Otherwise, default to the search order
${.CURDIR}/obj.`uname -m`
$(.CURDIR}/obj
/usr/obj${.CURDIR}
${.CURDIR}
peter [Wed, 18 Sep 1996 05:35:50 +0000 (05:35 +0000)]
Import of unmodified (but trimmed) gcc-2.7.2. The bigger parts of the
non-i386, non-unix, and generatable files have been trimmed, but can easily
be added in later if needed.
gcc-2.7.2.1 will follow shortly, it's a very small delta to this and it's
handy to have both available for reference for such little cost.
The freebsd-specific changes will then be committed, and once the dust has
settled, the bmakefiles will be committed to use this code.
Fix a very rare error condition: The code to free VM back to the kernel
as done after a quasi-recursive call to free() had modified what we
thought we knew about the last chunk of pages.
This bug manifested itself when I did a "make obj" from src/usr.sbin/lpr,
then make would coredump in the lpd directory.
peter [Tue, 17 Sep 1996 14:38:16 +0000 (14:38 +0000)]
Argh, I have had one "uid 0 on /: file system full" too many. The problem
is that it doesn't say _what_ did it! (the core dumped console message
is very useful for listing the process name and pid). This adds similar
information.
Set enviroment variable PAGER=pager if using option `man -P pager'
This inherit variable PAGER for childs like whatis(1), e.g.
`man -P less -k man' should now work like expected. Close PR#1068
peter [Mon, 16 Sep 1996 14:13:40 +0000 (14:13 +0000)]
Workaround to (hopefully) fix the NOMANCOMPRESS case of the MANFILTER-using
man pages (eg: named/bind/etc). In order to get (say) dig.1 to pass
through the filter and produce a new dig.1 for installing, I used an
intermediate file at build time, similar to the way the .gz man pages are
built.
I've not extensively tested this, but it seems to work for the known
cases where it was failing, and it only affects the NOMANCOMPRESS case
which was already broken.
Pointed out by: "Ph. Charnier" <charnier@xp11.frmug.org>, PR#1612
Re-enable conf82371fb2 now that I have verified that it works, even if
it only prints 2 bits out of hundreds. (Minimizing the diff between
-head and 2.1.5.)
alex [Sun, 15 Sep 1996 00:15:33 +0000 (00:15 +0000)]
Expand the definition of -N during 'add' to indicate that it only
affects the display of the chain entry. The definition of -N in
'list' is left alone since this behavior is implied there.
Do not backup master.passwd if pwd_mkdb returned an error. This
was to paranoid, pwd_mkdb(8) is carefully enough to not
corrupt master.passwd on failure.
Cleanup exit status; 2: syntax error, 0: keyword matched,
$exit_nomatch: no keyword matched. Default value for variable
exit_nomatch is 0 because `man -k' don't like exit status != 0
Detected by: "Stephen J. Roznowski" <sjr@zombie.ncsc.mil>
Attached vm ddb commands `show map', `show vmochk', `show object',
`show vmopag', `show page' and `show pageq'. Moved all vm ddb stuff
to the ends of the vm source files.
Changed printf() to db_printf(), `indent' to db_indent, and iprintf()
to db_iprintf() in ddb commands. Moved db_indent and db_iprintf()
from vm to ddb.
vm_page.c:
Don't use __pure. Staticized.
db_output.c:
Reduced page width from 80 to 79 to inhibit double spacing for long
lines (there are still some problems if words are printed across
column 79).
Support statically attaching of ddb commands in non-ddb modules.
The details are hidden in the DB_COMMAND(cmd_name, func_name) and
DB_SHOW_COMMAND(cmd_name, func_name) macros. DB_COMMAND() adds to
the top-level ddb command table and DB_SHOW_COMMAND adds to the
`show' subtable. Most external commands will probably be `show'
commands with no side effects. They should check their pointer
args more carefully than `show map' :-), or ddb should trap internal
faults better (like it does for memory accesses).
The vm ddb commands are temporarily unattached.
ddb.h:
Also declare `db_indent' and db_iprintf() which will replace vm's
`indent' and iprintf().
/usr/bin/lock can be used to lock a terminal much like xlock does
for your X-windows session. Problem is, /usr/bin/lock cannot lock
your terminal indefinately. Rather you must specify a timeout
value, after which, your terminal is unlocked and become unsecured.
I have added a ``-n'' no timeout option to /usr/bin/lock
Currently the only way to get this functionality is to use a huge
timeout value and hope it is long enought (in time). This method
also requires you to know the maxium number of minutes you are
allowed to specify.
Submitted by: David E. O'Brien <obrien@Nuxi.cs.ucdavis.edu>
Moved instantiation of `poff' to sys.c. It is no longer used in disk.c.
Saved a few bytes by copying `dosdev' and/or `name' to local variables.
This optimization (for dosdev) was done in one place before but this
was lost in the devread() cleanup. This optimization (for dosdev)
can almost be done by bogusly declaring dosdev as const, but gcc still
often space-pessimizes code like the following:
extern const int dosdev; ... foo(dosdev); bar(dosdev);
gcc often doesn't bother to copy dosdev to a temporary local because
the local would have to be preserved in memory across the call to
foo(). OTOH, for
extern int dosdev; ... auto int dosdev_copy = dosdev; ...
foo(dosdev_copy); bar(dosdev_copy);
the copy must be made because foo() might alter dosdev.
Potentially saved a whole 4 bytes and reduced bogusness by eliminating
the pointer to the string "/kernel". This pointer was once only
statically to once save space, but it has had to be dynamically
initialized for some time, so the static initialization just wastes
space. The string gets moved to the text section, so the actual
savings may be negative due to padding.
Changed cncheckc() interface so that it is 8-bit clean - return -1
instead of 0 if there is no input.
pcvt_drv.c:
Partially fixed pccncheckc(). It returned a boolean value instead of
the character that it fetches from the input fifo (if any). I think
it still discards characters after the first for multi-char input.
Changed cncheckc() interface so that it is 8-bit clean - return -1
instead of 0 if there is no input.
syscons.c:
Added missing spl locking in sccncheckc(). Return the same value as
sccngetc() would. It is wrong for sccngetc() to return non-ASCII, but
stripping the non-ASCII bits doesn't help.
Don't use __dead or __pure in user code. They were obfuscations
for gcc >= 2.5 and no-ops for gcc >= 2.6. Converted to use __dead2
or __pure2 where it wasn't already done, except in math.h where use
of __pure was mostly wrong.
Removed another devconf leftover. A fat devconf support function was
still being used just to support printing of the device name in the
probe. Restored the method used in rev.1.6 and changed it to print
the same strings as the previous revision.
Make the misnamed tcp initial keepalive timer value (which is really the
time, in seconds, that state for non-established TCP sessions stays about)
a sysctl modifyable variable.
[part 1 of two commits, I just realized I can't play with the indices as
I was typing this commit message.]
Receipt of two SYN's are sufficient to set the t_timer[TCPT_KEEP]
to "keepidle". this should not occur unless the connection has
been established via the 3-way handshake which requires an ACK
Submitted by: jmb
Obtained from: problem discussed in Stevens vol. 3
A modification that allows the driver strategy to modify the
B_ASYNC flag broke things pretty bad (freeing buffer already on
queue or other wierd buffer queue errors.) The broken code is
left in commented out, but this makes the problem go away for
now.
(1) Add PC98 support to apm_bios.h and ns16550.h, remove pc98/pc98/ic
(2) Move PC98 specific code out of cpufunc.h (to pc98.h)
(3) Let the boot subtrees look more alike
Submitted by: The FreeBSD(98) Development Team
<freebsd98-hackers@jp.freebsd.org>
Primarily a fix so that pages are properly tracked for being
modified. Pages that are removed by the pageout daemon were
the worst affected. Additionally, numerous minor cleanups,
including better handling of busy page table pages. This
commit fixes the worst of the pmap problems recently introduced.
Use `install -C' instead of lots of shell commands to install ld.so
as atomically as possible.
(Immutable targets can't be renamed without opening a window when
neither the source nor the target is immutable. Perhaps there
should be a rename_immutable syscall to do this if unsetting the
immutable flags would work.)
Added a struct tag `fsid' for fsid_t so that sysproto.h can declare
prototypes for the lfs syscalls without having to include <sys/mount.h>
and its nested spam.