Home | History | Annotate | Download | only in mk
History log of /src/share/mk/bsd.hostprog.mk
RevisionDateAuthorComments
 1.86  02-Nov-2024  christos make zstd a private library (for now)
 1.85  31-Oct-2024  christos Add zstd
 1.84  27-Mar-2021  simonb Make columns nicely aligned.
 1.83  04-Apr-2020  christos Add libgnuctf
 1.82  28-Oct-2019  maxv Add nvmmctl, with two commands for now.
 1.81  21-Jan-2019  christos branches: 1.81.2;
Most of the mv operations are to move temporary files to their final place.
Some use -f, others don't. This can lead to spurious build failures when
the user performing the build changes. Centralize, and always use -f.
 1.80  04-May-2018  christos branches: 1.80.2;
include bsd.hostinit.mk instead of bsd.init.mk
 1.79  25-Nov-2017  jmcneill branches: 1.79.2;
Add LIBREFUSE define for DPADD
 1.78  10-Oct-2017  christos add the rump resolver library.
 1.77  08-Feb-2017  kamil libpthread_dbg(3) deletion from the base distribution

libpthread_dbg(3) is a remnant library from the M:N thread model
(pre-NetBSD-5.0) API to introspect threads within a process and for use
of debuggers.

Currently in the 1:1 model it's not used in GDB neither in LLDB and it's
not either planned to be used. It's current function to read pthread_t
structures is realizable within a regular debugger capable to
instrospect objects within a tracee (GDB, LLDB...).

Remaining users of this API can still use this library from
pkgsrc/devel/libpthread_dbg.

Sponsored by <The NetBSD Foundation>
 1.76  01-Jan-2016  christos branches: 1.76.2; 1.76.4;
Add the pthread libraries, documented already in bsd.README; sort
 1.75  22-Nov-2015  kamil Add new predefined value for DPADD: LIBPANEL
 1.74  01-Dec-2014  erh PR toolchain/9618: add ".d" to MKDEP_SUFFIXES so the depend files are rebuilt
if any of their dependencies (i.e. the files they refer to) are changed.
This allows changes to transitive included headers to be handled properly.
 1.73  10-Apr-2014  plunky the value of HOST_MKDEP previously depended on USETOOLS;
make it do so again, and centralise the USETOOLS=no case
into bsd.host.mk
 1.72  29-Oct-2013  joerg branches: 1.72.2;
Unbreak src/tools usage of C++.
 1.71  14-Jun-2013  tsutsui Invoke tools/binstall/mkmanifest for Cygwin via ${HOST_SH}.
Fixes builds using source sets that drop executable bits.
 1.70  11-Apr-2013  christos add new libevent2 libraries.
 1.69  17-Feb-2013  christos Add a hook to create a manifest file if needed under cygwin
 1.68  16-Feb-2013  jmmv Hook Lutok into the build. This is all protected by the MKKYUA guard.
 1.67  29-Feb-2012  tron branches: 1.67.2;
Move "libexpat" from X11 into base which fixes PR lib/40346.
This change was approved by the Core Group.
 1.66  13-Oct-2011  joerg branches: 1.66.2; 1.66.4;
Hook up SQLite into the build
 1.65  07-Oct-2011  mrg obsolete libgcc_pic and friends. all libgcc's are supposed to be pic
for platforms with shlibs already (and are.)

this obsoletes our hacks for the libgcc specs to use libgcc_pic, and
fixes a couple of other issues reported to me directly.
 1.64  10-Sep-2011  apb Move all "clean" and "cleandir" processing to a new bsd.clean.mk
file, as proposed in tech-toolchain.
 1.63  05-Jun-2011  christos add libgcc_pic dependency.
 1.62  24-Mar-2011  bouyer branches: 1.62.2;
Add a new libquota library, which contains some blocks to build and/or
parse quota plists; as well as a getfsquota() function to retrieve quotas
for a single id from a single filesystem (whatever filesystem this is:
a local quota-enabled fs or NFS). This is build on functions getufsquota()
(for local filesystems with UFS-like quotas) and getnfsquota();
which are also available to userland programs.
move functions from quota2_subr.c to libquota or libprop as appropriate,
and ajust in-tree quota tools.
move some declarations from kernel headers to either sys/quota.h or
quota/quota.h as appropriate. ufs/ufs/quota.h still installed because
it's needed by other installed ufs headers.
ufs/ufs/quota1.h still installed as a quick&dirty way to get a code
using the old quotactl() to compile (just include ufs/ufs/quota1.h instead of
ufs/ufs/quota.h - old code won't compile without this change and this is
on purpose).
Discussed on tech-kern@ and tech-net@ (long thread, but not much about
libquota itself ...)
 1.61  20-Feb-2011  jmmv Define LIBATF_C and LIBATF_CXX to point to their corresponding .a files and
