brian [Thu, 12 Mar 1998 02:23:42 +0000 (02:23 +0000)]
o Fix a few comment typos.
o Fix ``set timeout'' usage message and documentation.
o Change ifOutPackets, ifOutOctets and ifOutLQRs to `u_int32_t's
so that they wrap correctly.
o Put the LQR in network byte order using the correct struct size
(sizeof u_int32_t, not sizeof u_long).
o Wrap LQR ECHO counters correctly.
o Don't increment OutLQR count if the last LQR hasn't been replied
to.
o Initialise HisLqrData (last received LQR) in StartLqm.
o Don't start the LQR timer if we're `disabled' and `accepted'.
o Generate LQR responses when both sides are using a timer and
we're not going to send our next LQR before the peers max timeout.
jb [Wed, 11 Mar 1998 21:00:49 +0000 (21:00 +0000)]
Put a -DBOOTSTRAP in the make flags for the lib-tools so that the
crt objects built during that phase don't try to find FreeBSD specific
headers. This causes the rtld to be left out, but that's OK because
at this stage, the programs are linked statically anyway.
When the libraries are built, the crt objects will be built with
the FreeBSD tools and compiled against the FreeBSD headers, so that's
the time when the rtld support cuts in.
jb [Wed, 11 Mar 1998 20:41:55 +0000 (20:41 +0000)]
Don't share sources with i386-elf. That was too difficult. 8-(
Add a bootstrap mode so that non-rtld versions of these objects can
be built when bootstrapping the system with NetBSD tools, headers
and libraries. Once the FreeBSD tools are built, the FreeBSD headers
are installed and *then* these objects can be recompiled with the
rtld references. Phew.
jb [Wed, 11 Mar 1998 20:36:11 +0000 (20:36 +0000)]
Sharing the crt sources with i386-elf wasn't too successful. The crti
asm code didn't link the way it was supposed to and the calling convention
for the entry "function" turned out to be very different. On alpha
it's a true function, but on i386 it's a fudge. Blech.
So jdp suggested keeping separate sets of source and avoiding lots
of #ifdefs. These files are based on his i386-elf code, with crt1.c
borrowing code from NetBSD's crt0. The copyright reflects that.
Complicating matters, the code turned out to be difficult to bootstrap
build using NetBSD tools. To compile against the FreeBSD rtld header
requires FreeBSD specific headers, but these can't be installed until
the tools are built, and they can't be built without the FreeBSD crt
objects. Anal retentive. So I introduced a HAVE_RTLD #define that isn't
set during the build process until all the tools are built and the
headers installed.
peter [Wed, 11 Mar 1998 09:30:51 +0000 (09:30 +0000)]
Tweak from the cvs sources just after the 1.9.26 release:
1998-03-07 Tim Pierce <twp@skepsis.com>
* rcs.c (RCS_checkout): Negation bug when checking out symlinks:
existence_error should be !existence_error.
This shouldn't cause any major merge problems later.
msmith [Wed, 11 Mar 1998 00:10:31 +0000 (00:10 +0000)]
If the root mount fails from a device that is not the compatability slice
of a disk, because that slice does not exist, try again mounting from the
compatability slice.
This handles the case where a disk has been initialised by 'disklabel
auto', which places a bogus and invalid slice entry on the disk.
The bootstrap is not smart enough to reject this slice, and pretends to
boot from it. Believing the the bootstrap at this point is unwise.
Booting from non-'wd' disks thus prepared is still broken, as
'disklabel -rwB xdN auto' does not initialise the disk type field, and
the bootstrap mistakenly claims that the disk is handled by 'wd'.
Behaviour is now consistent with DEVFS expected characteristics.
jb [Tue, 10 Mar 1998 20:25:17 +0000 (20:25 +0000)]
Update the blurb at the top of the script that describes where the
port is up to and that to do.
Change MACHINE to MACHINE_ARCH so that a symlink can be created to this
file and have the bootstrap work for other NetBSD ports.
Make the csu directory non-optional and build it immediately after
building gcc which *needs* the new csu files. The link spec for gcc
on FreeBSD/Alpha differs from the NetBSD/Alpha version. I decided that
since this is FreeBSD, it should have a FreeBSD flavour and it makes sense
to keep compatibility with other FreeBSD implementations - in this case
FreeBSD/i386-elf.
jb [Tue, 10 Mar 1998 07:04:18 +0000 (07:04 +0000)]
Trash startup sources from NetBSD in favour of jdp's FreeBSD source
now that has been committed.
The makefile is derived from the i386-elf version, modified to pick
up most of the source (except crt1.c) from i386-elf. With minor changes
to i386-elf/crt1.c, this directory can be combined with i386-elf to
be a single csu/elf directory for all seasons.
jb [Tue, 10 Mar 1998 06:47:14 +0000 (06:47 +0000)]
Change the LINK_SPEC to specify the same runtime loader as used on
i386-elf because that is what will be used for FreeBSD/Alpha.
Change the STARTFILE_SPEC to match the non-aout version of i386 so
that the csu files can be built in exactly the same way as i386-elf.
This means that FreeBSD/Alpha departs from NetBSD/Alpha which uses
crt0 and crtbegin/crtend. Since i386-aout uses crt0, I guess it was
decided that i386-elf should use crt1. i386-elf also references
crti and with this change, so does FreeBAS/Alpha.
I think it is important for FreeBSD to have a consistent implementation
across architectures and since ELF is quite compatible (ignoring
differences in 32 and 64 bits), gcc might as well be configured the
same.
Another change is that the entry symbol is _start, not __start as
in NetBSD.
jb [Tue, 10 Mar 1998 05:03:49 +0000 (05:03 +0000)]
cksum does a 32-bit checksum, so it needs to use u_int32_t variables,
not u_long. With this change, cksum stops core dumping on alpha (not
a good sign!) and actually computes the same values as it does on i386.
jkh [Tue, 10 Mar 1998 02:37:29 +0000 (02:37 +0000)]
Update to XFree86 3.3.2 - I had to remove the entries for the VFB and
PRT servers since the extra PC98 servers have eaten all my flag bits.
Time to redo the way distribution masks are calculated, definitely, but
for now I guess people can always install those two components by hand
if they really want them.
dyson [Mon, 9 Mar 1998 22:12:52 +0000 (22:12 +0000)]
Correct a problem with the ffs_getpages routine that manifest's itself
during the tail command. The amount to read is incorrectly calculated.
Submitted by: Tor Egge
julian [Mon, 9 Mar 1998 20:39:26 +0000 (20:39 +0000)]
Slightly more correct initialisation of the new buf struct for soft-updates.
Submitted by: Chris Csanady <ccsanady@friley585.res.iastate.edu>
Suggested by: Kirk McKusick
jkh [Mon, 9 Mar 1998 08:54:31 +0000 (08:54 +0000)]
Allow -R and -h to be combined as long as no symlink-following flags
are also requested.
Submitted by: Andre Albsmeier <andre.albsmeier@mchp.siemens.de>
msmith [Mon, 9 Mar 1998 08:35:33 +0000 (08:35 +0000)]
"Correct behaviour" involves being consistent with the canonical names of
other partitions. In this case, they appear in the first slice in the
WHOLE_DISK_SLICE case.
Yikes, this is the worst of the lot. Bruce suggested doing this (!).
Include the architecture specific sys makefile like previously, but
what this contains differs. It defines MDASM which list architecture
specific asm code that *replaces* syscalls of the same name defined
in MIASM (which gets defined by the syscall.mk or netbsd_syscall.mk
dependent of NETBSD_SYSCALLS being defined). If a syscall has a
C source implementation or something funny done to it, or just doesn't
need default asm source generated for it, then it is listed in NOASM.
syscall.mk is generated by makesyscalls.sh with other syscall files.
netbsd_syscall.mk is a hand-generated equivalent. So if a new syscall
is added and no other makefiles are edited, it will automatically have
the default asm source generated for it (whether you want it or not).
Anything listed in MDASM gets added to SRCS and gets built. For
each syscall name in MIASM, if it doesn't exist in MDASM or NOASM,
it gets added to the ASM or ASMR lists to have code generated for it.
If the syscall name was listed in HIDDEN_SYSCALLS (intended for use
by libc_r, not libc which has it defined, but empty), then the name
is added to the ASMR list and gets renamed before being built;
otherwise it is added to the ASM list and gets built with the same
name.
I wonder if this is too complicated. But it works on both i386 and alpha.
Function to return a pointer to the non-threaded errno. This is declared
with a weak symbol so that it won't be linked when linking against
libc_r or libpthread.
When forking a process, only the running thread gets to live. All
other threads never see the light of day and if they leave things
locked, blame POSIX.
Define empty variables in case no names are added to them. This avoids
substitution errors for variables that don't exist.
If a machine architecture dependent makefile exists, include it
to discover if libc or libc_r is being built with NetBSD syscalls
instead of FreeBSD ones.
Put a NO_QUAD thingy around the quad makefile so that 64-bit
architectures can ignore that sh*t.
In the test for MDSRCS being empty, add all MISRCS to SRCS, rather
than just ignoring them.
Add an include path to private linc/libc_r/libpthread header files.
Define the HIDDEN_SYSCALLS macro as empty because libc doesn't have
renamed syscalls. This avoids an undefined macro error when
libc/sys/Makefile.inc goes to look though it. HIDDEN_SYSCALLS is
used by the equivalent makefile to this one in lib/libc_r to list
those syscalls that it needs to rename so that libc_r can provide
replacement functions.
Import NetBSD/Alpha headers needed to get the FreeBSD userland to compile
(and even run). These files don't necessarily make sense for a
FreeBSD/Alpha kernel build. That will come later and these files
will be changed accordingly.
Add lib/libc/include as an directory to search for header files.
Change MACHINE references to MACHINE_ARCH.
Declare the names of the syscalls that need to be renamed to allow
for the functions that libc_r provides replacements for. This list
used to be in lib/libc/sys/Makefile.inc, but has been moved here
to keep that makefile tidy and remove the temptation for people to
add things to the list without adding a libc_r replacement function.
Add a private (to libc, libc_r and libpthread) header file containing
prototypes for the spinlock functions that will be used for thread locks.
libc will have stubs declared with weak symbols. libpthread and libc_r
will have functions that really do something.
NetBSD implements semctl using a __semctl syscall instead of the
semsys syscall that FreeBSD kernels use. Grumble. So make the call
dependent on if __NETBSD_SYSCALLS is defined.
Add a file generated by makesyscalls.sh to the same directory that
the other syscall files are generated into. This new file is to be
included by src/lib/libc/sys/Makefile.inc to automatically pick up
syscall names.
The other file, netbsd_syscall.mk, is the hand-generated NetBSD
equivalent to be included by src/lib/libc/sys/Makefile.inc when
_NETBSD_SYSCALLS is defined during the build of libc/libc_r.
Add statements to generate a sys/syscall.mk file for inclusion
during the libc/libc_r to automatically pick up syscall names on
the assumption that default asm code needs to generated for them.
In the up-coming changes to the libc makefiles, there is the option
to provide a machine dependent asm source file which will turn off
the automatic generation of the default. There is also an option
to just stop code being generated for a syscall. In most cases,
though, the default asm code is all that is required, so this
change makes that the most convenient was to do business.
peter [Mon, 9 Mar 1998 03:26:57 +0000 (03:26 +0000)]
Don't disable the use of $ in assembler labels.. It changes libstdc++
and libg++ so that they won't work with existing binaries (including
netscape!!).
Import of alpha specific bits to configure binutils for FreeBSD/Alpha.
Other changes that affect the i386-elf work are on hold to avoid
stuffing up other work in progress.