Home | History | Annotate | only in /src/sys/rump/fs
History log of /src/sys/rump/fs
RevisionDateAuthorComments
 1.3 15-Oct-2008  pooka Don't descend into rumptest automatically. Otherwise a manual
"make install" in this directory does some funnies.
 1.2 29-Jul-2008  pooka Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.1 05-Aug-2007  pooka branches: 1.1.2; 1.1.4; 1.1.8; 1.1.14; 1.1.30; 1.1.34; 1.1.36; 1.1.38; 1.1.40; 1.1.42;
Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.42.2 05-Aug-2007  pooka Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.42.1 05-Aug-2007  pooka file Makefile was added on branch matt-mips64 on 2007-08-05 22:28:02 +0000
 1.1.40.1 19-Oct-2008  haad Sync with HEAD.
 1.1.38.1 31-Jul-2008  simonb Sync with head.
 1.1.36.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.34.1 04-May-2009  yamt sync with head.
 1.1.30.2 17-Jan-2009  mjf Sync with HEAD.
 1.1.30.1 28-Sep-2008  mjf Sync with HEAD.
 1.1.14.2 02-Nov-2007  joerg Reduce diff to HEAD by adding files forgotten in early merges.
 1.1.14.1 05-Aug-2007  joerg file Makefile was added on branch jmcneill-pm on 2007-11-02 12:43:14 +0000
 1.1.8.2 03-Sep-2007  yamt sync with head.
 1.1.8.1 05-Aug-2007  yamt file Makefile was added on branch yamt-lazymbuf on 2007-09-03 14:44:27 +0000
 1.1.4.2 20-Aug-2007  ad Sync with HEAD.
 1.1.4.1 05-Aug-2007  ad file Makefile was added on branch vmlocking on 2007-08-20 22:07:09 +0000
 1.1.2.2 15-Aug-2007  skrll Sync with HEAD.
 1.1.2.1 05-Aug-2007  skrll file Makefile was added on branch nick-csl-alignment on 2007-08-15 13:50:08 +0000
 1.27 05-Dec-2010  pooka Rename Makefile.rump${x} to Makefile.rump${x}comp for consistency.
 1.26 05-Dec-2010  pooka Fix RUMPFSLIBS etc. As collateral, rename nullfs/umapfs to match
the vfsname, i.e. to "null" and "umap".
 1.25 26-Jul-2010  pooka Descend into nfsserver, i.e. build & install the kernel nfs server bits.
 1.24 14-Jun-2010  pooka ptyfs rump component
 1.23 31-Mar-2010  pooka support kernfs
 1.22 31-Mar-2010  pooka separate vfs-like components from actual drivers
(no functional change)
 1.21 30-Mar-2010  pooka support nullfs and umapfs
 1.20 29-Mar-2010  pooka Support unionfs (and layervfs, which is required for unionfs).
 1.19 29-Mar-2010  pooka Support fifofs in rump. Do not include it in rumpvfs directly,
since it involves some very non-fs'y components like sockets and
local domain networking. Also (for better or worse?), call it
rump*v*fs_fifofs instead of rumpfs_fifofs, since it does not really
provide a file system driver.

XXX: uses duplicate common symbols and functionality depends on
link order ... (but at least it works better than before this change)
 1.18 08-Mar-2010  pooka branches: 1.18.2;
attempt to know my a-b-c's
 1.17 08-Mar-2010  pooka support mfs
 1.16 04-Sep-2009  pooka branches: 1.16.2;
build & install librumpdev_netsmb and librumpfs_smbfs components
 1.15 03-Sep-2009  pooka install librumpfs_fdesc
 1.14 18-Jul-2009  reinoud Import read-only part of the NiLFS (v2) implementation for NetBSD. It has been
tested with a DEBUG+DIAGNOSTIC+LOCKDEBUG kernel. To summerise NiLFS, i'll
repeat my posting to tech-kern here:

NiLFS stands for New implementation of Logging File System; LFS done
right they claim :) It is at version 2 now and is being developed by NTT, the
Japanese telecom company and recently put into the linux source tree. See
http://www.nilfs.org. The on-disc format is not completely frozen and i expect
at least one minor revision to come in time.

The benefits of NiLFS are build-in fine-grained checkpointing, persistent
snapshots, multiple mounts and very large file and media support. Every
checkpoint can be transformed into a snapshot and v.v. It is said to perform
very well on flash media since it is not overwriting pieces apart from a
incidental update of the superblock, but that might change. It is accompanied
by a cleaner to clean up the segments and recover lost space.

My work is not a port of the linux code; its a new implementation. Porting the
code would be more work since its very linux oriented and never written to be
ported outside linux. The goal is to be fully interchangable. The code is non
intrusive to other parts of the kernel. It is also very light-weight.

The current state of the code is read-only access to both clean and dirty
NiLFS partitions. On mounting a dirty partition it rolls forward the log to
the last checkpoint. Full read-write support is however planned!

