18692 Commits

Author SHA1 Message Date
eadler
4332772a77 mailaddr(7): wave goodbye
The information here is somewhere between ancient to obsolete.
It refers to a time in the internet's history when manual routing
was still useful, talks about UUCP as if its modern, and refers
to documents which I had trouble tracking down.

It seems unlikely that a manual page in this form would be useful, so
just remove it.

Reviewed By: imp, tsoome, bdrewery(?)
Differential Revision: https://reviews.freebsd.org/D12924
2017-11-11 07:00:40 +00:00
bdrewery
55bfa6c8d1 DIRDEPS_BUILD: Fix after r325417.
DIRDEPS_BUILD works just fine without defining __objdir or dealing with any of
this logic.  It handles its own TARGET_SPEC in local.meta.sys.mk as well.  Just
let it do its own thing.

Sponsored by:	Dell EMC Isilon
2017-11-11 01:11:00 +00:00
bdrewery
55528ffe5b Don't work out of a TARGET. directory if TARGET_ARCH is not defined.
This fixes 'TARGET=<target> make universe_kernels' creating an empty TARGET.
directory and showing it in SIGINFO.

Sponsored by:	Dell EMC Isilon
2017-11-11 01:10:55 +00:00
bdrewery
d7ab7d8968 Handle MAKEOBJDIRPREFIX when already inside of .OBJDIR.
This can happen in obscure cases with things like the kernel build.