use these to properly set DPADD for test programs.
 1.60  25-Dec-2010  joerg branches: 1.60.2;
If MKREPRO, transform ${NETBSDSRCDIR} to /usr/src and ${DESTDIR} to /
for the purpose of the C preprocessor. This avoids leaking the source
path into the final binaries.
 1.59  22-Nov-2010  pooka add LIBRUMPCLIENT
 1.58  02-Nov-2010  joerg Add LIBLZMA.
 1.57  03-Feb-2010  roy Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@
 1.56  12-May-2009  plunky remove libsdp as improved functionality has been enabled in libbluetooth.
 1.55  10-Apr-2009  apb Add LINKSOWN, LINKSGRP, and LINKSMODE variables for use by bsd.links.mk
when installing hard links. They have no effect except when using a
metalog, in which case the information is added to the metalog. In
the future, these variables may be replaced by a method for explicitly
recording hard links in a metadata log.

Also change a few things that called ${INSTALL_LINK} without going
through bsd.links.mk.

Reviewed by perry and joerg. This should fix PR 24457 and PR 41155.
 1.54  19-Nov-2008  pooka branches: 1.54.2;
Split vfs out of rumpkern into rumpvfs. Non-fs rumps no longer
include the file system code. File system rumps explicitly need
to include rumpvfs from now on.
 1.53  02-Oct-2008  joerg branches: 1.53.2; 1.53.4;
Hook up libfetch and pkg_install update.
 1.52  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.51  26-Apr-2008  christos branches: 1.51.2;
make all shared libraries depend on libc.
 1.50  09-Nov-2006  christos branches: 1.50.16; 1.50.18;
Add ssp glue.
 1.49  22-Oct-2006  pooka libpuffs
 1.48  09-Oct-2006  mrg - clean up some comments to reality.
- retire LIBDCK, LIBG2C and (long broken) USE_LIBSTDCXX
- in bsd.hostprog.mk's LIBSTDCPP -> LIBSTDCC
- add LIBSUPCXX
- don't default USE_LIBSTDCXX or USE_GCC4 since they are
not used in the tree any where
- same with USE_XF86_4; retire it
- remove _SUPCXX handling in bsd.prog.mk

inspired by PR#26714.
 1.47  19-Jun-2006  gdamore Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.
 1.46  20-Mar-2006  christos remove KRB4 libraries (Jukka Salmi)
 1.45  02-Sep-2005  jwise Add proper support for using bsd.hostprog.mk to build c++-based host
programs -- doesn't affect current host tools build (groff is built the
Makefile.gnuhost way).

Provides {.cc,.cpp,.cxx,.C}.lo rule, associated variables, and HOSTPROG_CXX
support (mirroring PROG_CXX in bsd.prog.mk).