Just as the linux code, mount_nilfs allows for the `head' to be mounted
read/write and allows multiple read-only snapshots/checkpoint mounts next to
it.

By allowing the RW mount at a different snapshot for read-write it should be
possible eventually to revert back to a previous state; i.e. try to upgrade a
system and being able to revert to the exact state prior to the upgrade.

Compared to other FS's its pretty light-weight, suitable for embedded use and
on flash media. The read-only code is currently 17kb object code on
NetBSD/i386. I doubt the read-write code will surpass the 50 or 60. Compared
this to FFS being 156kb, UDF being 84 kb and NFS being 130kb. Run-time memory
usage is most likely not very different from other uses though maybe a bit
higher than FFS.
 1.13 02-May-2009  pooka Merge librumpfs_ufs into librumpfs_ffs. This reflects what happened
with the ffs kernel module and follows the trend of retiring ufs.
It also allows to get rid of a special case kludge in runtime module
loading, since ufs was not really a module. librumpfs_ufs is now
obsoleted and ffs consumers should be linked solely against
librumpfs_ffs.
 1.12 16-Oct-2008  pooka branches: 1.12.8;
* descend into rump/net
* descend into fs/lib/libnfs
 1.11 04-Sep-2008  pooka Add rump support for sysvbfs.
 1.10 05-Aug-2008  pooka Maintain consistency of naming between the rumpfs library name and
the MOUNT_FOOFS name. Don't bother polluting the obsolete lists
with the original names since they were in only for a few days.
 1.9 29-Jul-2008  pooka Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.8 02-Jan-2008  pooka branches: 1.8.6; 1.8.10; 1.8.12; 1.8.14; 1.8.16;
Add the ability to run puffs in userspace. This means that puffs
can now be developed in userspace using puffs for development
(I hate emulators, they are annoyingly clumsy).

To e.g. mount psshfs using puffs-on-puffs, run fs/bin/syspuffs/syspuffs
with the regular mount_psshfs command line as an argument:

golem> ./syspuffs /usr/sbin/mount_psshfs ftp.netbsd.org:/pub /puffs

This will make the mount appear as usual, with the exception that the
requests will be passed through puffs both in the kernel and userspace:

ftp.netbsd.org:/pub on /puffs type puffs|p2k|puffs|psshfs
 1.7 14-Aug-2007  pooka branches: 1.7.2; 1.7.4; 1.7.6; 1.7.8; 1.7.14; 1.7.16; 1.7.22;
* split userspace file system access into two separate libraries:
+ libp2k: the interface between libpuffs and vfs/vop
+ libukfs: generic user kernel file system library, usable
independent of libp2k and/or puffs
* use file system name (MOUNT_XYZ) instead of vfsops pointer to
mount file system
 1.6 14-Aug-2007  pooka udf support
 1.5 09-Aug-2007  pooka Enable lfs in r/o mode, i.e. does not start lfs_clean-nerd and do
any real trickery. Unfortunately this was the easy part; r/w
support is going to make ascending naked, blind, illiterate, without
food and as an atheist look trivial.
 1.4 08-Aug-2007  pooka Add hfs. Untested, as I couldn't find a hfs+ image for testing,
so one would be appreciated. At least it works enough to tell me
this:

hfs: Plain HFS volumes not currently supported
 1.3 08-Aug-2007  pooka microfrost strikes back
 1.2 07-Aug-2007  pooka support ext2fs
 1.1 05-Aug-2007  pooka branches: 1.1.2;
Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.2.2 05-Aug-2007  pooka Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.2.1 05-Aug-2007  pooka file Makefile.rumpfs was added on branch matt-mips64 on 2007-08-05 22:28:02 +0000
 1.7.22.1 02-Jan-2008  bouyer Sync with HEAD
 1.7.16.2 18-Feb-2008  mjf Sync with HEAD.
 1.7.16.1 19-Nov-2007  mjf Stubs for devfs. Committing this before I sync with HEAD.
 1.7.14.2 02-Nov-2007  joerg Reduce diff to HEAD by adding files forgotten in early merges.
 1.7.14.1 14-Aug-2007  joerg file Makefile.rumpfs was added on branch jmcneill-pm on 2007-11-02 12:43:15 +0000
 1.7.8.3 21-Jan-2008  yamt sync with head
 1.7.8.2 03-Sep-2007  yamt sync with head.
 1.7.8.1 14-Aug-2007  yamt file Makefile.rumpfs was added on branch yamt-lazymbuf on 2007-09-03 14:44:27 +0000
 1.7.6.1 09-Jan-2008  matt sync with HEAD
 1.7.4.2 20-Aug-2007  ad Sync with HEAD.
 1.7.4.1 14-Aug-2007  ad file Makefile.rumpfs was added on branch vmlocking on 2007-08-20 22:07:09 +0000
 1.7.2.2 15-Aug-2007  skrll Sync with HEAD.
 1.7.2.1 14-Aug-2007  skrll file Makefile.rumpfs was added on branch nick-csl-alignment on 2007-08-15 13:50:08 +0000
 1.8.16.1 19-Oct-2008  haad Sync with HEAD.
 1.8.14.1 31-Jul-2008  simonb Sync with head.
 1.8.12.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.8.10.5 11-Aug-2010  yamt sync with head.
 1.8.10.4 11-Mar-2010  yamt sync with head
 1.8.10.3 16-Sep-2009  yamt sync with head
 1.8.10.2 19-Aug-2009  yamt sync with head.
 1.8.10.1 04-May-2009  yamt sync with head.
 1.8.6.2 17-Jan-2009  mjf Sync with HEAD.
 1.8.6.1 28-Sep-2008  mjf Sync with HEAD.
 1.12.8.2 23-Jul-2009  jym Sync with HEAD.
 1.12.8.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.16.2.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.16.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.18.2.3 05-Mar-2011  rmind sync with head
 1.18.2.2 03-Jul-2010  rmind sync with head
 1.18.2.1 30-May-2010  rmind sync with head
 1.10 06-Jun-2022  nia branches: 1.10.10;
build system: Revert all the recent additions of MK[...] knobs that
allow conditionally disabling the building of certain user space
programs in the 'base' set.

There is not enough consensus that this is the right way and a few
people had strong objections, see source-changes-d@.
 1.9 27-May-2022  nia ... and more MKLFS here
 1.8 15-May-2020  christos PR/55102: Kamil Rytarowski: Duplicate fifo_vnodeop_entries,
fifo_vnodeop_opv_desc symbols.

Many filesystems ffs, lfs, ulfs, chfs, ext2fs etc. use fifofs
internally for their fifo vnops. NFS does too, but it also needs
networking anyway. Unfortunately fifofs brings in a lot of the
networking code so that the rumpkernel is not well partition. In
addition the fifo code is rarely used.

The existing hack depended on duplicating the above symbols and
adding minimal functionality for the majority of the the tests
(except the ffs and the puffs one). In these two cases both symbols
were loaded and the symbol sizes clashed which broke the sanitizers.
While this can be fixed with weak symbols and other kinds of
indirection, it is more straight forward to select between the
minimal and the full fifofs implementation by introducing a new
shared library librumpvfs_nofifofs.
 1.7 04-Apr-2020  jdolecek remove SMBFS and nsmb(4) - kernel part

it's unmaintained and supports only obsolete SMB1
 1.6 15-Nov-2015  pooka branches: 1.6.18;
Always descend into component directories for rumpdescribe.
 1.5 10-Apr-2014  pooka branches: 1.5.4;
add aio driver as rump kernel component
 1.4 24-Jul-2011  uch branches: 1.4.2; 1.4.12; 1.4.16; 1.4.26;
v7fs rump support
 1.3 05-Mar-2011  joerg branches: 1.3.2;
Fix spelling of MKZFS
 1.2 18-Jan-2011  haad branches: 1.2.2;
Add support for compiling ZFS and Solaris modules as RUMP libraries. Add
some locking and rumpcopy primitives and refactor module building Makefiles
to work with both RUMP and kernel modules. This is first part of adding
support for regular test of zfs on NetBSD to hunt some bugs and make it
stable.

Ok by pooka@.
 1.1 05-Dec-2010  pooka branches: 1.1.2;
Rename Makefile.rump${x} to Makefile.rump${x}comp for consistency.
 1.1.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.2.2.1 05-Mar-2011  bouyer Sync with HEAD
 1.3.2.2 05-Mar-2011  rmind sync with head
 1.3.2.1 05-Mar-2011  rmind file Makefile.rumpfscomp was added on branch rmind-uvmplock on 2011-03-05 20:56:10 +0000
 1.4.26.1 10-Aug-2014  tls Rebase.
 1.4.16.1 18-May-2014  rmind sync with head
 1.4.12.2 03-Dec-2017  jdolecek update from HEAD
 1.4.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.4.2.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.5.4.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.6.18.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.10.10.1 29-Jun-2024  perseant Implementation of exFAT filesystem, with compilation conditional on MKEXFATFS
make variable.
 1.2 05-Dec-2010  pooka Rename Makefile.rump${x} to Makefile.rump${x}comp for consistency.
 1.1 05-Aug-2007  pooka branches: 1.1.2; 1.1.4; 1.1.8; 1.1.14; 1.1.42; 1.1.58;
Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.58.1 05-Mar-2011  rmind sync with head
 1.1.42.2 05-Aug-2007  pooka Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.42.1 05-Aug-2007  pooka file Makefile was added on branch matt-mips64 on 2007-08-05 22:28:04 +0000
 1.1.14.2 02-Nov-2007  joerg Remove the rest of the unintentional diff in sys/rump.
 1.1.14.1 05-Aug-2007  joerg file Makefile was added on branch jmcneill-pm on 2007-11-02 13:02:44 +0000
 1.1.8.2 03-Sep-2007  yamt sync with head.
 1.1.8.1 05-Aug-2007  yamt file Makefile was added on branch yamt-lazymbuf on 2007-09-03 14:45:00 +0000
 1.1.4.2 20-Aug-2007  ad Sync with HEAD.
 1.1.4.1 05-Aug-2007  ad file Makefile was added on branch vmlocking on 2007-08-20 22:07:17 +0000
 1.1.2.2 15-Aug-2007  skrll Sync with HEAD.
 1.1.2.1 05-Aug-2007  skrll file Makefile was added on branch nick-csl-alignment on 2007-08-15 13:50:19 +0000
 1.14 12-Dec-2009  pooka Use linker script to make __start/stop_link_set_modules be present
in libs built with binutils >=2.19. This is a less error-prone
method than the previous where components had to be tagged in the
Makefile as modules (and if they weren't, things broke. and vice
versa).
 1.13 13-Sep-2009  pooka binutils 2.19 has changed the old behaviour of defining __start_SECTNAME
for orphaned sections to using PROVIDE. What this means is that
unless a rump component internally references that symbol, it will
not be included in the component shared library, and hence cannot
be referenced when the component is loaded. Add a workaround which
works both with 2.16 and 2.19: force a reference to the __start
symbol internally and hence retain it in the resulting library.
 1.12 15-Oct-2008  pooka Revert weird revivesa merge botch. (Hi Bill!)
 1.11 15-Oct-2008  wrstuden Merge wrstuden-revivesa into HEAD.
 1.10 04-Aug-2008  pooka libs don't need NOMAN
 1.9 29-Jul-2008  pooka Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.8 20-Jul-2008  he The build options for the library parts are mostly located in this
file. So, in order to better support UPDATE builds, add a dependency
on this file for object files in subdirectories using this file.
 1.7 18-Jul-2008  pooka enable DIAGNOSTIC
 1.6 05-Jun-2008  ad branches: 1.6.2; 1.6.4;
Make it build again.
 1.5 03-May-2008  lukem branches: 1.5.2;
Rename MKPRIVATELIB to LIBISPRIVATE, to make it clearer that this is
a variable that is used by in-tree Makefiles to control behaviour.
(MKsomevar variables are generally intended to be controlled by the end-user)
 1.4 26-Oct-2007  pooka branches: 1.4.2; 1.4.18; 1.4.20; 1.4.22;
define _RUMPKERNEL
 1.3 07-Aug-2007  pooka branches: 1.3.2; 1.3.4; 1.3.6; 1.3.8; 1.3.12;
Compile kernel stuff with DIAGNOSTIC.
 1.2 07-Aug-2007  pooka -I${NETBSDSRCDIR}/common/include
 1.1 05-Aug-2007  pooka branches: 1.1.2;
Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.2.2 05-Aug-2007  pooka Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.2.1 05-Aug-2007  pooka file Makefile.inc was added on branch matt-mips64 on 2007-08-05 22:28:05 +0000
 1.3.12.1 13-Nov-2007  bouyer Sync with HEAD
 1.3.8.3 27-Oct-2007  yamt sync with head.
 1.3.8.2 03-Sep-2007  yamt sync with head.
 1.3.8.1 07-Aug-2007  yamt file Makefile.inc was added on branch yamt-lazymbuf on 2007-09-03 14:45:01 +0000
 1.3.6.1 06-Nov-2007  matt sync with HEAD
 1.3.4.2 20-Aug-2007  ad Sync with HEAD.
 1.3.4.1 07-Aug-2007  ad file Makefile.inc was added on branch vmlocking on 2007-08-20 22:07:17 +0000
 1.3.2.2 15-Aug-2007  skrll Sync with HEAD.
 1.3.2.1 07-Aug-2007  skrll file Makefile.inc was added on branch nick-csl-alignment on 2007-08-15 13:50:20 +0000
 1.4.22.4 11-Mar-2010  yamt sync with head
 1.4.22.3 16-Sep-2009  yamt sync with head
 1.4.22.2 04-May-2009  yamt sync with head.
 1.4.22.1 16-May-2008  yamt sync with head.
 1.4.20.2 17-Jun-2008  yamt sync with head.
 1.4.20.1 18-May-2008  yamt sync with head.
 1.4.18.3 28-Sep-2008  mjf Sync with HEAD.
 1.4.18.2 29-Jun-2008  mjf Sync with HEAD.
 1.4.18.1 02-Jun-2008  mjf Sync with HEAD.
 1.4.2.2 26-Oct-2007  pooka define _RUMPKERNEL
 1.4.2.1 26-Oct-2007  pooka file Makefile.inc was added on branch jmcneill-pm on 2007-10-26 10:44:28 +0000
 1.5.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.6.4.1 19-Oct-2008  haad Sync with HEAD.
 1.6.2.2 31-Jul-2008  simonb Sync with head.
 1.6.2.1 21-Jul-2008  simonb Sync with head.
 1.2 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.1 10-Apr-2014  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.10; 1.1.12;
add aio driver as rump kernel component
 1.1.12.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.1.10.3 03-Dec-2017  jdolecek update from HEAD
 1.1.10.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.10.1 10-Apr-2014  tls file Makefile was added on branch tls-maxphys on 2014-08-20 00:04:39 +0000
 1.1.6.2 10-Aug-2014  tls Rebase.
 1.1.6.1 10-Apr-2014  tls file Makefile was added on branch tls-earlyentropy on 2014-08-10 06:56:50 +0000
 1.1.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.4.1 10-Apr-2014  yamt file Makefile was added on branch yamt-pagecache on 2014-05-22 11:41:13 +0000
 1.1.2.2 18-May-2014  rmind sync with head
 1.1.2.1 10-Apr-2014  rmind file Makefile was added on branch rmind-smpnet on 2014-05-18 17:46:16 +0000
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 10-Apr-2014  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.10; 1.1.12;
add aio driver as rump kernel component
 1.1.12.1 06-Apr-2015  skrll Sync with HEAD
 1.1.10.3 03-Dec-2017  jdolecek update from HEAD
 1.1.10.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.10.1 10-Apr-2014  tls file shlib_version was added on branch tls-maxphys on 2014-08-20 00:04:39 +0000
 1.1.6.2 10-Aug-2014  tls Rebase.
 1.1.6.1 10-Apr-2014  tls file shlib_version was added on branch tls-earlyentropy on 2014-08-10 06:56:50 +0000
 1.1.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.4.1 10-Apr-2014  yamt file shlib_version was added on branch yamt-pagecache on 2014-05-22 11:41:13 +0000
 1.1.2.2 18-May-2014  rmind sync with head
 1.1.2.1 10-Apr-2014  rmind file shlib_version was added on branch rmind-smpnet on 2014-05-18 17:46:16 +0000
 1.3 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.2 16-Feb-2010  pooka branches: 1.2.20; 1.2.38;
Globally define -Wno-pointer-sign, as it has become a pointless
exercise of "add it to every Makefile individually".

XXX: should autosynchronize with the rest of the kernel buildflags
in sys/conf/Makefile.kern.inc.
 1.1 05-Aug-2008  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.18; 1.1.22;
Maintain consistency of naming between the rumpfs library name and
the MOUNT_FOOFS name. Don't bother polluting the obsolete lists
with the original names since they were in only for a few days.
 1.1.22.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.1.18.3 11-Mar-2010  yamt sync with head
 1.1.18.2 04-May-2009  yamt sync with head.
 1.1.18.1 05-Aug-2008  yamt file Makefile was added on branch yamt-nfs-mp on 2009-05-04 08:14:26 +0000
 1.1.6.2 19-Oct-2008  haad Sync with HEAD.
 1.1.6.1 05-Aug-2008  haad file Makefile was added on branch haad-dm on 2008-10-19 22:18:00 +0000
 1.1.4.2 28-Sep-2008  mjf Sync with HEAD.
 1.1.4.1 05-Aug-2008  mjf file Makefile was added on branch mjf-devfs2 on 2008-09-28 10:41:01 +0000
 1.1.2.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.2.1 05-Aug-2008  wrstuden file Makefile was added on branch wrstuden-revivesa on 2008-09-18 04:37:03 +0000
 1.2.38.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.2.20.1 03-Dec-2017  jdolecek update from HEAD
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 05-Aug-2008  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.18; 1.1.46; 1.1.66;
Maintain consistency of naming between the rumpfs library name and
the MOUNT_FOOFS name. Don't bother polluting the obsolete lists
with the original names since they were in only for a few days.
 1.1.66.1 06-Apr-2015  skrll Sync with HEAD
 1.1.46.1 03-Dec-2017  jdolecek update from HEAD
 1.1.18.2 04-May-2009  yamt sync with head.
 1.1.18.1 05-Aug-2008  yamt file shlib_version was added on branch yamt-nfs-mp on 2009-05-04 08:14:26 +0000
 1.1.6.2 19-Oct-2008  haad Sync with HEAD.
 1.1.6.1 05-Aug-2008  haad file shlib_version was added on branch haad-dm on 2008-10-19 22:18:00 +0000
 1.1.4.2 28-Sep-2008  mjf Sync with HEAD.
 1.1.4.1 05-Aug-2008  mjf file shlib_version was added on branch mjf-devfs2 on 2008-09-28 10:41:01 +0000
 1.1.2.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.2.1 05-Aug-2008  wrstuden file shlib_version was added on branch wrstuden-revivesa on 2008-09-18 04:37:03 +0000
 1.5 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.4 07-Aug-2014  hannken branches: 1.4.4;
Change efs from hashlist to vcache.
 1.3 29-Jul-2008  pooka branches: 1.3.38; 1.3.54;
Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.2 07-Aug-2007  pooka branches: 1.2.2; 1.2.4; 1.2.8; 1.2.14; 1.2.30; 1.2.34; 1.2.36; 1.2.38; 1.2.40;
more bsd.own.mk inclusion
 1.1 05-Aug-2007  pooka branches: 1.1.2;
Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.2.2 05-Aug-2007  pooka Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.2.1 05-Aug-2007  pooka file Makefile was added on branch matt-mips64 on 2007-08-05 22:28:05 +0000
 1.2.40.1 19-Oct-2008  haad Sync with HEAD.
 1.2.38.1 31-Jul-2008  simonb Sync with head.
 1.2.36.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.2.34.1 04-May-2009  yamt sync with head.
 1.2.30.1 28-Sep-2008  mjf Sync with HEAD.
 1.2.14.2 02-Nov-2007  joerg Reduce diff to HEAD by adding files forgotten in early merges.
 1.2.14.1 07-Aug-2007  joerg file Makefile was added on branch jmcneill-pm on 2007-11-02 12:43:34 +0000
 1.2.8.2 03-Sep-2007  yamt sync with head.
 1.2.8.1 07-Aug-2007  yamt file Makefile was added on branch yamt-lazymbuf on 2007-09-03 14:45:03 +0000
 1.2.4.2 20-Aug-2007  ad Sync with HEAD.
 1.2.4.1 07-Aug-2007  ad file Makefile was added on branch vmlocking on 2007-08-20 22:07:18 +0000
 1.2.2.2 15-Aug-2007  skrll Sync with HEAD.
 1.2.2.1 07-Aug-2007  skrll file Makefile was added on branch nick-csl-alignment on 2007-08-15 13:50:21 +0000
 1.3.54.1 10-Aug-2014  tls Rebase.
 1.3.38.2 03-Dec-2017  jdolecek update from HEAD
 1.3.38.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.4.4.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 29-Jul-2008  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8; 1.1.20; 1.1.48; 1.1.68;
Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.1.68.1 06-Apr-2015  skrll Sync with HEAD
 1.1.48.1 03-Dec-2017  jdolecek update from HEAD
 1.1.20.2 04-May-2009  yamt sync with head.
 1.1.20.1 29-Jul-2008  yamt file shlib_version was added on branch yamt-nfs-mp on 2009-05-04 08:14:26 +0000
 1.1.8.2 19-Oct-2008  haad Sync with HEAD.
 1.1.8.1 29-Jul-2008  haad file shlib_version was added on branch haad-dm on 2008-10-19 22:18:00 +0000
 1.1.6.2 28-Sep-2008  mjf Sync with HEAD.
 1.1.6.1 29-Jul-2008  mjf file shlib_version was added on branch mjf-devfs2 on 2008-09-28 10:41:01 +0000
 1.1.4.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.4.1 29-Jul-2008  wrstuden file shlib_version was added on branch wrstuden-revivesa on 2008-09-18 04:37:03 +0000
 1.1.2.2 31-Jul-2008  simonb Sync with head.
 1.1.2.1 29-Jul-2008  simonb file shlib_version was added on branch simonb-wapbl on 2008-07-31 04:51:04 +0000
 1.8 12-Aug-2016  martin Add new file to fix the build.
 1.7 24-Jun-2016  christos Add new files
 1.6 03-Jun-2016  joerg Install new header and fix rump to include the corresponding source as
well.
 1.5 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.4 09-May-2012  riastradh branches: 1.4.2; 1.4.16;
Adapt ffs, lfs, and ext2fs to use genfs_rename.

ok dholland, rmind
 1.3 16-Feb-2010  pooka branches: 1.3.10; 1.3.14;
Globally define -Wno-pointer-sign, as it has become a pointless
exercise of "add it to every Makefile individually".

XXX: should autosynchronize with the rest of the kernel buildflags
in sys/conf/Makefile.kern.inc.
 1.2 29-Jul-2008  pooka branches: 1.2.14;
Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.1 07-Aug-2007  pooka branches: 1.1.2; 1.1.4; 1.1.8; 1.1.14; 1.1.30; 1.1.34; 1.1.36; 1.1.38; 1.1.40;
support ext2fs
 1.1.40.1 19-Oct-2008  haad Sync with HEAD.
 1.1.38.1 31-Jul-2008  simonb Sync with head.
 1.1.36.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.34.2 11-Mar-2010  yamt sync with head
 1.1.34.1 04-May-2009  yamt sync with head.
 1.1.30.1 28-Sep-2008  mjf Sync with HEAD.
 1.1.14.2 02-Nov-2007  joerg Reduce diff to HEAD by adding files forgotten in early merges.
 1.1.14.1 07-Aug-2007  joerg file Makefile was added on branch jmcneill-pm on 2007-11-02 12:43:34 +0000
 1.1.8.2 03-Sep-2007  yamt sync with head.
 1.1.8.1 07-Aug-2007  yamt file Makefile was added on branch yamt-lazymbuf on 2007-09-03 14:45:04 +0000
 1.1.4.2 20-Aug-2007  ad Sync with HEAD.
 1.1.4.1 07-Aug-2007  ad file Makefile was added on branch vmlocking on 2007-08-20 22:07:18 +0000
 1.1.2.2 15-Aug-2007  skrll Sync with HEAD.
 1.1.2.1 07-Aug-2007  skrll file Makefile was added on branch nick-csl-alignment on 2007-08-15 13:50:21 +0000
 1.2.14.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.3.14.1 02-Jun-2012  mrg sync to latest -current.
 1.3.10.1 23-May-2012  yamt sync with head.
 1.4.16.3 05-Oct-2016  skrll Sync with HEAD
 1.4.16.2 09-Jul-2016  skrll Sync with HEAD
 1.4.16.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.4.2.1 03-Dec-2017  jdolecek update from HEAD
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 29-Jul-2008  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8; 1.1.20; 1.1.48; 1.1.68;
Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.1.68.1 06-Apr-2015  skrll Sync with HEAD
 1.1.48.1 03-Dec-2017  jdolecek update from HEAD
 1.1.20.2 04-May-2009  yamt sync with head.
 1.1.20.1 29-Jul-2008  yamt file shlib_version was added on branch yamt-nfs-mp on 2009-05-04 08:14:26 +0000
 1.1.8.2 19-Oct-2008  haad Sync with HEAD.
 1.1.8.1 29-Jul-2008  haad file shlib_version was added on branch haad-dm on 2008-10-19 22:18:00 +0000
 1.1.6.2 28-Sep-2008  mjf Sync with HEAD.
 1.1.6.1 29-Jul-2008  mjf file shlib_version was added on branch mjf-devfs2 on 2008-09-28 10:41:02 +0000
 1.1.4.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.4.1 29-Jul-2008  wrstuden file shlib_version was added on branch wrstuden-revivesa on 2008-09-18 04:37:03 +0000
 1.1.2.2 31-Jul-2008  simonb Sync with head.
 1.1.2.1 29-Jul-2008  simonb file shlib_version was added on branch simonb-wapbl on 2008-07-31 04:51:04 +0000
 1.2 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.1 31-Jul-2009  pooka branches: 1.1.2; 1.1.24; 1.1.42;
add fdesc fs rump lib
(don't descend in here by default, I don't want to deal with the
setlist pain for now)
 1.1.42.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.1.24.1 03-Dec-2017  jdolecek update from HEAD
 1.1.2.2 19-Aug-2009  yamt sync with head.
 1.1.2.1 31-Jul-2009  yamt file Makefile was added on branch yamt-nfs-mp on 2009-08-19 18:48:27 +0000
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 31-Jul-2009  pooka branches: 1.1.2; 1.1.24; 1.1.42;
add fdesc fs rump lib
(don't descend in here by default, I don't want to deal with the
setlist pain for now)
 1.1.42.1 06-Apr-2015  skrll Sync with HEAD
 1.1.24.1 03-Dec-2017  jdolecek update from HEAD
 1.1.2.2 19-Aug-2009  yamt sync with head.
 1.1.2.1 31-Jul-2009  yamt file shlib_version was added on branch yamt-nfs-mp on 2009-08-19 18:48:27 +0000
 1.23 03-Jun-2023  lukem bsd.own.mk: rename GCC_NO_* to CC_WNO_*

Rename compiler-warning-disable variables from
GCC_NO_warning
to
CC_WNO_warning
where warning is the full warning name as used by the compiler.

GCC_NO_IMPLICIT_FALLTHRU is CC_WNO_IMPLICIT_FALLTHROUGH

Using the convention CC_compilerflag, where compilerflag
is based on the full compiler flag name.
 1.22 03-Jun-2023  lukem bsd.own.mk: rename to CC_WNO_ADDRESS_OF_PACKED_MEMBER

Provide a single variable
CC_WNO_ADDRESS_OF_PACKED_MEMBER
with options for both clang and gcc, to replace
CLANG_NO_ADDR_OF_PACKED_MEMBER
CC_NO_ADDR_OF_PACKED_MEMBER
GCC_NO_ADDR_OF_PACKED_MEMBER

Using the convention CC_compilerflag, where compilerflag
is based on the full compiler flag name.
 1.21 06-Sep-2020  mrg add support for new GCC 9 warnings that may be too much to fix
right now. new address-of-packed-member and format-overflow
warnings have new GCC_NO_ADDR_OF_PACKED_MEMBER amd
GCC_NO_FORMAT_OVERFLOW variables to remove these warnings.

apply to a bunch of the tree. mostly, these are real bugs that
should be fixed, but in many cases, only by removing the 'packed'
attribute from some structure that doesn't really need it. (i
looked at many different ones, and while perhaps 60-80% were
already properly aligned, it wasn't clear to me that the uses
were always coming from sane data vs network alignment, so it
doesn't seem safe to remove packed without careful research for
each affect struct.) clang already warned (and was not erroring)
for many of these cases, but gcc picked up dozens more.
 1.20 16-May-2020  christos Add ACL support for FFS. From FreeBSD.
 1.19 25-Apr-2020  bouyer Merge the bouyer-xenpvh branch, bringing in Xen PV drivers support under HVM
guests in GENERIC.
Xen support can be disabled at runtime with
boot -c
disable hypervisor
 1.18 18-Apr-2020  christos Extended attribute support for ffsv2, from FreeBSD.
 1.17 12-Apr-2020  christos remove removed file
 1.16 19-Oct-2015  pooka branches: 1.16.18; 1.16.28;
Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.15 08-May-2014  hannken branches: 1.15.4;
Add a global vnode cache:

- vcache_get() retrieves a referenced and initialised vnode / fs node pair.
- vcache_remove() removes a vnode / fs node pair from the cache.

On cache miss vcache_get() calls new vfs operation vfs_loadvnode() to
initialise a vnode / fs node pair. This call is guaranteed exclusive,
no other thread will try to load this vnode / fs node pair.

Convert ufs/ext2fs, ufs/ffs and ufs/mfs to use this interface.

Remove now unused ufs/ufs_ihash

Discussed on tech-kern.

Welcome to 6.99.41
 1.14 09-May-2012  riastradh branches: 1.14.2; 1.14.4; 1.14.12;
Adapt ffs, lfs, and ext2fs to use genfs_rename.

ok dholland, rmind
 1.13 06-Mar-2011  bouyer branches: 1.13.4; 1.13.8;
merge the bouyer-quota2 branch. This adds a new on-disk format
to store disk quota usage and limits, integrated with ffs
metadata. Usage is checked by fsck_ffs (no more quotacheck)
and is covered by the WAPBL journal. Enabled with kernel
option QUOTA2 (added where QUOTA was enabled in kernel config files),
turned on with tunefs(8) on a per-filesystem
basis. mount_mfs(8) can also turn quotas on.

See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html
for details.
 1.12 20-May-2010  pooka branches: 1.12.2; 1.12.4;
include extattr support
 1.11 02-Mar-2010  pooka branches: 1.11.2;
While I like redundant computing, specifying each option just once
is generally enough.
 1.10 16-Feb-2010  pooka Globally define -Wno-pointer-sign, as it has become a pointless
exercise of "add it to every Makefile individually".

XXX: should autosynchronize with the rest of the kernel buildflags
in sys/conf/Makefile.kern.inc.
 1.9 02-May-2009  pooka branches: 1.9.2;
Merge librumpfs_ufs into librumpfs_ffs. This reflects what happened
with the ffs kernel module and follows the trend of retiring ufs.
It also allows to get rid of a special case kludge in runtime module
loading, since ufs was not really a module. librumpfs_ufs is now
obsoleted and ffs consumers should be linked solely against
librumpfs_ffs.
 1.8 06-Apr-2009  pooka compile in snapshot code
 1.7 22-Feb-2009  ad PR kern/26878 FFSv2 + softdep = livelock (no free ram)
PR kern/16942 panic with softdep and quotas
PR kern/19565 panic: softdep_write_inodeblock: indirect pointer #1 mismatch
PR kern/26274 softdep panic: allocdirect_merge: ...
PR kern/26374 Long delay before non-root users can write to softdep partitions
PR kern/28621 1.6.x "vp != NULL" panic in ffs_softdep.c:4653 while unmounting a softdep (+quota) filesystem
PR kern/29513 FFS+Softdep panic with unfsck-able file-corruption
PR kern/31544 The ffs softdep code appears to fail to write dirty bits to disk
PR kern/31981 stopping scsi disk can cause panic (softdep)
PR kern/32116 kernel panic in softdep (assertion failure)
PR kern/32532 softdep_trackbufs deadlock
PR kern/37191 softdep: locking against myself
PR kern/40474 Kernel panic after remounting raid root with softdep

Retire softdep, pass 2. As discussed and later formally announced on the
mailing lists.
 1.6 05-Aug-2008  simonb branches: 1.6.2; 1.6.8;
Enable "options APPLE_UFS". OK pooka@.
 1.5 31-Jul-2008  simonb Merge the simonb-wapbl branch. From the original branch commit:

Add Wasabi System's WAPBL (Write Ahead Physical Block Logging)
journaling code. Originally written by Darrin B. Jewell while
at Wasabi and updated to -current by Antti Kantee, Andy Doran,
Greg Oster and Simon Burge.

OK'd by core@, releng@.
 1.4 29-Jul-2008  pooka Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.3 24-Sep-2007  pooka branches: 1.3.4; 1.3.20; 1.3.24; 1.3.26; 1.3.28; 1.3.30;
-DFFS_EI
 1.2 07-Aug-2007  pooka branches: 1.2.2; 1.2.4; 1.2.6; 1.2.8; 1.2.10;
more bsd.own.mk inclusion
 1.1 05-Aug-2007  pooka branches: 1.1.2;
Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.2.2 05-Aug-2007  pooka Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.2.1 05-Aug-2007  pooka file Makefile was added on branch matt-mips64 on 2007-08-05 22:28:05 +0000
 1.2.10.1 06-Oct-2007  yamt sync with head.
 1.2.8.3 27-Oct-2007  yamt sync with head.
 1.2.8.2 03-Sep-2007  yamt sync with head.
 1.2.8.1 07-Aug-2007  yamt file Makefile was added on branch yamt-lazymbuf on 2007-09-03 14:45:05 +0000
 1.2.6.1 06-Nov-2007  matt sync with HEAD
 1.2.4.3 09-Oct-2007  ad Sync with head.
 1.2.4.2 20-Aug-2007  ad Sync with HEAD.
 1.2.4.1 07-Aug-2007  ad file Makefile was added on branch vmlocking on 2007-08-20 22:07:19 +0000
 1.2.2.2 15-Aug-2007  skrll Sync with HEAD.
 1.2.2.1 07-Aug-2007  skrll file Makefile was added on branch nick-csl-alignment on 2007-08-15 13:50:22 +0000
 1.3.30.1 19-Oct-2008  haad Sync with HEAD.
 1.3.28.2 31-Jul-2008  simonb Sync with head.
 1.3.28.1 10-Jun-2008  simonb Initial commit of Wasabi System's WAPBL (Write Ahead Physical Block
Logging) journaling code. Originally written by Darrin B. Jewell
while at Wasabi and updated to -current by Antti Kantee, Andy Doran,
Greg Oster and Simon Burge.

Still a number of issues - look in doc/BRANCHES for "simonb-wapbl"
for more info.
 1.3.26.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.3.24.3 11-Aug-2010  yamt sync with head.
 1.3.24.2 11-Mar-2010  yamt sync with head
 1.3.24.1 04-May-2009  yamt sync with head.
 1.3.20.1 28-Sep-2008  mjf Sync with HEAD.
 1.3.4.2 02-Nov-2007  joerg Reduce diff to HEAD by adding files forgotten in early merges.
 1.3.4.1 24-Sep-2007  joerg file Makefile was added on branch jmcneill-pm on 2007-11-02 12:43:35 +0000
 1.6.8.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.6.2.2 28-Apr-2009  skrll Sync with HEAD.
 1.6.2.1 03-Mar-2009  skrll Sync with HEAD.
 1.9.2.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.9.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.11.2.2 21-Apr-2011  rmind sync with head
 1.11.2.1 30-May-2010  rmind sync with head
 1.12.4.3 18-Feb-2011  bouyer quota2_subr.c is not used outside of ufs_quota2.c in kernel, so make it
compiled conditionally on QUOTA2 again
 1.12.4.2 15-Feb-2011  bouyer Implement COMPAT_50 quotactl(2)
 1.12.4.1 20-Jan-2011  bouyer Snapshot of work in progress on a modernised disk quota system:
- new quotactl syscall (versionned for backward compat), which takes
as parameter a path to a mount point, and a prop_dictionary
(in plistref format) describing commands and arguments.
For each command, status and data are returned as a prop_dictionary.
quota commands features will be added to take advantage of this,
exporting quota data or getting quota commands as plists.

- new on disk-format storage (all 64bit wide), integrated to metadata for
ffs (and playing nicely with wapbl).
Quotas are enabled on a ffs filesystem via superblock flags.
tunefs(8) can enable or disable quotas.
On a quota-enabled filesystem, fsck_ffs(8) will track per-uid/gid
block and inode usages, and will check and update quotas in Pass 6.
quota usage and limits are stored in unliked files (one for users,
one for groups)l fsck_ffs(8) will create the files if needed, or
free them if needed. This means that after enabling or disabling
quotas on a filesystem; a fsck_ffs(8) run is required.
quotacheck(8) is not needed any more, on a unclean shutdown
fsck or journal replay will take care of fixing quotas.
newfs(8) can create a ready-to-mount quota-enabled filesystem
(superblock flags are set and quota inodes are created).
Other new features or semantic changes:
- default quota datas, applied to users or groups which don't already
have a quota entry
- per-user/group grace time (instead of a filesystem global one)
- 0 really means "nothing allowed at all", not "no limit".
If you want "no limit", set the limit to UQUAD_MAX (tools will
understand "unlimited" and "-")

A quota file is structured as follow:
it starts with a header, containing a few per-filesystem values,
and the default quota limits.
Quota entries are linked together as a simple list, each entry has a
pointer (as an offset withing the file) to the next.
The header has a pointer to a list of free quota entries, and
a hash table of in-use entries. The size of the hash table depends
on the filesystem block size (header+hash table should fit in the
first block). The file is not sparse and is a multiple of
filesystem block size (when the free quota entry list is empty a new
filesystem block is allocated). quota entries to not cross
filesystem block boundaries.

In memory, the kernel keeps a cache of recently used quota entries
as a reference to the block number, and offset withing the block.
The quota entry itself is keept in the buf cache.

fsck_ffs(8), tunefs(8) and newfs(8) supports are completed (with
related atf tests :)
The kernel can update disk usage and report it via quotactl(2).

Todo: enforce quotas limits (limits are not checked by kernel yet)
update repquota, edquota and rpc.rquotad to the new world
implement compat_50_quotactl ioctl.
update quotactl(2) man page

fsck_ffs required fixes so that allocating new blocks or inodes will
properly update the superblock and cg sumaries. This was not an issue up
to now because superblock and cg sumaries check happened last, but now
allocations or frees can happen in pass 6.
 1.12.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.13.8.1 02-Jun-2012  mrg sync to latest -current.
 1.13.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.13.4.1 23-May-2012  yamt sync with head.
 1.14.12.1 10-Aug-2014  tls Rebase.
 1.14.4.1 18-May-2014  rmind sync with head
 1.14.2.2 03-Dec-2017  jdolecek update from HEAD
 1.14.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.15.4.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.16.28.1 20-Apr-2020  bouyer Sync with HEAD
 1.16.18.1 21-Apr-2020  martin Sync with HEAD
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 29-Jul-2008  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8; 1.1.20; 1.1.48; 1.1.68;
Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.1.68.1 06-Apr-2015  skrll Sync with HEAD
 1.1.48.1 03-Dec-2017  jdolecek update from HEAD
 1.1.20.2 04-May-2009  yamt sync with head.
 1.1.20.1 29-Jul-2008  yamt file shlib_version was added on branch yamt-nfs-mp on 2009-05-04 08:14:26 +0000
 1.1.8.2 19-Oct-2008  haad Sync with HEAD.
 1.1.8.1 29-Jul-2008  haad file shlib_version was added on branch haad-dm on 2008-10-19 22:18:05 +0000
 1.1.6.2 28-Sep-2008  mjf Sync with HEAD.
 1.1.6.1 29-Jul-2008  mjf file shlib_version was added on branch mjf-devfs2 on 2008-09-28 10:41:02 +0000
 1.1.4.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.4.1 29-Jul-2008  wrstuden file shlib_version was added on branch wrstuden-revivesa on 2008-09-18 04:37:03 +0000
 1.1.2.2 31-Jul-2008  simonb Sync with head.
 1.1.2.1 29-Jul-2008  simonb file shlib_version was added on branch simonb-wapbl on 2008-07-31 04:51:04 +0000
 1.2 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.1 29-Mar-2010  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.24; 1.1.42;
Support fifofs in rump. Do not include it in rumpvfs directly,
since it involves some very non-fs'y components like sockets and
local domain networking. Also (for better or worse?), call it
rump*v*fs_fifofs instead of rumpfs_fifofs, since it does not really
provide a file system driver.

XXX: uses duplicate common symbols and functionality depends on
link order ... (but at least it works better than before this change)
 1.1.42.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.1.24.1 03-Dec-2017  jdolecek update from HEAD
 1.1.6.2 11-Aug-2010  yamt sync with head.
 1.1.6.1 29-Mar-2010  yamt file Makefile was added on branch yamt-nfs-mp on 2010-08-11 22:55:03 +0000
 1.1.4.2 30-May-2010  rmind sync with head
 1.1.4.1 29-Mar-2010  rmind file Makefile was added on branch rmind-uvmplock on 2010-05-30 05:18:05 +0000
 1.1.2.2 30-Apr-2010  uebayasi Sync with HEAD.
 1.1.2.1 29-Mar-2010  uebayasi file Makefile was added on branch uebayasi-xip on 2010-04-30 14:44:27 +0000
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 29-Mar-2010  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.24; 1.1.42;
Support fifofs in rump. Do not include it in rumpvfs directly,
since it involves some very non-fs'y components like sockets and
local domain networking. Also (for better or worse?), call it
rump*v*fs_fifofs instead of rumpfs_fifofs, since it does not really
provide a file system driver.

XXX: uses duplicate common symbols and functionality depends on
link order ... (but at least it works better than before this change)
 1.1.42.1 06-Apr-2015  skrll Sync with HEAD
 1.1.24.1 03-Dec-2017  jdolecek update from HEAD
 1.1.6.2 11-Aug-2010  yamt sync with head.
 1.1.6.1 29-Mar-2010  yamt file shlib_version was added on branch yamt-nfs-mp on 2010-08-11 22:55:03 +0000
 1.1.4.2 30-May-2010  rmind sync with head
 1.1.4.1 29-Mar-2010  rmind file shlib_version was added on branch rmind-uvmplock on 2010-05-30 05:18:05 +0000
 1.1.2.2 30-Apr-2010  uebayasi Sync with HEAD.
 1.1.2.1 29-Mar-2010  uebayasi file shlib_version was added on branch uebayasi-xip on 2010-04-30 14:44:27 +0000
 1.5 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.4 10-Aug-2014  hannken branches: 1.4.4;
Change hfs from hashlist to vcache.
- use (cnid, fork) as key.
- use pool for hfs nodes.
 1.3 16-Feb-2010  pooka branches: 1.3.20;
Globally define -Wno-pointer-sign, as it has become a pointless
exercise of "add it to every Makefile individually".

XXX: should autosynchronize with the rest of the kernel buildflags
in sys/conf/Makefile.kern.inc.
 1.2 29-Jul-2008  pooka branches: 1.2.14;
Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.1 08-Aug-2007  pooka branches: 1.1.2; 1.1.4; 1.1.8; 1.1.14; 1.1.30; 1.1.34; 1.1.36; 1.1.38; 1.1.40;
Add hfs. Untested, as I couldn't find a hfs+ image for testing,
so one would be appreciated. At least it works enough to tell me
this:

hfs: Plain HFS volumes not currently supported
 1.1.40.1 19-Oct-2008  haad Sync with HEAD.
 1.1.38.1 31-Jul-2008  simonb Sync with head.
 1.1.36.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.34.2 11-Mar-2010  yamt sync with head
 1.1.34.1 04-May-2009  yamt sync with head.
 1.1.30.1 28-Sep-2008  mjf Sync with HEAD.
 1.1.14.2 02-Nov-2007  joerg Reduce diff to HEAD by adding files forgotten in early merges.
 1.1.14.1 08-Aug-2007  joerg file Makefile was added on branch jmcneill-pm on 2007-11-02 12:43:36 +0000
 1.1.8.2 03-Sep-2007  yamt sync with head.
 1.1.8.1 08-Aug-2007  yamt file Makefile was added on branch yamt-lazymbuf on 2007-09-03 14:45:06 +0000
 1.1.4.2 20-Aug-2007  ad Sync with HEAD.
 1.1.4.1 08-Aug-2007  ad file Makefile was added on branch vmlocking on 2007-08-20 22:07:19 +0000
 1.1.2.2 15-Aug-2007  skrll Sync with HEAD.
 1.1.2.1 08-Aug-2007  skrll file Makefile was added on branch nick-csl-alignment on 2007-08-15 13:50:23 +0000
 1.2.14.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.3.20.2 03-Dec-2017  jdolecek update from HEAD
 1.3.20.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.4.4.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 29-Jul-2008  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8; 1.1.20; 1.1.48; 1.1.68;
Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.1.68.1 06-Apr-2015  skrll Sync with HEAD
 1.1.48.1 03-Dec-2017  jdolecek update from HEAD
 1.1.20.2 04-May-2009  yamt sync with head.
 1.1.20.1 29-Jul-2008  yamt file shlib_version was added on branch yamt-nfs-mp on 2009-05-04 08:14:26 +0000
 1.1.8.2 19-Oct-2008  haad Sync with HEAD.
 1.1.8.1 29-Jul-2008  haad file shlib_version was added on branch haad-dm on 2008-10-19 22:18:05 +0000
 1.1.6.2 28-Sep-2008  mjf Sync with HEAD.
 1.1.6.1 29-Jul-2008  mjf file shlib_version was added on branch mjf-devfs2 on 2008-09-28 10:41:02 +0000
 1.1.4.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.4.1 29-Jul-2008  wrstuden file shlib_version was added on branch wrstuden-revivesa on 2008-09-18 04:37:03 +0000
 1.1.2.2 31-Jul-2008  simonb Sync with head.
 1.1.2.1 29-Jul-2008  simonb file shlib_version was added on branch simonb-wapbl on 2008-07-31 04:51:04 +0000
 1.3 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.2 20-Jul-2014  hannken branches: 1.2.4;
Change kernfs from hashlist to vcache.
 1.1 31-Mar-2010  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.24; 1.1.38;
support kernfs
 1.1.38.1 10-Aug-2014  tls Rebase.
 1.1.24.2 03-Dec-2017  jdolecek update from HEAD
 1.1.24.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.6.2 11-Aug-2010  yamt sync with head.
 1.1.6.1 31-Mar-2010  yamt file Makefile was added on branch yamt-nfs-mp on 2010-08-11 22:55:03 +0000
 1.1.4.2 30-May-2010  rmind sync with head
 1.1.4.1 31-Mar-2010  rmind file Makefile was added on branch rmind-uvmplock on 2010-05-30 05:18:05 +0000
 1.1.2.2 30-Apr-2010  uebayasi Sync with HEAD.
 1.1.2.1 31-Mar-2010  uebayasi file Makefile was added on branch uebayasi-xip on 2010-04-30 14:44:27 +0000
 1.2.4.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 31-Mar-2010  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.24; 1.1.42;
support kernfs
 1.1.42.1 06-Apr-2015  skrll Sync with HEAD
 1.1.24.1 03-Dec-2017  jdolecek update from HEAD
 1.1.6.2 11-Aug-2010  yamt sync with head.
 1.1.6.1 31-Mar-2010  yamt file shlib_version was added on branch yamt-nfs-mp on 2010-08-11 22:55:03 +0000
 1.1.4.2 30-May-2010  rmind sync with head
 1.1.4.1 31-Mar-2010  rmind file shlib_version was added on branch rmind-uvmplock on 2010-05-30 05:18:05 +0000
 1.1.2.2 30-Apr-2010  uebayasi Sync with HEAD.
 1.1.2.1 31-Mar-2010  uebayasi file shlib_version was added on branch uebayasi-xip on 2010-04-30 14:44:27 +0000
 1.3 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.2 26-May-2011  joerg branches: 1.2.14; 1.2.32;
Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.
 1.1 29-Mar-2010  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8;
Support unionfs (and layervfs, which is required for unionfs).
 1.1.8.1 06-Jun-2011  jruoho Sync with HEAD.
 1.1.6.2 11-Aug-2010  yamt sync with head.
 1.1.6.1 29-Mar-2010  yamt file Makefile was added on branch yamt-nfs-mp on 2010-08-11 22:55:04 +0000
 1.1.4.3 31-May-2011  rmind sync with head
 1.1.4.2 30-May-2010  rmind sync with head
 1.1.4.1 29-Mar-2010  rmind file Makefile was added on branch rmind-uvmplock on 2010-05-30 05:18:05 +0000
 1.1.2.2 30-Apr-2010  uebayasi Sync with HEAD.
 1.1.2.1 29-Mar-2010  uebayasi file Makefile was added on branch uebayasi-xip on 2010-04-30 14:44:28 +0000
 1.2.32.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.2.14.1 03-Dec-2017  jdolecek update from HEAD
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 29-Mar-2010  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.24; 1.1.42;
Support unionfs (and layervfs, which is required for unionfs).
 1.1.42.1 06-Apr-2015  skrll Sync with HEAD
 1.1.24.1 03-Dec-2017  jdolecek update from HEAD
 1.1.6.2 11-Aug-2010  yamt sync with head.
 1.1.6.1 29-Mar-2010  yamt file shlib_version was added on branch yamt-nfs-mp on 2010-08-11 22:55:04 +0000
 1.1.4.2 30-May-2010  rmind sync with head
 1.1.4.1 29-Mar-2010  rmind file shlib_version was added on branch rmind-uvmplock on 2010-05-30 05:18:05 +0000
 1.1.2.2 30-Apr-2010  uebayasi Sync with HEAD.
 1.1.2.1 29-Mar-2010  uebayasi file shlib_version was added on branch uebayasi-xip on 2010-04-30 14:44:28 +0000
 1.18 07-Oct-2023  rin Drop -O[01] hacks for vax; no longer necessary for patched GCC 10

PR port-vax/57646: Import major vax toolchain fix by Kalvis Duckmanton

XXXRO: GCC 12 may require hacks for a while, but it turned out that
GCC 12 should be treated differently from older versions; a lot of new
files need -O[01] flags, while some may no longer require it.

I will take a look later.

Note that these hacks are not required if Kalvis's patches for GCC 12
are applied.

Keep doc/HACKS entries for a while (will be sync with update for GCC 12).

diff --git a/crypto/external/bsd/openssh/lib/Makefile b/crypto/external/bsd/openssh/lib/Makefile
index 96a93f5e396..4e38be1b642 100644
--- a/crypto/external/bsd/openssh/lib/Makefile
+++ b/crypto/external/bsd/openssh/lib/Makefile
@@ -117,12 +117,6 @@ COPTS.${f}.c+= -Wno-pointer-sign
# XXX
COPTS.channels.c+= -fno-strict-aliasing

-# XXX
-.if ${MACHINE} == "vax"
-COPTS.poly1305.c+= -O0
-COPTS.umac.c+= -O0
-.endif
-
COPTS.hostfile.c+= ${CC_WNO_FORMAT_TRUNCATION}
COPTS.sshkey.c+= ${CC_WNO_FORMAT_TRUNCATION}
COPTS.cipher.c+= -Wno-error=deprecated-declarations
diff --git a/distrib/utils/x_ping/Makefile b/distrib/utils/x_ping/Makefile
index f1c452a0d60..8ee77580a3f 100644
--- a/distrib/utils/x_ping/Makefile
+++ b/distrib/utils/x_ping/Makefile
@@ -12,10 +12,6 @@ CPPFLAGS+= -I${SRCDIR} -DCRUNCHOPS
DPADD= ${LIBM}
LDADD= -lm

-.if ${MACHINE_ARCH} == "vax"
-COPTS.ping.c=-O0
-.endif
-
.include <bsd.prog.mk>

.PATH: ${SRCDIR}
diff --git a/external/apache2/argon2/lib/libargon2/Makefile.inc b/external/apache2/argon2/lib/libargon2/Makefile.inc
index d3f4470c6c7..6a1dd146d7d 100644
--- a/external/apache2/argon2/lib/libargon2/Makefile.inc
+++ b/external/apache2/argon2/lib/libargon2/Makefile.inc
@@ -16,7 +16,3 @@ CFLAGS+= -pthread
LDADD+=-lpthread
DPADD+=${LIBPTHREAD}
.endif
-
-.if ${MACHINE} == "vax"
-COPTS.blake2b.c+= -O0
-.endif
diff --git a/external/bsd/jemalloc/lib/Makefile.inc b/external/bsd/jemalloc/lib/Makefile.inc
index 2f524358f46..d5da774f293 100644
--- a/external/bsd/jemalloc/lib/Makefile.inc
+++ b/external/bsd/jemalloc/lib/Makefile.inc
@@ -53,12 +53,6 @@ COPTS.ctl.c+=-Wno-error=stack-protector
COPTS.stats.c+=-Wno-error=stack-protector
COPTS.tcache.c+=-Wno-error=stack-protector

-.if ${MACHINE_ARCH} == "vax"
-# in merge_overlapping_regs, at regrename.c
-COPTS.arena.c+=-O0
-COPTS.extent.c+=-O0
-.endif
-
SRCS+=${JEMALLOC_SRCS}

jemalloc.d jemalloc.pico jemalloc.o jemalloc.ln jemalloc.po jemalloc.go: \
diff --git a/external/bsd/mdocml/lib/libmandoc/Makefile b/external/bsd/mdocml/lib/libmandoc/Makefile
index 40d7e29ae88..dfd3077a2c7 100644
--- a/external/bsd/mdocml/lib/libmandoc/Makefile
+++ b/external/bsd/mdocml/lib/libmandoc/Makefile
@@ -39,11 +39,6 @@ tbl_opts.c

MAN= mandoc.3

-# XXX
-.if ${MACHINE} == "vax"
-COPTS.mdoc_macro.c+=-O0
-.endif
-
COPTS.man_validate.c+=-Wno-error=array-bounds

.include <bsd.lib.mk>
diff --git a/external/gpl3/binutils.old/lib/libbfd/Makefile b/external/gpl3/binutils.old/lib/libbfd/Makefile
index 03477232b55..74a354532fa 100644
--- a/external/gpl3/binutils.old/lib/libbfd/Makefile
+++ b/external/gpl3/binutils.old/lib/libbfd/Makefile
@@ -41,10 +41,6 @@ CPPFLAGS+= -I${.CURDIR}/arch/${BFD_MACHINE_ARCH} -I${DIST}/include -I. \
-DDEBUGDIR=\"${DEBUGDIR}\" -DLIBDIR=\"${LIBDIR}\" \
-DBINDIR=\"${BINDIR}\"

-.if (${BFD_MACHINE_ARCH} == "vax")
-CPPFLAGS.elf.c += -O0
-.endif
-
COPTS.pei-x86_64.c+= -Wno-stack-protector
COPTS.elfxx-mips.c+= -Wno-stack-protector
COPTS.elf.c+= ${${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} >= 10:? -Wno-overflow :}
diff --git a/external/gpl3/binutils/lib/libbfd/Makefile b/external/gpl3/binutils/lib/libbfd/Makefile
index 00cb2b20081..a3f0c25fd35 100644
--- a/external/gpl3/binutils/lib/libbfd/Makefile
+++ b/external/gpl3/binutils/lib/libbfd/Makefile
@@ -41,10 +41,6 @@ CPPFLAGS+= -I${.CURDIR}/arch/${BFD_MACHINE_ARCH} -I${DIST}/include -I. \
-DDEBUGDIR=\"${DEBUGDIR}\" -DLIBDIR=\"${LIBDIR}\" \
-DBINDIR=\"${BINDIR}\"

-.if (${BFD_MACHINE_ARCH} == "vax")
-CPPFLAGS.elf.c += -O0
-.endif
-
COPTS.pei-x86_64.c+= -Wno-stack-protector
COPTS.elfxx-mips.c+= -Wno-stack-protector
COPTS.elf.c+= ${${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} >= 10:? -Wno-overflow :}
diff --git a/external/gpl3/gcc.old/lib/Makefile.sanitizer b/external/gpl3/gcc.old/lib/Makefile.sanitizer
index efd36ae4bee..5173a5109a0 100644
--- a/external/gpl3/gcc.old/lib/Makefile.sanitizer
+++ b/external/gpl3/gcc.old/lib/Makefile.sanitizer
@@ -88,22 +88,3 @@ COPTS+=-fno-builtin -fno-exceptions -fno-rtti -funwind-tables

# Can't profile without it`
#-fomit-frame-pointer
-
-.if ${MACHINE_ARCH} == "vax"
-COPTS.sanitizer_allocator.cc += -O1
-COPTS.sanitizer_common.cc += -O1
-COPTS.sanitizer_common_libcdep.cc += -O1
-COPTS.sanitizer_coverage_libcdep.cc += -O1
-COPTS.sanitizer_coverage_mapping_libcdep.cc += -O1
-COPTS.sanitizer_deadlock_detector1.cc += -O1
-COPTS.sanitizer_mac.cc += -O1
-COPTS.sanitizer_netbsd.cc += -O1
-COPTS.sanitizer_posix.cc += -O1
-COPTS.sanitizer_printf.cc += -O1
-COPTS.sanitizer_procmaps_common.cc += -O1
-COPTS.sanitizer_stackdepot.cc += -O1
-COPTS.sanitizer_symbolizer_libcdep.cc += -O1
-COPTS.sanitizer_symbolizer_report.cc += -O1
-COPTS.ubsan_diag.cc += -O1
-COPTS.ubsan_init.cc += -O1
-.endif
diff --git a/external/gpl3/gcc.old/lib/libasan/Makefile b/external/gpl3/gcc.old/lib/libasan/Makefile
index 1e6f9608abe..3da7bbf2f58 100644
--- a/external/gpl3/gcc.old/lib/libasan/Makefile
+++ b/external/gpl3/gcc.old/lib/libasan/Makefile
@@ -49,14 +49,6 @@ LIBDPLIBS+= m ${NETBSDSRCDIR}/lib/libm
LIBDPLIBS+= pthread ${NETBSDSRCDIR}/lib/libpthread
CPPFLAGS+=-DCAN_SANITIZE_UB=0

