summaryrefslogtreecommitdiff
path: root/tools/build/options
Commit message (Collapse)AuthorAgeFilesLines
* Retire GNU_GREP_COMPAT knobKyle Evans2020-12-052-7/+0
| | | | | | | | | | | | | This was introduced and then disabled by default primarily to avoid dealing with bugs in libgnuregex. rS363823 switched to using libregex for it, so let's just rip the option out now so we can make sure we're getting tested with libregex via bsdgrep. Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D27476 Notes: svn path=/head/; revision=368355
* Support initializing stack variables on function entryBrooks Davis2020-11-102-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | There are two options: - WITH_INIT_ALL_ZERO: Zero all variables on the stack. - WITH_INIT_ALL_PATTERN: Initialize variables with well-defined patterns. The exact pattern are a compiler implementation detail and vary by type. They are somewhat documented in the LLVM commit message: https://reviews.llvm.org/rL349442 I've used WITH_INIT_ALL_* to match Microsoft's InitAll feature rather than naming them after the LLVM specific compiler flags. In a range of consumer products, options like these are used in both debug and production builds with debugs builds using patterns (intended to provoke crashes on use of uninitialized values) and production using zeros (deemed more likely to lead to harmless misbehavior or NULL-pointer dereferences). Reviewed by: emaste Obtained from: CheriBSD Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D27131 Notes: svn path=/head/; revision=367577
* Add WITH_LLVM_CXXFILT option to install llvm-cxxfilt as c++filtDimitry Andric2020-11-032-0/+4
| | | | | | | | | | | | | | | | | | | | | Since elftoolchain's cxxfilt is rather far behind on features, and we ran into several bugs, add an option to use llvm-cxxfilt as an drop-in replacement. It supports the same options as elftoolchain cxxfilt, though it doesn't have support for old ARM (C++ Annotated Reference Manual, not the CPU) and GNU v2 manglings. But these are irrelevant in 2020. Note: as we already compile the required libraries as part of libllvm, this will not add any significant build time either. PR: 250702 Reviewed by: emaste, yuri Differential Revision: https://reviews.freebsd.org/D27071 MFC after: 2 weeks Notes: svn path=/head/; revision=367304
* Slightly modify wording to better match nearby entries.Stefan Eßer2020-09-242-6/+6
| | | | | | | MFC after: 3 days Notes: svn path=/head/; revision=366100
* src.conf(5): Fix some mandoc issues in source filesGordon Bergling2020-09-193-4/+2
| | | | | | | | | | | - new sentence, new line - blank line in fill mode Event: September 2020 Bugathon MFC after: 1 week Notes: svn path=/head/; revision=365903
* Add descriptions of the WITH_(OUT)_GH_BC options that exist in -CURRENTStefan Eßer2020-09-152-0/+12
| | | | | | | | | | | | (default: WITH_GH_BC) and 12-STABLE (default: WITHOUT_GH_BC). Since the new implementation of bc and dc is optionally available in 12-STABLE, I intend to MFC these descriptions for inclusion in 12.2. MFC after: 3 days Notes: svn path=/head/; revision=365753
* [PowerPC] Remove obsolete MK_LOADER_FORCE_LEBrandon Bergren2020-09-151-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | In D12421, the ability to compile stand/ in little-endian was added, with the intention to extend loader.kboot to run in Petitboot. However, no further work was done, as the kernel then gained self-execution capabilities as Petitboot was taught to load FreeBSD kernels directly. The FreeBSD installer on powerpc64 (on POWER8 and POWER9) uses /boot/etc/kboot.conf instead of loader. As this option does nothing but cause stand/ to be miscompiled and actively causes confusion, remove it. (I have a functioning petitboot loader in my local tree, however, it turned out to be quite inconvient to use due to the current petitboot plugin design so I put it on hold.) Reviewed by: emaste, imp, jhibbits Sponsored by: Tag1 Consulting, Inc. Differential Revision: https://reviews.freebsd.org/D26430 Notes: svn path=/head/; revision=365739
* Remove WITHOUT_BMAKE descriptionEd Maste2020-09-131-8/+0
| | | | | | | The option was retired in r265423 and bmake is the only make in tree. Notes: svn path=/head/; revision=365692
* Improvements for the src.conf(5) and build(7) man pagesGordon Bergling2020-09-111-1/+2
| | | | | | | | | | | | PR: 203863 (based on) Submitted by: Russell Haley <russ dot haley at gmail dot com> Reviewed by: bcr, imp Approved by: imp MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D26343 Notes: svn path=/head/; revision=365640
* Add WITH_/WITHOUT_CLEAN option to replace NO_CLEANEd Maste2020-09-081-0/+2
| | | | | | | | | | | | | | | | | This allows use of the standard src.conf configuration for controlling whether the tree is cleaned before build or not. The default is still to clean. Setting either NOCLEAN or NO_CLEAN will mention the new src.conf option. NOCLEAN remains a .warning, while for now NO_CLEAN is .info. Reviewed by: bdrewery (earlier version) MFC after: 1 month Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D22762 Notes: svn path=/head/; revision=365439
* Follow-up r365371 by removing sentences which indicate the state of theDimitry Andric2020-09-062-2/+0
| | | | | | | | | | | | | MK_MALLOC_PRODUCTION option on -CURRENT. Also, for the sake of backwards compatibility, support the old way of enabling 'production malloc', e.g. by adding a define in make.conf(5). MFC after: 1 week X-MFC-With: r365371 Notes: svn path=/head/; revision=365373
* Turn MALLOC_PRODUCTION into a regular src.conf(5) optionDimitry Andric2020-09-052-0/+10
| | | | | | | | | | | | | | | | | | For historical reasons, defining MALLOC_PRODUCTION in /etc/make.conf has been used to turn off potentially expensive debug checks and statistics gathering in the implementation of malloc(3). It seems more consistent to turn this into a regular src.conf(5) option, e.g. WITH_MALLOC_PRODUCTION / WITHOUT_MALLOC_PRODUCTION. This can then be toggled similar to any other source build option, and turned on or off by default for e.g. stable branches. Reviewed by: imp, #manpages MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D26337 Notes: svn path=/head/; revision=365371
* Add WITH_CLANG_FORMAT optionConrad Meyer2020-06-241-0/+2
| | | | | | | | | | | | | | | clang-format is enabled conditional on either WITH_CLANG_EXTRAS or WITH_CLANG_FORMAT. Some sources in libclang are build conditional on either rule, and obviously the clang-format binary itself depends on the rule. clang-format could still use a manual page. Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D25427 Notes: svn path=/head/; revision=362587
* Retire BINUTILS and BINUTILS_BOOTSTRAP optionsEd Maste2020-06-074-17/+0
| | | | | | | | | | | | | As of r361857 all BINUTILS options are disabled by default - ports have been changed to depend on binutils if they require GNU as, and all base system assembly files have been switched to use Clang's integrated assembler. Relnotes: Yes Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=361880
* Update SYSTEM_LINKER descriptions wrt BINUTILSEd Maste2020-06-062-6/+2
| | | | | | | GNU ld hasn't been built with the BINUTILS option for some time. Notes: svn path=/head/; revision=361876
* Add deprecation notice to WITH_BINUTILS option descriptionEd Maste2020-05-301-0/+2
| | | | Notes: svn path=/head/; revision=361650
* Update GNU_DIFF knob descriptionsEd Maste2020-05-202-4/+0
| | | | | | | | | | After r317209 the WITH_/WITHOUT_GNU_DIFF knob controls only diff3; diff is always BSD diff. MFC after: 1 week Notes: svn path=/head/; revision=361282
* update WITH_/WITHOUT_BINUTILS descriptions for objdump removalEd Maste2020-05-062-5/+1
| | | | Notes: svn path=/head/; revision=360699
* Initial support for bhyve save and restore.John Baldwin2020-05-051-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Save and restore (also known as suspend and resume) permits a snapshot to be taken of a guest's state that can later be resumed. In the current implementation, bhyve(8) creates a UNIX domain socket that is used by bhyvectl(8) to send a request to save a snapshot (and optionally exit after the snapshot has been taken). A snapshot currently consists of two files: the first holds a copy of guest RAM, and the second file holds other guest state such as vCPU register values and device model state. To resume a guest, bhyve(8) must be started with a matching pair of command line arguments to instantiate the same set of device models as well as a pointer to the saved snapshot. While the current implementation is useful for several uses cases, it has a few limitations. The file format for saving the guest state is tied to the ABI of internal bhyve structures and is not self-describing (in that it does not communicate the set of device models present in the system). In addition, the state saved for some device models closely matches the internal data structures which might prove a challenge for compatibility of snapshot files across a range of bhyve versions. The file format also does not currently support versioning of individual chunks of state. As a result, the current file format is not a fixed binary format and future revisions to save and restore will break binary compatiblity of snapshot files. The goal is to move to a more flexible format that adds versioning, etc. and at that point to commit to providing a reasonable level of compatibility. As a result, the current implementation is not enabled by default. It can be enabled via the WITH_BHYVE_SNAPSHOT=yes option for userland builds, and the kernel option BHYVE_SHAPSHOT. Submitted by: Mihai Tiganus, Flavius Anton, Darius Mihai Submitted by: Elena Mihailescu, Mihai Carabas, Sergiu Weisz Relnotes: yes Sponsored by: University Politehnica of Bucharest Sponsored by: Matthew Grooms (student scholarships) Sponsored by: iXsystems Differential Revision: https://reviews.freebsd.org/D19495 Notes: svn path=/head/; revision=360648
* Remove the SYMVER build option.John Baldwin2020-04-301-2/+0
| | | | | | | | | | | | | | This option was added as a transition aide when symbol versioning was first added. It was enabled by default in 2007 and is supported even by the old GPLv2 binutils. Trying to disable it currently fails to build in libc and at this point it isn't worth fixing the build. Reported by: Michael Dexter Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D24637 Notes: svn path=/head/; revision=360511
* llvm: add a build knob for enabling assertionsKyle Evans2020-04-062-0/+4
| | | | | | | | | | | | | | | | | | | | | | For head/, this will remain eternally default-on to maintain the status quo. For stable/ branches, it should be flipped to default-off to maintain the status quo. There's value in being able to flip it one way or the other easily on head or stable branches, whether you want to gain some performance back on head/ (for machines there's little chance you'll actually hit an assertion) or potentially diagnose a problem with the version of llvm on an older branch. Currently, stable branches get the CFLAGS+= -ndebug line uncommented; going forward, they will instead have the default of LLVM_ASSERTIONS flipped. Reviewed by: dim, emaste, re (gjb) MFC after: 1 week MFC note: flip the default of LLVM_ASSERTIONS Differential Revision: https://reviews.freebsd.org/D24264 Notes: svn path=/head/; revision=359644
* drop GDB_LIBEXEC option (now always true)Ed Maste2020-03-302-15/+0
| | | | | | | | | | | | | | | | | | | | | | | In-tree gdb is essentially obsolete. We kept it for sparc64 (because gdb in ports lacked sparc64 support) and as a fallback for crashinfo. gdb was installed to /libexec on all archs other than sparc64, where the WITHOUT_GDB_LIBEXEC option was default, with gdb installed to /usr/bin. With sparc64's retirement WITH_GDB_LIBEXEC became the default for all architectures, but it was still possible to set it off and install gdb into /usr/bin. As the next step in gdb's retirement, remove the option and install gdb only into /libexec as the crashinfo fallback. We expect users to install the gdb port or package for debugging. The in-tree gdb lacks support for a number of supported architectures and does not support contemporary DWARF debug info. Reviewed by: jhb (earlier) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D24227 Notes: svn path=/head/; revision=359457
* [PowerPC] Switch powerpc and powerpcspe to lldBrandon Bergren2020-03-272-5/+3
| | | | | | | | | | | | | | | Now that LLD 10 is out, and required patches have landed, we are now ready to finally switch away from the ancient in-tree ld.bfd. Special thanks to Fangrui Song for many hours of work on getting the 32-bit powerpc lld ready for prime-time. Reviewed by: emaste (earlier revision), jhibbits Relnotes: yes Differential Revision: https://reviews.freebsd.org/D24111 Notes: svn path=/head/; revision=359347
* retire amd(8)Ed Maste2020-03-092-11/+0
| | | | | | | | | | | | | | autofs was introduced with FreeBSD 10.1 and is the supported method for automounting filesystems. As of r296194 the amd man page claimed that it is deprecated. Remove it from base now; the sysutils/am-utils port is still available if necessary. Discussed with: cy Relnotes: Yes Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=358821
* Add extremely useful calendar(1) application to FreeBSDConrad Meyer2020-03-031-0/+3
| | | | | | | | | | | | It does extremely useful things like execute sendmail and spew dubiously accurate factoids. From the feedback, it seems like it is an essential utility in a modern unix and not at all a useless bikeshed. How do those Linux people live without it? Reverts r358561. Notes: svn path=/head/; revision=358562
* Fix typo in r278616Conrad Meyer2020-03-021-3/+0
| | | | | | | FreeBSD isn't an encyclopedia. Notes: svn path=/head/; revision=358561
* retire in-tree GPL dtc devicetree compilerEd Maste2020-02-292-6/+0
| | | | | | | | | | | | | | | | | | | | | Now that we no longer have GCC 4.2.1 in the tree and can assume FreeBSD is being built with a C++11 compiler available, we can use BSDL dtc unconditionally and retire the GPL dtc. GPL dtc now has FreeBSD CI support via Cirrus-CI to help ensure it continues to build/work on FreeBSD and is available in the ports tree if needed. The copy of (copyfree licensed) libfdt that we actually use is in sys/contrib/libfdt so the extra copy under contrib/dtc/libfdt can be removed along with the rest of the GPL dtc. Reviewed by: kevans, ian, imp, manu, theraven Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D23192 Notes: svn path=/head/; revision=358468
* retire the LLVM_LIBUNWIND optionEd Maste2020-02-292-4/+0
| | | | | | | | | | | | LLVM's libunwind is used on all FreeBSD-supported CPU architectures and is a required component. Reviewed by: brooks (earlier) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D23123 Notes: svn path=/head/; revision=358460
* remove GCC 4.2.1 build infrastructureEd Maste2020-02-293-9/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | As described in Warner's email message[1] to the FreeBSD-arch mailing list we have reached GCC 4.2.1's retirement date. At this time all supported architectures either use in-tree Clang, or rely on external toolchain (i.e., a contemporary GCC version from ports). GCC 4.2.1 was released July 18, 2007 and was imported into FreeBSD later that year, in r171825. GCC has served us well, but version 4.2.1 is obsolete and not used by default on any architecture in FreeBSD. It does not support modern C and does not support arm64 or RISC-V. Thanks to everyone responsible for maintaining, updating, and testing GCC in the FreeBSD base system over the years. So long, and thanks for all the fish. [1] https://lists.freebsd.org/pipermail/freebsd-arch/2020-January/019823.html PR: 228919 Reviewed by: brooks, imp Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D23124 Notes: svn path=/head/; revision=358454
* Update WITH_/WITHOUT_BINUTILS_BOOTSTRAP descriptionsEd Maste2020-02-062-2/+2
| | | | | | | | | | | | Use of binutils is being incrementally reduced. The specific binutils are listed in the WITH_BINUTILS and WITHOUT_BINUTILS descriptions; there is no need to list the specific tools again in the descriptions for the _BOOTSTRAP options. MFC after: 1 week Notes: svn path=/head/; revision=357617
* Remove simple_httpdKyle Evans2020-02-042-4/+0
| | | | | | | | | | | | | | simple_httpd was granted a reprieve from the picobsd removal based on having some reported user; it turns out this user isn't actually using the version in base and merging their changes would be difficult at this point, so the version in base will simply continue to rot. Retire it now, it may make a comeback to ports with the improved version. No notice issued because its current visibility has only been for ~3 months, and a notice has been previously issued about picobsd removal. Notes: svn path=/head/; revision=357543
* retire BSD_CRTBEGIN optionEd Maste2020-01-312-10/+0
| | | | | | | | | | | | | | | | BSD crt is currently used on all architectures (other than sparc64). Remove the option and use BSD crt everywhere as part of the GCC 4.2.1 retirement plan. https://lists.freebsd.org/pipermail/freebsd-arch/2020-January/019823.html PR: 239851 Reviewed by: andrew, brooks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D23122 Notes: svn path=/head/; revision=357338
* remove unused WITHOUT_PC_SYSINSTALL descriptionEd Maste2020-01-201-4/+0
| | | | | | | | | | pc-sysinstall was moved from the base system to ports in r351781. Submitted by: driesm.michiels gmail com Differential Revision: https://reviews.freebsd.org/D21647 Notes: svn path=/head/; revision=356916
* remove caution notes from WITHOUT_BINUTILS* descriptionsEd Maste2020-01-192-5/+0
| | | | | | | | | | | | WITHOUT_BINUTILS and WITHOUT_BINUTILS_BOOTSTRAP previously included claims about being unable to build if set. Those cautions are no longer universally true, and most FreeBSD targets can function more or less without enabling GNU Binutils. Just remove the cautions. Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=356890
* limit building GNU assembler (as) to x86Ed Maste2020-01-192-6/+6
| | | | | | | | | | | | | GNU as 2.17.50 is currently required by amd64 and i386 for at least one file that cannot be assembled by Clang's integrated assembler (IAS). Other supported CPU architectures either use Clang IAS for all assembly files, or rely on external toolchain. Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D23180 Notes: svn path=/head/; revision=356889
* Update WITHOUT_BINUTILS* descriptionsEd Maste2020-01-152-5/+4
| | | | | | | | | In the WITHOUT_ descriptions we don't need to mention that ld.bfd is limited to powerpc. When WITHOUT_BINUTILS is specified ld.bfd is not installed on any CPU architecture. Notes: svn path=/head/; revision=356759
* limit ld.bfd to powerpcEd Maste2020-01-144-4/+4
| | | | | | | | | | | | All archs except powerpc either use lld or require external toolchain. powerpc still needs binutils ld to link 32-bit binaries. Reviewed by: jhibbits Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D23107 Notes: svn path=/head/; revision=356736
* Update WITH_/WITHOUT_CLANG_IS_CC descriptionsEd Maste2020-01-142-2/+5
| | | | | | | | | | | | Describe /usr/bin/cc etc. as links to the compiler, and don't conflate WITHOUT_CLANG_IS_CC with installing GCC. Leave a reference to WITH_GCC and WITHOUT_CLANG_IS_CC installing links to GCC, although this will be removed in ~1.5 months when GCC 4.2.1 is removed from the tree. Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=356733
* Update WITH_AMD description reflecting upcoming removalEd Maste2020-01-141-3/+6
| | | | | | | | | | In-tree amd(8) is deprecated; update WITH_AMD's description to make this more clear. Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=356732
* Adjust WITH_/WITHOUT_ descriptions for GCC options after r356367Ed Maste2020-01-055-5/+6
| | | | | | | | | | The options default to NO on all archs now, and will be removed before FreeBSD 13. Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=356368
* Change reference in HTTPD descriptions to 'simple_httpd'Kyle Evans2019-12-292-2/+2
| | | | | | | | | | | This should help people examining src.conf(5) draw the connection between the HTTPD knobs and the particular implementation we're installing, simple_httpd. Reported by: saken658 via GitHub Notes: svn path=/head/; revision=356164
* Add description for WITH_AMDEd Maste2019-11-201-0/+4
| | | | | | | | | WITHOUT_AMD is now the default as of r354902. Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=354903
* Slightly expand description of WITH_SHARED_TOOLCHAIN, add aDimitry Andric2019-10-232-1/+7
| | | | | | | | | | corresponding WITHOUT_SHARED_TOOLCHAIN description, and regenerate src.conf(5). MFC after: 3 days Notes: svn path=/head/; revision=353933
* Provide a src.conf(5) description for the new WITHOUT_CAROOT option, andDimitry Andric2019-10-185-13/+16
| | | | | | | | | | rename the WITH_LOADER_VERIEXEC_PASS_MANFIEST description to its correct name. Also correct a bunch of spelling errors in that description. MFC after: 3 days Notes: svn path=/head/; revision=353737
* Introduce stats(3), a flexible statistics gathering API.Edward Tomasz Napierala2019-10-072-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This provides a framework to define a template describing a set of "variables of interest" and the intended way for the framework to maintain them (for example the maximum, sum, t-digest, or a combination thereof). Afterwards the user code feeds in the raw data, and the framework maintains these variables inside a user-provided, opaque stats blobs. The framework also provides a way to selectively extract the stats from the blobs. The stats(3) framework can be used in both userspace and the kernel. See the stats(3) manual page for details. This will be used by the upcoming TCP statistics gathering code, https://reviews.freebsd.org/D20655. The stats(3) framework is disabled by default for now, except in the NOTES kernel (for QA); it is expected to be enabled in amd64 GENERIC after a cool down period. Reviewed by: sef (earlier version) Obtained from: Netflix Relnotes: yes Sponsored by: Klara Inc, Netflix Differential Revision: https://reviews.freebsd.org/D20477 Notes: svn path=/head/; revision=353283
* Move simple_httpd out of picobsd, add HTTPD option (default OFF)Kyle Evans2019-10-012-0/+4
| | | | | | | | | | | | | | | | | | picobsd/tinyware has had this compact HTTPD server for a long time, and some people do use it. Move it out into usr.sbin well in advance of any action being taken on picobsd. This has been gated behind an HTTPD option defaulted to *off*, primarily for two reasons: 1.) This code likely needs a good audit, as it's been living off in picobsd land for a long time, and 2.) We don't currently ship an httpd and this may not be a welcome surprise. Reviewed by: eugen Differential Revision: https://reviews.freebsd.org/D21724 Notes: svn path=/head/; revision=352927
* Add description for WITH_GOOGLETESTKyle Evans2019-09-181-0/+5
| | | | | | | | This is the logical negation of WITHOUT_GOOGLETEST, and helpful to have as we now have different per-arch defaults for this option. Notes: svn path=/head/; revision=352466
* Remove rlogin/rsh references from src.conf(5) WITHOUT_BLACKLIST_SUPPORTEd Maste2019-08-131-2/+0
| | | | | | | | | | rcmds were removed in r324351 MFC after: 1 week Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=350980
* Add option to build LLVM RISC-V targetMitchell Horne2019-04-072-0/+10
| | | | | | | | | | Reviewed by: emaste, dim Approved by: markj (mentor) MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D19759 Notes: svn path=/head/; revision=346016
* Create kernel module to parse Veriexec manifest based on envsMarcin Wojtas2019-04-031-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | The current approach of injecting manifest into mac_veriexec is to verify the integrity of it in userspace (veriexec (8)) and pass its entries into kernel using a char device (/dev/veriexec). This requires verifying root partition integrity in loader, for example by using memory disk and checking its hash. Otherwise if rootfs is compromised an attacker could inject their own data. This patch introduces an option to parse manifest in kernel based on envs. The loader sets manifest path and digest. EVENTHANDLER is used to launch the module right after the rootfs is mounted. It has to be done this way, since one might want to verify integrity of the init file. This means that manifest is required to be present on the root partition. Note that the envs have to be set right before boot to make sure that no one can spoof them. Submitted by: Kornel Duleba <mindal@semihalf.com> Reviewed by: sjg Obtained from: Semihalf Sponsored by: Stormshield Differential Revision: https://reviews.freebsd.org/D19281 Notes: svn path=/head/; revision=345830