Tested with from-scratch `build.sh tools' and full system build.
 1.44  20-Jun-2004  jmc branches: 1.44.2;
Completely rework how tools/compat is done. Purge all uses/references to
_NETBSD_SOURCE as this makes cross building from older/newer versions of
NetBSD harder, not easier (and also makes the resulting tools 'different')

Wrap all required code with the inclusion of nbtool_config.h, attempt to
only use POSIX code in all places (or when reasonable test w. configure and
provide definitions: ala u_int, etc).

Reviewed by lukem. Tested on FreeBSD 4.9, Redhat Linux ES3, NetBSD 1.6.2 x86
NetBSD current (x86 and amd64) and Solaris 9.

Fixes PR's: PR#17762 PR#25944
 1.43  10-Jun-2004  lukem Be consistent in handling YHEADER, similar to Christos' fix in bsd.lib.mk 1.253
 1.42  21-May-2004  ross If you add a library, you need to define its DPADD symbol here.

Add LIBMAGIC.
 1.41  29-Jan-2004  lukem branches: 1.41.2;
Cosmetically tweak how .PHONY is used by (generally) providing it as a source,
instead of using it as a target with all the rules as its sources.
 1.40  27-Jan-2004  lukem Replace
:M-[IDU]*
with
:C/-([IDU])[ ]*/-\1/Wg:M-[IDU]*
so that arguments with whitespace after them work correctly.
Resolves [toolchain/18248] from Andrew White at Motorola.

Be consisent in this syntax; previously we'd sometimes we'd just have :M-[ID]*
which would ignore -Ufoo ...

(This needs :C///W support in make(1) that Simon Gerraty added for me :)
 1.39  02-Jan-2004  lukem Consistently test all variables that support a "yes"/"no" value with
${VAR} == "no"
or
${VAR} != "no"
(instead of against "yes"). Variables affected:
TOOLCHAIN_MISSING
HAVE_GCC3
USE_TOOLS_TOOLCHAIN
NEED_OWN_INSTALL_TARGET
USE_SHLIBDIR

Improve the documentation.
 1.38  26-Dec-2003  christos Add libstdc++
 1.37  16-Nov-2003  lukem simplify with _MKTARGET_LINK
 1.36  11-Nov-2003  dsl Set MKDEP_SUFFIXES to get additional targets in .depend instead of using
sed in .afterdepend. I don't think .afterdepend is used anywhere any more.
 1.35  21-Oct-2003  lukem Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.
 1.34  19-Oct-2003  lukem Provide _MKMSG{BUILD,CREATE,COMPILE,FORMAT,INSTALL,LINK,LEX,YACC} to display
${_MKMSG} " ... {$.TARGET}" and use appropriately.

Provide _MKMSGLINK.m to provide "link" message by itself (without ${.TARGET})

Replace _MKSHCMD with _MKSHECHO
 1.33  18-Oct-2003  lukem Implement MAKEVERBOSE to control how "verbose" the standard make(1) rules are.
Supported values:
0 Minimal output ("quiet")
1 Describe what is occurring
2 Describe what is occurring and echo the actual command ("verbose")
This is the default, and is equivalent to the previous behaviour.
 1.32  01-Aug-2003  lukem Rework how dependency generation is performed:

* DPSRCS contains extra dependencies, but is _NOT_ added to CLEANFILES.
This is a change of behaviour. If a Makefile wants the clean semantics
it must specifically append to CLEANFILES.
Resolves PR toolchain/5204.

* To recap: .d (depend) files are generated for all files in SRCS and DPSRCS
that have a suffix of: .c .m .s .S .C .cc .cpp .cxx

* If YHEADER is set, automatically add the .y->.h to DPSRCS & CLEANFILES

* Ensure that ${OBJS} ${POBJS} ${LOBJS} ${SOBJS} *.d depend upon ${DPSRCS}

* Deprecate the (short lived) DEPENDSRCS


Update the various Makefiles to these new semantics; generally either
adding to CLEANFILES (because DPSRCS doesn't do that anymore), or replacing
specific .o dependencies with DPSRCS entries.

Tested with "make -j 8 distribution" and "make distribution".
 1.31  28-Jul-2003  lukem be consistent when adding *.y and *.l to DPSRCS
 1.30  18-Jul-2003  lukem whitespace cleanup
 1.29  16-Jul-2003  itojun stop installing install libtelnet. build under lib/libtelnet and reference
it from usr.bin/telnet and libexec/telnetd.
(reason for separate build: compiler flags)
 1.28  12-Jun-2003  provos add LIBEVENT
 1.27  11-Jun-2003  msaitoh catch signal 1,2,3,13 and 15 to clean /tmp/_dependXXX
 1.26  14-May-2003  dbj remove dependencies on ${LIBC} ${LIBM} and ${LIBTERMCAP} static libraries
from host tool targets. Commits fix from PR toolchain/21495
 1.25  17-Sep-2002  thorpej * Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
an external toolchain (e.g. /usr/local/gnu). This enables the cross-build
framework even for TOOLCHAIN_MISSING platforms.

If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
unconditionally set to "no", since the bits are not there to build.

If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
since the external toolchain's compiler is not in-sync with the
in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
that file can use it.
 1.24  29-Mar-2002  tv COPTS is for target objects, not host objects.
 1.23  03-Jan-2002  tv Add more tolerant script-based implementation of mkdep for host tool
compiles. Based loosely on mkdep.old.compiler (so CSRG license copied),
but now uses just one rewrite (awk) process per cpp invocation and
determines the proper way to run cpp and awk via a "configure" script.

Use HOST_MKDEP in bsd.hostlib/hostprog.mk (defaulting to the old override
value of MKDEP), and give it a TOOLDIR equivalent in bsd.own.mk.
 1.22  14-Nov-2001  tv C/..$/.c/ -> C/\..$/.c/
 1.21  14-Nov-2001  tv Remove SHAREDSTRINGS logic for host programs; this is unnecessary here.
 1.20  13-Nov-2001  tv Move host program overrides of INSTALL and MKDEP to <bsd.hostprog.mk>.
 1.19  12-Nov-2001  tv Set CFLAGS and CPPFLAGS for the benefit of <bsd.dep.mk>, and move the
inclusion of <bsd.sys.mk> to the top to get defaults. (Dependency handling
needs a cleanup, and will get one soon....)
 1.18  11-Nov-2001  tv Affix the ${HOST_OSTYPE} info to the end of the objdir name if OBJMACHINE
is set (and MAKEOBJDIR[PREFIX] is not in use). This permits multiple hosts
to compile hostprogs (not just src/tools) for a given target without
colliding with each other.

Currently restricted only to new toolchain builds, as this requires a new
make(1) in order to function properly.
 1.17  02-Nov-2001  tv Improve readability and reduce redundant redundancy in share/mk; add some
descriptive comments. The guts of hostprog, lib, and prog are mostly
unchanged; this will be done in another pass.

Make several things work properly with UNPRIVILEGED set, and make the
install-time "cmp" logic work for MANZ. Also reimplement INCS{DIR,NAME}_foo
(requested by wiz) in a backwards compatible way.

Reviewed by christos.
 1.16  25-Oct-2001  thorpej Sigh, back out previous -- it is necessary inorder for the depend
(and dependall) targets to work properly.

XXX THIS IS BROKEN. It's highly questionalble that we should be applying
our .depend-generating rules to a host system -- the mkdep we currently
use assumes GCC.
 1.15  25-Oct-2001  thorpej Remove an unnecessary "CPPFLAGS=${HOST_CPPFLAGS}" -- the host tool
targets use HOST_CPPFLAGS exclusively, and keeping this assignment
can get us into some unfortuante recursion trouble.
 1.14  19-Oct-2001  tv Add .NOPATH for all files generated from .l or .y files in SRCS. Fixes PRs
bin/14187 and lib/14239.

Also simplify the handling of these transforms to .c and .h files a bit by
leveraging make's builtin macro operators.
 1.13  25-Sep-2001  tv Set .NOPATH on program to build to make sure it goes in .OBJDIR.
Problem noted by <seebs@plethora.net>.
 1.12  13-Sep-2001  thorpej Add LIBPCI.
 1.11  14-Aug-2001  tv Rather than explicitly saying "clean cleandir:" all the time, make clean
a dependency of cleandir (so that "make cleandir" implies "make clean").
 1.10  01-Jun-2001  tv Make "distclean" a REAL synonym for "cleandir" by actually aliasing it
in <bsd.own.mk>, rather than sprinkling it in all the .mk files (and
some Makefiles throughout the tree).
 1.9  04-Jan-2001  garbled Add LIBCDK and LIBFORM definitions
 1.8  31-Oct-2000  itojun add ${LIBINTL} for use with DPADD.
 1.7  07-Mar-2000  veego Remove unused libahdi.
It will be replaced in the future with a more generic libdisklabel.
 1.6  05-Feb-2000  jdc Add libahdi entries.
 1.5  22-Jan-2000  mycroft Make `dependall' play nicely with SUBDIR, using a hack similar to `realinstall'