-.if ${MACHINE_ARCH} == "vax"
-COPTS.asan_allocator.cc += -O1
-COPTS.asan_report.cc += -O1
-COPTS.sanitizer_file.cc += -O1
-COPTS.ubsan_diag.cc += -O1
-COPTS.ubsan_init.cc += -O1
-.endif
-
.if ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb"
COPTS.asan_interceptors.cc += -O1
.endif
diff --git a/external/gpl3/gcc.old/lib/liblsan/Makefile b/external/gpl3/gcc.old/lib/liblsan/Makefile
index 4578544a9a8..ddb7981077c 100644
--- a/external/gpl3/gcc.old/lib/liblsan/Makefile
+++ b/external/gpl3/gcc.old/lib/liblsan/Makefile
@@ -16,11 +16,6 @@ LSAN_SRCS+= \
lsan_linux.cc \
lsan_thread.cc

-.if ${MACHINE_ARCH} == "vax"
-COPTS.lsan_allocator.cc += -O1
-COPTS.sanitizer_file.cc += -O1
-.endif
-
LIB= lsan
SRCS+= ${LSAN_SRCS}
LIBDPLIBS+= m ${NETBSDSRCDIR}/lib/libm
diff --git a/external/gpl3/gcc.old/lib/libubsan/Makefile b/external/gpl3/gcc.old/lib/libubsan/Makefile
index 2e2faca7b1c..9de82550d14 100644
--- a/external/gpl3/gcc.old/lib/libubsan/Makefile
+++ b/external/gpl3/gcc.old/lib/libubsan/Makefile
@@ -26,10 +26,6 @@ UBSAN_SRCS= \
COPTS.${_s}.cc+=-frtti
.endfor

-.if ${MACHINE_ARCH} == "vax"
-COPTS.sanitizer_file.cc += -O1
-.endif
-
LIB= ubsan
SRCS+= ${UBSAN_SRCS}
LIBDPLIBS+= m ${NETBSDSRCDIR}/lib/libm
diff --git a/external/gpl3/gcc.old/usr.bin/cc1/Makefile b/external/gpl3/gcc.old/usr.bin/cc1/Makefile
index c55e292ee8e..ff12a5be524 100644
--- a/external/gpl3/gcc.old/usr.bin/cc1/Makefile
+++ b/external/gpl3/gcc.old/usr.bin/cc1/Makefile
@@ -46,17 +46,6 @@ CPPFLAGS.default-c.c+= -I${BACKENDOBJ}
BUILDSYMLINKS+= ${GNUHOSTDIST}/gcc/config/sh/sh-c.cc sh-c.c
.endif

-.if ${MACHINE_CPU} == "vax"
-COPTS.c-decl.c+=-O0
-COPTS.c-typeck.c+=-O0
-COPTS.c-array-notation.c+=-O0
-COPTS.c-common.c+=-O0
-COPTS.c-ada-spec.c+=-O0
-COPTS.cilk.c+=-O0
-COPTS.c-ubsan.c+=-O0
-COPTS.cc1-checksum.c+=-O0
-.endif
-
.if ${MACHINE_ARCH} == "mipseb" || ${MACHINE_ARCH} == "mipsel"
COPTS.c-common.c+=-O3
.endif
diff --git a/external/gpl3/gcc.old/usr.bin/cc1obj/Makefile b/external/gpl3/gcc.old/usr.bin/cc1obj/Makefile
index 3123ee0d60b..aab82ad3448 100644
--- a/external/gpl3/gcc.old/usr.bin/cc1obj/Makefile
+++ b/external/gpl3/gcc.old/usr.bin/cc1obj/Makefile
@@ -44,16 +44,8 @@ COPTS.objc-act.c+= -Wno-stack-protector
COPTS.objc-gnu-runtime-abi-01.c+= -Wno-stack-protector
COPTS.objc-next-runtime-abi-01.c+= -Wno-stack-protector

-.if ${MACHINE_ARCH} == "vax"
-COPTS.c-decl.c+=-O0
-COPTS.c-typeck.c+=-O0
-COPTS.c-array-notation.c+=-O0
-COPTS.c-common.c+=-O0
-COPTS.c-ada-spec.c+=-O0
-COPTS.cilk.c+=-O0
-COPTS.c-ubsan.c+=-O0
-COPTS.cc1obj-checksum.c+=-O0
-.endif
+COPTS.c-cppbuiltin.c+= ${${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} == 8:? -Wno-error=format-overflow :}
+COPTS.c-typeck.c+= ${${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} == 8:? -Wno-error=format-overflow :}

.if ${MACHINE_ARCH} == "mipseb" || ${MACHINE_ARCH} == "mipsel"
COPTS.c-common.c+=-O3
diff --git a/external/gpl3/gcc.old/usr.bin/cc1objplus/Makefile b/external/gpl3/gcc.old/usr.bin/cc1objplus/Makefile
index b9c108251c5..e04e8fc7f53 100644
--- a/external/gpl3/gcc.old/usr.bin/cc1objplus/Makefile
+++ b/external/gpl3/gcc.old/usr.bin/cc1objplus/Makefile
@@ -69,18 +69,6 @@ COPTS.objc-act.c+= -Wno-stack-protector
COPTS.objc-gnu-runtime-abi-01.c+= -Wno-stack-protector
COPTS.objc-next-runtime-abi-01.c+= -Wno-stack-protector

-.if ${MACHINE_ARCH} == "vax"
-COPTS.c-decl.c+=-O0
-COPTS.c-typeck.c+=-O0
-COPTS.c-array-notation.c+=-O0
-COPTS.c-common.c+=-O0
-COPTS.c-ada-spec.c+=-O0
-COPTS.cilk.c+=-O0
-COPTS.c-ubsan.c+=-O0
-COPTS.cc1obj-checksum.c+=-O0
-COPTS.decl.c+=-O0
-.endif
-
.if ${MACHINE_ARCH} == "mipseb" || ${MACHINE_ARCH} == "mipsel"
COPTS.c-common.c+=-O3
.endif
diff --git a/external/gpl3/gcc.old/usr.bin/cc1plus/Makefile b/external/gpl3/gcc.old/usr.bin/cc1plus/Makefile
index 7936efd3a5e..7c54559e21a 100644
--- a/external/gpl3/gcc.old/usr.bin/cc1plus/Makefile
+++ b/external/gpl3/gcc.old/usr.bin/cc1plus/Makefile
@@ -31,23 +31,6 @@ CHECKSUM_OBJS= ${LIBBACKTRACEOBJ}/libbacktrace.a \

CFLAGS+= -Wno-error=stack-protector

-.if ${MACHINE_ARCH} == "vax"
-COPTS.call.c+=-O0
-COPTS.decl.c+=-O0
-COPTS.typeck2.c+=-O0
-COPTS.class.c+=-O0
-COPTS.typeck.c+=-O0
-COPTS.init.c+=-O0
-COPTS.semantics.c+=-O0
-COPTS.mangle.c+=-O0
-COPTS.constexpr.c+=-O0
-COPTS.c-common.c+=-O0
-COPTS.c-ada-spec.c+=-O0
-COPTS.cilk.c+=-O0
-COPTS.c-ubsan.c+=-O0
-COPTS.cc1plus-checksum.c+=-O0
-.endif
-
.if ${MACHINE_ARCH} == "mipseb" || ${MACHINE_ARCH} == "mipsel"
COPTS.c-common.c+=-O3
.endif
diff --git a/external/gpl3/gcc.old/usr.bin/gcc/Makefile b/external/gpl3/gcc.old/usr.bin/gcc/Makefile
index 7a66d77ffc7..a5a4b1c3adf 100644
--- a/external/gpl3/gcc.old/usr.bin/gcc/Makefile
+++ b/external/gpl3/gcc.old/usr.bin/gcc/Makefile
@@ -25,9 +25,6 @@ ${SRCS}: ${GCCARCH}/defs.mk
.include <bsd.info.mk>

COPTS.gcc.c= -Wno-stack-protector
-.if ${MACHINE_ARCH} == "vax"
-COPTS.dse.c= -O1
-.endif

.PATH: ${DIST}/gcc ${DIST}/gcc/doc ${DIST}/gcc/c

diff --git a/external/gpl3/gcc.old/usr.bin/libdecnumber/Makefile b/external/gpl3/gcc.old/usr.bin/libdecnumber/Makefile
index 751d1513eec..33aeb1c9898 100644
--- a/external/gpl3/gcc.old/usr.bin/libdecnumber/Makefile
+++ b/external/gpl3/gcc.old/usr.bin/libdecnumber/Makefile
@@ -14,10 +14,6 @@ SRCS= decNumber.c decContext.c decimal32.c decimal64.c decimal128.c
CPPFLAGS+= -I${.CURDIR}/arch/${GCC_MACHINE_ARCH} -I${DIST}/libdecnumber
CPPFLAGS+= -I${DIST}/libgcc