Sponsored by:	Dell EMC Isilon
2017-11-11 01:10:41 +00:00
imp
163d88e9d8 Move LOADER_{NO,}_GELI_SUPPORT to MK_LOADER_GELI
Transition to WITH/WITHOUT_LOADER_GELI to flag support or not of GELI
in the boot loaders. Add HAVE_GELI so components can flag they need
support (since it's too large to include everywhere). Add temporary
warnings for the old forms to ease transition.

Also, update test script to build without GELI on x86.

Sponsored by: Netflix
2017-11-10 23:54:48 +00:00
imp
e5dc9a3196 Replace LOADER_FIREWIRE_SUPPORT variable
Rename LOADER_FIREWIRE_SUPPORT to MK_LOADER_FIREWIRE. Only build
libfirewire when this is "yes". Add note to updating. Fix build script
to build this for x86 so the option doesn't decay. sparc64 supports
ZFS, so also build it MK_ZFS=no.

Sponsored by: Netflix
2017-11-10 23:54:41 +00:00
bdrewery
d32faa973f AUTO_OBJ: Don't create .OBJDIR with 'make -n'.
Sponsored by:	Dell EMC Isilon
2017-11-10 20:10:05 +00:00
bdrewery
be0767926c Allow consuming Makefiles to add to DEPENDFILES.
Sponsored by:	Dell EMC Isilon
2017-11-10 20:09:11 +00:00
bdrewery
b15d98fce2 No need to run 'make depend' with FAST_DEPEND logic in-tree.
Sponsored by:	Dell EMC Isilon
2017-11-10 19:53:17 +00:00
bdrewery
f3e5ae828d AUTO_OBJ: No need to tree-walk with 'make obj' here.
Sponsored by:	Dell EMC Isilon
2017-11-10 19:53:14 +00:00
bdrewery
a15cce738f Pass down any PROG-specific buildopts for forwarded targets.
This currently has no impact.

Sponsored by:	Dell EMC Isilon
2017-11-10 19:53:11 +00:00
bdrewery
d957ea7dc5 Don't append TARGET.TARGET_ARCH if OBJTOP is already set.
This avoids flipping the expected TARGET.TARGET_ARCH suffix / OBJTOP when it is
already set by a parent make which wants to control it more such as in
something like 'make native-xtools'.

Sponsored by:	Dell EMC Isilon
2017-11-10 19:52:31 +00:00
tijl
51458520c7 Remove deprecated OVERRIDE_LINUX_BASE_PORT. It can be set via
DEFAULT_VERSIONS now (e.g. DEFAULT_VERSIONS+=linux=c7).

Noticed by:	xmj
MFC after:	2 weeks
2017-11-10 11:19:47 +00:00
bdrewery
279b5ad0a1 Add some missed OBJS_SRCS_FILTER from r323637.
Sponsored by:	Dell EMC Isilon
2017-11-10 08:00:09 +00:00
bdrewery
4cde43f98f Add support for CRUNCH_LIBS_ for specifying a lib only for 1 prog.
Sponsored by:	Dell EMC Isilon
2017-11-10 07:52:46 +00:00
bdrewery
e10157c915 Handle some .OBJDIR == .CURDIR cases.
- If OBJROOT is SRCTOP then don't add on TARGET.TARGET_ARCH.  This
  only happens at the top-level, and for sub-directories when the
  user is clever with MAKEOBJDIRPREFIX=/.
- Don't bother checking 'test -w' on .CURDIR.
- Properly set OBJTOP/OBJROOT to SRCTOP in various needed cases.
- Check if the OBJDIR is writable even for *clean* targets since it
  determines which .OBJDIR the user gets;  If they cannot write to an
  existing eligible .OBJDIR then it needs to clean in .CURDIR instead.
- Add guard to cleanworld/cleanuniverse from removing SRCTOP.
- Ensure OBJTOP is proper for .OBJDIR=.CURDIR which fixes finding
  libraries since src.libnames.mk is based on OBJTOP.
- Avoid some chdir(2) for modifying .OBJDIR

Sponsored by:	Dell EMC Isilon
2017-11-10 02:09:33 +00:00
mjoras
e3f689be58 Correct mistake in manpage.
Reported by:	pluknet
Approved by:	rstone (mentor)
MFC with:	r325621
Pointy hat to:  mjoras
2017-11-09 23:36:10 +00:00
mjoras
9c18ca3bd2 Introduce EVENTHANDLER_LIST and some users.
This introduces a facility to EVENTHANDLER(9) for explicitly defining a
reference to an event handler list. This is useful since previously all
invokers of events had to do a locked traversal of the global list of
event handler lists in order to find the appropriate event handler list.
By keeping a pointer to the appropriate list an invoker can avoid this
traversal completely. The pointer is initialized with SYSINIT(9) during
the eventhandler stage. Users registering interest in events do not need
to know if the event is backed by such a list, since the list is added
to the global list of lists. As with lists that are not pre-defined it
is safe to register for the events before the list has been created.

This converts the process_* and thread_* events to using the new
facility, as these are events whose locked traversals end up showing up
significantly in ports build workflows (and presumably other workflows
with many short lived threads/procs). It may be advantageous to convert
other events to using the new facility.

The el_flags field is now unused, but leave it be so that this revision
can be MFC'd.

Reviewed by:	bdrewery, markj, mjg
Approved by:	rstone (mentor)
In collaboration with:  ian
MFC after:      4 weeks
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D12814
2017-11-09 22:51:48 +00:00
bdrewery
039afc98f9 Mark targets .PHONY.
This avoids the obvious of not running the target when expected, but
also avoids META_MODE from showing 'Building'.  This is mostly only
a problem when directly including bsd.obj.mk as many of these targets
were already .PHONY via bsd.sys.mk.

Sponsored by:	Dell EMC Isilon
2017-11-09 22:08:07 +00:00
bdrewery
a83be0f1ab META_MODE: Bmake 20171028 in r325340 simplifies the meta filename.
Now if the meta file is in the objdir, the objdir is stripped away
from the meta filename.

Sponsored by:	Dell EMC Isilon
2017-11-08 18:02:01 +00:00
eugen
8f68decc76 Add suitable knob ifconfig_<interface>_descr for static interface description.
Document availability of interface descriptions within rc.conf(5).

Approved by:	avg (mentor), mav (mentor)
MFC after:	3 days
2017-11-08 16:53:11 +00:00
bdrewery
dbcae4e49a AUTO_OBJ: Hide 'creating dirs' output with 'make -s'.
Reported by:	garga
Sponsored by:	Dell EMC Isilon
2017-11-08 16:03:58 +00:00
manu
6e098db7c8 ctl(4): Insert a new line after a sentence-ending full stop.
Reported by:	bjk
MFC after:	2 weeks
Sponsored by:	Gandi.net
X-MFC-With:  r325517
2017-11-08 13:06:41 +00:00
delphij
d1f288a04a Update arcmsr(4) to 1.40.00.01:
- Fix clear doorbell queue buffer for ADAPTER_TYPE_B
 - Fix release memory resource when detach device
 - Add support for ARC-1216, 1226 SAS 12Gb controllers
 - Declare some functions as static
 - Change checking dword read/write for IOP rqbuffer.

Many thanks to Areca for continuing to support FreeBSD.

Submitted by:	黃清隆 <ching2048 areca com tw>
MFC after:	2 weeks
2017-11-08 08:21:17 +00:00
bdrewery
62c99c166f Reenable AUTO_OBJ by default.
The problem with it was a bogus .OBJDIR in some cases where creation of
object directories were purposely not attempted, such as for 'make cleandir'
and in etc/ sub-directories.  In these cases bmake would start with a
bogus .OBJDIR like etc/ due to MAKEOBJDIR being a dynamic value based on
.CURDIR, SRCTOP, and OBJTOP.  OBJTOP would not yet be defined but is
during early src.sys.obj.mk.  That file and auto.obj.mk both were not
modifying .OBJDIR unless they expected to create the objdir.  Thus in
these cases the .OBJDIR was left as etc/* rather than fixed to the
proper .CURDIR.

The issues were fixed in r325404 and r325416.  An assertion to avoid the
bad .OBJDIR was added in r325405.

Sponsored by:	Dell EMC Isilon
2017-11-07 18:20:08 +00:00
manu
52e0023d7c ctl: Make max_luns and max_ports tunable variables instead of hardcoded
defines.

Reviewed by:	trasz (earlier version), bapt (earlier version), bcr (manpages)
MFC after:	2 Weeks
Sponsored by:	Gandi.net
Differential Revision:	https://reviews.freebsd.org/D12836
2017-11-07 16:59:52 +00:00
bdrewery
924e487caa Reapply r295227: Stop hiding link install commands.
This was lost in the release-pkg merge in r298107.

Sponsored by:	Dell EMC Isilon
2017-11-06 19:33:50 +00:00
ngie
5b81d31dfd Revert r325443
Despite the fact that it's a working solution, it doesn't follow the design
philosophy of only doing TARGET_* in Makefile.inc1 and special locations in
the source tree.

PR:		222925
Requested by:	imp
2017-11-05 20:01:00 +00:00
ngie
6b4d57b209 Fix paths for cross-built versions of lib/libclang_rt and hardfloat arm variants
- Define TARGET_CPUARCH and use in libclang_rt as the basis for CRTARCH

  When cross-compiling, the wrong architecture was being embedded in the
  libclang_rt binary filenames. It should be based on TARGET_ARCH (target), not
  MACHINE_ARCH (host).

  If TARGET_ARCH isn't defined (host-builds), fallback to MACHINE_ARCH.

- Define CRTARCH to armhf when TARGET/TARGET_ARCH are set to arm/armv[67]

  TARGET_ABI/TARGET_CPU in Makefile.inc1 sets the ABI to gnueabihf, which
  affects the clang lookup path per `getArchNameForCompilerRTLib(..)` in
  contrib/llvm/tools/clang/lib/Driver/ToolChain.cpp, so chase clang and
  Linux's assumed naming convention for hard-float arm architectures.

  CROSSENV (in Makefile.inc1) sets CPUTYPE/MACHINE(_ARCH)? to the
  TARGET*-relevant values when building the `libraries` target, so test
  those variables instead.

- Add OLD_FILES/OLD_LIBS entries for TARGET/TARGET_ARCH == arm/armv[67]. This
  impacts only arm/armv6 and arm/armv7.

PR:	222925
2017-11-05 19:38:51 +00:00
bcr
45f4d98ef9 Extend the synopsis section of md(4) to look more like other manpages
of this kind.  Describe how to compile the driver into the kernel
and how to load it as a module.
This is useful for people using the MINIMAL kernel configuration file.

PR:			218610
Submitted by:		Harald Schmalzbauer (bugzilla.freebsd@omnilan.de)
Reviewed by:		noone (1 month inactivity)
MFC after:		2 weeks
Differential Revision:	https://reviews.freebsd.org/D12271
2017-11-05 18:45:43 +00:00
bdrewery
9963a47393 Follow-up r325405: Fix assertion still for kernel module builds.
Apparently they have SRCTOP set, but won't have RELDIR set since they are
not in-tree.

Pointyhat to:	bdrewery
Reported by:	O. Hartmann <ohartmann@walstatt.org>, dhw
Tested by:	dhw
Sponsored by:	Dell EMC Isilon
2017-11-05 16:28:05 +00:00
bdrewery
f6af92e02b Avoid trying to remove a fullpath directory in CLEANDIRS.
Let CLEANDIRS work relative since make is already in .OBJDIR.

MFC after:	2 weeks
X-MFC-With:	r322511
Sponsored by:	Dell EMC Isilon
2017-11-05 00:26:28 +00:00
bdrewery
602b873130 AUTO_OBJ: Allow 'make cleandir obj all' combinations.
The cleanobj target will not really remove the OBJDIR in this case,
it will only remove the OBJDIR if only clean targets are ran.

Sponsored by:	Dell EMC Isilon
2017-11-05 00:12:12 +00:00
bdrewery
9bd6f65470 Set the expected __objdir for auto.obj.mk to try.
This avoids some future discrepency that might cause auto.obj.mk to use the
wrong OBJDIR.

Sponsored by:	Dell EMC Isilon
2017-11-05 00:12:09 +00:00
bdrewery
58bc164e15 Always try to set .OBJDIR, even if AUTO_OBJ is enabled, and fallback to .CURDIR.
When AUTO_OBJ is enabled this change becomes redundant with the auto.obj.mk
check added in r325404.  However, it is possible that new code is added
at some point between src.sys.obj.mk and auto.obj.mk that disables AUTO_OBJ.
That could leave make with a bogus and unsafe .OBJDIR in some cases.

Sponsored by:	Dell EMC Isilon
2017-11-05 00:12:05 +00:00
bdrewery
23e7628e75 Validate MAKEOBJDIR after the MAKEOBJDIRPREFIX override.
Sponsored by:	Dell EMC Isilon
2017-11-05 00:12:02 +00:00
bdrewery
bc0048e6ef AUTO_OBJ: Set .OBJDIR=.CURDIR earlier for NO_OBJ Makefiles.
auto.obj.mk is loaded before the Makefile which may have NO_OBJ set inside of
it.  In that case we can't avoid creating the OBJDIR but we do need to avoid
using it.  Fixing .OBJDIR in bsd.init.mk at least fixes all of the build .mk
files to have a proper .OBJDIR.  It does not fix the Makefile itself but
usually if they have NO_OBJ set they are not inspecting ${.OBJDIR} anyhow.

It is ideal to only have this in bsd.init.mk and to remove it from bsd.obj.mk,
but then bsd.obj.mk would need to include bsd.init.mk.  Doing something like
that would require more testing.  It has been proposed that bsd.obj.mk not be
included directly but it has been possible for too long to do so to change it
at this point.

Note too that it may make sense to fix .OBJDIR even when AUTO_OBJ is not
enabled but the historical behavior has always been that NO_OBJ just avoids
running 'make obj', so .OBJDIR should already be .CURDIR.

Also while NO_OBJ seems like it should be removed at this point, it is not
always possible to fix Makefiles to properly use an .OBJDIR.  The cost of
keeping NO_OBJ support is minimal.

Sponsored by:	Dell EMC Isilon
2017-11-05 00:11:58 +00:00
bdrewery
872d34708e Follow-up r325405: Only enable assertion for in-tree src builds.
Pointyhat to:	bdrewery
Reported by:	O. Hartmann <ohartmann@walstatt.org>
Sponsored by:	Dell EMC Isilon
2017-11-04 21:59:54 +00:00
bdrewery
969bd589ca AUTO_OBJ: Revert r325351 now that the fix is in auto.obj.mk in r325404.
Forcing MK_AUTO_OBJ to no is not really needed since bsd.obj.mk is protected
against 'rm -rf ${.CURDIR}' already.  It was also flawed as if MK_AUTO_OBJ=yes
was in the .MAKEOVERRIDES already then it just remained on.

Sponsored by:	Dell EMC Isilon
2017-11-04 21:06:39 +00:00
bdrewery
c3e293f179 Add an assertion to avoid the 'rm -rf /etc' case from cleanobj fixed in r325404.
Sponsored by:	Dell EMC Isilon
2017-11-04 21:05:03 +00:00
sjg
e84979b216 Ensure .OBJDIR has known value
If for any reason we cannot set .OBJDIR==_objdir as desired
use .CURDIR so that at least the classic
.if ${.OBJDIR} != ${.CURDIR}
works and dangerous misstakes can be avoided.

Reviewed by: bdrewery
2017-11-04 21:02:26 +00:00
trasz
52131b077d Add missing MLINKS for disk_add_alias(9).
MFC after:	2 weeks
2017-11-04 16:23:34 +00:00
bdrewery
0c681e15cf Follow-up r318105: Don't use NO_OBJ at top-level, use NO_OBJWALK.
NO_OBJ has a very specific meaning in sub-directories in that no object
directory will be made.  If a user wanted to skip the 'make obj' phase then
passing -DNO_OBJ would break all sub-directories from building properly.  Using
NO_OBJ internally also causes issue with NO_OBJ handling being added in
share/mk/bsd.init.mk soon.

Sponsored by:	Dell EMC Isilon
2017-11-03 23:22:03 +00:00
bapt
fa6a6b77d9 Update to CLDR 32 and Unicode 10
MFC after:	2 weeks
Relnotes:	yes
2017-11-03 13:52:34 +00:00
fabient
fbc9da5dbe crypto(9) is called from ipsec in CRYPTO_F_CBIFSYNC mode. This is working
fine when a lot of different flows to be ciphered/deciphered are involved.

However, when a software crypto driver is used, there are
situations where we could benefit from making crypto(9) multi threaded:
- a single flow is to be ciphered: only one thread is used to cipher it,
- a single ESP flow is to be deciphered: only one thread is used to
decipher it.

The idea here is to call crypto(9) using a new mode (CRYPTO_F_ASYNC) to
dispatch the crypto jobs on multiple threads, if the underlying crypto
driver is working in synchronous mode.

Another flag is added (CRYPTO_F_ASYNC_KEEPORDER) to make crypto(9)
dispatch the crypto jobs in the order they are received (an additional
queue/thread is used), so that the packets are reinjected in the network
using the same order they were posted.

A new sysctl net.inet.ipsec.async_crypto can be used to activate
this new behavior (disabled by default).

Submitted by:	Emeric Poupon <emeric.poupon@stormshield.eu>
Reviewed by:	ae, jmg, jhb
Differential Revision:    https://reviews.freebsd.org/D10680
Sponsored by:	Stormshield
2017-11-03 10:27:22 +00:00
bdrewery
48cb256902 AUTO_OBJ: If the wanted .OBJDIR was not used then disable the feature.
This is to prevent downstream checks from assuming they can trust .OBJDIR when
MK_AUTO_OBJ is yes, such as the bsd.obj.mk checks.

Pointyhat to:	bdrewery
Sponsored by:	Dell EMC Isilon
2017-11-03 01:09:35 +00:00
bdrewery
e7e0c6e48f AUTO_OBJ is unsafe at the moment as it is for some reason removing /etc with _cleanobj. 2017-11-02 23:00:04 +00:00
bdrewery
ebbe096bdf DIRDEPS_BUILD: Cleanup leftover WORLDTMP files.
This will force any existing objects to rebuild if their .meta
files reference files from WORLDTMP.  This is a problem after
the UNIFIED_OBJDIR effort caused buildworld and DIRDEPS_BUILD
to share an OBJDIR.  Without cleaning these files the
Makefile.depend files end up with odd tmp/legacy/... entries
since some bootstrap-tools linger from there and otherwise
don't rebuild.  Removing the files causes anything having
used WORLDTMP to rebuild.

Sponsored by:	Dell EMC Isilon
2017-11-02 20:45:04 +00:00
bdrewery
242b1c23cc Regenerate for AUTO_OBJ.
Sponsored by:	Dell EMC Isilon
2017-11-02 18:09:10 +00:00
bdrewery
70c391eee8 Enable AUTO_OBJ by default if the OBJDIR is writable, only for in-tree builds.
This can be disabled by putting WITHOUT_AUTO_OBJ=yes in /etc/src-env.conf, not
/etc/src.conf, or passing it in the environment.

The purpose of this rather than simply flipping the default of AUTO_OBJ to yes
is to avoid hassling users with auto.obj.mk failures if the wanted OBJDIR is
not writable. It will fallback to writing to the source directory like it does
today if MAKEOBJDIRPREFIX is not writable.

The act of enabling MK_AUTO_OBJ disables all 'make obj' treewalks since
previous work has made those not run if MK_AUTO_OBJ==yes in Makefile.inc1.

Relnotes:	yes
Reviewed by:	sjg
Discussed at:	https://lists.freebsd.org/pipermail/freebsd-arch/2016-May/017805.html
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D12841
2017-11-02 18:09:07 +00:00