for both `depend' and `all'.
Also, remove the old hack that invokes an extra shell for .depend, now that
make(1) has been fixed.
 1.4  23-Nov-1999  blymn Added libmenu library.
 1.3  24-Sep-1999  wrstuden Zap proginstall and scriptinstall - they don't make sense for hostprog.
 1.2  14-Sep-1999  perry branches: 1.2.2;
Add a "dependall" target, which does a "make depend" and then "make all"
in a single directory. This is useful in "make build" because by doing
the build immediately after the depend, all sources will typically
still be in the buffer cache, thus saving significant time over doing
a "make depend" on all the directories and then a "make all".
 1.1  14-Jul-1999  wrstuden Add bsd.hostprog.mk, a makefile for making programs used during
the build which will run on the build machine.
 1.2.2.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.41.2.2  22-Jun-2004  tron Pull up revision 1.44 (requested by jmc in ticket #527):
Completely rework how tools/compat is done. Purge all uses/references to
_NETBSD_SOURCE as this makes cross building from older/newer versions of
NetBSD harder, not easier (and also makes the resulting tools 'different')
Wrap all required code with the inclusion of nbtool_config.h, attempt to
only use POSIX code in all places (or when reasonable test w. configure and
provide definitions: ala u_int, etc).
Reviewed by lukem. Tested on FreeBSD 4.9, Redhat Linux ES3, NetBSD 1.6.2 x86
NetBSD current (x86 and amd64) and Solaris 9.
Fixes PR's: PR#17762 PR#25944
 1.41.2.1  22-May-2004  he Pull up revision 1.42 (requested by ross in ticket #373):
If you add a library, you need to define its DPADD symbol
here. Add LIBMAGIC.
 1.44.2.1  04-Sep-2005  tron Pull up following revision(s) (requested by jwise in ticket #737):
share/mk/bsd.sys.mk: revision 1.124
share/mk/bsd.hostprog.mk: revision 1.45
Add proper support for using bsd.hostprog.mk to build c++-based host
programs -- doesn't affect current host tools build (groff is built the
Makefile.gnuhost way).
Provides {.cc,.cpp,.cxx,.C}.lo rule, associated variables, and HOSTPROG_CXX
support (mirroring PROG_CXX in bsd.prog.mk).
Tested with from-scratch `build.sh tools' and full system build.
 1.50.18.1  18-May-2008  yamt sync with head.
 1.50.16.2  05-Oct-2008  mjf Sync with HEAD.
 1.50.16.1  02-Jun-2008  mjf Sync with HEAD.
 1.51.2.1  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.53.4.1  06-Jun-2009  bouyer branches: 1.53.4.1.2;
Pull up following revision(s) (requested by snj in ticket #790):
share/mk/bsd.lib.mk: revision 1.298
share/mk/bsd.man.mk: revision 1.100
share/mk/bsd.hostprog.mk: revision 1.55
distrib/sets/maketars: revision 1.66
share/zoneinfo/Makefile: revision 1.43
share/mk/bsd.kmodule.mk: revision 1.19
usr.bin/xinstall/xinstall.c: revisions 1.106 - 1.108 via patch
share/mk/bsd.prog.mk: revision 1.241
share/dict/Makefile: revision 1.17
share/mk/bsd.README: revision 1.249
distrib/common/parselist.awk: revision 1.16
share/mk/bsd.links.mk: revision 1.34
Explicitly sort entries on preparing set files from METALOG.
METALOG could have different order due to install(1) race
on parallel builds, and mtree(8) doesn't sort files.
Should fix inconsistent shared sets among builds as seen in
/pub/NetBSD-daily/netbsd-5/200904010000Z/shared/ and
/pub/NetBSD-daily/netbsd-5/200904010002Z/shared/ dirs.
Okay'ed by snj@.
Changes for installing with a metalog:
* When installing hard links and using a metalog, if -o, -g, -m, or -f
args were explicitly specified on the command line, then believe them,
but do not implicitly believe uname/gname/mode/flags from the file
system.
* Output fields in the same order used by mtree.
Fix -Wshadow -Wcast-qual issues
Re-calculate size and digestresult after stripping, to ensure that
correct values appear in the metalog.
Add LINKSOWN, LINKSGRP, and LINKSMODE variables for use by bsd.links.mk
when installing hard links. They have no effect except when using a
metalog, in which case the information is added to the metalog. In
the future, these variables may be replaced by a method for explicitly
recording hard links in a metadata log.
Also change a few things that called ${INSTALL_LINK} without going
through bsd.links.mk.
Reviewed by perry and joerg. This should fix PR 24457 and PR 41155.
 1.53.4.1.2.1  21-Apr-2010  matt sync to netbsd-5
 1.53.2.1  06-Jun-2009  bouyer Pull up following revision(s) (requested by snj in ticket #790):
share/mk/bsd.lib.mk: revision 1.298
share/mk/bsd.man.mk: revision 1.100
share/mk/bsd.hostprog.mk: revision 1.55
distrib/sets/maketars: revision 1.66
share/zoneinfo/Makefile: revision 1.43
share/mk/bsd.kmodule.mk: revision 1.19
usr.bin/xinstall/xinstall.c: revisions 1.106 - 1.108 via patch
share/mk/bsd.prog.mk: revision 1.241
share/dict/Makefile: revision 1.17
share/mk/bsd.README: revision 1.249
distrib/common/parselist.awk: revision 1.16
share/mk/bsd.links.mk: revision 1.34
Explicitly sort entries on preparing set files from METALOG.
METALOG could have different order due to install(1) race
on parallel builds, and mtree(8) doesn't sort files.
Should fix inconsistent shared sets among builds as seen in
/pub/NetBSD-daily/netbsd-5/200904010000Z/shared/ and
/pub/NetBSD-daily/netbsd-5/200904010002Z/shared/ dirs.
Okay'ed by snj@.
Changes for installing with a metalog:
* When installing hard links and using a metalog, if -o, -g, -m, or -f
args were explicitly specified on the command line, then believe them,
but do not implicitly believe uname/gname/mode/flags from the file
system.
* Output fields in the same order used by mtree.
Fix -Wshadow -Wcast-qual issues
Re-calculate size and digestresult after stripping, to ensure that
correct values appear in the metalog.
Add LINKSOWN, LINKSGRP, and LINKSMODE variables for use by bsd.links.mk
when installing hard links. They have no effect except when using a
metalog, in which case the information is added to the metalog. In
the future, these variables may be replaced by a method for explicitly
recording hard links in a metadata log.
Also change a few things that called ${INSTALL_LINK} without going
through bsd.links.mk.
Reviewed by perry and joerg. This should fix PR 24457 and PR 41155.
 1.54.2.1  13-May-2009  jym Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 1.60.2.1  05-Mar-2011  bouyer Sync with HEAD
 1.62.2.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.66.4.1  02-Mar-2012  riz Pull up following revision(s) (requested by tron in ticket #72):
external/mit/xorg/lib/fontconfig/src/Makefile: revision 1.8
distrib/sets/lists/xbase/shl.mi: revision 1.45
distrib/sets/lists/comp/ad.mips64eb: revision 1.72
external/mit/expat/lib/Makefile: revision 1.1
external/mit/xorg/tools/fc-cache/Makefile: revision 1.6
x11/lib/fontconfig/src/Makefile: revision 1.11
distrib/sets/lists/xcomp/mi: revision 1.134
distrib/sets/lists/base/md.amd64: revision 1.159
distrib/sets/lists/base/ad.mips64eb: revision 1.85
external/mit/xorg/lib/dri/dri.mk: revision 1.11
external/mit/expat/lib/Makefile.inc: revision 1.1
external/mit/expat/Makefile.inc: revision 1.1
distrib/sets/lists/base/shl.mi: revision 1.619
distrib/sets/lists/comp/shl.mi: revision 1.212
distrib/sets/lists/man/mi: revision 1.1382
distrib/sets/lists/comp/mi: revision 1.1743
x11/lib/expat/Makefile: file removal
lib/Makefile: revision 1.182
external/mit/expat/Makefile: revision 1.1
external/mit/Makefile: revision 1.2
distrib/sets/lists/xcomp/shl.mi: revision 1.31
external/mit/xorg/bin/xmlwf/Makefile: revision 1.4
external/mit/xorg/lib/Makefile: revision 1.25
external/mit/expat/lib/libexpat/Makefile: revision 1.1
distrib/sets/lists/comp/ad.mips64el: revision 1.72
x11/lib/expat/shlib_version: file removal
external/mit/xorg/lib/expat/expat_config.h: file removal
external/mit/expat/bin/xmlwf/Makefile: revision 1.1
share/mk/bsd.prog.mk: revision 1.274
distrib/sets/lists/base/ad.mips64el: revision 1.84
x11/lib/Makefile: revision 1.11
external/mit/xorg/lib/expat/Makefile: file removal
external/mit/xorg/lib/expat/shlib_version: file removal
distrib/sets/lists/comp/md.amd64: revision 1.158
distrib/sets/lists/base/mi: revision 1.987
distrib/sets/lists/base/md.sparc64: revision 1.150
share/mk/bsd.README: revision 1.294
external/mit/expat/bin/Makefile.inc: revision 1.1
distrib/sets/lists/xbase/mi: revision 1.113
external/mit/expat/lib/libexpat/shlib_version: revision 1.1
external/mit/expat/lib/libexpat/expat_config.h: revision 1.1
distrib/sets/lists/comp/md.sparc64: revision 1.141
share/mk/bsd.hostprog.mk: revision 1.67
external/mit/expat/bin/Makefile: revision 1.1
Move &quot;libexpat&quot; from X11 into base which fixes PR lib/40346.
This change was approved by the Core Group.
 1.66.2.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.66.2.1  17-Apr-2012  yamt sync with head
 1.67.2.3  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.67.2.2  23-Jun-2013  tls resync from head
 1.67.2.1  25-Feb-2013  tls resync with head
 1.72.2.1  10-Aug-2014  tls Rebase.
 1.76.4.1  21-Apr-2017  bouyer Sync with HEAD
 1.76.2.1  20-Mar-2017  pgoyette Sync with HEAD
 1.79.2.2  26-Jan-2019  pgoyette Sync with HEAD
 1.79.2.1  21-May-2018  pgoyette Sync with HEAD
 1.80.2.3  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.80.2.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.80.2.1  10-Jun-2019  christos Sync with HEAD
 1.81.2.1  10-Nov-2019  martin Pull up following revision(s) (requested by maxv in ticket #405):

usr.sbin/nvmmctl/nvmmctl.8: revision 1.2
lib/libnvmm/libnvmm.3: revision 1.24
sys/dev/nvmm/nvmm.h: revision 1.11
lib/libnvmm/libnvmm.3: revision 1.25
sys/dev/nvmm/x86/nvmm_x86.h: revision 1.16
sys/dev/nvmm/nvmm.h: revision 1.12
sys/dev/nvmm/x86/nvmm_x86.h: revision 1.17
tests/lib/libnvmm/h_mem_assist.c: revision 1.12
sys/dev/nvmm/x86/nvmm_x86.h: revision 1.18
share/mk/bsd.hostprog.mk: revision 1.82
lib/libnvmm/libnvmm.c: revision 1.15
distrib/sets/lists/base/md.amd64: revision 1.281
tests/lib/libnvmm/h_mem_assist.c: revision 1.13
lib/libnvmm/libnvmm.c: revision 1.16
tests/lib/libnvmm/h_mem_assist.c: revision 1.14
lib/libnvmm/libnvmm_x86.c: revision 1.32
lib/libnvmm/libnvmm.c: revision 1.17
tests/lib/libnvmm/h_mem_assist.c: revision 1.15
lib/libnvmm/libnvmm_x86.c: revision 1.33
lib/libnvmm/libnvmm.c: revision 1.18
usr.sbin/nvmmctl/Makefile: revision 1.1
tests/lib/libnvmm/h_mem_assist_asm.S: revision 1.7
tests/lib/libnvmm/h_mem_assist.c: revision 1.16
lib/libnvmm/libnvmm_x86.c: revision 1.34
usr.sbin/nvmmctl/Makefile: revision 1.2
tests/lib/libnvmm/h_mem_assist_asm.S: revision 1.8
tests/lib/libnvmm/h_mem_assist.c: revision 1.17
sys/dev/nvmm/nvmm_internal.h: revision 1.13
lib/libnvmm/libnvmm_x86.c: revision 1.35
lib/libnvmm/libnvmm_x86.c: revision 1.36
usr.sbin/postinstall/postinstall.in: revision 1.8
lib/libnvmm/libnvmm_x86.c: revision 1.37
lib/libnvmm/libnvmm_x86.c: revision 1.38
lib/libnvmm/libnvmm_x86.c: revision 1.39
usr.sbin/Makefile: revision 1.282
lib/libnvmm/nvmm.h: revision 1.13
lib/libnvmm/nvmm.h: revision 1.14
lib/libnvmm/nvmm.h: revision 1.15
sys/dev/nvmm/nvmm.c: revision 1.23
lib/libnvmm/nvmm.h: revision 1.16
sys/dev/nvmm/nvmm.c: revision 1.24
lib/libnvmm/nvmm.h: revision 1.17
sys/dev/nvmm/nvmm.c: revision 1.25
tests/lib/libnvmm/h_io_assist.c: revision 1.9
etc/MAKEDEV.tmpl: revision 1.209
tests/lib/libnvmm/h_io_assist.c: revision 1.10
tests/lib/libnvmm/h_io_assist.c: revision 1.11
etc/group: revision 1.35
distrib/sets/lists/man/mi: revision 1.1660
sys/dev/nvmm/x86/nvmm_x86_vmx.c: revision 1.40
sys/dev/nvmm/x86/nvmm_x86_vmx.c: revision 1.41
sys/dev/nvmm/x86/nvmm_x86_vmx.c: revision 1.42
sys/dev/nvmm/x86/nvmm_x86_vmx.c: revision 1.43
sys/dev/nvmm/x86/nvmm_x86_vmx.c: revision 1.44
sys/dev/nvmm/x86/nvmm_x86_svm.c: revision 1.51
sys/dev/nvmm/nvmm_ioctl.h: revision 1.8
sys/dev/nvmm/x86/nvmm_x86_svm.c: revision 1.52
sys/dev/nvmm/nvmm_ioctl.h: revision 1.9
sys/dev/nvmm/x86/nvmm_x86_svm.c: revision 1.53
usr.sbin/nvmmctl/nvmmctl.c: revision 1.1
lib/libnvmm/libnvmm.3: revision 1.20
distrib/sets/lists/debug/md.amd64: revision 1.106
lib/libnvmm/libnvmm.3: revision 1.21
lib/libnvmm/libnvmm.3: revision 1.22
usr.sbin/nvmmctl/nvmmctl.8: revision 1.1
lib/libnvmm/libnvmm.3: revision 1.23

Fix incorrect parsing: the R/M field uses a special GPR map when the
address size is 16 bits, regardless of the actual operating mode. With
this special map there can be two registers referenced at once, and
also disp16-only.
Implement this special behavior, and add associated tests. While here
simplify a few things.
With this in place, the Windows 95 installer initializes correctly.
Part of PR/54611.
add missing initializer
Implement XCHG, add associated tests, and add comments to explain. With
this in place the Windows 95 installer completes successfuly.
Part of PR/54611.
Improve nvmm_vcpu_dump().
Put back 'default', because llvm apparently doesn't realize that all cases
are covered in the switch.
Miscellaneous changes in NVMM, to address several inconsistencies and
issues in the libnvmm API.
- Rename NVMM_CAPABILITY_VERSION to NVMM_KERN_VERSION, and check it in
libnvmm. Introduce NVMM_USER_VERSION, for future use.
- In libnvmm, open "/dev/nvmm" as read-only and with O_CLOEXEC. This is to
avoid sharing the VMs with the children if the process forks. In the
NVMM driver, force O_CLOEXEC on open().
- Rename the following things for consistency:
nvmm_exit* -> nvmm_vcpu_exit*
nvmm_event* -> nvmm_vcpu_event*
NVMM_EXIT_* -> NVMM_VCPU_EXIT_*
NVMM_EVENT_INTERRUPT_HW -> NVMM_VCPU_EVENT_INTR
NVMM_EVENT_EXCEPTION -> NVMM_VCPU_EVENT_EXCP
Delete NVMM_EVENT_INTERRUPT_SW, unused already.
- Slightly reorganize the MI/MD definitions, for internal clarity.
- Split NVMM_VCPU_EXIT_MSR in two: NVMM_VCPU_EXIT_{RD,WR}MSR. Also provide
separate u.rdmsr and u.wrmsr fields. This is more consistent with the
other exit reasons.
- Change the types of several variables:
event.type enum -> u_int
event.vector uint64_t -> uint8_t
exit.u.*msr.msr: uint64_t -> uint32_t
exit.u.io.type: enum -> bool
exit.u.io.seg: int -> int8_t
cap.arch.mxcsr_mask: uint64_t -> uint32_t
cap.arch.conf_cpuid_maxops: uint64_t -> uint32_t
- Delete NVMM_VCPU_EXIT_MWAIT_COND, it is AMD-only and confusing, and we
already intercept 'monitor' so it is never armed.
- Introduce vmx_exit_insn() for NVMM-Intel, similar to svm_exit_insn().
The 'npc' field wasn't getting filled properly during certain VMEXITs.
- Introduce nvmm_vcpu_configure(). Similar to nvmm_machine_configure(),
but as its name indicates, the configuration is per-VCPU and not per-VM.
Migrate and rename NVMM_MACH_CONF_X86_CPUID to NVMM_VCPU_CONF_CPUID.
This becomes per-VCPU, which makes more sense than per-VM.
- Extend the NVMM_VCPU_CONF_CPUID conf to allow triggering VMEXITs on
specific leaves. Until now we could only mask the leaves. An uint32_t
is added in the structure:
uint32_t mask:1;
uint32_t exit:1;
uint32_t rsvd:30;
The two first bits select the desired behavior on the leaf. Specifying
zero on both resets the leaf to the default behavior. The new
NVMM_VCPU_EXIT_CPUID exit reason is added.
Three changes in libnvmm:
- Add 'mach' and 'vcpu' backpointers in the nvmm_io and nvmm_mem
structures.
- Rename 'nvmm_callbacks' to 'nvmm_assist_callbacks'.
- Rename and migrate NVMM_MACH_CONF_CALLBACKS to NVMM_VCPU_CONF_CALLBACKS,
it now becomes per-VCPU.
Update the libnvmm man page:
- Sync the naming with reality.
- Replace "relevant" by "desired" and "virtualizer" by "emulator", closer
to what I meant.
- Add a "VCPU Configuration" section.
- Add a "Machine Ownership" section.
Add the "nvmm" group, and make nvmm_init() public. Sent to tech-kern@ a few
days ago.
Use the new PTE naming, and define CR3_FRAME_* separately. No functional
change.
Add a new VCPU conf option, that allows userland to request VMEXITs after a
TPR change. This is supported on all Intel CPUs, and not-too-old AMD CPUs.
The reason for wanting this option is that certain OSes (like Win10 64bit)
manage interrupt priority in hardware via CR8 directly, and for these OSes,
the emulator may want to sync its internal TPR state on each change.
Add two new fields in cap.arch, to report the conf capabilities. Report TPR
only on Intel for now, not AMD, because I don't have a recent AMD CPU on
which to test.
Mask CPUID leaf 0x0A on Intel, because we don't want the guest to try (and
fail) to probe the PMC MSRs. This avoids "Unexpected WRMSR" warnings in
qemu-nvmm.
Add PCID support in the guests. This speeds up most 64bit guests, because
since Meltdown, everybody uses PCID (including NetBSD).
Change the way root_owner works: consider the calling process as root_owner
not if it has root privileges, but if the /dev/nvmm device was opened with
write permissions. Introduce the undocumented nvmm_root_init() function to
achieve that.
The goal is to simplify the logic and have more granularity, eg if we want
a monitoring agent to access VMs but don't want to give this agent real
root access on the system.
A few changes:
- Use smaller types in struct nvmm_capability.
- Use smaller type for nvmm_io.port.
- Switch exitstate to a compacted structure.
Add nram in struct nvmm_ctl_mach_info.
Add nvmmctl, with two commands for now.
Macro tidyness.
Sort SEE ALSO.
should be fork(2), noticed by wiz
Add debug entry for newly introduced nvmmctl utility.
Annotate a covering switch as such to avoid warnings about missing
returns.
Forgot to put nvmmctl in the "nvmm" group.
Add nvmm group.

RSS XML Feed