-.if ${MACHINE_ARCH} == "vax"
-COPTS.decNumber.c=-O0
-.endif
-
.include <bsd.lib.mk>

# Force using C++ for this
diff --git a/external/gpl3/gcc.old/usr.bin/lto-dump/Makefile b/external/gpl3/gcc.old/usr.bin/lto-dump/Makefile
index 90f44a9fcf6..fd251464fb7 100644
--- a/external/gpl3/gcc.old/usr.bin/lto-dump/Makefile
+++ b/external/gpl3/gcc.old/usr.bin/lto-dump/Makefile
@@ -24,11 +24,6 @@ COPTS.lto-common.c+= -Wno-stack-protector
.include "../Makefile.backtrace"
.include "../Makefile.libdecnumber"

-.if ${MACHINE_ARCH} == "vax"
-COPTS.lto-lang.c+=-O0
-COPTS.lto-symtab.c+=-O0
-.endif
-
LDADD+= ${LIBIBERTY} ${LIBMPC} ${LIBMPFR} ${LIBGMP} -lintl -lz -lm
DPADD+= ${LIBIBERTY} ${LIBMPC} ${LIBMPFR} ${LIBGMP} ${LIBINTL} ${LIBZ} ${LIBM}

diff --git a/external/gpl3/gcc.old/usr.bin/lto1/Makefile b/external/gpl3/gcc.old/usr.bin/lto1/Makefile
index 4c49161a64c..340d3c6124f 100644
--- a/external/gpl3/gcc.old/usr.bin/lto1/Makefile
+++ b/external/gpl3/gcc.old/usr.bin/lto1/Makefile
@@ -21,11 +21,6 @@ COPTS.lto-common.c+= -Wno-stack-protector
.include "../Makefile.libcpp"
.include "../Makefile.libdecnumber"

-.if ${MACHINE_ARCH} == "vax"
-COPTS.lto-lang.c+=-O0
-COPTS.lto-symtab.c+=-O0
-.endif
-
LDADD+= ${LIBIBERTYOBJ}/libiberty.a
DPADD+= ${LIBIBERTYOBJ}/libiberty.a
LDADD+= ${LIBIBERTY} ${LIBMPC} ${LIBMPFR} ${LIBGMP} -lintl -lz -lm
diff --git a/external/gpl3/gdb.old/lib/libdecnumber/Makefile b/external/gpl3/gdb.old/lib/libdecnumber/Makefile
index bcd4ae5b222..ce28811526b 100644
--- a/external/gpl3/gdb.old/lib/libdecnumber/Makefile
+++ b/external/gpl3/gdb.old/lib/libdecnumber/Makefile
@@ -18,10 +18,6 @@ CPPFLAGS+= -I${.CURDIR}/arch/${GDB_MACHINE_ARCH} \

SRCS= ${G_OBJS:.o=.c} ${G_SOURCES}

-.if ${MACHINE_ARCH} == "vax"
-COPTS.decNumber.c=-O0
-.endif
-
.PATH: ${DIST}/libdecnumber ${DIST}/libdecnumber/dpd

.include <bsd.lib.mk>
diff --git a/external/gpl3/gdb/lib/libdecnumber/Makefile b/external/gpl3/gdb/lib/libdecnumber/Makefile
index c95d36e3dfa..e3169865304 100644
--- a/external/gpl3/gdb/lib/libdecnumber/Makefile
+++ b/external/gpl3/gdb/lib/libdecnumber/Makefile
@@ -18,10 +18,6 @@ CPPFLAGS+= -I${.CURDIR}/arch/${GDB_MACHINE_ARCH} \

SRCS= ${G_OBJS:.o=.c} ${G_SOURCES}

-.if ${MACHINE_ARCH} == "vax"
-COPTS.decNumber.c=-O0
-.endif
-
.PATH: ${DIST}/libdecnumber ${DIST}/libdecnumber/dpd ${DIST}/libdecnumber/bid

.include <bsd.lib.mk>
diff --git a/external/gpl3/gdb/lib/libgdb/Makefile b/external/gpl3/gdb/lib/libgdb/Makefile
index b87a515d13a..c118c363975 100644
--- a/external/gpl3/gdb/lib/libgdb/Makefile
+++ b/external/gpl3/gdb/lib/libgdb/Makefile
@@ -66,12 +66,6 @@ CFLAGS:= ${CXXFLAGS} -std=gnu++17 -Wno-error=stack-protector

ada-exp.c: ada-lex.c

-.if ${MACHINE} == "vax"
-. if ${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} >= 8
-COPTS.read.c+= -O0
-. endif
-.endif
-
# These are generated by implicit rules and are not easy to generate
CLEANDIRFILES+= \
ada-exp.c ada-lex.c \
diff --git a/external/mit/xorg/lib/gallium.old/Makefile b/external/mit/xorg/lib/gallium.old/Makefile
index 55b2fe3d1c1..bfa40c8974f 100644
--- a/external/mit/xorg/lib/gallium.old/Makefile
+++ b/external/mit/xorg/lib/gallium.old/Makefile
@@ -1211,10 +1211,6 @@ SYMLINKS+= gallium_dri.so.${SHLIB_MAJOR}.debug ${DRIDEBUGDIR}/${_d}_dri.so.${SHL
COPTS+= ${${ACTIVE_CC} == "clang":? -Wa,-Av8plus :}
.endif

-.if ${MACHINE_ARCH} == "vax"
-COPTS.nir.c += -O1
-.endif
-
# XXXGCC12
.if ${MACHINE_ARCH} == "m68k"
COPTS.st_glsl_to_tgsi.cpp += -O1
diff --git a/external/mit/xorg/lib/gallium/Makefile b/external/mit/xorg/lib/gallium/Makefile
index 6778a8c11c8..9f1422080fe 100644
--- a/external/mit/xorg/lib/gallium/Makefile
+++ b/external/mit/xorg/lib/gallium/Makefile
@@ -1428,10 +1428,6 @@ SYMLINKS+= gallium_dri.so.${SHLIB_MAJOR}.debug ${DRIDEBUGDIR}/${_d}_dri.so.${SHL
COPTS+= ${${ACTIVE_CC} == "clang":? -Wa,-Av8plus :}
.endif

-.if ${MACHINE_ARCH} == "vax"
-COPTS.nir.c += -O1
-.endif
-
COPTS.u_atomic.c+= ${${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} >= 10:? -Wno-builtin-declaration-mismatch :}

.include <bsd.lib.mk>
diff --git a/external/mit/xorg/lib/libX11/Makefile.libx11 b/external/mit/xorg/lib/libX11/Makefile.libx11
index e103d9ace12..0e55c2a4732 100644
--- a/external/mit/xorg/lib/libX11/Makefile.libx11
+++ b/external/mit/xorg/lib/libX11/Makefile.libx11
@@ -471,11 +471,6 @@ COPTS.OpenDis.c+= -Wno-error # XXX xf86bigfstr.h
COPTS.XlibInt.c+= -Wno-error # XXX xcmiscstr.h
COPTS.XKBBind.c+= -Wno-deprecated-declarations # uses XKeycodeToKeysym

-# XXX
-.if ${MACHINE} == "vax"
-COPTS.lcWrap.c+= -O0
-.endif
-
CWARNFLAGS.clang+= -Wno-string-plus-int

.include "${NETBSDSRCDIR}/external/mit/xorg/tools/makekeys/Makefile.makekeys"
diff --git a/games/gomoku/Makefile b/games/gomoku/Makefile
index e86a63aaea7..678537066ed 100644
--- a/games/gomoku/Makefile
+++ b/games/gomoku/Makefile
@@ -9,10 +9,6 @@ LDADD= -lcurses -lterminfo
HIDEGAME=hidegame
CPPFLAGS+= ${DEBUG:D-DDEBUG}

-.if ${MACHINE} == "vax"
-COPTS.pickmove.c += -O0
-.endif
-
#WARNS= 6 # would produce warnings about small integer types
LINTFLAGS+= -w # treat warnings as errors
LINTFLAGS+= -T # strict bool mode
diff --git a/games/phantasia/Makefile b/games/phantasia/Makefile
index e9c53f23ae5..b919dac17c6 100644
--- a/games/phantasia/Makefile
+++ b/games/phantasia/Makefile
@@ -52,7 +52,3 @@ map: map.c
./map | plot > /dev/tty

.include <bsd.prog.mk>
-
-.if defined(HAVE_GCC) && ${MACHINE_ARCH} == "vax"
-COPTS.misc.c+= -O0
-.endif
diff --git a/lib/i18n_module/UTF7/Makefile b/lib/i18n_module/UTF7/Makefile
index 712c1515d42..7136f7f0cc3 100644
--- a/lib/i18n_module/UTF7/Makefile
+++ b/lib/i18n_module/UTF7/Makefile
@@ -3,6 +3,3 @@
SRCPRE=citrus_
.include <bsd.lib.mk>

-.if ${MACHINE_ARCH} == "vax" && defined(HAVE_GCC)
-COPTS.citrus_utf7.c+= -O0
-.endif
diff --git a/lib/libbz2/Makefile b/lib/libbz2/Makefile
index b2aea1e04b0..e60a2862d48 100644
--- a/lib/libbz2/Makefile
+++ b/lib/libbz2/Makefile
@@ -15,11 +15,6 @@ SRCS= blocksort.c huffman.c crctable.c randtable.c compress.c \
INCS= bzlib.h
INCSDIR= /usr/include

-# XXX huffman.c gets mis-compiled with 2.95.3
-.if ${MACHINE_ARCH} == "vax"
-COPTS+= -O0
-.endif
-
COPTS+= ${CC_WNO_IMPLICIT_FALLTHROUGH}

# XXX blocksort.c gets mis-compiled with 4.1
diff --git a/lib/libc/gdtoa/Makefile.inc b/lib/libc/gdtoa/Makefile.inc
index 132686fc33d..609da919803 100644
--- a/lib/libc/gdtoa/Makefile.inc
+++ b/lib/libc/gdtoa/Makefile.inc
@@ -44,10 +44,3 @@ SRCS+= dmisc.c \
.if ${MACHINE_ARCH} != "vax"
SRCS+= strtord.c
.endif
-
-# XXX revisit with newer GCC.
-# Ensure numbers like 0xffff319f5fa95963 print correctly
-# ("999999999999999.98", not garbage like "?A>C>@>C:BA;A><.:<")
-.if ${MACHINE_ARCH} == "vax" && defined(HAVE_GCC)
-COPTS.misc.c+= -O0
-.endif
diff --git a/lib/libcrypt/Makefile b/lib/libcrypt/Makefile
index cb3f89d6d09..e9c8be820da 100644
--- a/lib/libcrypt/Makefile
+++ b/lib/libcrypt/Makefile
@@ -30,9 +30,6 @@ SRCS+= crypt-argon2.c
SRCS+= ${src}
COPTS.${src}+= -fvisibility=hidden
. endfor
-. if ${MACHINE} == "vax"
-COPTS.blake2b.c+= -O0
-. endif
.endif

WARNS?= 5
diff --git a/libexec/ld.elf_so/Makefile b/libexec/ld.elf_so/Makefile
index f5baae1e883..24f7e1121e5 100644
--- a/libexec/ld.elf_so/Makefile
+++ b/libexec/ld.elf_so/Makefile
@@ -141,10 +141,6 @@ CPPFLAGS+= -DRTLD_DEFAULT_LIBRARY_PATH=\"${SHLIBDIR}:${LIBDIR}\"
COPTS.rtld.c+= -Wno-stack-protector
COPTS.symbol.c+=-Wno-stack-protector

-.if ${MACHINE_CPU} == "vax"
-COPTS.rtld.c+= -O0
-.endif
-
LDADD+= -Wl,--version-script=${.CURDIR}/symbols.map
LDADD+= -L${CLIBOBJ} -L${DESTDIR}${LIBDIR}
.if ${MKPICLIB} != "no"
diff --git a/sbin/fsck_ffs/Makefile.common b/sbin/fsck_ffs/Makefile.common
index 765638b2801..824e3bf2628 100644
--- a/sbin/fsck_ffs/Makefile.common
+++ b/sbin/fsck_ffs/Makefile.common
@@ -36,7 +36,3 @@ COPTS.ffs_appleufs.c+= -Wno-pointer-sign
.if ${MACHINE_ARCH} == "m68000"
COPTS.pass1.c+= -fno-tree-fre -fno-tree-lrs
.endif
-.if ${MACHINE_ARCH} == "vax"
-COPTS.pass1.c+= -O0
-COPTS.inode.c+= -O0
-.endif
diff --git a/sbin/fsdb/Makefile b/sbin/fsdb/Makefile
index c039f73a1eb..3b0331e5880 100644
--- a/sbin/fsdb/Makefile
+++ b/sbin/fsdb/Makefile
@@ -39,12 +39,6 @@ COPTS.${f}.c+= -Wno-pointer-sign
COPTS.pass1.c+= -fno-tree-fre -fno-tree-lrs
.endif

-.if ${MACHINE_ARCH} == "vax"
-COPTS.pass1.c+= -O0
-COPTS.inode.c+= -O0
-COPTS.fsdb.c+= -O0
-.endif
-
CWARNFLAGS.gcc+= ${CC_WNO_ADDRESS_OF_PACKED_MEMBER}

.include <bsd.prog.mk>
diff --git a/sbin/newfs_ext2fs/Makefile b/sbin/newfs_ext2fs/Makefile
index 40a44b9a038..ecfdbff4d3a 100644
--- a/sbin/newfs_ext2fs/Makefile
+++ b/sbin/newfs_ext2fs/Makefile
@@ -20,8 +20,4 @@ DPADD+=${LIBPROP}

.PATH: ${NETBSDSRCDIR}/sys/ufs/ext2fs ${FSCK}

-.if ${MACHINE_ARCH} == "vax"
-COPTS.mke2fs.c=-O0
-.endif
-
.include <bsd.prog.mk>
diff --git a/sbin/ping/Makefile b/sbin/ping/Makefile
index 4f33501ea7a..1f7f56e3ea5 100644
--- a/sbin/ping/Makefile
+++ b/sbin/ping/Makefile
@@ -12,8 +12,4 @@ CPPFLAGS+= -DIPSEC
LDADD+= -lipsec
DPADD+= ${LIBIPSEC}

-.if ${MACHINE_ARCH} == "vax"
-COPTS.ping.c=-O0
-.endif
-
.include <bsd.prog.mk>
diff --git a/sys/arch/vax/conf/Makefile.vax b/sys/arch/vax/conf/Makefile.vax
index cf095d54a86..c483eaa644a 100644
--- a/sys/arch/vax/conf/Makefile.vax
+++ b/sys/arch/vax/conf/Makefile.vax
@@ -34,7 +34,6 @@ GENASSYM_CONF= ${VAX}/vax/genassym.cf
CPPFLAGS+= -D_VAX_INLINE_
AFLAGS+= -x assembler-with-cpp -fno-pic
CFLAGS+= -fno-pic
-COPTS.wsmux.c+= ${${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} >= 9:? -O1 :}


##
diff --git a/sys/lib/libsa/Makefile b/sys/lib/libsa/Makefile
index 718c97ce857..4ef3840c753 100644
--- a/sys/lib/libsa/Makefile
+++ b/sys/lib/libsa/Makefile
@@ -96,7 +96,3 @@ SRCS+= ufs.c
lib${LIB}.o:: ${OBJS:O} __buildstdlib

CPPFLAGS+= -Wno-pointer-sign
-
-.if defined(HAVE_GCC) && ${MACHINE_ARCH} == "vax"
-COPTS.bootp.c+= -O0
-.endif
diff --git a/sys/lib/libz/Makefile b/sys/lib/libz/Makefile
index 6945c0da6c6..61fb7d4f652 100644
--- a/sys/lib/libz/Makefile
+++ b/sys/lib/libz/Makefile
@@ -25,7 +25,3 @@ CLEANFILES+= lib${LIB}.o
.include <bsd.lib.mk>

lib${LIB}.o:: ${OBJS:O} __buildstdlib
-
-.if defined(HAVE_GCC) && ${MACHINE_ARCH} == "vax"
-COPTS.inftrees.c+= -O0
-.endif
diff --git a/sys/modules/lfs/Makefile b/sys/modules/lfs/Makefile
index 962538821a5..ea8f187e160 100644
--- a/sys/modules/lfs/Makefile
+++ b/sys/modules/lfs/Makefile
@@ -18,9 +18,4 @@ SRCS+= ulfs_bmap.c ulfs_dirhash.c ulfs_inode.c ulfs_lookup.c \

WARNS= 3

-.if ${MACHINE} == "vax"
-# GCC 6.5 and 7.4 cannot compile this with -DDIAGNOSTIC and -O2/-O1
-COPTS.lfs_inode.c+= -O0
-.endif
-
.include <bsd.kmodule.mk>
diff --git a/sys/rump/fs/lib/liblfs/Makefile b/sys/rump/fs/lib/liblfs/Makefile
index abade3767d9..68b74c62502 100644
--- a/sys/rump/fs/lib/liblfs/Makefile
+++ b/sys/rump/fs/lib/liblfs/Makefile
@@ -17,9 +17,6 @@ SRCS+= ulfs_bmap.c ulfs_dirhash.c ulfs_extattr.c \


CFLAGS+= -DLFS_KERNEL_RFW
-.if ${MACHINE_ARCH} == "vax"
-COPTS.lfs_inode.c+=-O0
-.endif

.include <bsd.lib.mk>
.include <bsd.klinks.mk>
diff --git a/usr.sbin/mtrace/Makefile b/usr.sbin/mtrace/Makefile
index aef09db6198..9c125c15265 100644
--- a/usr.sbin/mtrace/Makefile
+++ b/usr.sbin/mtrace/Makefile
@@ -12,10 +12,6 @@ PROG= mtrace
SRCS= igmp.c inet.c kern.c mtrace.c
MAN= mtrace.8

-.if ${MACHINE_ARCH} == "vax"
-COPTS.mtrace.c=-O0
-.endif
-
BINMODE=4555
BINOWN= root

diff --git a/external/gpl3/gcc.old/usr.bin/backend/Makefile b/external/gpl3/gcc.old/usr.bin/backend/Makefile
index d69a26fe619..99e881c783d 100644
--- a/external/gpl3/gcc.old/usr.bin/backend/Makefile
+++ b/external/gpl3/gcc.old/usr.bin/backend/Makefile
@@ -533,68 +533,9 @@ COPTS.insn-recog.c+=-Wno-error

.if ${GCC_MACHINE_ARCH} == "vax"
CPPFLAGS+=-I${.CURDIR}/../../lib/libgcc/libgcov/arch/${GCC_MACHINE_ARCH}
-COPTS.builtins.c+=-O0
-COPTS.calls.c+=-O0
-COPTS.convert.c+=-O0
-COPTS.data-streamer-out.c+=-O0
-COPTS.dse.c+=-O0 # XXX port-vax/51967
-COPTS.dwarf2out.c+=-O0
-COPTS.expmed.c+=-O0
-COPTS.expr.c+=-O0 -Wno-error=tautological-compare
-COPTS.fixed-value.c+=-O0
-COPTS.fold-const.c+=-O0
-COPTS.generic-match.c+=-O0
-COPTS.gimple-fold.c+=-O0
-COPTS.gimple-match.c+=-O0
-COPTS.gimple-ssa-strength-reduction.c+=-O0
-COPTS.gimple-ssa-warn-restrict.c+=-O0
-COPTS.gimple.c+=-O0
-COPTS.internal-fn.c+=-O0
-COPTS.lto-streamer-out.c+=-O0
-COPTS.omp-low.c+=-O0
-COPTS.predict.c+=-O0
-COPTS.range-op.cc+=-O0
-COPTS.recog.c+=-O0
-COPTS.sanopt.c+=-O0
-COPTS.stmt.c+=-O0
-COPTS.stor-layout.c+=-O0
-COPTS.targhooks.c+=-O0
-COPTS.tree-affine.c+=-O0
-COPTS.tree-cfg.c+=-O0
-COPTS.tree-data-ref.c+=-O0
-COPTS.tree-eh.c+=-O0
-COPTS.tree-if-conv.c+=-O0
-COPTS.tree-object-size.c+=-O0
-COPTS.tree-parloops.c+=-O0
-COPTS.tree-predcom.c+=-O0
-COPTS.tree-pretty-print.c+=-O0
-COPTS.tree-ssa-alias.c+=-O0
-COPTS.tree-ssa-ccp.c+=-O0
-COPTS.tree-ssa-forwprop.c+=-O0
-COPTS.tree-ssa-loop-ivopts.c+=-O0
-COPTS.tree-ssa-loop-manip.c+=-O0
-COPTS.tree-ssa-loop-niter.c+=-O0
-COPTS.tree-ssa-math-opts.c+=-O0
-COPTS.tree-ssa-phiopt.c+= -O0
-COPTS.tree-ssa-pre.c+=-O0
-COPTS.tree-ssa-reassoc.c+=-O0
-COPTS.tree-ssa-strlen.c+=-O0
-COPTS.tree-ssa-uninit.c+=-O0
-COPTS.tree-ssa.c+=-O0
-COPTS.tree-switch-conversion.c+=-O0
-COPTS.tree-vect-data-refs.c+=-O0
-COPTS.tree-vect-loop-manip.c+=-O0
-COPTS.tree-vect-loop.c+=-O0
-COPTS.tree-vect-patterns.c+=-O0
-COPTS.tree-vect-stmts.c+=-O0
-COPTS.tree-vrp.c+=-O0
-COPTS.tree.c+=-O0
-COPTS.ubsan.c+=-O0
-COPTS.varasm.c+=-O0
-COPTS.vr-values.c+=-O0
-COPTS.web.c+=-O0
-COPTS.wide-int-range.cc+=-O0
-COPTS.wide-int.cc+=-O0
+
+COPTS.expmed.c+=-Wno-error=tautological-compare
+COPTS.expr.c+=-Wno-error=tautological-compare
.else
COPTS.tree.c= ${${ACTIVE_CC} == "clang" :? -O0 :}
.endif
 1.17 07-Sep-2020  mrg branches: 1.17.20;
remove GCC_NO_ADDR_OF_PACKED_MEMBER for several subdir builds
that are now handled by lfs_accessors.h internally.
 1.16 06-Sep-2020  mrg add support for new GCC 9 warnings that may be too much to fix
right now. new address-of-packed-member and format-overflow
warnings have new GCC_NO_ADDR_OF_PACKED_MEMBER amd
GCC_NO_FORMAT_OVERFLOW variables to remove these warnings.

apply to a bunch of the tree. mostly, these are real bugs that
should be fixed, but in many cases, only by removing the 'packed'
attribute from some structure that doesn't really need it. (i
looked at many different ones, and while perhaps 60-80% were
already properly aligned, it wasn't clear to me that the uses
were always coming from sane data vs network alignment, so it
doesn't seem safe to remove packed without careful research for
each affect struct.) clang already warned (and was not erroring)
for many of these cases, but gcc picked up dozens more.
 1.15 21-Mar-2020  riastradh Suppress spurious address-of-packed error in rump lfs too.
 1.14 23-Mar-2016  christos branches: 1.14.18; 1.14.22;
elide vax compiler bug.
 1.13 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.12 31-May-2015  hannken Change lfs from hash table to vcache.

- Change lfs_valloc() to return an inode number and version instead of
a vnode and move lfs_ialloc() and lfs_vcreate() to new lfs_init_vnode().

- Add lfs_valloc_fixed() to allocate a known inode, used by kernel
roll forward.

- Remove lfs_*ref(), these functions cannot coexist with vcache and
their commented behaviour is far away from their implementation.

- Add the cleaner lwp and blockinfo to struct ulfsmount so lfs_loadvnode()
may use hints from the cleaner.

- Remove vnode locks from ulfs_lookup() like we did with ufs_lookup().
 1.11 16-May-2014  dholland branches: 1.11.4;
Move lfs_getpages and lfs_putpages to their own file.
 1.10 18-Mar-2014  riastradh branches: 1.10.2;
Merge riastradh-drm2 to HEAD.
 1.9 20-Jul-2013  dholland why does rump have to have its own private build system?
 1.8 08-Jun-2013  dholland branches: 1.8.2; 1.8.4;
right, why does rump have to have its own copy of all the build information?
 1.7 06-Jun-2013  dholland Cleanups and hacks to make lfs userland stuff build:
- lfs_cksum.c doesn't actually need ulfs_inode.h any more.
- neither does lfs_itimes.c.
- add hacks to fsck_lfs to make it compile.
- add hacks to newfs_lfs to make it compile.
- fix warning in ulfs_quota.c when quotas are fully disabled
(as I guess is happening with the rumpity version)

XXX: This commit adds -I${NETBSDSRCDIR}/sys to the Makefiles for
XXX: fsck_lfs, newfs_lfs, and lfs_cleanerd. This needs to be cleaned
XXX: up ASAP; but I consider this less problematic in the short term
XXX: than spewing ulfs_*.h into /usr/include.
 1.6 16-Feb-2010  pooka branches: 1.6.10; 1.6.20;
Globally define -Wno-pointer-sign, as it has become a pointless
exercise of "add it to every Makefile individually".

XXX: should autosynchronize with the rest of the kernel buildflags
in sys/conf/Makefile.kern.inc.
 1.5 29-Jul-2008  pooka branches: 1.5.14;
Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.4 13-Dec-2007  pooka branches: 1.4.6; 1.4.10; 1.4.12; 1.4.14; 1.4.16;
LFS_KERNEL_RFW
 1.3 12-Dec-2007  elad Don't compile lfs_rfw.c, suggested by cube@.
 1.2 07-Aug-2007  pooka branches: 1.2.2; 1.2.4; 1.2.6; 1.2.8; 1.2.14; 1.2.18; 1.2.20; 1.2.22;
more bsd.own.mk inclusion
 1.1 05-Aug-2007  pooka branches: 1.1.2;
Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.2.2 05-Aug-2007  pooka Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.2.1 05-Aug-2007  pooka file Makefile was added on branch matt-mips64 on 2007-08-05 22:28:05 +0000
 1.2.22.1 13-Dec-2007  bouyer Sync with HEAD
 1.2.20.1 13-Dec-2007  yamt sync with head.
 1.2.18.1 26-Dec-2007  ad Sync with head.
 1.2.14.2 02-Nov-2007  joerg Reduce diff to HEAD by adding files forgotten in early merges.
 1.2.14.1 07-Aug-2007  joerg file Makefile was added on branch jmcneill-pm on 2007-11-02 12:43:37 +0000
 1.2.8.3 21-Jan-2008  yamt sync with head
 1.2.8.2 03-Sep-2007  yamt sync with head.
 1.2.8.1 07-Aug-2007  yamt file Makefile was added on branch yamt-lazymbuf on 2007-09-03 14:45:07 +0000
 1.2.6.1 09-Jan-2008  matt sync with HEAD
 1.2.4.2 20-Aug-2007  ad Sync with HEAD.
 1.2.4.1 07-Aug-2007  ad file Makefile was added on branch vmlocking on 2007-08-20 22:07:19 +0000
 1.2.2.2 15-Aug-2007  skrll Sync with HEAD.
 1.2.2.1 07-Aug-2007  skrll file Makefile was added on branch nick-csl-alignment on 2007-08-15 13:50:23 +0000
 1.4.16.1 19-Oct-2008  haad Sync with HEAD.
 1.4.14.1 31-Jul-2008  simonb Sync with head.
 1.4.12.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.4.10.2 11-Mar-2010  yamt sync with head
 1.4.10.1 04-May-2009  yamt sync with head.
 1.4.6.1 28-Sep-2008  mjf Sync with HEAD.
 1.5.14.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.6.20.3 03-Dec-2017  jdolecek update from HEAD
 1.6.20.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.6.20.1 23-Jun-2013  tls resync from head
 1.6.10.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.8.4.1 23-Jul-2013  riastradh sync with HEAD
 1.8.2.2 18-May-2014  rmind sync with head
 1.8.2.1 28-Aug-2013  rmind sync with head
 1.10.2.1 10-Aug-2014  tls Rebase.
 1.11.4.3 22-Apr-2016  skrll Sync with HEAD
 1.11.4.2 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.11.4.1 06-Jun-2015  skrll Sync with HEAD
 1.14.22.1 17-Aug-2020  martin Pull up following revision(s) (requested by riastradh in ticket #1050):

sys/ufs/lfs/lfs_subr.c: revision 1.101
sys/ufs/lfs/lfs_subr.c: revision 1.102
sys/ufs/lfs/lfs_inode.c: revision 1.158
sys/ufs/lfs/lfs_inode.h: revision 1.25
sys/ufs/lfs/lfs_balloc.c: revision 1.95
sys/ufs/lfs/lfs_pages.c: revision 1.21
sys/ufs/lfs/lfs_vnops.c: revision 1.330
sys/ufs/lfs/lfs_alloc.c: revision 1.140 (patch)
sys/ufs/lfs/lfs_alloc.c: revision 1.141 (patch)
lib/libp2k/p2k.c: revision 1.72
sys/ufs/lfs/lfs.h: revision 1.205
sys/ufs/lfs/lfs.h: revision 1.206
sys/ufs/lfs/lfs_segment.c: revision 1.284
sys/ufs/lfs/lfs.h: revision 1.207
sys/ufs/lfs/lfs_segment.c: revision 1.285
sys/ufs/lfs/lfs_debug.c: revision 1.55
sys/ufs/lfs/lfs_rename.c: revision 1.23
usr.sbin/dumplfs/dumplfs.c: revision 1.65
sys/ufs/lfs/lfs_vfsops.c: revision 1.371
sys/arch/i386/stand/efiboot/bootx64/Makefile: revision 1.3
sys/ufs/lfs/lfs_vfsops.c: revision 1.372
sys/ufs/lfs/lfs_vfsops.c: revision 1.373
sbin/fsck_lfs/pass1.c: revision 1.46
sys/ufs/lfs/lfs_vnops.c: revision 1.326
sys/ufs/lfs/lfs_vnops.c: revision 1.327
sys/ufs/lfs/lfs_vfsops.c: revision 1.375 (patch)
sys/ufs/lfs/lfs_vnops.c: revision 1.328
sys/ufs/lfs/lfs_subr.c: revision 1.98
sys/ufs/lfs/lfs_extern.h: revision 1.116
sys/ufs/lfs/lfs_vnops.c: revision 1.329
sys/ufs/lfs/lfs_subr.c: revision 1.99
sys/ufs/lfs/lfs_extern.h: revision 1.117
sys/ufs/lfs/lfs_accessors.h: revision 1.49
sys/ufs/lfs/lfs_extern.h: revision 1.118
sys/rump/fs/lib/liblfs/Makefile: revision 1.15
sys/ufs/lfs/lfs_bio.c: revision 1.146 (patch)
sys/ufs/lfs/lfs_bio.c: revision 1.147
sys/ufs/lfs/lfs_subr.c: revision 1.100

Fix kassert in lfs by initializing vp first.

Use a marker node to iterate lfs_dchainhd / i_lfs_dchain.

I believe elements can be removed while the lock is dropped,
including the next node we're hanging on to.

Just use VOP_BWRITE for lfs_bwrite_log.
Hope this doesn't cause trouble with vfs_suspend.

Teach lfs to transition ro<->rw.

Prevent new dirops while we issue lfs_flush_dirops.

lfs_flush_dirops assumes (by KASSERT((ip->i_state & IN_ADIROP) == 0))
that vnodes on the dchain will not become involved in active dirops
even while holding no other locks (lfs_lock, v_interlock), so we must
set lfs_writer here. All other callers already set lfs_writer.

We set fs->lfs_writer++ without explicitly doing lfs_writer_enter
because
(a) we already waited for the dirops to drain, and
(b) we hold lfs_lock and cannot drop it before setting lfs_writer.

Assert lfs_writer where I think we can now prove it.

Serialize access to the splay tree with lfs_lock.

Change some cheap KDASSERT into KASSERT.

Take a reference and fix assertions in lfs_flush_dirops.
Fixes panic:
KASSERT((ip->i_state & IN_ADIROP) == 0) at lfs_vnops.c:1670
lfs_flush_dirops
lfs_check
lfs_setattr
VOP_SETATTR
change_mode
sys_fchmod
syscall

This assertion -- and the assertion that vp->v_uflag has VU_DIROP set
-- is valid only until we release lfs_lock, because we may race with
lfs_unmark_dirop which will remove the nodes and change the flags.

Further, vp itself is valid only as long as it is referenced, which it
is as long as it's on the dchain, but lfs_unmark_dirop drops the
dchain's reference.

Don't lfs_writer_enter while holding v_interlock.

There's no need to lfs_writer_enter at all here, as far as I can see.
lfs_flush_fs will do it for us.

Break deadlock in PR kern/52301.

The lock order is lfs_writer -> lfs_seglock. The problem in 52301 is
that lfs_segwrite violates this lock order by sometimes doing
lfs_seglock -> lfs_writer, either (a) when doing a checkpoint or (b),
opportunistically, when there are no dirops pending. Both cases can
deadlock, because dirops sometimes take the seglock (lfs_truncate,
lfs_valloc, lfs_vfree):
(a) There may be dirops pending, and they may be waiting for the
seglock, so we can't wait for them to complete while holding the
seglock.
(b) The test for fs->lfs_dirops == 0 happens unlocked, and the state
may change by the time lfs_writer_enter acquires lfs_lock.

To resolve this in each case:
(a) Do lfs_writer_enter before lfs_seglock, since we will need it
unconditionally anyway. The worst performance impact of this should
be that some dirops get delayed a little bit.
(b) Create a new lfs_writer_tryenter to use at this point so that the
test for fs->lfs_dirops == 0 and the acquisition of lfs_writer happen
atomically under lfs_lock.

Initialize/destroy lfs_allclean_wakeup in modcmd, not lfs_mountfs.

Fixes reloading lfs.kmod.

In lfs_update, hold lfs_writer around lfs_vflush.

Otherwise, we might do
lfs_vflush
-> lfs_seglock
-> lfs_segwait(SEGM_CKP)
-> lfs_writer_enter
which is the reverse of the lfs_writer -> lfs_seglock ordering.

Call lfs_orphan in lfs_rename while we're still in the dirop.
lfs_writer_enter can't fail; keep it simple and don't pretend it can.

Assert that mtsleep can't fail either -- it doesn't catch signals and
there's no timeout.

Teach LFS_ORPHAN_NEXTFREE about lfs64.

Dust off the orphan detection code and try to make it work.

Fix !DIAGNOSTIC compile

Fix userland references to LFS_ORPHAN_NEXTFREE.

Forgot to grep for these or do a full distribution build, oops!

Fix missing <sys/evcnt.h> by removing the evcnts instead.

Just wanted to confirm that a race might happen, and indeed it did.
These serve little diagnostic value otherwise.

OR into bp->b_cflags; don't overwrite.

CTASSERT lfs on-disk structure sizes.

Avoid misaligned access to lfs64 on-disk records in memory.
lfs64 directory entries are only 32-bit aligned in order to conserve
space in directory blocks, and we had a hack to stuff a 64-bit inode
in them. This replaces the hack by __aligned(4) __packed, and goes
further:

1. It's not clear that all the other lfs64 data structures are 64-bit
aligned on disk to begin with. We can go through these later and
upgrade them from
struct foo64 {
...
} __aligned(4) __packed;
union foo {
struct foo64 f64;
...
};
to
struct foo64 {
...
};
union foo {
struct foo64 f64 __aligned(8);
...
} __aligned(4) __packed;
if we really want to take advantage of 64-bit memory accesses.
However, the __aligned(4) __packed must remain on the union
because:
2. We access even the lfs32 data structures via a union that has
lfs64 members, and it turns out that compilers will assume access
through a union with 64-bit aligned members implies the whole
union has 64-bit alignment, even if we're only accessing a 32-bit
aligned member.

Fix clang build after packed lfs64 accessor change.

Suppress spurious address-of-packed error in rump lfs too.
 1.14.18.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.17.20.1 08-Oct-2023  martin Pull up following revision(s) (requested by rin in ticket #394):

external/gpl3/binutils/dist/gas/config/tc-vax.h: revision 1.10
tools/gcc/Makefile: revision 1.109
external/gpl3/binutils/dist/gas/config/tc-vax.c: revision 1.16
external/gpl3/binutils/dist/gas/config/tc-vax.c: revision 1.17
external/gpl3/binutils/dist/gas/config/tc-vax.c: revision 1.18
external/gpl3/gcc.old/dist/gcc/recog.c: revision 1.12
external/gpl3/gcc.old/dist/gcc/function.c: revision 1.16
external/gpl3/gcc.old/dist/gcc/dse.c: revision 1.14 - 1.16
external/gpl3/gcc.old/dist/gcc/config/vax/vax.c: revision 1.13
external/gpl3/gcc.old/dist/gcc/config/vax/vax.c: revision 1.14
external/gpl3/gcc.old/dist/gcc/config/vax/vax.c: revision 1.15
external/gpl3/gcc.old/dist/gcc/doc/tm.texi.in: revision 1.10
external/gpl3/gcc.old/dist/gcc/config/vax/vax.c: revision 1.16
external/gpl3/gcc.old/dist/gcc/config/vax/vax.c: revision 1.17
external/gpl3/gcc.old/dist/gcc/config/vax/vax.c: revision 1.18
external/gpl3/gcc.old/dist/gcc/config/vax/vax.c: revision 1.19
external/gpl3/gcc.old/dist/gcc/config/vax/vax.md: revision 1.12
external/gpl3/gcc.old/dist/gcc/config/vax/vax.md: revision 1.13
external/gpl3/gcc.old/usr.bin/backend/Makefile: revision 1.20
external/gpl3/gcc.old/dist/gcc/targhooks.c: revision 1.12
external/gpl3/gcc.old/dist/gcc/config/vax/vax.md: revision 1.14
external/gpl3/gcc.old/dist/gcc/config/vax/vax.md: revision 1.15
external/gpl3/gcc.old/dist/gcc/config/vax/builtins.md: revision 1.12
external/gpl3/gcc.old/dist/gcc/config/vax/vax.md: revision 1.16
external/gpl3/gcc.old/dist/gcc/config/vax/builtins.md: revision 1.13
external/gpl3/gcc.old/dist/gcc/doc/tm.texi: revision 1.12
external/gpl3/gcc.old/dist/gcc/config/vax/vax.md: revision 1.17
external/gpl3/gcc.old/dist/gcc/config/vax/vax.md: revision 1.18
external/gpl3/gcc.old/dist/gcc/config/vax/elf.h: revision 1.12
external/gpl3/gcc.old/dist/gcc/config/vax/elf.h: revision 1.13
external/gpl3/gcc.old/dist/gcc/targhooks.h: revision 1.12
external/gpl3/gcc.old/dist/gcc/target.def: revision 1.10
external/gpl3/gcc.old/dist/gcc/rtlanal.c: revision 1.14
external/gpl3/gcc.old/dist/gcc/reload.c: revision 1.12
external/gpl3/gcc.old/usr.bin/gcc/Makefile: revision 1.11
external/gpl3/gcc.old/usr.bin/lto-dump/Makefile: revision 1.3
external/gpl3/gcc.old/lib/Makefile.sanitizer: revision 1.7
external/gpl3/binutils.old/lib/libbfd/Makefile: revision 1.10
distrib/utils/x_ping/Makefile: revision 1.9
games/phantasia/Makefile: revision 1.38
external/apache2/argon2/lib/libargon2/Makefile.inc: revision 1.2
external/gpl3/gcc.old/lib/libubsan/Makefile: revision 1.8
external/bsd/mdocml/lib/libmandoc/Makefile: revision 1.13
sbin/ping/Makefile: revision 1.18
sbin/newfs_ext2fs/Makefile: revision 1.7
sys/lib/libz/Makefile: revision 1.24
sys/lib/libsa/Makefile: revision 1.97
external/gpl3/gcc.old/usr.bin/cc1objplus/Makefile: revision 1.3
external/gpl3/gdb/lib/libgdb/Makefile: revision 1.36
sys/modules/lfs/Makefile: revision 1.11
external/mit/xorg/lib/gallium/Makefile: revision 1.51
external/gpl3/gdb.old/lib/libdecnumber/Makefile: revision 1.10
external/mit/xorg/lib/libX11/Makefile.libx11: revision 1.26
libexec/ld.elf_so/Makefile: revision 1.148
external/bsd/jemalloc/lib/Makefile.inc: revision 1.16
external/gpl3/gcc.old/usr.bin/libdecnumber/Makefile: revision 1.14
crypto/external/bsd/openssh/lib/Makefile: revision 1.38
external/gpl3/gcc.old/usr.bin/backend/Makefile: revision 1.21
external/gpl3/gcc.old/usr.bin/cc1/Makefile: revision 1.12
external/gpl3/gcc.old/lib/libasan/Makefile: revision 1.11
external/gpl3/gcc.old/usr.bin/cc1plus/Makefile: revision 1.13
lib/libcrypt/Makefile: revision 1.36
external/gpl3/gdb/lib/libdecnumber/Makefile: revision 1.5
lib/libc/gdtoa/Makefile.inc: revision 1.13
games/gomoku/Makefile: revision 1.13
sbin/fsdb/Makefile: revision 1.43
external/gpl3/gcc.old/usr.bin/lto1/Makefile: revision 1.9
external/mit/xorg/lib/gallium.old/Makefile: revision 1.8
lib/libbz2/Makefile: revision 1.22
external/gpl3/gcc.old/usr.bin/cc1obj/Makefile: revision 1.12
usr.sbin/mtrace/Makefile: revision 1.14
external/gpl3/gcc.old/usr.bin/cc1obj/Makefile: revision 1.13
sys/arch/vax/conf/Makefile.vax: revision 1.86
sys/rump/fs/lib/liblfs/Makefile: revision 1.18
sbin/fsck_ffs/Makefile.common: revision 1.3
external/gpl3/binutils/lib/libbfd/Makefile: revision 1.27
lib/i18n_module/UTF7/Makefile: revision 1.5
external/gpl3/gcc.old/lib/liblsan/Makefile: revision 1.7
doc/CHANGES (apply patch)
(all external/gpl3/gcc.old/ changes applied to external/gpl3/gcc/)

PR 57646: Import major vax toolchain fix.
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 29-Jul-2008  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8; 1.1.20; 1.1.48; 1.1.68;
Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.1.68.1 06-Apr-2015  skrll Sync with HEAD
 1.1.48.1 03-Dec-2017  jdolecek update from HEAD
 1.1.20.2 04-May-2009  yamt sync with head.
 1.1.20.1 29-Jul-2008  yamt file shlib_version was added on branch yamt-nfs-mp on 2009-05-04 08:14:26 +0000
 1.1.8.2 19-Oct-2008  haad Sync with HEAD.
 1.1.8.1 29-Jul-2008  haad file shlib_version was added on branch haad-dm on 2008-10-19 22:18:05 +0000
 1.1.6.2 28-Sep-2008  mjf Sync with HEAD.
 1.1.6.1 29-Jul-2008  mjf file shlib_version was added on branch mjf-devfs2 on 2008-09-28 10:41:02 +0000
 1.1.4.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.4.1 29-Jul-2008  wrstuden file shlib_version was added on branch wrstuden-revivesa on 2008-09-18 04:37:03 +0000
 1.1.2.2 31-Jul-2008  simonb Sync with head.
 1.1.2.1 29-Jul-2008  simonb file shlib_version was added on branch simonb-wapbl on 2008-07-31 04:51:04 +0000
 1.2 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.1 08-Mar-2010  pooka branches: 1.1.2; 1.1.6; 1.1.24; 1.1.42;
support mfs
 1.1.42.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.1.24.1 03-Dec-2017  jdolecek update from HEAD
 1.1.6.2 30-Apr-2010  uebayasi Sync with HEAD.
 1.1.6.1 08-Mar-2010  uebayasi file Makefile was added on branch uebayasi-xip on 2010-04-30 14:44:28 +0000
 1.1.2.2 11-Mar-2010  yamt sync with head
 1.1.2.1 08-Mar-2010  yamt file Makefile was added on branch yamt-nfs-mp on 2010-03-11 15:04:36 +0000
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 08-Mar-2010  pooka branches: 1.1.2; 1.1.6; 1.1.24; 1.1.42;
support mfs
 1.1.42.1 06-Apr-2015  skrll Sync with HEAD
 1.1.24.1 03-Dec-2017  jdolecek update from HEAD
 1.1.6.2 30-Apr-2010  uebayasi Sync with HEAD.
 1.1.6.1 08-Mar-2010  uebayasi file shlib_version was added on branch uebayasi-xip on 2010-04-30 14:44:28 +0000
 1.1.2.2 11-Mar-2010  yamt sync with head
 1.1.2.1 08-Mar-2010  yamt file shlib_version was added on branch yamt-nfs-mp on 2010-03-11 15:04:36 +0000
 1.7 03-Jun-2023  lukem bsd.own.mk: rename to CC_WNO_ADDRESS_OF_PACKED_MEMBER

Provide a single variable
CC_WNO_ADDRESS_OF_PACKED_MEMBER
with options for both clang and gcc, to replace
CLANG_NO_ADDR_OF_PACKED_MEMBER
CC_NO_ADDR_OF_PACKED_MEMBER
GCC_NO_ADDR_OF_PACKED_MEMBER

Using the convention CC_compilerflag, where compilerflag
is based on the full compiler flag name.
 1.6 23-Oct-2021  hannken Move msdosfs_rename() and doscheckpath() to new file msdosfs_rename.c.

No functional change.
 1.5 06-Sep-2020  mrg add support for new GCC 9 warnings that may be too much to fix
right now. new address-of-packed-member and format-overflow
warnings have new GCC_NO_ADDR_OF_PACKED_MEMBER amd
GCC_NO_FORMAT_OVERFLOW variables to remove these warnings.

apply to a bunch of the tree. mostly, these are real bugs that
should be fixed, but in many cases, only by removing the 'packed'
attribute from some structure that doesn't really need it. (i
looked at many different ones, and while perhaps 60-80% were
already properly aligned, it wasn't clear to me that the uses
were always coming from sane data vs network alignment, so it
doesn't seem safe to remove packed without careful research for
each affect struct.) clang already warned (and was not erroring)
for many of these cases, but gcc picked up dozens more.
 1.4 06-Feb-2016  mlelstv Split case folding table into separate source file and add full
copyright and permission notice from http://www.unicode.org/copyright.html
 1.3 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.2 16-Feb-2010  pooka branches: 1.2.20; 1.2.38;
Globally define -Wno-pointer-sign, as it has become a pointless
exercise of "add it to every Makefile individually".

XXX: should autosynchronize with the rest of the kernel buildflags
in sys/conf/Makefile.kern.inc.
 1.1 05-Aug-2008  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.18; 1.1.22;
Maintain consistency of naming between the rumpfs library name and
the MOUNT_FOOFS name. Don't bother polluting the obsolete lists
with the original names since they were in only for a few days.
 1.1.22.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.1.18.3 11-Mar-2010  yamt sync with head
 1.1.18.2 04-May-2009  yamt sync with head.
 1.1.18.1 05-Aug-2008  yamt file Makefile was added on branch yamt-nfs-mp on 2009-05-04 08:14:26 +0000
 1.1.6.2 19-Oct-2008  haad Sync with HEAD.
 1.1.6.1 05-Aug-2008  haad file Makefile was added on branch haad-dm on 2008-10-19 22:18:05 +0000
 1.1.4.2 28-Sep-2008  mjf Sync with HEAD.
 1.1.4.1 05-Aug-2008  mjf file Makefile was added on branch mjf-devfs2 on 2008-09-28 10:41:02 +0000
 1.1.2.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.2.1 05-Aug-2008  wrstuden file Makefile was added on branch wrstuden-revivesa on 2008-09-18 04:37:03 +0000
 1.2.38.2 19-Mar-2016  skrll Sync with HEAD
 1.2.38.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.2.20.1 03-Dec-2017  jdolecek update from HEAD
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 05-Aug-2008  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.18; 1.1.46; 1.1.66;
Maintain consistency of naming between the rumpfs library name and
the MOUNT_FOOFS name. Don't bother polluting the obsolete lists
with the original names since they were in only for a few days.
 1.1.66.1 06-Apr-2015  skrll Sync with HEAD
 1.1.46.1 03-Dec-2017  jdolecek update from HEAD
 1.1.18.2 04-May-2009  yamt sync with head.
 1.1.18.1 05-Aug-2008  yamt file shlib_version was added on branch yamt-nfs-mp on 2009-05-04 08:14:27 +0000
 1.1.6.2 19-Oct-2008  haad Sync with HEAD.
 1.1.6.1 05-Aug-2008  haad file shlib_version was added on branch haad-dm on 2008-10-19 22:18:05 +0000
 1.1.4.2 28-Sep-2008  mjf Sync with HEAD.
 1.1.4.1 05-Aug-2008  mjf file shlib_version was added on branch mjf-devfs2 on 2008-09-28 10:41:02 +0000
 1.1.2.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.2.1 05-Aug-2008  wrstuden file shlib_version was added on branch wrstuden-revivesa on 2008-09-18 04:37:03 +0000
 1.13 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.12 24-Aug-2015  pooka don't -I imaginary opt directories
 1.11 02-Mar-2010  pooka branches: 1.11.20; 1.11.38;
Reflect removal of fs_nfs.h and -DNFS
 1.10 16-Feb-2010  pooka Globally define -Wno-pointer-sign, as it has become a pointless
exercise of "add it to every Makefile individually".

XXX: should autosynchronize with the rest of the kernel buildflags
in sys/conf/Makefile.kern.inc.
 1.9 29-Dec-2008  pooka branches: 1.9.4;
* make features match those of the nfs module just to have them in-sync
* remove stubs.c since all are now provided by rumpnet
 1.8 19-Nov-2008  ad Make the emulations, exec formats, coredump, NFS, and the NFS server
into modules. By and large this commit:

- shuffles header files and ifdefs
- splits code out where necessary to be modular
- adds module glue for each of the components
- adds/replaces hooks for things that can be installed at runtime
 1.7 16-Oct-2008  christos branches: 1.7.2;
revert stack protector change.
 1.6 16-Oct-2008  pooka Ignore stack-protector, since with nfs_bio.c it gets its life force
drained out. Yes, this is a quick kludge, should rather fix
nfs_bio.c to be less silly.
 1.5 15-Oct-2008  pooka nfs_boot calls some networking stack routines directly. Since rump
will not invoke nfs_boot in the foreseeable future, provide those
routines as stubs in case sockin is used instead of the real
networking stack.
 1.4 06-Oct-2008  pooka Make libnfs compile.
 1.3 29-Jul-2008  pooka Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.2 07-Aug-2007  pooka branches: 1.2.2; 1.2.4; 1.2.8; 1.2.14; 1.2.30; 1.2.34; 1.2.36; 1.2.38; 1.2.40;
more bsd.own.mk inclusion
 1.1 05-Aug-2007  pooka branches: 1.1.2;
Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.2.2 05-Aug-2007  pooka Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.2.1 05-Aug-2007  pooka file Makefile was added on branch matt-mips64 on 2007-08-05 22:28:06 +0000
 1.2.40.2 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.2.40.1 19-Oct-2008  haad Sync with HEAD.
 1.2.38.1 31-Jul-2008  simonb Sync with head.
 1.2.36.2 10-Oct-2008  skrll Sync with HEAD.
 1.2.36.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.2.34.2 11-Mar-2010  yamt sync with head
 1.2.34.1 04-May-2009  yamt sync with head.
 1.2.30.2 17-Jan-2009  mjf Sync with HEAD.
 1.2.30.1 28-Sep-2008  mjf Sync with HEAD.
 1.2.14.2 02-Nov-2007  joerg Reduce diff to HEAD by adding files forgotten in early merges.
 1.2.14.1 07-Aug-2007  joerg file Makefile was added on branch jmcneill-pm on 2007-11-02 12:43:39 +0000
 1.2.8.2 03-Sep-2007  yamt sync with head.
 1.2.8.1 07-Aug-2007  yamt file Makefile was added on branch yamt-lazymbuf on 2007-09-03 14:45:08 +0000
 1.2.4.2 20-Aug-2007  ad Sync with HEAD.
 1.2.4.1 07-Aug-2007  ad file Makefile was added on branch vmlocking on 2007-08-20 22:07:20 +0000
 1.2.2.2 15-Aug-2007  skrll Sync with HEAD.
 1.2.2.1 07-Aug-2007  skrll file Makefile was added on branch nick-csl-alignment on 2007-08-15 13:50:25 +0000
 1.7.2.1 19-Jan-2009  skrll Sync with HEAD.
 1.9.4.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.11.38.2 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.11.38.1 22-Sep-2015  skrll Sync with HEAD
 1.11.20.1 03-Dec-2017  jdolecek update from HEAD
 1.2 02-Mar-2010  pooka Reflect removal of fs_nfs.h and -DNFS
 1.1 06-Oct-2008  pooka branches: 1.1.2; 1.1.4; 1.1.12; 1.1.18; 1.1.22;
Make libnfs compile.
 1.1.22.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.1.18.3 11-Mar-2010  yamt sync with head
 1.1.18.2 04-May-2009  yamt sync with head.
 1.1.18.1 06-Oct-2008  yamt file fs_nfs.h was added on branch yamt-nfs-mp on 2009-05-04 08:14:27 +0000
 1.1.12.2 17-Jan-2009  mjf Sync with HEAD.
 1.1.12.1 06-Oct-2008  mjf file fs_nfs.h was added on branch mjf-devfs2 on 2009-01-17 13:29:35 +0000
 1.1.4.2 19-Oct-2008  haad Sync with HEAD.
 1.1.4.1 06-Oct-2008  haad file fs_nfs.h was added on branch haad-dm on 2008-10-19 22:18:05 +0000
 1.1.2.2 10-Oct-2008  skrll Sync with HEAD.
 1.1.2.1 06-Oct-2008  skrll file fs_nfs.h was added on branch wrstuden-revivesa on 2008-10-10 22:36:16 +0000
 1.2 01-Jan-2009  pooka Purge multiple kernel opt files.
 1.1 06-Oct-2008  pooka branches: 1.1.2; 1.1.4; 1.1.6;
Make libnfs compile.
 1.1.6.1 19-Jan-2009  skrll Sync with HEAD.
 1.1.4.2 19-Oct-2008  haad Sync with HEAD.
 1.1.4.1 06-Oct-2008  haad file opt_compat_netbsd.h was added on branch haad-dm on 2008-10-19 22:18:05 +0000
 1.1.2.2 10-Oct-2008  skrll Sync with HEAD.
 1.1.2.1 06-Oct-2008  skrll file opt_compat_netbsd.h was added on branch wrstuden-revivesa on 2008-10-10 22:36:16 +0000
 1.2 01-Jan-2009  pooka Purge multiple kernel opt files.
 1.1 06-Oct-2008  pooka branches: 1.1.2; 1.1.4; 1.1.6;
Make libnfs compile.
 1.1.6.1 19-Jan-2009  skrll Sync with HEAD.
 1.1.4.2 19-Oct-2008  haad Sync with HEAD.
 1.1.4.1 06-Oct-2008  haad file opt_ddb.h was added on branch haad-dm on 2008-10-19 22:18:05 +0000
 1.1.2.2 10-Oct-2008  skrll Sync with HEAD.
 1.1.2.1 06-Oct-2008  skrll file opt_ddb.h was added on branch wrstuden-revivesa on 2008-10-10 22:36:16 +0000
 1.2 21-Aug-2015  pooka kill now-unnecessary empty opt files (_KERNEL_OPT'ed probably eons ago)
 1.1 06-Oct-2008  pooka branches: 1.1.2; 1.1.4; 1.1.12; 1.1.18; 1.1.46; 1.1.66;
Make libnfs compile.
 1.1.66.1 22-Sep-2015  skrll Sync with HEAD
 1.1.46.1 03-Dec-2017  jdolecek update from HEAD
 1.1.18.2 04-May-2009  yamt sync with head.
 1.1.18.1 06-Oct-2008  yamt file opt_nfs.h was added on branch yamt-nfs-mp on 2009-05-04 08:14:27 +0000
 1.1.12.2 17-Jan-2009  mjf Sync with HEAD.
 1.1.12.1 06-Oct-2008  mjf file opt_nfs.h was added on branch mjf-devfs2 on 2009-01-17 13:29:35 +0000
 1.1.4.2 19-Oct-2008  haad Sync with HEAD.
 1.1.4.1 06-Oct-2008  haad file opt_nfs.h was added on branch haad-dm on 2008-10-19 22:18:05 +0000
 1.1.2.2 10-Oct-2008  skrll Sync with HEAD.
 1.1.2.1 06-Oct-2008  skrll file opt_nfs.h was added on branch wrstuden-revivesa on 2008-10-10 22:36:16 +0000
 1.2 21-Aug-2015  pooka kill now-unnecessary empty opt files (_KERNEL_OPT'ed probably eons ago)
 1.1 06-Oct-2008  pooka branches: 1.1.2; 1.1.4; 1.1.12; 1.1.18; 1.1.46; 1.1.66;
Make libnfs compile.
 1.1.66.1 22-Sep-2015  skrll Sync with HEAD
 1.1.46.1 03-Dec-2017  jdolecek update from HEAD
 1.1.18.2 04-May-2009  yamt sync with head.
 1.1.18.1 06-Oct-2008  yamt file opt_nfs_boot.h was added on branch yamt-nfs-mp on 2009-05-04 08:14:27 +0000
 1.1.12.2 17-Jan-2009  mjf Sync with HEAD.
 1.1.12.1 06-Oct-2008  mjf file opt_nfs_boot.h was added on branch mjf-devfs2 on 2009-01-17 13:29:35 +0000
 1.1.4.2 19-Oct-2008  haad Sync with HEAD.
 1.1.4.1 06-Oct-2008  haad file opt_nfs_boot.h was added on branch haad-dm on 2008-10-19 22:18:05 +0000
 1.1.2.2 10-Oct-2008  skrll Sync with HEAD.
 1.1.2.1 06-Oct-2008  skrll file opt_nfs_boot.h was added on branch wrstuden-revivesa on 2008-10-10 22:36:16 +0000
 1.2 21-Aug-2015  pooka kill now-unnecessary empty opt files (_KERNEL_OPT'ed probably eons ago)
 1.1 06-Oct-2008  pooka branches: 1.1.2; 1.1.4; 1.1.12; 1.1.18; 1.1.46; 1.1.66;
Make libnfs compile.
 1.1.66.1 22-Sep-2015  skrll Sync with HEAD
 1.1.46.1 03-Dec-2017  jdolecek update from HEAD
 1.1.18.2 04-May-2009  yamt sync with head.
 1.1.18.1 06-Oct-2008  yamt file opt_nfsserver.h was added on branch yamt-nfs-mp on 2009-05-04 08:14:27 +0000
 1.1.12.2 17-Jan-2009  mjf Sync with HEAD.
 1.1.12.1 06-Oct-2008  mjf file opt_nfsserver.h was added on branch mjf-devfs2 on 2009-01-17 13:29:35 +0000
 1.1.4.2 19-Oct-2008  haad Sync with HEAD.
 1.1.4.1 06-Oct-2008  haad file opt_nfsserver.h was added on branch haad-dm on 2008-10-19 22:18:05 +0000
 1.1.2.2 10-Oct-2008  skrll Sync with HEAD.
 1.1.2.1 06-Oct-2008  skrll file opt_nfsserver.h was added on branch wrstuden-revivesa on 2008-10-10 22:36:16 +0000
 1.2 21-Aug-2015  pooka kill now-unnecessary empty opt files (_KERNEL_OPT'ed probably eons ago)
 1.1 06-Oct-2008  pooka branches: 1.1.2; 1.1.4; 1.1.12; 1.1.18; 1.1.46; 1.1.66;
Make libnfs compile.
 1.1.66.1 22-Sep-2015  skrll Sync with HEAD
 1.1.46.1 03-Dec-2017  jdolecek update from HEAD
 1.1.18.2 04-May-2009  yamt sync with head.
 1.1.18.1 06-Oct-2008  yamt file opt_tftproot.h was added on branch yamt-nfs-mp on 2009-05-04 08:14:27 +0000
 1.1.12.2 17-Jan-2009  mjf Sync with HEAD.
 1.1.12.1 06-Oct-2008  mjf file opt_tftproot.h was added on branch mjf-devfs2 on 2009-01-17 13:29:35 +0000
 1.1.4.2 19-Oct-2008  haad Sync with HEAD.
 1.1.4.1 06-Oct-2008  haad file opt_tftproot.h was added on branch haad-dm on 2008-10-19 22:18:05 +0000
 1.1.2.2 10-Oct-2008  skrll Sync with HEAD.
 1.1.2.1 06-Oct-2008  skrll file opt_tftproot.h was added on branch wrstuden-revivesa on 2008-10-10 22:36:16 +0000
 1.2 21-Aug-2015  pooka kill now-unnecessary empty opt files (_KERNEL_OPT'ed probably eons ago)
 1.1 06-Oct-2008  pooka branches: 1.1.2; 1.1.4; 1.1.12; 1.1.18; 1.1.46; 1.1.66;
Make libnfs compile.
 1.1.66.1 22-Sep-2015  skrll Sync with HEAD
 1.1.46.1 03-Dec-2017  jdolecek update from HEAD
 1.1.18.2 04-May-2009  yamt sync with head.
 1.1.18.1 06-Oct-2008  yamt file opt_uvmhist.h was added on branch yamt-nfs-mp on 2009-05-04 08:14:27 +0000
 1.1.12.2 17-Jan-2009  mjf Sync with HEAD.
 1.1.12.1 06-Oct-2008  mjf file opt_uvmhist.h was added on branch mjf-devfs2 on 2009-01-17 13:29:35 +0000
 1.1.4.2 19-Oct-2008  haad Sync with HEAD.
 1.1.4.1 06-Oct-2008  haad file opt_uvmhist.h was added on branch haad-dm on 2008-10-19 22:18:05 +0000
 1.1.2.2 10-Oct-2008  skrll Sync with HEAD.
 1.1.2.1 06-Oct-2008  skrll file opt_uvmhist.h was added on branch wrstuden-revivesa on 2008-10-10 22:36:16 +0000
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 29-Jul-2008  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8; 1.1.20; 1.1.48; 1.1.68;
Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.1.68.1 06-Apr-2015  skrll Sync with HEAD
 1.1.48.1 03-Dec-2017  jdolecek update from HEAD
 1.1.20.2 04-May-2009  yamt sync with head.
 1.1.20.1 29-Jul-2008  yamt file shlib_version was added on branch yamt-nfs-mp on 2009-05-04 08:14:27 +0000
 1.1.8.2 19-Oct-2008  haad Sync with HEAD.
 1.1.8.1 29-Jul-2008  haad file shlib_version was added on branch haad-dm on 2008-10-19 22:18:05 +0000
 1.1.6.2 28-Sep-2008  mjf Sync with HEAD.
 1.1.6.1 29-Jul-2008  mjf file shlib_version was added on branch mjf-devfs2 on 2008-09-28 10:41:02 +0000
 1.1.4.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.4.1 29-Jul-2008  wrstuden file shlib_version was added on branch wrstuden-revivesa on 2008-09-18 04:37:03 +0000
 1.1.2.2 31-Jul-2008  simonb Sync with head.
 1.1.2.1 29-Jul-2008  simonb file shlib_version was added on branch simonb-wapbl on 2008-07-31 04:51:04 +0000
 1.3 29-Dec-2008  pooka * make features match those of the nfs module just to have them in-sync
* remove stubs.c since all are now provided by rumpnet
 1.2 18-Dec-2008  pooka __KERNEL_RCSID
 1.1 15-Oct-2008  pooka branches: 1.1.2; 1.1.4;
nfs_boot calls some networking stack routines directly. Since rump
will not invoke nfs_boot in the foreseeable future, provide those
routines as stubs in case sockin is used instead of the real
networking stack.
 1.1.4.1 19-Jan-2009  skrll Sync with HEAD.
 1.1.2.2 19-Oct-2008  haad Sync with HEAD.
 1.1.2.1 15-Oct-2008  haad file stubs.c was added on branch haad-dm on 2008-10-19 22:18:05 +0000
 1.4 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.3 02-Mar-2010  pooka branches: 1.3.20; 1.3.38;
Reflect removal of fs_nfs.h and -DNFS
 1.2 16-Feb-2010  pooka Globally define -Wno-pointer-sign, as it has become a pointless
exercise of "add it to every Makefile individually".

XXX: should autosynchronize with the rest of the kernel buildflags
in sys/conf/Makefile.kern.inc.
 1.1 27-Nov-2008  pooka branches: 1.1.4; 1.1.6; 1.1.10; 1.1.12;
Add nfs server rump library.
(not descended into on purpose)
 1.1.12.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.1.10.3 11-Mar-2010  yamt sync with head
 1.1.10.2 04-May-2009  yamt sync with head.
 1.1.10.1 27-Nov-2008  yamt file Makefile was added on branch yamt-nfs-mp on 2009-05-04 08:14:27 +0000
 1.1.6.2 19-Jan-2009  skrll Sync with HEAD.
 1.1.6.1 27-Nov-2008  skrll file Makefile was added on branch nick-hppapmap on 2009-01-19 13:20:21 +0000
 1.1.4.2 17-Jan-2009  mjf Sync with HEAD.
 1.1.4.1 27-Nov-2008  mjf file Makefile was added on branch mjf-devfs2 on 2009-01-17 13:29:35 +0000
 1.3.38.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.3.20.1 03-Dec-2017  jdolecek update from HEAD
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 27-Nov-2008  pooka branches: 1.1.4; 1.1.6; 1.1.10; 1.1.32; 1.1.50;
Add nfs server rump library.
(not descended into on purpose)
 1.1.50.1 06-Apr-2015  skrll Sync with HEAD
 1.1.32.1 03-Dec-2017  jdolecek update from HEAD
 1.1.10.2 04-May-2009  yamt sync with head.
 1.1.10.1 27-Nov-2008  yamt file shlib_version was added on branch yamt-nfs-mp on 2009-05-04 08:14:27 +0000
 1.1.6.2 19-Jan-2009  skrll Sync with HEAD.
 1.1.6.1 27-Nov-2008  skrll file shlib_version was added on branch nick-hppapmap on 2009-01-19 13:20:21 +0000
 1.1.4.2 17-Jan-2009  mjf Sync with HEAD.
 1.1.4.1 27-Nov-2008  mjf file shlib_version was added on branch mjf-devfs2 on 2009-01-17 13:29:35 +0000
 1.4 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.3 26-May-2011  joerg branches: 1.3.14; 1.3.32;
Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.
 1.2 16-Feb-2010  pooka branches: 1.2.2; 1.2.4;
Globally define -Wno-pointer-sign, as it has become a pointless
exercise of "add it to every Makefile individually".

XXX: should autosynchronize with the rest of the kernel buildflags
in sys/conf/Makefile.kern.inc.
 1.1 18-Jul-2009  reinoud branches: 1.1.2; 1.1.4; 1.1.6;
Import read-only part of the NiLFS (v2) implementation for NetBSD. It has been
tested with a DEBUG+DIAGNOSTIC+LOCKDEBUG kernel. To summerise NiLFS, i'll
repeat my posting to tech-kern here:

NiLFS stands for New implementation of Logging File System; LFS done
right they claim :) It is at version 2 now and is being developed by NTT, the
Japanese telecom company and recently put into the linux source tree. See
http://www.nilfs.org. The on-disc format is not completely frozen and i expect
at least one minor revision to come in time.

The benefits of NiLFS are build-in fine-grained checkpointing, persistent
snapshots, multiple mounts and very large file and media support. Every
checkpoint can be transformed into a snapshot and v.v. It is said to perform
very well on flash media since it is not overwriting pieces apart from a
incidental update of the superblock, but that might change. It is accompanied
by a cleaner to clean up the segments and recover lost space.

My work is not a port of the linux code; its a new implementation. Porting the
code would be more work since its very linux oriented and never written to be
ported outside linux. The goal is to be fully interchangable. The code is non
intrusive to other parts of the kernel. It is also very light-weight.

The current state of the code is read-only access to both clean and dirty
NiLFS partitions. On mounting a dirty partition it rolls forward the log to
the last checkpoint. Full read-write support is however planned!

Just as the linux code, mount_nilfs allows for the `head' to be mounted
read/write and allows multiple read-only snapshots/checkpoint mounts next to
it.

By allowing the RW mount at a different snapshot for read-write it should be
possible eventually to revert back to a previous state; i.e. try to upgrade a
system and being able to revert to the exact state prior to the upgrade.

Compared to other FS's its pretty light-weight, suitable for embedded use and
on flash media. The read-only code is currently 17kb object code on
NetBSD/i386. I doubt the read-write code will surpass the 50 or 60. Compared
this to FFS being 156kb, UDF being 84 kb and NFS being 130kb. Run-time memory
usage is most likely not very different from other uses though maybe a bit
higher than FFS.
 1.1.6.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.1.4.3 11-Mar-2010  yamt sync with head
 1.1.4.2 19-Aug-2009  yamt sync with head.
 1.1.4.1 18-Jul-2009  yamt file Makefile was added on branch yamt-nfs-mp on 2009-08-19 18:48:27 +0000
 1.1.2.2 23-Jul-2009  jym Sync with HEAD.
 1.1.2.1 18-Jul-2009  jym file Makefile was added on branch jym-xensuspend on 2009-07-23 23:32:53 +0000
 1.2.4.1 06-Jun-2011  jruoho Sync with HEAD.
 1.2.2.1 31-May-2011  rmind sync with head
 1.3.32.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.3.14.1 03-Dec-2017  jdolecek update from HEAD
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 18-Jul-2009  reinoud branches: 1.1.2; 1.1.4; 1.1.26; 1.1.44;
Import read-only part of the NiLFS (v2) implementation for NetBSD. It has been
tested with a DEBUG+DIAGNOSTIC+LOCKDEBUG kernel. To summerise NiLFS, i'll
repeat my posting to tech-kern here:

NiLFS stands for New implementation of Logging File System; LFS done
right they claim :) It is at version 2 now and is being developed by NTT, the
Japanese telecom company and recently put into the linux source tree. See
http://www.nilfs.org. The on-disc format is not completely frozen and i expect
at least one minor revision to come in time.

The benefits of NiLFS are build-in fine-grained checkpointing, persistent
snapshots, multiple mounts and very large file and media support. Every
checkpoint can be transformed into a snapshot and v.v. It is said to perform
very well on flash media since it is not overwriting pieces apart from a
incidental update of the superblock, but that might change. It is accompanied
by a cleaner to clean up the segments and recover lost space.

My work is not a port of the linux code; its a new implementation. Porting the
code would be more work since its very linux oriented and never written to be
ported outside linux. The goal is to be fully interchangable. The code is non
intrusive to other parts of the kernel. It is also very light-weight.

The current state of the code is read-only access to both clean and dirty
NiLFS partitions. On mounting a dirty partition it rolls forward the log to
the last checkpoint. Full read-write support is however planned!

Just as the linux code, mount_nilfs allows for the `head' to be mounted
read/write and allows multiple read-only snapshots/checkpoint mounts next to
it.

By allowing the RW mount at a different snapshot for read-write it should be
possible eventually to revert back to a previous state; i.e. try to upgrade a
system and being able to revert to the exact state prior to the upgrade.

Compared to other FS's its pretty light-weight, suitable for embedded use and
on flash media. The read-only code is currently 17kb object code on
NetBSD/i386. I doubt the read-write code will surpass the 50 or 60. Compared
this to FFS being 156kb, UDF being 84 kb and NFS being 130kb. Run-time memory
usage is most likely not very different from other uses though maybe a bit
higher than FFS.
 1.1.44.1 06-Apr-2015  skrll Sync with HEAD
 1.1.26.1 03-Dec-2017  jdolecek update from HEAD
 1.1.4.2 19-Aug-2009  yamt sync with head.
 1.1.4.1 18-Jul-2009  yamt file shlib_version was added on branch yamt-nfs-mp on 2009-08-19 18:48:27 +0000
 1.1.2.2 23-Jul-2009  jym Sync with HEAD.
 1.1.2.1 18-Jul-2009  jym file shlib_version was added on branch jym-xensuspend on 2009-07-23 23:32:53 +0000
 1.1 16-May-2020  christos PR/55102: Kamil Rytarowski: Duplicate fifo_vnodeop_entries,
fifo_vnodeop_opv_desc symbols.

Missed adding those in previous
 1.1 16-May-2020  christos PR/55102: Kamil Rytarowski: Duplicate fifo_vnodeop_entries,
fifo_vnodeop_opv_desc symbols.

Missed adding those in previous
 1.7 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.6 16-Feb-2010  pooka branches: 1.6.20; 1.6.38;
Globally define -Wno-pointer-sign, as it has become a pointless
exercise of "add it to every Makefile individually".

XXX: should autosynchronize with the rest of the kernel buildflags
in sys/conf/Makefile.kern.inc.
 1.5 16-Feb-2010  pooka remove -D__NetBSD__ (it's done globally now)
 1.4 29-Jul-2008  pooka branches: 1.4.14;
Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.3 19-Aug-2007  pooka branches: 1.3.2; 1.3.6; 1.3.12; 1.3.28; 1.3.32; 1.3.34; 1.3.36; 1.3.38;
always define __NetBSD__
 1.2 07-Aug-2007  pooka branches: 1.2.2;
more bsd.own.mk inclusion
 1.1 05-Aug-2007  pooka branches: 1.1.2;
Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.2.2 05-Aug-2007  pooka Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.2.1 05-Aug-2007  pooka file Makefile was added on branch matt-mips64 on 2007-08-05 22:28:06 +0000
 1.2.2.3 03-Sep-2007  skrll Sync with HEAD.
 1.2.2.2 15-Aug-2007  skrll Sync with HEAD.
 1.2.2.1 07-Aug-2007  skrll file Makefile was added on branch nick-csl-alignment on 2007-08-15 13:50:25 +0000
 1.3.38.1 19-Oct-2008  haad Sync with HEAD.
 1.3.36.1 31-Jul-2008  simonb Sync with head.
 1.3.34.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.3.32.2 11-Mar-2010  yamt sync with head
 1.3.32.1 04-May-2009  yamt sync with head.
 1.3.28.1 28-Sep-2008  mjf Sync with HEAD.
 1.3.12.2 02-Nov-2007  joerg Reduce diff to HEAD by adding files forgotten in early merges.
 1.3.12.1 19-Aug-2007  joerg file Makefile was added on branch jmcneill-pm on 2007-11-02 12:43:39 +0000
 1.3.6.2 03-Sep-2007  yamt sync with head.
 1.3.6.1 19-Aug-2007  yamt file Makefile was added on branch yamt-lazymbuf on 2007-09-03 14:45:09 +0000
 1.3.2.3 12-Oct-2007  ad Fix merge errors.
 1.3.2.2 20-Aug-2007  ad Sync with HEAD.
 1.3.2.1 19-Aug-2007  ad file Makefile was added on branch vmlocking on 2007-08-20 22:07:20 +0000
 1.4.14.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.6.38.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.6.20.1 03-Dec-2017  jdolecek update from HEAD
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 29-Jul-2008  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8; 1.1.20; 1.1.48; 1.1.68;
Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.1.68.1 06-Apr-2015  skrll Sync with HEAD
 1.1.48.1 03-Dec-2017  jdolecek update from HEAD
 1.1.20.2 04-May-2009  yamt sync with head.
 1.1.20.1 29-Jul-2008  yamt file shlib_version was added on branch yamt-nfs-mp on 2009-05-04 08:14:27 +0000
 1.1.8.2 19-Oct-2008  haad Sync with HEAD.
 1.1.8.1 29-Jul-2008  haad file shlib_version was added on branch haad-dm on 2008-10-19 22:18:06 +0000
 1.1.6.2 28-Sep-2008  mjf Sync with HEAD.
 1.1.6.1 29-Jul-2008  mjf file shlib_version was added on branch mjf-devfs2 on 2008-09-28 10:41:02 +0000
 1.1.4.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.4.1 29-Jul-2008  wrstuden file shlib_version was added on branch wrstuden-revivesa on 2008-09-18 04:37:03 +0000
 1.1.2.2 31-Jul-2008  simonb Sync with head.
 1.1.2.1 29-Jul-2008  simonb file shlib_version was added on branch simonb-wapbl on 2008-07-31 04:51:04 +0000
 1.3 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.2 26-May-2011  joerg branches: 1.2.14; 1.2.32;
Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.
 1.1 05-Dec-2010  pooka branches: 1.1.2; 1.1.6;
Fix RUMPFSLIBS etc. As collateral, rename nullfs/umapfs to match
the vfsname, i.e. to "null" and "umap".
 1.1.6.3 31-May-2011  rmind sync with head
 1.1.6.2 05-Mar-2011  rmind sync with head
 1.1.6.1 05-Dec-2010  rmind file Makefile was added on branch rmind-uvmplock on 2011-03-05 20:56:10 +0000
 1.1.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.2.32.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.2.14.1 03-Dec-2017  jdolecek update from HEAD
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 05-Dec-2010  pooka branches: 1.1.6; 1.1.20; 1.1.38;
Fix RUMPFSLIBS etc. As collateral, rename nullfs/umapfs to match
the vfsname, i.e. to "null" and "umap".
 1.1.38.1 06-Apr-2015  skrll Sync with HEAD
 1.1.20.1 03-Dec-2017  jdolecek update from HEAD
 1.1.6.2 05-Mar-2011  rmind sync with head
 1.1.6.1 05-Dec-2010  rmind file shlib_version was added on branch rmind-uvmplock on 2011-03-05 20:56:10 +0000
 1.2 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.1 14-Jun-2010  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.24; 1.1.42;
ptyfs rump component
 1.1.42.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.1.24.1 03-Dec-2017  jdolecek update from HEAD
 1.1.6.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.1.6.1 14-Jun-2010  uebayasi file Makefile was added on branch uebayasi-xip on 2010-08-17 06:47:56 +0000
 1.1.4.2 11-Aug-2010  yamt sync with head.
 1.1.4.1 14-Jun-2010  yamt file Makefile was added on branch yamt-nfs-mp on 2010-08-11 22:55:04 +0000
 1.1.2.2 03-Jul-2010  rmind sync with head
 1.1.2.1 14-Jun-2010  rmind file Makefile was added on branch rmind-uvmplock on 2010-07-03 01:20:01 +0000
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 14-Jun-2010  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.24; 1.1.42;
ptyfs rump component
 1.1.42.1 06-Apr-2015  skrll Sync with HEAD
 1.1.24.1 03-Dec-2017  jdolecek update from HEAD
 1.1.6.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.1.6.1 14-Jun-2010  uebayasi file shlib_version was added on branch uebayasi-xip on 2010-08-17 06:47:56 +0000
 1.1.4.2 11-Aug-2010  yamt sync with head.
 1.1.4.1 14-Jun-2010  yamt file shlib_version was added on branch yamt-nfs-mp on 2010-08-11 22:55:04 +0000
 1.1.2.2 03-Jul-2010  rmind sync with head
 1.1.2.1 14-Jun-2010  rmind file shlib_version was added on branch rmind-uvmplock on 2010-07-03 01:20:01 +0000
 1.10 26-Jan-2016  pooka Put the kernelside rump kernel headers into <rump-sys> instead of
sprinkling them around the faction directories. Avoids having
to add a CPPFLAGS (or several) to pretty much every component
Makefile.

Leave compat headers around in the old locations.

The commit changes some autogenerated files, but I'll fix the
generators shortly and regen.
 1.9 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.8 13-Mar-2014  pooka branches: 1.8.6;
rename component.c -> syspuffs_component.c
 1.7 06-Jul-2010  pooka branches: 1.7.8; 1.7.18; 1.7.22;
remember to add the new file to the build
 1.6 30-Jun-2010  pooka Make putter its own component: rumpdev_putter. It was coupled in
with rumpfs_puffs for prehistoric reasons which are no longer valid
(namely, only fs components existed back then and there was no /dev
support in rump fs namespace).
 1.5 30-Jun-2010  pooka add component constructor to create /dev/puffs -> putter symlink
 1.4 14-Oct-2009  pooka branches: 1.4.2; 1.4.4;
Adjust rump sources for external/internal interfaces.
No functional change.
 1.3 29-Jul-2008  pooka Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.2 02-Jan-2008  pooka branches: 1.2.2; 1.2.4; 1.2.6; 1.2.12; 1.2.16; 1.2.18; 1.2.20; 1.2.22;
fix build for OBJDIR case. noticed by plenty
 1.1 02-Jan-2008  pooka branches: 1.1.2;
Add the ability to run puffs in userspace. This means that puffs
can now be developed in userspace using puffs for development
(I hate emulators, they are annoyingly clumsy).

To e.g. mount psshfs using puffs-on-puffs, run fs/bin/syspuffs/syspuffs
with the regular mount_psshfs command line as an argument:

golem> ./syspuffs /usr/sbin/mount_psshfs ftp.netbsd.org:/pub /puffs

This will make the mount appear as usual, with the exception that the
requests will be passed through puffs both in the kernel and userspace:

ftp.netbsd.org:/pub on /puffs type puffs|p2k|puffs|psshfs
 1.1.2.3 08-Jan-2008  bouyer Sync with HEAD
 1.1.2.2 02-Jan-2008  bouyer Sync with HEAD
 1.1.2.1 02-Jan-2008  bouyer file Makefile was added on branch bouyer-xeni386 on 2008-01-02 21:57:48 +0000
 1.2.22.1 19-Oct-2008  haad Sync with HEAD.
 1.2.20.1 31-Jul-2008  simonb Sync with head.
 1.2.18.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.2.16.3 11-Aug-2010  yamt sync with head.
 1.2.16.2 11-Mar-2010  yamt sync with head
 1.2.16.1 04-May-2009  yamt sync with head.
 1.2.12.1 28-Sep-2008  mjf Sync with HEAD.
 1.2.6.2 18-Feb-2008  mjf Sync with HEAD.
 1.2.6.1 02-Jan-2008  mjf file Makefile was added on branch mjf-devfs on 2008-02-18 21:07:19 +0000
 1.2.4.2 21-Jan-2008  yamt sync with head
 1.2.4.1 02-Jan-2008  yamt file Makefile was added on branch yamt-lazymbuf on 2008-01-21 09:47:40 +0000
 1.2.2.2 09-Jan-2008  matt sync with HEAD
 1.2.2.1 02-Jan-2008  matt file Makefile was added on branch matt-armv6 on 2008-01-09 01:57:57 +0000
 1.4.4.2 05-Mar-2011  rmind sync with head
 1.4.4.1 03-Jul-2010  rmind sync with head
 1.4.2.1 17-Aug-2010  uebayasi Sync with HEAD.
 1.7.22.1 18-May-2014  rmind sync with head
 1.7.18.2 03-Dec-2017  jdolecek update from HEAD
 1.7.18.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.7.8.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.8.6.2 19-Mar-2016  skrll Sync with HEAD
 1.8.6.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.2 13-Mar-2014  pooka rename component.c -> syspuffs_component.c
 1.1 30-Jun-2010  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.14; 1.1.24; 1.1.28;
add component constructor to create /dev/puffs -> putter symlink
 1.1.28.1 18-May-2014  rmind sync with head
 1.1.24.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.14.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.6.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.1.6.1 30-Jun-2010  uebayasi file component.c was added on branch uebayasi-xip on 2010-08-17 06:47:57 +0000
 1.1.4.2 11-Aug-2010  yamt sync with head.
 1.1.4.1 30-Jun-2010  yamt file component.c was added on branch yamt-nfs-mp on 2010-08-11 22:55:04 +0000
 1.1.2.2 03-Jul-2010  rmind sync with head
 1.1.2.1 30-Jun-2010  rmind file component.c was added on branch rmind-uvmplock on 2010-07-03 01:20:01 +0000
 1.16 26-Jan-2016  pooka Put the kernelside rump kernel headers into <rump-sys> instead of
sprinkling them around the faction directories. Avoids having
to add a CPPFLAGS (or several) to pretty much every component
Makefile.

Leave compat headers around in the old locations.

The commit changes some autogenerated files, but I'll fix the
generators shortly and regen.
 1.15 10-May-2015  christos PR/975220: Check return of kthread_create
 1.14 10-May-2015  christos CID 274829: Check error from fd_getfile to avoid NULL deref immediately
after.
 1.13 30-Apr-2013  pooka branches: 1.13.12;
Make hypercall calling conventions consistent: iff a hypercall can fail,
it returns an int containing the error value.
 1.12 29-Apr-2013  pooka Reduce hypercalls related to reading to essentially an amalgamation
of readv and preadv. ditto for writing. Hypercalls are so seldomly
used that it doesn't justify 3x the calls for syntactic sugar.
 1.11 14-Oct-2009  pooka branches: 1.11.12; 1.11.22;
"rumppriv" goes back to "rump" per internal interface naming change.
 1.10 14-Oct-2009  pooka Adjust rump sources for external/internal interfaces.
No functional change.
 1.9 08-Jan-2009  pooka Put syspuffs_glueinit in the rump kernel namespace.
 1.8 07-Oct-2008  pooka branches: 1.8.2;
check rump_init() return value
 1.7 05-Sep-2008  pooka fix broken break (oh the irony)
 1.6 02-Sep-2008  pooka Make syspuffs mount code supply mount_syspuffs_parseargs() like
the other mount binaries do. Now syspuffs can be used to run all
puffs file systems as utilities. This includes fuse file systems
and becomes interesting with the fs-utils project. We can now do
e.g. this:

ReFUSE ntfs-3g:
golem> echo hello | fsu_write/fsu_write ntfs-3g puffs ~/img/ntfs.img dafile
golem> fsu_cat/fsu_cat ntfs-3g puffs ~/img/ntfs.img dafile
hello
golem>

puffs sysctlfs:
golem> fsu_ls/fsu_ls mount_sysctlfs puffs sysctl -l ddb
total 0
-r-xr-xr-x 1 pooka users 1 Sep 2 22:11 commandonenter
-r-xr-xr-x 1 pooka users 2 Sep 2 22:11 fromconsole
-r-xr-xr-x 1 pooka users 3 Sep 2 22:11 lines
-r-xr-xr-x 1 pooka users 8 Sep 2 22:11 maxoff
-r-xr-xr-x 1 pooka users 3 Sep 2 22:11 maxwidth
-r-xr-xr-x 1 pooka users 2 Sep 2 22:11 onpanic
-r-xr-xr-x 1 pooka users 3 Sep 2 22:11 radix
-r-xr-xr-x 1 pooka users 2 Sep 2 22:11 tabstops
-r-xr-xr-x 1 pooka users 2 Sep 2 22:11 tee_msgbuf

Same works for psshfs etcetc.

In other words, this provides total integration for "normal"
in-kernel file systems and puffs/fuse file systems on the ukfs
library level.

Note: implementation is still "first stab" and the fs-utils usage
will no doubt change.
 1.5 15-Aug-2008  pooka Since putter wants complete frames, make sure we can hand them to it.
 1.4 29-Jul-2008  pooka Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.3 21-Mar-2008  ad branches: 1.3.4; 1.3.6; 1.3.8; 1.3.10;
Catch up with descriptor handling changes. See kern_descrip.c revision
1.173 for details.
 1.2 27-Jan-2008  pooka branches: 1.2.2; 1.2.8;
Use vfs_subr.c from sys/kern. This brings differences in the vnode
life cycle between rump and a real kernel to a minimum.
 1.1 02-Jan-2008  pooka branches: 1.1.2; 1.1.4; 1.1.6;
Add the ability to run puffs in userspace. This means that puffs
can now be developed in userspace using puffs for development
(I hate emulators, they are annoyingly clumsy).

To e.g. mount psshfs using puffs-on-puffs, run fs/bin/syspuffs/syspuffs
with the regular mount_psshfs command line as an argument:

golem> ./syspuffs /usr/sbin/mount_psshfs ftp.netbsd.org:/pub /puffs

This will make the mount appear as usual, with the exception that the
requests will be passed through puffs both in the kernel and userspace:

ftp.netbsd.org:/pub on /puffs type puffs|p2k|puffs|psshfs
 1.1.6.4 24-Mar-2008  yamt sync with head.
 1.1.6.3 04-Feb-2008  yamt sync with head.
 1.1.6.2 21-Jan-2008  yamt sync with head
 1.1.6.1 02-Jan-2008  yamt file puffs_rumpglue.c was added on branch yamt-lazymbuf on 2008-01-21 09:47:40 +0000
 1.1.4.3 23-Mar-2008  matt sync with HEAD
 1.1.4.2 09-Jan-2008  matt sync with HEAD
 1.1.4.1 02-Jan-2008  matt file puffs_rumpglue.c was added on branch matt-armv6 on 2008-01-09 01:57:57 +0000
 1.1.2.2 02-Jan-2008  bouyer Sync with HEAD
 1.1.2.1 02-Jan-2008  bouyer file puffs_rumpglue.c was added on branch bouyer-xeni386 on 2008-01-02 21:57:49 +0000
 1.2.8.3 17-Jan-2009  mjf Sync with HEAD.
 1.2.8.2 28-Sep-2008  mjf Sync with HEAD.
 1.2.8.1 03-Apr-2008  mjf Sync with HEAD.
 1.2.2.2 18-Feb-2008  mjf Sync with HEAD.
 1.2.2.1 27-Jan-2008  mjf file puffs_rumpglue.c was added on branch mjf-devfs on 2008-02-18 21:07:19 +0000
 1.3.10.1 19-Oct-2008  haad Sync with HEAD.
 1.3.8.1 31-Jul-2008  simonb Sync with head.
 1.3.6.2 10-Oct-2008  skrll Sync with HEAD.
 1.3.6.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.3.4.2 11-Mar-2010  yamt sync with head
 1.3.4.1 04-May-2009  yamt sync with head.
 1.8.2.1 19-Jan-2009  skrll Sync with HEAD.
 1.11.22.2 03-Dec-2017  jdolecek update from HEAD
 1.11.22.1 23-Jun-2013  tls resync from head
 1.11.12.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.13.12.2 19-Mar-2016  skrll Sync with HEAD
 1.13.12.1 06-Jun-2015  skrll Sync with HEAD
 1.1 02-Jan-2008  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8;
Add the ability to run puffs in userspace. This means that puffs
can now be developed in userspace using puffs for development
(I hate emulators, they are annoyingly clumsy).

To e.g. mount psshfs using puffs-on-puffs, run fs/bin/syspuffs/syspuffs
with the regular mount_psshfs command line as an argument:

golem> ./syspuffs /usr/sbin/mount_psshfs ftp.netbsd.org:/pub /puffs

This will make the mount appear as usual, with the exception that the
requests will be passed through puffs both in the kernel and userspace:

ftp.netbsd.org:/pub on /puffs type puffs|p2k|puffs|psshfs
 1.1.8.2 18-Feb-2008  mjf Sync with HEAD.
 1.1.8.1 02-Jan-2008  mjf file puffs_rumpglue.h was added on branch mjf-devfs on 2008-02-18 21:07:19 +0000
 1.1.6.2 21-Jan-2008  yamt sync with head
 1.1.6.1 02-Jan-2008  yamt file puffs_rumpglue.h was added on branch yamt-lazymbuf on 2008-01-21 09:47:40 +0000
 1.1.4.2 09-Jan-2008  matt sync with HEAD
 1.1.4.1 02-Jan-2008  matt file puffs_rumpglue.h was added on branch matt-armv6 on 2008-01-09 01:57:58 +0000
 1.1.2.2 02-Jan-2008  bouyer Sync with HEAD
 1.1.2.1 02-Jan-2008  bouyer file puffs_rumpglue.h was added on branch bouyer-xeni386 on 2008-01-02 21:57:49 +0000
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 29-Jul-2008  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8; 1.1.20; 1.1.48; 1.1.68;
Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.1.68.1 06-Apr-2015  skrll Sync with HEAD
 1.1.48.1 03-Dec-2017  jdolecek update from HEAD
 1.1.20.2 04-May-2009  yamt sync with head.
 1.1.20.1 29-Jul-2008  yamt file shlib_version was added on branch yamt-nfs-mp on 2009-05-04 08:14:28 +0000
 1.1.8.2 19-Oct-2008  haad Sync with HEAD.
 1.1.8.1 29-Jul-2008  haad file shlib_version was added on branch haad-dm on 2008-10-19 22:18:06 +0000
 1.1.6.2 28-Sep-2008  mjf Sync with HEAD.
 1.1.6.1 29-Jul-2008  mjf file shlib_version was added on branch mjf-devfs2 on 2008-09-28 10:41:02 +0000
 1.1.4.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.4.1 29-Jul-2008  wrstuden file shlib_version was added on branch wrstuden-revivesa on 2008-09-18 04:37:03 +0000
 1.1.2.2 31-Jul-2008  simonb Sync with head.
 1.1.2.1 29-Jul-2008  simonb file shlib_version was added on branch simonb-wapbl on 2008-07-31 04:51:04 +0000
 1.2 26-Jan-2016  pooka Put the kernelside rump kernel headers into <rump-sys> instead of
sprinkling them around the faction directories. Avoids having
to add a CPPFLAGS (or several) to pretty much every component
Makefile.

Leave compat headers around in the old locations.

The commit changes some autogenerated files, but I'll fix the
generators shortly and regen.
 1.1 13-Mar-2014  pooka branches: 1.1.4; 1.1.6; 1.1.10; 1.1.12;
rename component.c -> syspuffs_component.c
 1.1.12.1 19-Mar-2016  skrll Sync with HEAD
 1.1.10.3 03-Dec-2017  jdolecek update from HEAD
 1.1.10.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.10.1 13-Mar-2014  tls file syspuffs_component.c was added on branch tls-maxphys on 2014-08-20 00:04:39 +0000
 1.1.6.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.6.1 13-Mar-2014  yamt file syspuffs_component.c was added on branch yamt-pagecache on 2014-05-22 11:41:13 +0000
 1.1.4.2 18-May-2014  rmind sync with head
 1.1.4.1 13-Mar-2014  rmind file syspuffs_component.c was added on branch rmind-smpnet on 2014-05-18 17:46:17 +0000
 1.2 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.1 04-Sep-2008  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.18; 1.1.46; 1.1.66;
Add rump support for sysvbfs.
 1.1.66.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.1.46.1 03-Dec-2017  jdolecek update from HEAD
 1.1.18.2 04-May-2009  yamt sync with head.
 1.1.18.1 04-Sep-2008  yamt file Makefile was added on branch yamt-nfs-mp on 2009-05-04 08:14:28 +0000
 1.1.6.2 19-Oct-2008  haad Sync with HEAD.
 1.1.6.1 04-Sep-2008  haad file Makefile was added on branch haad-dm on 2008-10-19 22:18:06 +0000
 1.1.4.2 28-Sep-2008  mjf Sync with HEAD.
 1.1.4.1 04-Sep-2008  mjf file Makefile was added on branch mjf-devfs2 on 2008-09-28 10:41:02 +0000
 1.1.2.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.2.1 04-Sep-2008  wrstuden file Makefile was added on branch wrstuden-revivesa on 2008-09-18 04:37:03 +0000
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 04-Sep-2008  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.18; 1.1.46; 1.1.66;
Add rump support for sysvbfs.
 1.1.66.1 06-Apr-2015  skrll Sync with HEAD
 1.1.46.1 03-Dec-2017  jdolecek update from HEAD
 1.1.18.2 04-May-2009  yamt sync with head.
 1.1.18.1 04-Sep-2008  yamt file shlib_version was added on branch yamt-nfs-mp on 2009-05-04 08:14:28 +0000
 1.1.6.2 19-Oct-2008  haad Sync with HEAD.
 1.1.6.1 04-Sep-2008  haad file shlib_version was added on branch haad-dm on 2008-10-19 22:18:06 +0000
 1.1.4.2 28-Sep-2008  mjf Sync with HEAD.
 1.1.4.1 04-Sep-2008  mjf file shlib_version was added on branch mjf-devfs2 on 2008-09-28 10:41:02 +0000
 1.1.2.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.2.1 04-Sep-2008  wrstuden file shlib_version was added on branch wrstuden-revivesa on 2008-09-18 04:37:03 +0000
 1.6 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.5 09-May-2012  riastradh branches: 1.5.2; 1.5.16;
Adapt tmpfs_rename to use genfs_rename.
 1.4 22-Jun-2010  rmind branches: 1.4.8; 1.4.12;
Replace tmpfs_pool custom allocator code with a simpler layer for memory
accounting. Use wired memory (which can be limited) for meta-data, and
kmem(9) for string allocations.

Close PR/31944. Fix PR/38361 while here. OK ad@.
 1.3 29-Jul-2008  pooka branches: 1.3.14; 1.3.16;
Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.2 07-Aug-2007  pooka branches: 1.2.2; 1.2.4; 1.2.8; 1.2.14; 1.2.30; 1.2.34; 1.2.36; 1.2.38; 1.2.40;
more bsd.own.mk inclusion
 1.1 05-Aug-2007  pooka branches: 1.1.2;
Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.2.2 05-Aug-2007  pooka Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.2.1 05-Aug-2007  pooka file Makefile was added on branch matt-mips64 on 2007-08-05 22:28:06 +0000
 1.2.40.1 19-Oct-2008  haad Sync with HEAD.
 1.2.38.1 31-Jul-2008  simonb Sync with head.
 1.2.36.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.2.34.2 11-Aug-2010  yamt sync with head.
 1.2.34.1 04-May-2009  yamt sync with head.
 1.2.30.1 28-Sep-2008  mjf Sync with HEAD.
 1.2.14.2 02-Nov-2007  joerg Reduce diff to HEAD by adding files forgotten in early merges.
 1.2.14.1 07-Aug-2007  joerg file Makefile was added on branch jmcneill-pm on 2007-11-02 12:43:42 +0000
 1.2.8.2 03-Sep-2007  yamt sync with head.
 1.2.8.1 07-Aug-2007  yamt file Makefile was added on branch yamt-lazymbuf on 2007-09-03 14:45:13 +0000
 1.2.4.2 20-Aug-2007  ad Sync with HEAD.
 1.2.4.1 07-Aug-2007  ad file Makefile was added on branch vmlocking on 2007-08-20 22:07:21 +0000
 1.2.2.2 15-Aug-2007  skrll Sync with HEAD.
 1.2.2.1 07-Aug-2007  skrll file Makefile was added on branch nick-csl-alignment on 2007-08-15 13:50:29 +0000
 1.3.16.1 03-Jul-2010  rmind sync with head
 1.3.14.1 17-Aug-2010  uebayasi Sync with HEAD.
 1.4.12.1 02-Jun-2012  mrg sync to latest -current.
 1.4.8.1 23-May-2012  yamt sync with head.
 1.5.16.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.5.2.1 03-Dec-2017  jdolecek update from HEAD
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 29-Jul-2008  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8; 1.1.20; 1.1.48; 1.1.68;
Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.1.68.1 06-Apr-2015  skrll Sync with HEAD
 1.1.48.1 03-Dec-2017  jdolecek update from HEAD
 1.1.20.2 04-May-2009  yamt sync with head.
 1.1.20.1 29-Jul-2008  yamt file shlib_version was added on branch yamt-nfs-mp on 2009-05-04 08:14:28 +0000
 1.1.8.2 19-Oct-2008  haad Sync with HEAD.
 1.1.8.1 29-Jul-2008  haad file shlib_version was added on branch haad-dm on 2008-10-19 22:18:06 +0000
 1.1.6.2 28-Sep-2008  mjf Sync with HEAD.
 1.1.6.1 29-Jul-2008  mjf file shlib_version was added on branch mjf-devfs2 on 2008-09-28 10:41:03 +0000
 1.1.4.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.4.1 29-Jul-2008  wrstuden file shlib_version was added on branch wrstuden-revivesa on 2008-09-18 04:37:03 +0000
 1.1.2.2 31-Jul-2008  simonb Sync with head.
 1.1.2.1 29-Jul-2008  simonb file shlib_version was added on branch simonb-wapbl on 2008-07-31 04:51:04 +0000
 1.13 03-Jun-2023  lukem adapt to ${CC_WNO_ADDRESS_OF_PACKED_MEMBER}

Simplify CWARNFLAGS to use ${CC_WNO_ADDRESS_OF_PACKED_MEMBER}
which works for both clang and gcc, and remove compiler-specific
equivalents.
 1.12 03-Jun-2023  lukem bsd.own.mk: rename to CC_WNO_ADDRESS_OF_PACKED_MEMBER

Provide a single variable
CC_WNO_ADDRESS_OF_PACKED_MEMBER
with options for both clang and gcc, to replace
CLANG_NO_ADDR_OF_PACKED_MEMBER
CC_NO_ADDR_OF_PACKED_MEMBER
GCC_NO_ADDR_OF_PACKED_MEMBER

Using the convention CC_compilerflag, where compilerflag
is based on the full compiler flag name.
 1.11 06-Sep-2020  mrg add support for new GCC 9 warnings that may be too much to fix
right now. new address-of-packed-member and format-overflow
warnings have new GCC_NO_ADDR_OF_PACKED_MEMBER amd
GCC_NO_FORMAT_OVERFLOW variables to remove these warnings.

apply to a bunch of the tree. mostly, these are real bugs that
should be fixed, but in many cases, only by removing the 'packed'
attribute from some structure that doesn't really need it. (i
looked at many different ones, and while perhaps 60-80% were
already properly aligned, it wasn't clear to me that the uses
were always coming from sane data vs network alignment, so it
doesn't seem safe to remove packed without careful research for
each affect struct.) clang already warned (and was not erroring)
for many of these cases, but gcc picked up dozens more.
 1.10 11-Jan-2017  joerg Disable a couple of warnings until further investigation.
 1.9 19-Oct-2015  pooka branches: 1.9.2;
Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.8 10-Jul-2013  reinoud branches: 1.8.8;
Oops forgot the rump addition of udf_rename.c
 1.7 26-May-2011  joerg branches: 1.7.4; 1.7.14; 1.7.18;
Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.
 1.6 16-Feb-2010  pooka branches: 1.6.2; 1.6.4;
Globally define -Wno-pointer-sign, as it has become a pointless
exercise of "add it to every Makefile individually".

XXX: should autosynchronize with the rest of the kernel buildflags
in sys/conf/Makefile.kern.inc.
 1.5 17-Nov-2008  pooka branches: 1.5.6;
Tune CFLAGS to a consistent default.
 1.4 28-Sep-2008  reinoud branches: 1.4.2;
Remove the not anymore used UDF_READWRITE flag.
 1.3 29-Jul-2008  pooka Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.2 14-May-2008  reinoud branches: 1.2.2; 1.2.4;
Make rump compile UDF correctly. Note that it won't work though since rump
needs to be compiled with thread support.
 1.1 14-Aug-2007  pooka branches: 1.1.2; 1.1.4; 1.1.8; 1.1.14; 1.1.30; 1.1.32; 1.1.34; 1.1.36;
udf support
 1.1.36.3 10-Oct-2008  skrll Sync with HEAD.
 1.1.36.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.36.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.1.34.3 11-Mar-2010  yamt sync with head
 1.1.34.2 04-May-2009  yamt sync with head.
 1.1.34.1 16-May-2008  yamt sync with head.
 1.1.32.1 18-May-2008  yamt sync with head.
 1.1.30.4 17-Jan-2009  mjf Sync with HEAD.
 1.1.30.3 05-Oct-2008  mjf Sync with HEAD.
 1.1.30.2 28-Sep-2008  mjf Sync with HEAD.
 1.1.30.1 02-Jun-2008  mjf Sync with HEAD.
 1.1.14.2 02-Nov-2007  joerg Reduce diff to HEAD by adding files forgotten in early merges.
 1.1.14.1 14-Aug-2007  joerg file Makefile was added on branch jmcneill-pm on 2007-11-02 12:43:43 +0000
 1.1.8.2 03-Sep-2007  yamt sync with head.
 1.1.8.1 14-Aug-2007  yamt file Makefile was added on branch yamt-lazymbuf on 2007-09-03 14:45:14 +0000
 1.1.4.2 20-Aug-2007  ad Sync with HEAD.
 1.1.4.1 14-Aug-2007  ad file Makefile was added on branch vmlocking on 2007-08-20 22:07:22 +0000
 1.1.2.2 15-Aug-2007  skrll Sync with HEAD.
 1.1.2.1 14-Aug-2007  skrll file Makefile was added on branch nick-csl-alignment on 2007-08-15 13:50:29 +0000
 1.2.4.2 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.2.4.1 19-Oct-2008  haad Sync with HEAD.
 1.2.2.1 31-Jul-2008  simonb Sync with head.
 1.4.2.1 19-Jan-2009  skrll Sync with HEAD.
 1.5.6.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.6.4.1 06-Jun-2011  jruoho Sync with HEAD.
 1.6.2.1 31-May-2011  rmind sync with head
 1.7.18.1 28-Aug-2013  rmind sync with head
 1.7.14.2 03-Dec-2017  jdolecek update from HEAD
 1.7.14.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.7.4.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.8.8.2 05-Feb-2017  skrll Sync with HEAD
 1.8.8.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.9.2.1 20-Mar-2017  pgoyette Sync with HEAD
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 29-Jul-2008  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8; 1.1.20; 1.1.48; 1.1.68;
Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.1.68.1 06-Apr-2015  skrll Sync with HEAD
 1.1.48.1 03-Dec-2017  jdolecek update from HEAD
 1.1.20.2 04-May-2009  yamt sync with head.
 1.1.20.1 29-Jul-2008  yamt file shlib_version was added on branch yamt-nfs-mp on 2009-05-04 08:14:28 +0000
 1.1.8.2 19-Oct-2008  haad Sync with HEAD.
 1.1.8.1 29-Jul-2008  haad file shlib_version was added on branch haad-dm on 2008-10-19 22:18:06 +0000
 1.1.6.2 28-Sep-2008  mjf Sync with HEAD.
 1.1.6.1 29-Jul-2008  mjf file shlib_version was added on branch mjf-devfs2 on 2008-09-28 10:41:03 +0000
 1.1.4.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.4.1 29-Jul-2008  wrstuden file shlib_version was added on branch wrstuden-revivesa on 2008-09-18 04:37:03 +0000
 1.1.2.2 31-Jul-2008  simonb Sync with head.
 1.1.2.1 29-Jul-2008  simonb file shlib_version was added on branch simonb-wapbl on 2008-07-31 04:51:04 +0000
 1.3 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.2 26-May-2011  joerg branches: 1.2.14; 1.2.32;
Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.
 1.1 05-Dec-2010  pooka branches: 1.1.2; 1.1.6;
Fix RUMPFSLIBS etc. As collateral, rename nullfs/umapfs to match
the vfsname, i.e. to "null" and "umap".
 1.1.6.3 31-May-2011  rmind sync with head
 1.1.6.2 05-Mar-2011  rmind sync with head
 1.1.6.1 05-Dec-2010  rmind file Makefile was added on branch rmind-uvmplock on 2011-03-05 20:56:11 +0000
 1.1.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.2.32.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.2.14.1 03-Dec-2017  jdolecek update from HEAD
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 05-Dec-2010  pooka branches: 1.1.6; 1.1.20; 1.1.38;
Fix RUMPFSLIBS etc. As collateral, rename nullfs/umapfs to match
the vfsname, i.e. to "null" and "umap".
 1.1.38.1 06-Apr-2015  skrll Sync with HEAD
 1.1.20.1 03-Dec-2017  jdolecek update from HEAD
 1.1.6.2 05-Mar-2011  rmind sync with head
 1.1.6.1 05-Dec-2010  rmind file shlib_version was added on branch rmind-uvmplock on 2011-03-05 20:56:11 +0000
 1.2 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.1 29-Mar-2010  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.24; 1.1.42;
Support unionfs (and layervfs, which is required for unionfs).
 1.1.42.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.1.24.1 03-Dec-2017  jdolecek update from HEAD
 1.1.6.2 11-Aug-2010  yamt sync with head.
 1.1.6.1 29-Mar-2010  yamt file Makefile was added on branch yamt-nfs-mp on 2010-08-11 22:55:05 +0000
 1.1.4.2 30-May-2010  rmind sync with head
 1.1.4.1 29-Mar-2010  rmind file Makefile was added on branch rmind-uvmplock on 2010-05-30 05:18:06 +0000
 1.1.2.2 30-Apr-2010  uebayasi Sync with HEAD.
 1.1.2.1 29-Mar-2010  uebayasi file Makefile was added on branch uebayasi-xip on 2010-04-30 14:44:29 +0000
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 29-Mar-2010  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.24; 1.1.42;
Support unionfs (and layervfs, which is required for unionfs).
 1.1.42.1 06-Apr-2015  skrll Sync with HEAD
 1.1.24.1 03-Dec-2017  jdolecek update from HEAD
 1.1.6.2 11-Aug-2010  yamt sync with head.
 1.1.6.1 29-Mar-2010  yamt file shlib_version was added on branch yamt-nfs-mp on 2010-08-11 22:55:05 +0000
 1.1.4.2 30-May-2010  rmind sync with head
 1.1.4.1 29-Mar-2010  rmind file shlib_version was added on branch rmind-uvmplock on 2010-05-30 05:18:06 +0000
 1.1.2.2 30-Apr-2010  uebayasi Sync with HEAD.
 1.1.2.1 29-Mar-2010  uebayasi file shlib_version was added on branch uebayasi-xip on 2010-04-30 14:44:29 +0000
 1.4 03-Jun-2023  lukem bsd.own.mk: rename to CC_WNO_ADDRESS_OF_PACKED_MEMBER

Provide a single variable
CC_WNO_ADDRESS_OF_PACKED_MEMBER
with options for both clang and gcc, to replace
CLANG_NO_ADDR_OF_PACKED_MEMBER
CC_NO_ADDR_OF_PACKED_MEMBER
GCC_NO_ADDR_OF_PACKED_MEMBER

Using the convention CC_compilerflag, where compilerflag
is based on the full compiler flag name.
 1.3 06-Sep-2020  mrg add support for new GCC 9 warnings that may be too much to fix
right now. new address-of-packed-member and format-overflow
warnings have new GCC_NO_ADDR_OF_PACKED_MEMBER amd
GCC_NO_FORMAT_OVERFLOW variables to remove these warnings.

apply to a bunch of the tree. mostly, these are real bugs that
should be fixed, but in many cases, only by removing the 'packed'
attribute from some structure that doesn't really need it. (i
looked at many different ones, and while perhaps 60-80% were
already properly aligned, it wasn't clear to me that the uses
were always coming from sane data vs network alignment, so it
doesn't seem safe to remove packed without careful research for
each affect struct.) clang already warned (and was not erroring)
for many of these cases, but gcc picked up dozens more.
 1.2 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.1 24-Jul-2011  uch branches: 1.1.12; 1.1.30;
v7fs rump support
 1.1.30.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.1.12.1 03-Dec-2017  jdolecek update from HEAD
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 24-Jul-2011  uch branches: 1.1.12; 1.1.30;
v7fs rump support
 1.1.30.1 06-Apr-2015  skrll Sync with HEAD
 1.1.12.1 03-Dec-2017  jdolecek update from HEAD
 1.9 03-Jun-2023  lukem bsd.own.mk: rename to CC_WNO_ADDRESS_OF_PACKED_MEMBER

Provide a single variable
CC_WNO_ADDRESS_OF_PACKED_MEMBER
with options for both clang and gcc, to replace
CLANG_NO_ADDR_OF_PACKED_MEMBER
CC_NO_ADDR_OF_PACKED_MEMBER
GCC_NO_ADDR_OF_PACKED_MEMBER

Using the convention CC_compilerflag, where compilerflag
is based on the full compiler flag name.
 1.8 15-Apr-2021  christos fix reversed comment
 1.7 06-Sep-2020  mrg branches: 1.7.4;
add support for new GCC 9 warnings that may be too much to fix
right now. new address-of-packed-member and format-overflow
warnings have new GCC_NO_ADDR_OF_PACKED_MEMBER amd
GCC_NO_FORMAT_OVERFLOW variables to remove these warnings.

apply to a bunch of the tree. mostly, these are real bugs that
should be fixed, but in many cases, only by removing the 'packed'
attribute from some structure that doesn't really need it. (i
looked at many different ones, and while perhaps 60-80% were
already properly aligned, it wasn't clear to me that the uses
were always coming from sane data vs network alignment, so it
doesn't seem safe to remove packed without careful research for
each affect struct.) clang already warned (and was not erroring)
for many of these cases, but gcc picked up dozens more.
 1.6 26-Jan-2016  pooka Put the kernelside rump kernel headers into <rump-sys> instead of
sprinkling them around the faction directories. Avoids having
to add a CPPFLAGS (or several) to pretty much every component
Makefile.

Leave compat headers around in the old locations.

The commit changes some autogenerated files, but I'll fix the
generators shortly and regen.
 1.5 19-Oct-2015  pooka Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.4 13-Mar-2014  pooka branches: 1.4.6;
rename component.c -> zfs_component.c
 1.3 10-Mar-2011  pooka branches: 1.3.4; 1.3.6; 1.3.16; 1.3.20;
autocreate /dev/zfs. requested by riz
 1.2 21-Jan-2011  pooka branches: 1.2.2;
Since "physmem" is largely unused except for zfs wanting to know
if it has enough memory available, just pick a number which makes
zfs happy.

We *could* use a MIN() of available host mem and rump_memlimit,
though ...
 1.1 18-Jan-2011  haad branches: 1.1.2;
Add support for compiling ZFS and Solaris modules as RUMP libraries. Add
some locking and rumpcopy primitives and refactor module building Makefiles
to work with both RUMP and kernel modules. This is first part of adding
support for regular test of zfs on NetBSD to hunt some bugs and make it
stable.

Ok by pooka@.
 1.1.2.1 08-Feb-2011  bouyer Sync with HEAD
 1.2.2.3 21-Apr-2011  rmind sync with head
 1.2.2.2 05-Mar-2011  rmind sync with head
 1.2.2.1 21-Jan-2011  rmind file Makefile was added on branch rmind-uvmplock on 2011-03-05 20:56:11 +0000
 1.3.20.1 18-May-2014  rmind sync with head
 1.3.16.2 03-Dec-2017  jdolecek update from HEAD
 1.3.16.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.3.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.3.4.2 06-Jun-2011  jruoho Sync with HEAD.
 1.3.4.1 10-Mar-2011  jruoho file Makefile was added on branch jruoho-x86intr on 2011-06-06 09:10:06 +0000
 1.4.6.2 19-Mar-2016  skrll Sync with HEAD
 1.4.6.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.7.4.1 17-Apr-2021  thorpej Sync with HEAD.
 1.7 13-Mar-2014  pooka rename component.c -> zfs_component.c
 1.6 10-Mar-2013  christos branches: 1.6.6;
Now that the auto-loading zfs bug has been fixed, the loading failed because
the devsw node was busied here. Since we load the devsw only for the purpose
of creating the device node in our virtual filesystem, detach it after we
are done so that the real module can reload it.
 1.5 10-Mar-2011  wiz branches: 1.5.2; 1.5.6; 1.5.8; 1.5.18;
When panicing, at least tell the _real_ reason.
 1.4 10-Mar-2011  pooka autocreate /dev/zfs. requested by riz
 1.3 21-Jan-2011  pooka no longer used
 1.2 21-Jan-2011  pooka don't perform tasks already done by zfs_modcmd
 1.1 18-Jan-2011  haad branches: 1.1.2;
Add support for compiling ZFS and Solaris modules as RUMP libraries. Add
some locking and rumpcopy primitives and refactor module building Makefiles
to work with both RUMP and kernel modules. This is first part of adding
support for regular test of zfs on NetBSD to hunt some bugs and make it
stable.

Ok by pooka@.
 1.1.2.1 08-Feb-2011  bouyer Sync with HEAD
 1.5.18.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.5.18.1 23-Jun-2013  tls resync from head
 1.5.8.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.5.6.2 06-Jun-2011  jruoho Sync with HEAD.
 1.5.6.1 10-Mar-2011  jruoho file component.c was added on branch jruoho-x86intr on 2011-06-06 09:10:06 +0000
 1.5.2.2 21-Apr-2011  rmind sync with head
 1.5.2.1 10-Mar-2011  rmind file component.c was added on branch rmind-uvmplock on 2011-04-21 01:42:16 +0000
 1.6.6.1 18-May-2014  rmind sync with head
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 18-Jan-2011  haad branches: 1.1.4; 1.1.8; 1.1.20; 1.1.38;
Add support for compiling ZFS and Solaris modules as RUMP libraries. Add
some locking and rumpcopy primitives and refactor module building Makefiles
to work with both RUMP and kernel modules. This is first part of adding
support for regular test of zfs on NetBSD to hunt some bugs and make it
stable.

Ok by pooka@.
 1.1.38.1 06-Apr-2015  skrll Sync with HEAD
 1.1.20.1 03-Dec-2017  jdolecek update from HEAD
 1.1.8.2 06-Jun-2011  jruoho Sync with HEAD.
 1.1.8.1 18-Jan-2011  jruoho file shlib_version was added on branch jruoho-x86intr on 2011-06-06 09:10:06 +0000
 1.1.4.2 05-Mar-2011  rmind sync with head
 1.1.4.1 18-Jan-2011  rmind file shlib_version was added on branch rmind-uvmplock on 2011-03-05 20:56:11 +0000
 1.3 07-May-2019  hannken Cleanup modules "solaris" and "zfs":

- Defer spa_config_load() until root is mounted.
- Restore the config path to "/etc/zfs/zpool.cache".
- Module "zfs" is type MODULE_CLASS_VFS and no longer depends on "rootvnode".
- Module "solaris" no longer depends on "mp_online".
- Fix rump component registration to not detach "/dev/zfs" if
it didn't attach it.
 1.2 26-Jan-2016  pooka branches: 1.2.18;
Put the kernelside rump kernel headers into <rump-sys> instead of
sprinkling them around the faction directories. Avoids having
to add a CPPFLAGS (or several) to pretty much every component
Makefile.

Leave compat headers around in the old locations.

The commit changes some autogenerated files, but I'll fix the
generators shortly and regen.
 1.1 13-Mar-2014  pooka branches: 1.1.4; 1.1.6; 1.1.10; 1.1.12;
rename component.c -> zfs_component.c
 1.1.12.1 19-Mar-2016  skrll Sync with HEAD
 1.1.10.3 03-Dec-2017  jdolecek update from HEAD
 1.1.10.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.10.1 13-Mar-2014  tls file zfs_component.c was added on branch tls-maxphys on 2014-08-20 00:04:39 +0000
 1.1.6.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.6.1 13-Mar-2014  yamt file zfs_component.c was added on branch yamt-pagecache on 2014-05-22 11:41:13 +0000
 1.1.4.2 18-May-2014  rmind sync with head
 1.1.4.1 13-Mar-2014  rmind file zfs_component.c was added on branch rmind-smpnet on 2014-05-18 17:46:17 +0000
 1.2.18.1 10-Jun-2019  christos Sync with HEAD

RSS XML Feed