xref: /freebsd/UPDATING (revision 56e4bee1daebecd5bc58524658a78a7e27f51bc1)
1Updating Information for FreeBSD current users.
2
3This file is maintained and copyrighted by M. Warner Losh <imp@freebsd.org>.
4See end of file for further details.  For commonly done items, please see the
5COMMON ITEMS: section later in the file.  These instructions assume that you
6basically know what you are doing.  If not, then please consult the FreeBSD
7handbook:
8
9    https://docs.freebsd.org/en/books/handbook/cutting-edge/#makeworld
10
11Items affecting the ports and packages system can be found in
12/usr/ports/UPDATING.  Please read that file before updating system packages
13and/or ports.
14
15NOTE TO PEOPLE WHO THINK THAT FreeBSD 14.x IS SLOW:
16	FreeBSD 14.x has many debugging features turned on, in both the kernel
17	and userland.  These features attempt to detect incorrect use of
18	system primitives, and encourage loud failure through extra sanity
19	checking and fail stop semantics.  They also substantially impact
20	system performance.  If you want to do performance measurement,
21	benchmarking, and optimization, you'll want to turn them off.  This
22	includes various WITNESS- related kernel options, INVARIANTS, malloc
23	debugging flags in userland, and various verbose features in the
24	kernel.  Many developers choose to disable these features on build
25	machines to maximize performance.  (To completely disable malloc
26	debugging, define WITH_MALLOC_PRODUCTION in /etc/src.conf and rebuild
27	world, or to merely disable the most expensive debugging functionality
28	at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".)
29
3020211209:
31	Remove mips as a recognized target. This starts the decommissioning of
32	mips support in FreeBSD. mips related items will be removed wholesale in
33	the coming days and weeks.
34
35	This broke the NO_CLEAN build for some people. Either do a clean build
36	or touch
37		lib/clang/include/llvm/Config/Targets.def
38		lib/clang/include/llvm/Config/AsmParsers.def
39		lib/clang/include/llvm/Config/Disassemblers.def
40		lib/clang/include/llvm/Config/AsmPrinters.def
41	before the build to force everything to rebuild that needs to.
42
4320211110:
44	Commit b8d60729deef changed the TCP congestion control framework so
45	that any of the included congestion control modules could be
46	the single module built into the kernel. Previously newreno
47	was automatically built in through direct reference. Has of
48	this commit you are required to declare at least one congestion
49	control module (e.g. 'options CC_NEWRENO') and to also delcare a
50	default using the CC_DEFAULT option (e.g. options CC_DEFAULT="newreno\").
51	The GENERIC configuation includes CC_NEWRENO and defines newreno
52	as the default. If no congestion control option is built into the
53	kernel and you are including networking, the kernel compile will
54	fail. Also if no default is declared the kernel compile will fail.
55
5620211118:
57	Mips has been removed from universe builds. It will be removed from the
58	tree shortly.
59
6020211106:
61	Commit f0c9847a6c47 changed the arguments for VOP_ALLOCATE.
62	The NFS modules must be rebuilt from sources and any out
63	of tree file systems that implement their own VOP_ALLOCATE
64	may need to be modified.
65
6620211022:
67	The synchronous PPP kernel driver sppp(4) has been removed.
68	The cp(4) and ce(4) drivers are now always compiled with netgraph(4)
69	support, formerly enabled by NETGRAPH_CRONYX option.
70
7120211020:
72	sh(1) is now the default shell for the root user.  To force root to use
73	the csh shell, please run the following command as root:
74
75	# chsh -s csh
76
7720211004:
78	Ncurses distribution has been split between libtinfow and libncurses
79	with libncurses.so becoming a linker (ld) script to seamlessly link
80	to libtinfow as needed. Bump _FreeBSD_version to 1400035 to reflect
81	this change.
82
8320210923:
84	As of commit 8160a0f62be6, the dummynet module no longer depends on the
85	ipfw module. Dummynet can now be used by pf as well as ipfw. As such
86	users who relied on this dependency may need to include ipfw in the
87	list of modules to load on their systems.
88
8920210922:
90	As of commit 903873ce1560, the mixer(8) utility has got a slightly
91	new syntax. Please refer to the mixer(8) manual page for more
92	information. The old mixer utility can be installed from ports:
93	audio/freebsd-13-mixer
94
9520210911:
96	As of commit 55089ef4f8bb, the global variable nfs_maxcopyrange has
97	been deleted from the nfscommon.ko.  As such, nfsd.ko must be built
98	from up to date sources to avoid an undefined reference when
99	being loaded.
100
10120210817:
102	As of commit 62ca9fc1ad56 OpenSSL no longer enables kernel TLS
103	by default.  Users can enable kernel TLS via the "KTLS" SSL
104	option.  This can be enabled globally by using a custom
105	OpenSSL config file via OPENSSL_CONF or via an
106	application-specific configuration option for applications
107	which permit setting SSL options via SSL_CONF_cmd(3).
108
10920210811:
110	Commit 3ad1e1c1ce20 changed the internal KAPI between the NFS
111	modules. Therefore, all need to be rebuilt from sources.
112
11320210730:
114	Commit b69019c14cd8 removes pf's DIOCGETSTATESNV ioctl.
115	As of be70c7a50d32 it is no longer used by userspace, but it does mean
116	users may not be able to enumerate pf states if they update the kernel
117	past b69019c14cd8 without first updating userspace past be70c7a50d32.
118
11920210729:
120	As of commit 01ad0c007964 if_bridge member interfaces can no longer
121	change their MTU. Changing the MTU of the bridge itself will change the
122	MTU on all member interfaces instead.
123
12420210716:
125	Commit ee29e6f31111 changed the internal KAPI between the nfscommon
126	and nfsd modules. Therefore, both need to be rebuilt from sources.
127	Bump __FreeBSD_version to 1400026 for this KAPI change.
128
12920210715:
130	The 20210707 awk update brought in a change in behavior. This has
131	been corrected as of d4d252c49976. Between these dates, if you
132	installed a new awk binary, you may not be able to build a new
133	kernel because the change in behavior affected the genoffset
134	script used to build the kernel. If you did update, the fix is
135	to update your sources past the above hash and do
136		% cd usr.bin/awk
137		% make clean all
138		% sudo -E make install
139	to enable building kernels again.
140
14120210708:
142	Commit 1e0a518d6548 changed the internal KAPI between the NFS
143	modules. They all need to be rebuilt from sources.  I did not
144	bump __FreeBSD_version, since it was bumped recently.
145
14620210707:
147	awk has been updated to the latest one-true-awk version 20210215.
148	This contains a number of minor bug fixes.
149
15020210624:
151	The NFSv4 client now uses the highest minor version of NFSv4
152	supported by the NFSv4 server by default instead of minor version 0,
153	for NFSv4 mounts.
154	The "minorversion" mount option may be used to override this default.
155
15620210618:
157	Bump __FreeBSD_version to 1400024 for LinuxKPI changes.
158	Most notably netdev.h can change now as the (last) dependencies
159	(mlx4/ofed) are now using struct ifnet directly, but also for PCI
160	additions and others.
161
16220210618:
163	The directory "blacklisted" under /usr/share/certs/ has been
164	renamed to "untrusted".
165
16620210611:
167	svnlite has been removed from base. Should you need svn for any reason
168	please install the svn package or port.
169
17020210611:
171	Commit e1a907a25cfa changed the internal KAPI between the krpc
172	and nfsserver.  As such, both modules must be rebuilt from
173	sources.  Bump __FreeBSD_version to 1400022.
174
17520210610:
176	The an(4) driver has been removed from FreeBSD.
177
17820210608:
179	The vendor/openzfs branch was renamed to vendor/openzfs/legacy to
180	start tracking OpenZFS upstream more closely. Please see
181https://lists.freebsd.org/archives/freebsd-current/2021-June/000153.html
182	for details on how to correct any errors that might result. The
183	short version is that you need to remove the old branch locally:
184	    git update-ref -d refs/remotes/freebsd/vendor/openzfs
185	(assuming your upstream origin is named 'freebsd').
186
18720210525:
188	Commits 17accc08ae15 and de102f870501 add new files to LinuxKPI
189	which break drm-kmod.  In addition various other additions where
190	comitted. Bump __FreeBSD_version to 1400015 to be able to detect this.
191
19220210513:
193	Commit ca179c4d74f2 changed the package in which the OpenSSL
194	libraries and utilities are packaged.
195	It is recommended for pkgbase user to do:
196	pkg install -f FreeBSD-openssl
197	before pkg upgrade otherwise some dependencies might not be met
198	and pkg will stop working as libssl will not be present anymore
199	on the system.
200
20120210426:
202	Commit 875977314881 changed the internal KAPI between
203	the nfsd and nfscommon modules.  As such these modules
204	need to be rebuilt from sources.
205	Without this patch in your NFSv4.1/4.2 server, enabling
206	delegations by setting vfs.nfsd.issue_delegations non-zero
207	is not recommended.
208
20920210411:
210	Commit 7763814fc9c2 changed the internal KAPI between
211	the krpc and NFS.  As such, the krpc, nfscommon and
212	nfscl modules must all be rebuilt from sources.
213	Without this patch, NFSv4.1/4.2 mounts should not
214	be done with the nfscbd(8) daemon running, to avoid
215	needing a working back channel for server->client RPCs.
216
21720210330:
218	Commit 01ae8969a9ee fixed the NFSv4.1/4.2 server so that it
219	handles binding of the back channel as required by RFC5661.
220	Until this patch is in your server, avoid use of the "nconnects"
221	mount option for Linux NFSv4.1/4.2 mounts.
222
22320210225:
224	For 64-bit architectures the base system is now built with Position
225	Independent Executable (PIE) support enabled by default.  It may be
226	disabled using the WITHOUT_PIE knob.  A clean build is required.
227
22820210128:
229	Various LinuxKPI functionality was added which conflicts with DRM.
230	Please update your drm-kmod port to after the __FreeBSD_verison 1400003
231	update.
232
23320210108:
234	PC Card attachments for all devices have been removed. In the case of
235	wi and cmx, the entire drivers were removed because they were only
236	PC Card devices. FreeBSD_version 1300134 should be used for this
237	since it was bumped so recently.
238
23920210107:
240	Transport-independent parts of HID support have been split off the USB
241	code in to separate subsystem.  Kernel configs which include one of
242	ums, ukbd, uhid, atp, wsp, wmt, uaudio, ugold or ucycom drivers should
243	be updated with adding of "device hid" line.
244
24520210105:
246	ncurses installation has been modified to only keep the widechar
247	enabled version.  Incremental build is broken for that change, so it
248	requires a clean build.
249
25020201223:
251	The FreeBSD project has migrated from Subversion to Git. Temporary
252	instructions can be found at
253	https://github.com/bsdimp/freebsd-git-docs/blob/main/src-cvt.md
254	and other documents in that repo.
255
25620201216:
257	The services database has been updated to cover more of the basic
258	services expected in a modern system. The database is big enough
259	that it will cause issues in mergemaster in Releases previous to
260	12.2 and 11.3, or in very old current systems from before r358154.
261
26220201215:
263	Obsolete in-tree GDB 6.1.1 has been removed.  GDB (including kgdb)
264	may be installed from ports or packages.
265
26620201124:
267	ping6 has been merged into ping.  It can now be called as "ping -6".
268	See ping(8) for details.
269
27020201108:
271	Default value of net.add_addr_allfibs has been changed to 0.
272	If you have multi-fib configuration and rely on existence of all
273	interface routes in every fib, you need to set the above sysctl to 1.
274
27520201030:
276	The internal pre-processor in the calendar(1) program has been
277	extended to support more C pre-processor commands (e.g. #ifdef, #else,
278	and #undef) and to detect unbalanced conditional statements.
279	Error messages have been extended to include the filename and line
280	number if processing stops to help fixing malformed data files.
281
28220201026:
283	All the data files for the calendar(1) program, except calendar.freebsd,
284	have been moved to the deskutils/calendar-data port, much like the
285	jewish calendar entries were moved to deskutils/hebcal years ago. After
286	make delete-old-files, you need to install it to retain full
287	functionality. calendar(1) will issue a reminder for files it can't
288	find.
289
29020200923:
291	LINT files are no longer generated. We now include the relevant NOTES
292	files. Note: This may cause conflicts with updating in some cases.
293	        find sys -name LINT\* -delete
294	is suggested across this commit	to remove the generated	LINT files.
295
296	If you have tried to update with generated files there, the svn
297	command you want to un-auger the tree is
298		cd sys/amd64/conf
299		svn revert -R .
300	and then do the above find from the top level. Substitute 'amd64'
301	above with where the error message indicates a conflict.
302
30320200824:
304	OpenZFS support has been integrated. Do not upgrade root pools until
305	the loader is updated to support zstd. Furthermore, we caution against
306	'zpool upgrade' for the next few weeks. The change should be transparent
307	unless you  want to use new features.
308
309	Not all "NO_CLEAN" build scenarios work across these changes. Many
310	scenarios have been tested and fixed, but rebuilding kernels without
311	rebuilding world may fail.
312
313	The ZFS cache file has moved from /boot to /etc to match the OpenZFS
314	upstream default. A fallback to /boot has been added for mountroot.
315
316	Pool auto import behavior at boot has been moved from the kernel module
317	to an explicit "zpool import -a" in one of the rc scripts enabled by
318	zfs_enable=YES. This means your non-root zpools won't auto import until
319	you upgrade your /etc/rc.d files.
320
32120200824:
322	The resume code now notifies devd with the 'kernel' system
323	rather than the old 'kern' subsystem to be consistent with
324	other use. The old notification will be created as well, but
325	will be removed prior to FreeBSD 14.0.
326
32720200821:
328	r362275 changed the internal API between the kernel RPC and the
329	NFS modules. As such, all the modules must be recompiled from
330	sources.
331
33220200817:
333	r364330 modified the internal API used between the NFS modules.
334	As such, all the NFS modules must be re-compiled from sources.
335
33620200816:
337	Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
338	been upgraded to 11.0.0.  Please see the 20141231 entry below for
339	information about prerequisites and upgrading, if you are not already
340	using clang 3.5.0 or higher.
341
34220200810:
343	r364092 modified the internal ABI used between the kernel NFS
344	modules.  As such, all of these modules need to be rebuilt
345	from sources, so a version bump was done.
346
34720200807:
348	Makefile.inc has been updated to work around the issue documented in
349	20200729. It was a case where the optimization of using symbolic links
350	to point to binaries created a situation where we'd run new binaries
351	with old libraries starting midway through the installworld process.
352
35320200729:
354	r363679 has redefined some undefined behavior in regcomp(3); notably,
355	extraneous escapes of most ordinary characters will no longer be
356	accepted.  An exp-run has identified all of the problems with this in
357	ports, but other non-ports software may need extra escapes removed to
358	continue to function.
359
360	Because of this change, installworld may encounter the following error
361	from rtld: Undefined symbol "regcomp@FBSD_1.6" -- It is imperative that
362	you do not halt installworld. Instead, let it run to completion (whether
363	successful or not) and run installworld once more.
364
36520200627:
366	A new implementation of bc and dc has been imported in r362681. This
367	implementation corrects non-conformant behavior of the previous bc
368	and adds GNU bc compatible options. It offers a number of extensions,
369	is much faster on large values, and has support for message catalogs
370	(a number of languages are already supported, contributions of further
371	languages welcome). The option WITHOUT_GH_BC can be used to build the
372	world with the previous versions of bc and dc.
373
37420200625:
375	r362639 changed the internal API used between the NFS kernel modules.
376	As such, they all need to be rebuilt from sources.
377
37820200613:
379	r362158 changed the arguments for VFS_CHECKEXP().  As such, any
380	out of tree file systems need to be modified and rebuilt.
381	Also, any file systems that are modules must be rebuilt.
382
38320200604:
384	read(2) of a directory fd is now rejected by default.  root may
385	re-enable it for system root only on non-ZFS filesystems with the
386	security.bsd.allow_read_dir sysctl(8) MIB if
387	security.bsd.suser_enabled=1.
388
389	It may be advised to setup aliases for grep to default to `-d skip` if
390	commonly non-recursively grepping a list that includes directories and
391	the potential for the resulting stderr output is not tolerable.  Example
392	aliases are now installed, commented out, in /root/.cshrc and
393	/root/.shrc.
394
39520200523:
396	Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
397	been upgraded to 10.0.1.  Please see the 20141231 entry below for
398	information about prerequisites and upgrading, if you are not already
399	using clang 3.5.0 or higher.
400
40120200512:
402	Support for obsolete compilers has been removed from the build system.
403	Clang 6 and GCC 6.4 are the minimum supported versions.
404
40520200424:
406	closefrom(2) has been moved under COMPAT12, and replaced in libc with a
407	stub that calls close_range(2).  If using a custom kernel configuration,
408	you may want to ensure that the COMPAT_FREEBSD12 option is included, as
409	a slightly older -CURRENT userland and older FreeBSD userlands may not
410	be functional without closefrom(2).
411
41220200414:
413	Upstream DTS from Linux 5.6 was merged and they now have the SID
414	and THS (Secure ID controller and THermal Sensor) node present.
415	The DTB overlays have now been removed from the tree for the H3/H5 and
416	A64 SoCs and the aw_sid and aw_thermal driver have been updated to
417	deal with upstream DTS. If you are using those overlays you need to
418	remove them from loader.conf and update the DTBs on the FAT partition.
419
42020200310:
421	Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
422	been upgraded to 10.0.0.  Please see the 20141231 entry below for
423	information about prerequisites and upgrading, if you are not already
424	using clang 3.5.0 or higher.
425
42620200309:
427	The amd(8) automount daemon has been removed from the source tree.
428	As of FreeBSD 10.1 autofs(5) is the preferred tool for automounting.
429	amd is still available in the sysutils/am-utils port.
430
43120200301:
432	Removed brooktree driver (bktr.4) from the tree.
433
43420200229:
435	The WITH_GPL_DTC option has been removed.  The BSD-licenced device tree
436	compiler in usr.bin/dtc is used on all architectures which use dtc, and
437	the GPL dtc is available (if needed) from the sysutils/dtc port.
438
43920200229:
440	The WITHOUT_LLVM_LIBUNWIND option has been removed.  LLVM's libunwind
441	is used by all supported CPU architectures.
442
44320200229:
444	GCC 4.2.1 has been removed from the tree.  The WITH_GCC,
445	WITH_GCC_BOOTSTRAP, and WITH_GNUCXX options are no longer available.
446	Users who wish to build FreeBSD with GCC must use the external toolchain
447	ports or packages.
448
44920200220:
450	ncurses has been updated to a newer version (6.2-20200215). Given the ABI
451	has changed, users will have to rebuild all the ports that are linked to
452	ncurses.
453
45420200217:
455	The size of struct vnet and the magic cookie have changed.
456	Users need to recompile libkvm and all modules using VIMAGE
457	together with their new kernel.
458
45920200212:
460	Defining the long deprecated NO_CTF, NO_DEBUG_FILES, NO_INSTALLLIB,
461	NO_MAN, NO_PROFILE, and NO_WARNS variables is now an error.  Update
462	your Makefiles and scripts to define MK_<var>=no instead as required.
463
464	One exception to this is that program or library Makefiles should
465	define MAN to empty rather than setting MK_MAN=no.
466
46720200108:
468	Clang/LLVM is now the default compiler and LLD the default
469	linker for riscv64.
470
47120200107:
472	make universe no longer uses GCC 4.2.1 on any architectures.
473	Architectures not supported by in-tree Clang/LLVM require an
474	external toolchain package.
475
47620200104:
477	GCC 4.2.1 is now not built by default, as part of the GCC 4.2.1
478	retirement plan.  Specifically, the GCC, GCC_BOOTSTRAP, and GNUCXX
479	options default to off for all supported CPU architectures.  As a
480	short-term transition aid they may be enabled via WITH_* options.
481	GCC 4.2.1 is expected to be removed from the tree on 2020-03-31.
482
48320200102:
484	Support for armv5 has been disconnected and is being removed. The
485	machine combination MACHINE=arm MACHINE_ARCH=arm is no longer valid.
486	You must now use a MACHINE_ARCH of armv6 or armv7. The default
487	MACHINE_ARCH for MACHINE=arm is now armv7.
488
48920191226:
490	Clang/LLVM is now the default compiler for all powerpc architectures.
491	LLD is now the default linker for powerpc64.  The change for powerpc64
492	also includes a change to the ELFv2 ABI, incompatible with the existing
493	ABI.
494
49520191226:
496	Kernel-loadable random(4) modules are no longer unloadable.
497
49820191222:
499	Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
500	been upgraded to 9.0.1.  Please see the 20141231 entry below for
501	information about prerequisites and upgrading, if you are not already
502	using clang 3.5.0 or higher.
503
50420191212:
505	r355677 has modified the internal interface used between the
506	NFS modules in the kernel. As such, they must all be upgraded
507	simultaneously. I will do a version bump for this.
508
50920191205:
510	The root certificates of the Mozilla CA Certificate Store have been
511	imported into the base system and can be managed with the certctl(8)
512	utility.  If you have installed the security/ca_root_nss port or package
513	with the ETCSYMLINK option (the default), be advised that there may be
514	differences between those included in the port and those included in
515	base due to differences in nss branch used as well as general update
516	frequency.  Note also that certctl(8) cannot manage certs in the
517	format used by the security/ca_root_nss port.
518
51920191120:
520	The amd(8) automount daemon has been disabled by default, and will be
521	removed in the future.  As of FreeBSD 10.1 the autofs(5) is available
522	for automounting.
523
52420191107:
525	The nctgpio and wbwd drivers have been moved to the superio bus.
526	If you have one of these drivers in a kernel configuration, then
527	you should add device superio to it.  If you use one of these drivers
528	as a module and you compile a custom set of modules, then you should
529	add superio to the set.
530
53120191021:
532	KPIs for network drivers to access interface addresses have changed.
533	Users need to recompile NIC driver modules together with kernel.
534
53520191021:
536	The net.link.tap.user_open sysctl no longer prevents user opening of
537	already created /dev/tapNN devices.  Access is still controlled by
538	node permissions, just like tun devices.  The net.link.tap.user_open
539	sysctl is now used only to allow users to perform devfs cloning of
540	tap devices, and the subsequent open may not succeed if the user is not
541	in the appropriate group.  This sysctl may be deprecated/removed
542	completely in the future.
543
54420191009:
545	mips, powerpc, and sparc64 are no longer built as part of
546	universe / tinderbox unless MAKE_OBSOLETE_GCC is defined. If
547	not defined, mips, powerpc, and sparc64 builds will look for
548	the xtoolchain binaries and if installed use them for universe
549	builds. As llvm 9.0 becomes vetted for these architectures, they
550	will be removed from the list.
551
55220191009:
553	Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
554	been upgraded to 9.0.0.  Please see the 20141231 entry below for
555	information about prerequisites and upgrading, if you are not already
556	using clang 3.5.0 or higher.
557
55820191003:
559	The hpt27xx, hptmv, hptnr, and hptrr drivers have been removed from
560	GENERIC.  They are available as modules and can be loaded by adding
561	to /boot/loader.conf hpt27xx_load="YES", hptmv_load="YES",
562	hptnr_load="YES", or hptrr_load="YES", respectively.
563
56420190913:
565	ntpd no longer by default locks its pages in memory, allowing them
566	to be paged out by the kernel. Use rlimit memlock to restore
567	historic BSD behaviour. For example, add "rlimit memlock 32"
568	to ntp.conf to lock up to 32 MB of ntpd address space in memory.
569
57020190823:
571	Several of ping6's options have been renamed for better consistency
572	with ping.  If you use any of -ARWXaghmrtwx, you must update your
573	scripts.  See ping6(8) for details.
574
57520190727:
576	The vfs.fusefs.sync_unmount and vfs.fusefs.init_backgrounded sysctls
577	and the "-o sync_unmount" and "-o init_backgrounded" mount options have
578	been removed from mount_fusefs(8).  You can safely remove them from
579	your scripts, because they had no effect.
580
581	The vfs.fusefs.fix_broken_io, vfs.fusefs.sync_resize,
582	vfs.fusefs.refresh_size, vfs.fusefs.mmap_enable,
583	vfs.fusefs.reclaim_revoked, and vfs.fusefs.data_cache_invalidate
584	sysctls have been removed.  If you felt the need to set any of them to
585	a non-default value, please tell asomers@FreeBSD.org why.
586
58720190713:
588	Default permissions on the /var/account/acct file (and copies of it
589	rotated by periodic daily scripts) are changed from 0644 to 0640
590	because the file contains sensitive information that should not be
591	world-readable.  If the /var/account directory must be created by
592	rc.d/accounting, the mode used is now 0750.  Admins who use the
593	accounting feature are encouraged to change the mode of an existing
594	/var/account directory to 0750 or 0700.
595
59620190620:
597	Entropy collection and the /dev/random device are no longer optional
598	components.  The "device random" option has been removed.
599	Implementations of distilling algorithms can still be made loadable
600	with "options RANDOM_LOADABLE" (e.g., random_fortuna.ko).
601
60220190612:
603	Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
604	been upgraded to 8.0.1.  Please see the 20141231 entry below for
605	information about prerequisites and upgrading, if you are not already
606	using clang 3.5.0 or higher.
607
60820190608:
609	A fix was applied to i386 kernel modules to avoid panics with
610	dpcpu or vnet.  Users need to recompile i386 kernel modules
611	having pcpu or vnet sections or they will refuse to load.
612
61320190513:
614	User-wired pages now have their own counter,
615	vm.stats.vm.v_user_wire_count.  The vm.max_wired sysctl was renamed
616	to vm.max_user_wired and changed from an unsigned int to an unsigned
617	long.  bhyve VMs wired with the -S are now subject to the user
618	wiring limit; the vm.max_user_wired sysctl may need to be tuned to
619	avoid running into the limit.
620
62120190507:
622	The IPSEC option has been removed from GENERIC.  Users requiring
623	ipsec(4) must now load the ipsec(4) kernel module.
624
62520190507:
626	The tap(4) driver has been folded into tun(4), and the module has been
627	renamed to tuntap.  You should update any kld_list="if_tap" or
628	kld_list="if_tun" entries in /etc/rc.conf, if_tap_load="YES" or
629	if_tun_load="YES" entries in /boot/loader.conf to load the if_tuntap
630	module instead, and "device tap" or "device tun" entries in kernel
631	config files to select the tuntap device instead.
632
63320190418:
634	The following knobs have been added related to tradeoffs between
635	safe use of the random device and availability in the absence of
636	entropy:
637
638	kern.random.initial_seeding.bypass_before_seeding: tunable; set
639	non-zero to bypass the random device prior to seeding, or zero to
640	block random requests until the random device is initially seeded.
641	For now, set to 1 (unsafe) by default to restore pre-r346250 boot
642	availability properties.
643
644	kern.random.initial_seeding.read_random_bypassed_before_seeding:
645	read-only diagnostic sysctl that is set when bypass is enabled and
646	read_random(9) is bypassed, to enable programmatic handling of this
647	initial condition, if desired.
648
649	kern.random.initial_seeding.arc4random_bypassed_before_seeding:
650	Similar to the above, but for for arc4random(9) initial seeding.
651
652	kern.random.initial_seeding.disable_bypass_warnings: tunable; set
653	non-zero to disable warnings in dmesg when the same conditions are
654	met as for the diagnostic sysctls above.  Defaults to zero, i.e.,
655	produce warnings in dmesg when the conditions are met.
656
65720190416:
658	The loadable random module KPI has changed; the random_infra_init()
659	routine now requires a 3rd function pointer for a bool (*)(void)
660	method that returns true if the random device is seeded (and
661	therefore unblocked).
662
66320190404:
664	r345895 reverts r320698. This implies that an nfsuserd(8) daemon
665	built from head sources between r320757 (July 6, 2017) and
666	r338192 (Aug. 22, 2018) will not work unless the "-use-udpsock"
667	is added to the command line.
668	nfsuserd daemons built from head sources that are post-r338192 are
669	not affected and should continue to work.
670
67120190320:
672	The fuse(4) module has been renamed to fusefs(4) for consistency with
673	other filesystems.  You should update any kld_load="fuse" entries in
674	/etc/rc.conf, fuse_load="YES" entries in /boot/loader.conf, and
675	"options FUSE" entries in kernel config files.
676
67720190304:
678	Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
679	8.0.0.  Please see the 20141231 entry below for information about
680	prerequisites and upgrading, if you are not already using clang 3.5.0
681	or higher.
682
68320190226:
684	geom_uzip(4) depends on the new module xz.  If geom_uzip is statically
685	compiled into your custom kernel, add 'device xz' statement to the
686	kernel config.
687
68820190219:
689	drm and drm2 have been removed from the tree. Please see
690	https://wiki.freebsd.org/Graphics for the latest information on
691	migrating to the drm ports.
692
69320190131:
694	Iflib is no longer unconditionally compiled into the kernel.  Drivers
695	using iflib and statically compiled into the kernel, now require
696	the 'device iflib' config option.  For the same drivers loaded as
697	modules on kernels not having 'device iflib', the iflib.ko module
698	is loaded automatically.
699
70020190125:
701	The IEEE80211_AMPDU_AGE and AH_SUPPORT_AR5416 kernel configuration
702	options no longer exist since r343219 and r343427 respectively;
703	nothing uses them, so they should be just removed from custom
704	kernel config files.
705
70620181230:
707	r342635 changes the way efibootmgr(8) works by requiring users to add
708	the -b (bootnum) parameter for commands where the bootnum was previously
709	specified with each option. For example 'efibootmgr -B 0001' is now
710	'efibootmgr -B -b 0001'.
711
71220181220:
713	r342286 modifies the NFSv4 server so that it obeys vfs.nfsd.nfs_privport
714	in the same as it is applied to NFSv2 and 3.  This implies that NFSv4
715	servers that have vfs.nfsd.nfs_privport set will only allow mounts
716	from clients using a reserved port. Since both the FreeBSD and Linux
717	NFSv4 clients use reserved ports by default, this should not affect
718	most NFSv4 mounts.
719
72020181219:
721	The XLP config has been removed. We can't support 64-bit atomics in this
722	kernel because it is running in 32-bit mode. XLP users must transition
723	to running a 64-bit kernel (XLP64 or XLPN32).
724
725	The mips GXEMUL support has been removed from FreeBSD. MALTA* + qemu is
726	the preferred emulator today and we don't need two different ones.
727
728	The old sibyte / swarm / Broadcom BCM1250 support has been
729	removed from the mips port.
730
73120181211:
732	Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
733	7.0.1.  Please see the 20141231 entry below for information about
734	prerequisites and upgrading, if you are not already using clang 3.5.0
735	or higher.
736
73720181211:
738	Remove the timed and netdate programs from the base tree.  Setting
739	the time with these daemons has been obsolete for over a decade.
740
74120181126:
742	On amd64, arm64 and armv7 (architectures that install LLVM's ld.lld
743	linker as /usr/bin/ld) GNU ld is no longer installed as ld.bfd, as
744	it produces broken binaries when ifuncs are in use.  Users needing
745	GNU ld should install the binutils port or package.
746
74720181123:
748	The BSD crtbegin and crtend code has been enabled by default. It has
749	had extensive testing on amd64, arm64, and i386. It can be disabled
750	by building a world with -DWITHOUT_BSD_CRTBEGIN.
751
75220181115:
753	The set of CTM commands (ctm, ctm_smail, ctm_rmail, ctm_dequeue)
754	has been converted to a port (misc/ctm) and will be removed from
755	FreeBSD-13.  It is available as a package (ctm) for all supported
756	FreeBSD versions.
757
75820181110:
759	The default newsyslog.conf(5) file has been changed to only include
760	files in /etc/newsyslog.conf.d/ and /usr/local/etc/newsyslog.conf.d/ if
761	the filenames end in '.conf' and do not begin with a '.'.
762
763	You should check the configuration files in these two directories match
764	this naming convention. You can verify which configuration files are
765	being included using the command:
766		$ newsyslog -Nrv
767
76820181015:
769	Ports for the DRM modules have been simplified. Now, amd64 users should
770	just install the drm-kmod port. All others should install
771	drm-legacy-kmod.
772
773	Graphics hardware that's newer than about 2010 usually works with
774	drm-kmod.  For hardware older than 2013, however, some users will need
775	to use drm-legacy-kmod if drm-kmod doesn't work for them. Hardware older
776	than 2008 usually only works in drm-legacy-kmod. The graphics team can
777	only commit to hardware made since 2013 due to the complexity of the
778	market and difficulty to test all the older cards effectively. If you
779	have hardware supported by drm-kmod, you are strongly encouraged to use
780	that as you will get better support.
781
782	Other than KPI chasing, drm-legacy-kmod will not be updated. As outlined
783	elsewhere, the drm and drm2 modules will be eliminated from the src base
784	soon (with a limited exception for arm). Please update to the package
785	asap and report any issues to x11@freebsd.org.
786
787	Generally, anybody using the drm*-kmod packages should add
788	WITHOUT_DRM_MODULE=t and WITHOUT_DRM2_MODULE=t to avoid nasty
789	cross-threading surprises, especially with automatic driver
790	loading from X11 startup. These will become the defaults in 13-current
791	shortly.
792
79320181012:
794	The ixlv(4) driver has been renamed to iavf(4).  As a consequence,
795	custom kernel and module loading configuration files must be updated
796	accordingly.  Moreover, interfaces previous presented as ixlvN to the
797	system are now exposed as iavfN and network configuration files must
798	be adjusted as necessary.
799
80020181009:
801	OpenSSL has been updated to version 1.1.1.  This update included
802	additional various API changes throughout the base system.  It is
803	important to rebuild third-party software after upgrading.  The value
804	of __FreeBSD_version has been bumped accordingly.
805
80620181006:
807	The legacy DRM modules and drivers have now been added to the loader's
808	module blacklist, in favor of loading them with kld_list in rc.conf(5).
809	The module blacklist may be overridden with the loader.conf(5)
810	'module_blacklist' variable, but loading them via rc.conf(5) is strongly
811	encouraged.
812
81320181002:
814	The cam(4) based nda(4) driver will be used over nvd(4) by default on
815	powerpc64. You may set 'options NVME_USE_NVD=1' in your kernel conf or
816	loader tunable 'hw.nvme.use_nvd=1' if you wish to use the existing
817	driver.  Make sure to edit /boot/etc/kboot.conf and fstab to use the
818	nda device name.
819
82020180913:
821	Reproducible build mode is now on by default, in preparation for
822	FreeBSD 12.0.  This eliminates build metadata such as the user,
823	host, and time from the kernel (and uname), unless the working tree
824	corresponds to a modified checkout from a version control system.
825	The previous behavior can be obtained by setting the /etc/src.conf
826	knob WITHOUT_REPRODUCIBLE_BUILD.
827
82820180826:
829	The Yarrow CSPRNG has been removed from the kernel as it has not been
830	supported by its designers since at least 2003. Fortuna has been the
831	default since FreeBSD-11.
832
83320180822:
834	devctl freeze/thaw have gone into the tree, the rc scripts have been
835	updated to use them and devmatch has been changed.  You should update
836	kernel, userland and rc scripts all at the same time.
837
83820180818:
839	The default interpreter has been switched from 4th to Lua.
840	LOADER_DEFAULT_INTERP, documented in build(7), will override the default
841	interpreter.  If you have custom FORTH code you will need to set
842	LOADER_DEFAULT_INTERP=4th (valid values are 4th, lua or simp) in
843	src.conf for the build.  This will create default hard links between
844	loader and loader_4th instead of loader and loader_lua, the new default.
845	If you are using UEFI it will create the proper hard link to loader.efi.
846
847	bhyve uses userboot.so. It remains 4th-only until some issues are solved
848	regarding coexisting with multiple versions of FreeBSD are resolved.
849
85020180815:
851	ls(1) now respects the COLORTERM environment variable used in other
852	systems and software to indicate that a colored terminal is both
853	supported and desired.  If ls(1) is suddenly emitting colors, they may
854	be disabled again by either removing the unwanted COLORTERM from your
855	environment, or using `ls --color=never`.  The ls(1) specific CLICOLOR
856	may not be observed in a future release.
857
85820180808:
859	The default pager for most commands has been changed to "less".  To
860	restore the old behavior, set PAGER="more" and MANPAGER="more -s" in
861	your environment.
862
86320180731:
864	The jedec_ts(4) driver has been removed. A superset of its functionality
865	is available in the jedec_dimm(4) driver, and the manpage for that
866	driver includes migration instructions. If you have "device jedec_ts"
867	in your kernel configuration file, it must be removed.
868
86920180730:
870	amd64/GENERIC now has EFI runtime services, EFIRT, enabled by default.
871	This should have no effect if the kernel is booted via BIOS/legacy boot.
872	EFIRT may be disabled via a loader tunable, efi.rt.disabled, if a system
873	has a buggy firmware that prevents a successful boot due to use of
874	runtime services.
875
87620180727:
877	Atmel AT91RM9200 and AT91SAM9, Cavium CNS 11xx and XScale
878	support has been removed from the tree. These ports were
879	obsolete and/or known to be broken for many years.
880
88120180723:
882	loader.efi has been augmented to participate more fully in the
883	UEFI boot manager protocol. loader.efi will now look at the
884	BootXXXX environment variable to determine if a specific kernel
885	or root partition was specified. XXXX is derived from BootCurrent.
886	efibootmgr(8) manages these standard UEFI variables.
887
88820180720:
889	zfsloader's functionality has now been folded into loader.
890	zfsloader is no longer necessary once you've updated your
891	boot blocks. For a transition period, we will install a
892	hardlink for zfsloader to loader to allow a smooth transition
893	until the boot blocks can be updated (hard link because old
894	zfs boot blocks don't understand symlinks).
895
89620180719:
897	ARM64 now have efifb support, if you want to have serial console
898	on your arm64 board when an screen is connected and the bootloader
899	setup a frame buffer for us to use, just add :
900	boot_serial=YES
901	boot_multicons=YES
902	in /boot/loader.conf
903	For Raspberry Pi 3 (RPI) users, this is needed even if you don't have
904	an screen connected as the firmware will setup a frame buffer are that
905	u-boot will expose as an EFI frame buffer.
906
90720180719:
908	New uid:gid added, ntpd:ntpd (123:123).  Be sure to run mergemaster
909	or take steps to update /etc/passwd before doing installworld on
910	existing systems.  Do not skip the "mergemaster -Fp" step before
911	installworld, as described in the update procedures near the bottom
912	of this document.  Also, rc.d/ntpd now starts ntpd(8) as user ntpd
913	if the new mac_ntpd(4) policy is available, unless ntpd_flags or
914	the ntp config file contain options that change file/dir locations.
915	When such options (e.g., "statsdir" or "crypto") are used, ntpd can
916	still be run as non-root by setting ntpd_user=ntpd in rc.conf, after
917	taking steps to ensure that all required files/dirs are accessible
918	by the ntpd user.
919
92020180717:
921	Big endian arm support has been removed.
922
92320180711:
924	The static environment setup in kernel configs is no longer mutually
925	exclusive with the loader(8) environment by default.  In order to
926	restore the previous default behavior of disabling the loader(8)
927	environment if a static environment is present, you must specify
928	loader_env.disabled=1 in the static environment.
929
93020180705:
931	The ABI of syscalls used by management tools like sockstat and
932	netstat has been broken to allow 32-bit binaries to work on
933	64-bit kernels without modification.  These programs will need
934	to match the kernel in order to function.  External programs may
935	require minor modifications to accommodate a change of type in
936	structures from pointers to 64-bit virtual addresses.
937
93820180702:
939	On i386 and amd64 atomics are now inlined. Out of tree modules using
940	atomics will need to be rebuilt.
941
94220180701:
943	The '%I' format in the kern.corefile sysctl limits the number of
944	core files that a process can generate to the number stored in the
945	debug.ncores sysctl. The '%I' format is replaced by the single digit
946	index. Previously, if all indexes were taken the kernel would overwrite
947	only a core file with the highest index in a filename.
948	Currently the system will create a new core file if there is a free
949	index or if all slots are taken it will overwrite the oldest one.
950
95120180630:
952	Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
953	6.0.1.  Please see the 20141231 entry below for information about
954	prerequisites and upgrading, if you are not already using clang 3.5.0
955	or higher.
956
95720180628:
958	r335753 introduced a new quoting method. However, etc/devd/devmatch.conf
959	needed to be changed to work with it. This change was made with r335763
960	and requires a mergemaster / etcupdate / etc to update the installed
961	file.
962
96320180612:
964	r334930 changed the interface between the NFS modules, so they all
965	need to be rebuilt.  r335018 did a __FreeBSD_version bump for this.
966
96720180530:
968	As of r334391 lld is the default amd64 system linker; it is installed
969	as /usr/bin/ld.  Kernel build workarounds (see 20180510 entry) are no
970	longer necessary.
971
97220180530:
973	The kernel / userland interface for devinfo changed, so you'll
974	need a new kernel and userland as a pair for it to work (rebuilding
975	lib/libdevinfo is all that's required). devinfo and devmatch will
976	not work, but everything else will when there's a mismatch.
977
97820180523:
979	The on-disk format for hwpmc callchain records has changed to include
980	threadid corresponding to a given record. This changes the field offsets
981	and thus requires that libpmcstat be rebuilt before using a kernel
982	later than r334108.
983
98420180517:
985	The vxge(4) driver has been removed.  This driver was introduced into
986	HEAD one week before the Exar left the Ethernet market and is not
987	known to be used.  If you have device vxge in your kernel config file
988	it must be removed.
989
99020180510:
991	The amd64 kernel now requires a ld that supports ifunc to produce a
992	working kernel, either lld or a newer binutils. lld is built by default
993	on amd64, and the 'buildkernel' target uses it automatically. However,
994	it is not the default linker, so building the kernel the traditional
995	way requires LD=ld.lld on the command line (or LD=/usr/local/bin/ld for
996	binutils port/package). lld will soon be default, and this requirement
997	will go away.
998
999	NOTE: As of r334391 lld is the default system linker on amd64, and no
1000	workaround is necessary.
1001
100220180508:
1003	The nxge(4) driver has been removed.  This driver was for PCI-X 10g
1004	cards made by s2io/Neterion.  The company was acquired by Exar and
1005	no longer sells or supports Ethernet products.  If you have device
1006	nxge in your kernel config file it must be removed.
1007
100820180504:
1009	The tz database (tzdb) has been updated to 2018e.  This version more
1010	correctly models time stamps in time zones with negative DST such as
1011	Europe/Dublin (from 1971 on), Europe/Prague (1946/7), and
1012	Africa/Windhoek (1994/2017).  This does not affect the UT offsets, only
1013	time zone abbreviations and the tm_isdst flag.
1014
101520180502:
1016	The ixgb(4) driver has been removed.  This driver was for an early and
1017	uncommon legacy PCI 10GbE for a single ASIC, Intel 82597EX. Intel
1018	quickly shifted to the long lived ixgbe family.  If you have device
1019	ixgb in your kernel config file it must be removed.
1020
102120180501:
1022	The lmc(4) driver has been removed.  This was a WAN interface
1023	card that was already reportedly rare in 2003, and had an ambiguous
1024	license.  If you have device lmc in your kernel config file it must
1025	be removed.
1026
102720180413:
1028	Support for Arcnet networks has been removed.  If you have device
1029	arcnet or device cm in your kernel config file they must be
1030	removed.
1031
103220180411:
1033	Support for FDDI networks has been removed.  If you have device
1034	fddi or device fpa in your kernel config file they must be
1035	removed.
1036
103720180406:
1038	In addition to supporting RFC 3164 formatted messages, the
1039	syslogd(8) service is now capable of parsing RFC 5424 formatted
1040	log messages. The main benefit of using RFC 5424 is that clients
1041	may now send log messages with timestamps containing year numbers,
1042	microseconds and time zone offsets.
1043
1044	Similarly, the syslog(3) C library function has been altered to
1045	send RFC 5424 formatted messages to the local system logging
1046	daemon. On systems using syslogd(8), this change should have no
1047	negative impact, as long as syslogd(8) and the C library are
1048	updated at the same time. On systems using a different system
1049	logging daemon, it may be necessary to make configuration
1050	adjustments, depending on the software used.
1051
1052	When using syslog-ng, add the 'syslog-protocol' flag to local
1053	input sources to enable parsing of RFC 5424 formatted messages:
1054
1055		source src {
1056			unix-dgram("/var/run/log" flags(syslog-protocol));
1057		}
1058
1059	When using rsyslog, disable the 'SysSock.UseSpecialParser' option
1060	of the 'imuxsock' module to let messages be processed by the
1061	regular RFC 3164/5424 parsing pipeline:
1062
1063		module(load="imuxsock" SysSock.UseSpecialParser="off")
1064
1065	Do note that these changes only affect communication between local
1066	applications and syslogd(8). The format that syslogd(8) uses to
1067	store messages on disk or forward messages to other systems
1068	remains unchanged. syslogd(8) still uses RFC 3164 for these
1069	purposes. Options to customize this behaviour will be added in the
1070	future. Utilities that process log files stored in /var/log are
1071	thus expected to continue to function as before.
1072
1073	__FreeBSD_version has been incremented to 1200061 to denote this
1074	change.
1075
107620180328:
1077	Support for token ring networks has been removed. If you
1078	have "device token" in your kernel config you should remove
1079	it. No device drivers supported token ring.
1080
108120180323:
1082	makefs was modified to be able to tag ISO9660 El Torito boot catalog
1083	entries as EFI instead of overloading the i386 tag as done previously.
1084	The amd64 mkisoimages.sh script used to build amd64 ISO images for
1085	release was updated to use this. This may mean that makefs must be
1086	updated before "make cdrom" can be run in the release directory. This
1087	should be as simple as:
1088
1089		$ cd $SRCDIR/usr.sbin/makefs
1090		$ make depend all install
1091
109220180212:
1093	FreeBSD boot loader enhanced with Lua scripting. It's purely opt-in for
1094	now by building WITH_LOADER_LUA and WITHOUT_FORTH in /etc/src.conf.
1095	Co-existence for the transition period will come shortly. Booting is a
1096	complex environment and test coverage for Lua-enabled loaders has been
1097	thin, so it would be prudent to assume it might not work and make
1098	provisions for backup boot methods.
1099
110020180211:
1101	devmatch functionality has been turned on in devd. It will automatically
1102	load drivers for unattached devices. This may cause unexpected drivers
1103	to be loaded. Please report any problems to current@ and
1104	imp@freebsd.org.
1105
110620180114:
1107	Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
1108	6.0.0.  Please see the 20141231 entry below for information about
1109	prerequisites and upgrading, if you are not already using clang 3.5.0
1110	or higher.
1111
111220180110:
1113	LLVM's lld linker is now used as the FreeBSD/amd64 bootstrap linker.
1114	This means it is used to link the kernel and userland libraries and
1115	executables, but is not yet installed as /usr/bin/ld by default.
1116
1117	To revert to ld.bfd as the bootstrap linker, in /etc/src.conf set
1118	WITHOUT_LLD_BOOTSTRAP=yes
1119
112020180110:
1121	On i386, pmtimer has been removed. Its functionality has been folded
1122	into apm. It was a no-op on ACPI in current for a while now (but was
1123	still needed on i386 in FreeBSD 11 and earlier). Users may need to
1124	remove it from kernel config files.
1125
112620180104:
1127	The use of RSS hash from the network card aka flowid has been
1128	disabled by default for lagg(4) as it's currently incompatible with
1129	the lacp and loadbalance protocols.
1130
1131	This can be re-enabled by setting the following in loader.conf:
1132	net.link.lagg.default_use_flowid="1"
1133
113420180102:
1135	The SW_WATCHDOG option is no longer necessary to enable the
1136	hardclock-based software watchdog if no hardware watchdog is
1137	configured. As before, SW_WATCHDOG will cause the software
1138	watchdog to be enabled even if a hardware watchdog is configured.
1139
114020171215:
1141	r326887 fixes the issue described in the 20171214 UPDATING entry.
1142	r326888 flips the switch back to building GELI support always.
1143
114420171214:
1145	r362593 broke ZFS + GELI support for reasons unknown. However,
1146	it also broke ZFS support generally, so GELI has been turned off
1147	by default as the lesser evil in r326857. If you boot off ZFS and/or
1148	GELI, it might not be a good time to update.
1149
115020171125:
1151	PowerPC users must update loader(8) by rebuilding world before
1152	installing a new kernel, as the protocol connecting them has
1153	changed. Without the update, loader metadata will not be passed
1154	successfully to the kernel and users will have to enter their
1155	root partition at the kernel mountroot prompt to continue booting.
1156	Newer versions of loader can boot old kernels without issue.
1157
115820171110:
1159	The LOADER_FIREWIRE_SUPPORT build variable has been renamed to
1160	WITH/OUT_LOADER_FIREWIRE. LOADER_{NO_,}GELI_SUPPORT has been renamed
1161	to WITH/OUT_LOADER_GELI.
1162
116320171106:
1164	The naive and non-compliant support of posix_fallocate(2) in ZFS
1165	has been removed as of r325320.  The system call now returns EINVAL
1166	when used on a ZFS file.  Although the new behavior complies with the
1167	standard, some consumers are not prepared to cope with it.
1168	One known victim is lld prior to r325420.
1169
117020171102:
1171	Building in a FreeBSD src checkout will automatically create object
1172	directories now rather than store files in the current directory if
1173	'make obj' was not ran.  Calling 'make obj' is no longer necessary.
1174	This feature can be disabled by setting WITHOUT_AUTO_OBJ=yes in
1175	/etc/src-env.conf (not /etc/src.conf), or passing the option in the
1176	environment.
1177
117820171101:
1179	The default MAKEOBJDIR has changed from /usr/obj/<srcdir> for native
1180	builds, and /usr/obj/<arch>/<srcdir> for cross-builds, to a unified
1181	/usr/obj/<srcdir>/<arch>.  This behavior can be changed to the old
1182	format by setting WITHOUT_UNIFIED_OBJDIR=yes in /etc/src-env.conf,
1183	the environment, or with -DWITHOUT_UNIFIED_OBJDIR when building.
1184	The UNIFIED_OBJDIR option is a transitional feature that will be
1185	removed for 12.0 release; please migrate to the new format for any
1186	tools by looking up the OBJDIR used by 'make -V .OBJDIR' means rather
1187	than hardcoding paths.
1188
118920171028:
1190	The native-xtools target no longer installs the files by default to the
1191	OBJDIR.  Use the native-xtools-install target with a DESTDIR to install
1192	to ${DESTDIR}/${NXTP} where NXTP defaults to /nxb-bin.
1193
119420171021:
1195	As part of the boot loader infrastructure cleanup, LOADER_*_SUPPORT
1196	options are changing from controlling the build if defined / undefined
1197	to controlling the build with explicit 'yes' or 'no' values. They will
1198	shift to WITH/WITHOUT options to match other options in the system.
1199
120020171010:
1201	libstand has turned into a private library for sys/boot use only.
1202	It is no longer supported as a public interface outside of sys/boot.
1203
120420171005:
1205	The arm port has split armv6 into armv6 and armv7. armv7 is now
1206	a valid TARGET_ARCH/MACHINE_ARCH setting. If you have an armv7 system
1207	and are running a kernel from before r324363, you will need to add
1208	MACHINE_ARCH=armv7 to 'make buildworld' to do a native build.
1209
121020171003:
1211	When building multiple kernels using KERNCONF, non-existent KERNCONF
1212	files will produce an error and buildkernel will fail. Previously
1213	missing KERNCONF files silently failed giving no indication as to
1214	why, only to subsequently discover during installkernel that the
1215	desired kernel was never built in the first place.
1216
121720170912:
1218	The default serial number format for CTL LUNs has changed.  This will
1219	affect users who use /dev/diskid/* device nodes, or whose FibreChannel
1220	or iSCSI clients care about their LUNs' serial numbers.  Users who
1221	require serial number stability should hardcode serial numbers in
1222	/etc/ctl.conf .
1223
122420170912:
1225	For 32-bit arm compiled for hard-float support, soft-floating point
1226	binaries now always get their shared libraries from
1227	LD_SOFT_LIBRARY_PATH (in the past, this was only used if
1228	/usr/libsoft also existed). Only users with a hard-float ld.so, but
1229	soft-float everything else should be affected.
1230
123120170826:
1232	The geli password typed at boot is now hidden.  To restore the previous
1233	behavior, see geli(8) for configuration options.
1234
123520170825:
1236	Move PMTUD blackhole counters to TCPSTATS and remove them from bare
1237	sysctl values.  Minor nit, but requires a rebuild of both world/kernel
1238	to complete.
1239
124020170814:
1241	"make check" behavior (made in ^/head@r295380) has been changed to
1242	execute from a limited sandbox, as opposed to executing from
1243	${TESTSDIR}.
1244
1245	Behavioral changes:
1246	- The "beforecheck" and "aftercheck" targets are now specified.
1247	- ${CHECKDIR} (added in commit noted above) has been removed.
1248	- Legacy behavior can be enabled by setting
1249	  WITHOUT_MAKE_CHECK_USE_SANDBOX in src.conf(5) or the environment.
1250
1251	If the limited sandbox mode is enabled, "make check" will execute
1252	"make distribution", then install, execute the tests, and clean up the
1253	sandbox if successful.
1254
1255	The "make distribution" and "make install" targets are typically run as
1256	root to set appropriate permissions and ownership at installation time.
1257	The end-user should set "WITH_INSTALL_AS_USER" in src.conf(5) or the
1258	environment if executing "make check" with limited sandbox mode using
1259	an unprivileged user.
1260
126120170808:
1262	Since the switch to GPT disk labels, fsck for UFS/FFS has been
1263	unable to automatically find alternate superblocks. As of r322297,
1264	the information needed to find alternate superblocks has been
1265	moved to the end of the area reserved for the boot block.
1266	Filesystems created with a newfs of this vintage or later
1267	will create the recovery information. If you have a filesystem
1268	created prior to this change and wish to have a recovery block
1269	created for your filesystem, you can do so by running fsck in
1270	foreground mode (i.e., do not use the -p or -y options). As it
1271	starts, fsck will ask ``SAVE DATA TO FIND ALTERNATE SUPERBLOCKS''
1272	to which you should answer yes.
1273
127420170728:
1275	As of r321665, an NFSv4 server configuration that services
1276	Kerberos mounts or clients that do not support the uid/gid in
1277	owner/owner_group string capability, must explicitly enable
1278	the nfsuserd daemon by adding nfsuserd_enable="YES" to the
1279	machine's /etc/rc.conf file.
1280
128120170722:
1282	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 5.0.0.
1283	Please see the 20141231 entry below for information about prerequisites
1284	and upgrading, if you are not already using clang 3.5.0 or higher.
1285
128620170701:
1287	WITHOUT_RCMDS is now the default. Set WITH_RCMDS if you need the
1288	r-commands (rlogin, rsh, etc.) to be built with the base system.
1289
129020170625:
1291	The FreeBSD/powerpc platform now uses a 64-bit type for time_t.  This is
1292	a very major ABI incompatible change, so users of FreeBSD/powerpc must
1293	be careful when performing source upgrades.  It is best to run
1294	'make installworld' from an alternate root system, either a live
1295	CD/memory stick, or a temporary root partition.  Additionally, all ports
1296	must be recompiled.  powerpc64 is largely unaffected, except in the case
1297	of 32-bit compatibility.  All 32-bit binaries will be affected.
1298
129920170623:
1300	Forward compatibility for the "ino64" project have been committed. This
1301	will allow most new binaries to run on older kernels in a limited
1302	fashion.  This prevents many of the common foot-shooting actions in the
1303	upgrade as well as the limited ability to roll back the kernel across
1304	the ino64 upgrade. Complicated use cases may not work properly, though
1305	enough simpler ones work to allow recovery in most situations.
1306
130720170620:
1308	Switch back to the BSDL dtc (Device Tree Compiler). Set WITH_GPL_DTC
1309	if you require the GPL compiler.
1310
131120170618:
1312	The internal ABI used for communication between the NFS kernel modules
1313	was changed by r320085, so __FreeBSD_version was bumped to
1314	ensure all the NFS related modules are updated together.
1315
131620170617:
1317	The ABI of struct event was changed by extending the data
1318	member to 64bit and adding ext fields.  For upgrade, same
1319	precautions as for the entry 20170523 "ino64" must be
1320	followed.
1321
132220170531:
1323	The GNU roff toolchain has been removed from base. To render manpages
1324	which are not supported by mandoc(1), man(1) can fallback on GNU roff
1325	from ports (and recommends to install it).
1326	To render roff(7) documents, consider using GNU roff from ports or the
1327	heirloom doctools roff toolchain from ports via pkg install groff or
1328	via pkg install heirloom-doctools.
1329
133020170524:
1331	The ath(4) and ath_hal(4) modules now build piecemeal to allow for
1332	smaller runtime footprint builds.  This is useful for embedded systems
1333	which only require one chipset support.
1334
1335	If you load it as a module, make sure this is in /boot/loader.conf:
1336
1337	if_ath_load="YES"
1338
1339	This will load the HAL, all chip/RF backends and if_ath_pci.
1340	If you have if_ath_pci in /boot/loader.conf, ensure it is after
1341	if_ath or it will not load any HAL chipset support.
1342
1343	If you want to selectively load things (eg on cheaper ARM/MIPS
1344	platforms where RAM is at a premium) you should:
1345
1346	* load ath_hal
1347	* load the chip modules in question
1348	* load ath_rate, ath_dfs
1349	* load ath_main
1350	* load if_ath_pci and/or if_ath_ahb depending upon your particular
1351	  bus bind type - this is where probe/attach is done.
1352
1353	For further comments/feedback, poke adrian@ .
1354
135520170523:
1356	The "ino64" 64-bit inode project has been committed, which extends
1357	a number of types to 64 bits.  Upgrading in place requires care and
1358	adherence to the documented upgrade procedure.
1359
1360	If using a custom kernel configuration ensure that the
1361	COMPAT_FREEBSD11 option is included (as during the upgrade the
1362	system will be running the ino64 kernel with the existing world).
1363
1364	For the safest in-place upgrade begin by removing previous build
1365	artifacts via "rm -rf /usr/obj/*".  Then, carefully follow the full
1366	procedure documented below under the heading "To rebuild everything and
1367	install it on the current system."  Specifically, a reboot is required
1368	after installing the new kernel before installing world. While an
1369	installworld normally works by accident from multiuser after rebooting
1370	the proper kernel, there are many cases where this will fail across this
1371	upgrade and installworld from single user is required.
1372
137320170424:
1374	The NATM framework including the en(4), fatm(4), hatm(4), and
1375	patm(4) devices has been removed.  Consumers should plan a
1376	migration before the end-of-life date for FreeBSD 11.
1377
137820170420:
1379	GNU diff has been replaced by a BSD licensed diff. Some features of GNU
1380	diff has not been implemented, if those are needed a newer version of
1381	GNU diff is available via the diffutils package under the gdiff name.
1382
138320170413:
1384	As of r316810 for ipfilter, keep frags is no longer assumed when
1385	keep state is specified in a rule. r316810 aligns ipfilter with
1386	documentation in man pages separating keep frags from keep state.
1387	This allows keep state to be specified without forcing keep frags
1388	and allows keep frags to be specified independently of keep state.
1389	To maintain previous behaviour, also specify keep frags with
1390	keep state (as documented in ipf.conf.5).
1391
139220170407:
1393	arm64 builds now use the base system LLD 4.0.0 linker by default,
1394	instead of requiring that the aarch64-binutils port or package be
1395	installed. To continue using aarch64-binutils, set
1396	CROSS_BINUTILS_PREFIX=/usr/local/aarch64-freebsd/bin .
1397
139820170405:
1399	The UDP optimization in entry 20160818 that added the sysctl
1400	net.inet.udp.require_l2_bcast has been reverted.  L2 broadcast
1401	packets will no longer be treated as L3 broadcast packets.
1402
140320170331:
1404	Binds and sends to the loopback addresses, IPv6 and IPv4, will now
1405	use any explicitly assigned loopback address available in the jail
1406	instead of using the first assigned address of the jail.
1407
140820170329:
1409	The ctl.ko module no longer implements the iSCSI target frontend:
1410	cfiscsi.ko does instead.
1411
1412	If building cfiscsi.ko as a kernel module, the module can be loaded
1413	via one of the following methods:
1414	- `cfiscsi_load="YES"` in loader.conf(5).
1415	- Add `cfiscsi` to `$kld_list` in rc.conf(5).
1416	- ctladm(8)/ctld(8), when compiled with iSCSI support
1417	  (`WITH_ISCSI=yes` in src.conf(5))
1418
1419	Please see cfiscsi(4) for more details.
1420
142120170316:
1422	The mmcsd.ko module now additionally depends on geom_flashmap.ko.
1423	Also, mmc.ko and mmcsd.ko need to be a matching pair built from the
1424	same source (previously, the dependency of mmcsd.ko on mmc.ko was
1425	missing, but mmcsd.ko now will refuse to load if it is incompatible
1426	with mmc.ko).
1427
142820170315:
1429	The syntax of ipfw(8) named states was changed to avoid ambiguity.
1430	If you have used named states in the firewall rules, you need to modify
1431	them after installworld and before rebooting. Now named states must
1432	be prefixed with colon.
1433
143420170311:
1435	The old drm (sys/dev/drm/) drivers for i915 and radeon have been
1436	removed as the userland we provide cannot use them. The KMS version
1437	(sys/dev/drm2) supports the same hardware.
1438
143920170302:
1440	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 4.0.0.
1441	Please see the 20141231 entry below for information about prerequisites
1442	and upgrading, if you are not already using clang 3.5.0 or higher.
1443
144420170221:
1445	The code that provides support for ZFS .zfs/ directory functionality
1446	has been reimplemented.  It's not possible now to create a snapshot
1447	by mkdir under .zfs/snapshot/.  That should be the only user visible
1448	change.
1449
145020170216:
1451	EISA bus support has been removed. The WITH_EISA option is no longer
1452	valid.
1453
145420170215:
1455	MCA bus support has been removed.
1456
145720170127:
1458	The WITH_LLD_AS_LD / WITHOUT_LLD_AS_LD build knobs have been renamed
1459	WITH_LLD_IS_LD / WITHOUT_LLD_IS_LD, for consistency with CLANG_IS_CC.
1460
146120170112:
1462	The EM_MULTIQUEUE kernel configuration option is deprecated now that
1463	the em(4) driver conforms to iflib specifications.
1464
146520170109:
1466	The igb(4), em(4) and lem(4) ethernet drivers are now implemented via
1467	IFLIB.  If you have a custom kernel configuration that excludes em(4)
1468	but you use igb(4), you need to re-add em(4) to your custom
1469	configuration.
1470
147120161217:
1472	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1.
1473	Please see the 20141231 entry below for information about prerequisites
1474	and upgrading, if you are not already using clang 3.5.0 or higher.
1475
147620161124:
1477	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.0.
1478	Please see the 20141231 entry below for information about prerequisites
1479	and upgrading, if you are not already using clang 3.5.0 or higher.
1480
148120161119:
1482	The layout of the pmap structure has changed for powerpc to put the pmap
1483	statistics at the front for all CPU variations.  libkvm(3) and all tools
1484	that link against it need to be recompiled.
1485
148620161030:
1487	isl(4) and cyapa(4) drivers now require a new driver,
1488	chromebook_platform(4), to work properly on Chromebook-class hardware.
1489	On other types of hardware the drivers may need to be configured using
1490	device hints.  Please see the corresponding manual pages for details.
1491
149220161017:
1493	The urtwn(4) driver was merged into rtwn(4) and now consists of
1494	rtwn(4) main module + rtwn_usb(4) and rtwn_pci(4) bus-specific
1495	parts.
1496	Also, firmware for RTL8188CE was renamed due to possible name
1497	conflict (rtwnrtl8192cU(B) -> rtwnrtl8192cE(B))
1498
149920161015:
1500	GNU rcs has been removed from base.  It is available as packages:
1501	- rcs: Latest GPLv3 GNU rcs version.
1502	- rcs57: Copy of the latest version of GNU rcs (GPLv2) before it was
1503	removed from base.
1504
150520161008:
1506	Use of the cc_cdg, cc_chd, cc_hd, or cc_vegas congestion control
1507	modules now requires that the kernel configuration contain the
1508	TCP_HHOOK option. (This option is included in the GENERIC kernel.)
1509
151020161003:
1511	The WITHOUT_ELFCOPY_AS_OBJCOPY src.conf(5) knob has been retired.
1512	ELF Tool Chain's elfcopy is always installed as /usr/bin/objcopy.
1513
151420160924:
1515	Relocatable object files with the extension of .So have been renamed
1516	to use an extension of .pico instead.  The purpose of this change is
1517	to avoid a name clash with shared libraries on case-insensitive file
1518	systems.  On those file systems, foo.So is the same file as foo.so.
1519
152020160918:
1521	GNU rcs has been turned off by default.  It can (temporarily) be built
1522	again by adding WITH_RCS knob in src.conf.
1523	Otherwise, GNU rcs is available from packages:
1524	- rcs: Latest GPLv3 GNU rcs version.
1525	- rcs57: Copy of the latest version of GNU rcs (GPLv2) from base.
1526
152720160918:
1528	The backup_uses_rcs functionality has been removed from rc.subr.
1529
153020160908:
1531	The queue(3) debugging macro, QUEUE_MACRO_DEBUG, has been split into
1532	two separate components, QUEUE_MACRO_DEBUG_TRACE and
1533	QUEUE_MACRO_DEBUG_TRASH.  Define both for the original
1534	QUEUE_MACRO_DEBUG behavior.
1535
153620160824:
1537	r304787 changed some ioctl interfaces between the iSCSI userspace
1538	programs and the kernel.  ctladm, ctld, iscsictl, and iscsid must be
1539	rebuilt to work with new kernels.  __FreeBSD_version has been bumped
1540	to 1200005.
1541
154220160818:
1543	The UDP receive code has been updated to only treat incoming UDP
1544	packets that were addressed to an L2 broadcast address as L3
1545	broadcast packets.  It is not expected that this will affect any
1546	standards-conforming UDP application.  The new behaviour can be
1547	disabled by setting the sysctl net.inet.udp.require_l2_bcast to
1548	0.
1549
155020160818:
1551	Remove the openbsd_poll system call.
1552	__FreeBSD_version has been bumped because of this.
1553
155420160708:
1555	The stable/11 branch has been created from head@r302406.
1556
155720160622:
1558	The libc stub for the pipe(2) system call has been replaced with
1559	a wrapper that calls the pipe2(2) system call and the pipe(2)
1560	system call is now only implemented by the kernels that include
1561	"options COMPAT_FREEBSD10" in their config file (this is the
1562	default).  Users should ensure that this option is enabled in
1563	their kernel or upgrade userspace to r302092 before upgrading their
1564	kernel.
1565
156620160527:
1567	CAM now strips the leading spaces from each SCSI disk's serial number.
1568	This will affect users who create UFS filesystems on SCSI disks using
1569	those disk's diskid device nodes.  For example, if /etc/fstab
1570	previously contained a line like
1571	"/dev/diskid/DISK-%20%20%20%20%20%20%20ABCDEFG0123456", you should
1572	change it to "/dev/diskid/DISK-ABCDEFG0123456".  Users of geom
1573	transforms like gmirror may also be affected.  ZFS users should
1574	generally be fine.
1575
157620160523:
1577	The bitstring(3) API has been updated with new functionality and
1578	improved performance.  But it is binary-incompatible with the old API.
1579	Objects built with the new headers may not be linked against objects
1580	built with the old headers.
1581
158220160520:
1583	The brk and sbrk functions have been removed from libc on arm64.
1584	Binutils from ports has been updated to not link to these
1585	functions and should be updated to the latest version before
1586	installing a new libc.
1587
158820160517:
1589	The armv6 port now defaults to hard float ABI. Limited support
1590	for running both hardfloat and soft float on the same system
1591	is available using the libraries installed with -DWITH_LIBSOFT.
1592	This has only been tested as an upgrade path for installworld
1593	and packages may fail or need manual intervention to run. New
1594	packages will be needed.
1595
1596	To update an existing self-hosted armv6hf system, you must add
1597	TARGET_ARCH=armv6 on the make command line for both the build
1598	and the install steps.
1599
160020160510:
1601	Kernel modules compiled outside of a kernel build now default to
1602	installing to /boot/modules instead of /boot/kernel.  Many kernel
1603	modules built this way (such as those in ports) already overrode
1604	KMODDIR explicitly to install into /boot/modules.  However,
1605	manually building and installing a module from /sys/modules will
1606	now install to /boot/modules instead of /boot/kernel.
1607
160820160414:
1609	The CAM I/O scheduler has been committed to the kernel. There should be
1610	no user visible impact. This does enable NCQ Trim on ada SSDs. While the
1611	list of known rogues that claim support for this but actually corrupt
1612	data is believed to be complete, be on the lookout for data
1613	corruption. The known rogue list is believed to be complete:
1614
1615		o Crucial MX100, M550 drives with MU01 firmware.
1616		o Micron M510 and M550 drives with MU01 firmware.
1617		o Micron M500 prior to MU07 firmware
1618		o Samsung 830, 840, and 850 all firmwares
1619		o FCCT M500 all firmwares
1620
1621	Crucial has firmware http://www.crucial.com/usa/en/support-ssd-firmware
1622	with working NCQ TRIM. For Micron branded drives, see your sales rep for
1623	updated firmware. Black listed drives will work correctly because these
1624	drives work correctly so long as no NCQ TRIMs are sent to them. Given
1625	this list is the same as found in Linux, it's believed there are no
1626	other rogues in the market place. All other models from the above
1627	vendors work.
1628
1629	To be safe, if you are at all concerned, you can quirk each of your
1630	drives to prevent NCQ from being sent by setting:
1631		kern.cam.ada.X.quirks="0x2"
1632	in loader.conf. If the drive requires the 4k sector quirk, set the
1633	quirks entry to 0x3.
1634
163520160330:
1636	The FAST_DEPEND build option has been removed and its functionality is
1637	now the one true way.  The old mkdep(1) style of 'make depend' has
1638	been removed.  See 20160311 for further details.
1639
164020160317:
1641	Resource range types have grown from unsigned long to uintmax_t.  All
1642	drivers, and anything using libdevinfo, need to be recompiled.
1643
164420160311:
1645	WITH_FAST_DEPEND is now enabled by default for in-tree and out-of-tree
1646	builds.  It no longer runs mkdep(1) during 'make depend', and the
1647	'make depend' stage can safely be skipped now as it is auto ran
1648	when building 'make all' and will generate all SRCS and DPSRCS before
1649	building anything else.  Dependencies are gathered at compile time with
1650	-MF flags kept in separate .depend files per object file.  Users should
1651	run 'make cleandepend' once if using -DNO_CLEAN to clean out older
1652	stale .depend files.
1653
165420160306:
1655	On amd64, clang 3.8.0 can now insert sections of type AMD64_UNWIND into
1656	kernel modules.  Therefore, if you load any kernel modules at boot time,
1657	please install the boot loaders after you install the kernel, but before
1658	rebooting, e.g.:
1659
1660	make buildworld
1661	make buildkernel KERNCONF=YOUR_KERNEL_HERE
1662	make installkernel KERNCONF=YOUR_KERNEL_HERE
1663	make -C sys/boot install
1664	<reboot in single user>
1665
1666	Then follow the usual steps, described in the General Notes section,
1667	below.
1668
166920160305:
1670	Clang, llvm, lldb and compiler-rt have been upgraded to 3.8.0.  Please
1671	see the 20141231 entry below for information about prerequisites and
1672	upgrading, if you are not already using clang 3.5.0 or higher.
1673
167420160301:
1675	The AIO subsystem is now a standard part of the kernel.  The
1676	VFS_AIO kernel option and aio.ko kernel module have been removed.
1677	Due to stability concerns, asynchronous I/O requests are only
1678	permitted on sockets and raw disks by default.  To enable
1679	asynchronous I/O requests on all file types, set the
1680	vfs.aio.enable_unsafe sysctl to a non-zero value.
1681
168220160226:
1683	The ELF object manipulation tool objcopy is now provided by the
1684	ELF Tool Chain project rather than by GNU binutils. It should be a
1685	drop-in replacement, with the addition of arm64 support. The
1686	(temporary) src.conf knob WITHOUT_ELFCOPY_AS_OBJCOPY knob may be set
1687	to obtain the GNU version if necessary.
1688
168920160129:
1690	Building ZFS pools on top of zvols is prohibited by default.  That
1691	feature has never worked safely; it's always been prone to deadlocks.
1692	Using a zvol as the backing store for a VM guest's virtual disk will
1693	still work, even if the guest is using ZFS.  Legacy behavior can be
1694	restored by setting vfs.zfs.vol.recursive=1.
1695
169620160119:
1697	The NONE and HPN patches has been removed from OpenSSH.  They are
1698	still available in the security/openssh-portable port.
1699
170020160113:
1701	With the addition of ypldap(8), a new _ypldap user is now required
1702	during installworld. "mergemaster -p" can be used to add the user
1703	prior to installworld, as documented in the handbook.
1704
170520151216:
1706	The tftp loader (pxeboot) now uses the option root-path directive. As a
1707	consequence it no longer looks for a pxeboot.4th file on the tftp
1708	server. Instead it uses the regular /boot infrastructure as with the
1709	other loaders.
1710
171120151211:
1712	The code to start recording plug and play data into the modules has
1713	been committed. While the old tools will properly build a new kernel,
1714	a number of warnings about "unknown metadata record 4" will be produced
1715	for an older kldxref. To avoid such warnings, make sure to rebuild
1716	the kernel toolchain (or world). Make sure that you have r292078 or
1717	later when trying to build 292077 or later before rebuilding.
1718
171920151207:
1720	Debug data files are now built by default with 'make buildworld' and
1721	installed with 'make installworld'. This facilitates debugging but
1722	requires more disk space both during the build and for the installed
1723	world. Debug files may be disabled by setting WITHOUT_DEBUG_FILES=yes
1724	in src.conf(5).
1725
172620151130:
1727	r291527 changed the internal interface between the nfsd.ko and
1728	nfscommon.ko modules. As such, they must both be upgraded to-gether.
1729	__FreeBSD_version has been bumped because of this.
1730
173120151108:
1732	Add support for unicode collation strings leads to a change of
1733	order of files listed by ls(1) for example. To get back to the old
1734	behaviour, set LC_COLLATE environment variable to "C".
1735
1736	Databases administrators will need to reindex their databases given
1737	collation results will be different.
1738
1739	Due to a bug in install(1) it is recommended to remove the ancient
1740	locales before running make installworld.
1741
1742	rm -rf /usr/share/locale/*
1743
174420151030:
1745	The OpenSSL has been upgraded to 1.0.2d.  Any binaries requiring
1746	libcrypto.so.7 or libssl.so.7 must be recompiled.
1747
174820151020:
1749	Qlogic 24xx/25xx firmware images were updated from 5.5.0 to 7.3.0.
1750	Kernel modules isp_2400_multi and isp_2500_multi were removed and
1751	should be replaced with isp_2400 and isp_2500 modules respectively.
1752
175320151017:
1754	The build previously allowed using 'make -n' to not recurse into
1755	sub-directories while showing what commands would be executed, and
1756	'make -n -n' to recursively show commands.  Now 'make -n' will recurse
1757	and 'make -N' will not.
1758
175920151012:
1760	If you specify SENDMAIL_MC or SENDMAIL_CF in make.conf, mergemaster
1761	and etcupdate will now use this file. A custom sendmail.cf is now
1762	updated via this mechanism rather than via installworld.  If you had
1763	excluded sendmail.cf in mergemaster.rc or etcupdate.conf, you may
1764	want to remove the exclusion or change it to "always install".
1765	/etc/mail/sendmail.cf is now managed the same way regardless of
1766	whether SENDMAIL_MC/SENDMAIL_CF is used.  If you are not using
1767	SENDMAIL_MC/SENDMAIL_CF there should be no change in behavior.
1768
176920151011:
1770	Compatibility shims for legacy ATA device names have been removed.
1771	It includes ATA_STATIC_ID kernel option, kern.cam.ada.legacy_aliases
1772	and kern.geom.raid.legacy_aliases loader tunables, kern.devalias.*
1773	environment variables, /dev/ad* and /dev/ar* symbolic links.
1774
177520151006:
1776	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.7.0.
1777	Please see the 20141231 entry below for information about prerequisites
1778	and upgrading, if you are not already using clang 3.5.0 or higher.
1779
178020150924:
1781	Kernel debug files have been moved to /usr/lib/debug/boot/kernel/,
1782	and renamed from .symbols to .debug. This reduces the size requirements
1783	on the boot partition or file system and provides consistency with
1784	userland debug files.
1785
1786	When using the supported kernel installation method the
1787	/usr/lib/debug/boot/kernel directory will be renamed (to kernel.old)
1788	as is done with /boot/kernel.
1789
1790	Developers wishing to maintain the historical behavior of installing
1791	debug files in /boot/kernel/ can set KERN_DEBUGDIR="" in src.conf(5).
1792
179320150827:
1794	The wireless drivers had undergone changes that remove the 'parent
1795	interface' from the ifconfig -l output. The rc.d network scripts
1796	used to check presence of a parent interface in the list, so old
1797	scripts would fail to start wireless networking. Thus, etcupdate(3)
1798	or mergemaster(8) run is required after kernel update, to update your
1799	rc.d scripts in /etc.
1800
180120150827:
1802	pf no longer supports 'scrub fragment crop' or 'scrub fragment drop-ovl'
1803	These configurations are now automatically interpreted as
1804	'scrub fragment reassemble'.
1805
180620150817:
1807	Kernel-loadable modules for the random(4) device are back. To use
1808	them, the kernel must have
1809
1810	device	random
1811	options	RANDOM_LOADABLE
1812
1813	kldload(8) can then be used to load random_fortuna.ko
1814	or random_yarrow.ko. Please note that due to the indirect
1815	function calls that the loadable modules need to provide,
1816	the build-in variants will be slightly more efficient.
1817
1818	The random(4) kernel option RANDOM_DUMMY has been retired due to
1819	unpopularity. It was not all that useful anyway.
1820
182120150813:
1822	The WITHOUT_ELFTOOLCHAIN_TOOLS src.conf(5) knob has been retired.
1823	Control over building the ELF Tool Chain tools is now provided by
1824	the WITHOUT_TOOLCHAIN knob.
1825
182620150810:
1827	The polarity of Pulse Per Second (PPS) capture events with the
1828	uart(4) driver has been corrected.  Prior to this change the PPS
1829	"assert" event corresponded to the trailing edge of a positive PPS
1830	pulse and the "clear" event was the leading edge of the next pulse.
1831
1832	As the width of a PPS pulse in a typical GPS receiver is on the
1833	order of 1 millisecond, most users will not notice any significant
1834	difference with this change.
1835
1836	Anyone who has compensated for the historical polarity reversal by
1837	configuring a negative offset equal to the pulse width will need to
1838	remove that workaround.
1839
184020150809:
1841	The default group assigned to /dev/dri entries has been changed
1842	from 'wheel' to 'video' with the id of '44'. If you want to have
1843	access to the dri devices please add yourself to the video group
1844	with:
1845
1846	# pw groupmod video -m $USER
1847
184820150806:
1849	The menu.rc and loader.rc files will now be replaced during
1850	upgrades. Please migrate local changes to menu.rc.local and
1851	loader.rc.local instead.
1852
185320150805:
1854	GNU Binutils versions of addr2line, c++filt, nm, readelf, size,
1855	strings and strip have been removed. The src.conf(5) knob
1856	WITHOUT_ELFTOOLCHAIN_TOOLS no longer provides the binutils tools.
1857
185820150728:
1859	As ZFS requires more kernel stack pages than is the default on some
1860	architectures e.g. i386, it now warns if KSTACK_PAGES is less than
1861	ZFS_MIN_KSTACK_PAGES (which is 4 at the time of writing).
1862
1863	Please consider using 'options KSTACK_PAGES=X' where X is greater
1864	than or equal to ZFS_MIN_KSTACK_PAGES i.e. 4 in such configurations.
1865
186620150706:
1867	sendmail has been updated to 8.15.2.  Starting with FreeBSD 11.0
1868	and sendmail 8.15, sendmail uses uncompressed IPv6 addresses by
1869	default, i.e., they will not contain "::".  For example, instead
1870	of ::1, it will be 0:0:0:0:0:0:0:1.  This permits a zero subnet
1871	to have a more specific match, such as different map entries for
1872	IPv6:0:0 vs IPv6:0.  This change requires that configuration
1873	data (including maps, files, classes, custom ruleset, etc.) must
1874	use the same format, so make certain such configuration data is
1875	upgrading.  As a very simple check search for patterns like
1876	'IPv6:[0-9a-fA-F:]*::' and 'IPv6::'.  To return to the old
1877	behavior, set the m4 option confUSE_COMPRESSED_IPV6_ADDRESSES or
1878	the cf option UseCompressedIPv6Addresses.
1879
188020150630:
1881	The default kernel entropy-processing algorithm is now
1882	Fortuna, replacing Yarrow.
1883
1884	Assuming you have 'device random' in your kernel config
1885	file, the configurations allow a kernel option to override
1886	this default. You may choose *ONE* of:
1887
1888	options	RANDOM_YARROW	# Legacy /dev/random algorithm.
1889	options	RANDOM_DUMMY	# Blocking-only driver.
1890
1891	If you have neither, you get Fortuna.  For most people,
1892	read no further, Fortuna will give a /dev/random that works
1893	like it always used to, and the difference will be irrelevant.
1894
1895	If you remove 'device random', you get *NO* kernel-processed
1896	entropy at all. This may be acceptable to folks building
1897	embedded systems, but has complications. Carry on reading,
1898	and it is assumed you know what you need.
1899
1900	*PLEASE* read random(4) and random(9) if you are in the
1901	habit of tweaking kernel configs, and/or if you are a member
1902	of the embedded community, wanting specific and not-usual
1903	behaviour from your security subsystems.
1904
1905	NOTE!! If you use RANDOM_DUMMY and/or have no 'device
1906	random', you will NOT have a functioning /dev/random, and
1907	many cryptographic features will not work, including SSH.
1908	You may also find strange behaviour from the random(3) set
1909	of library functions, in particular sranddev(3), srandomdev(3)
1910	and arc4random(3). The reason for this is that the KERN_ARND
1911	sysctl only returns entropy if it thinks it has some to
1912	share, and with RANDOM_DUMMY or no 'device random' this
1913	will never happen.
1914
191520150623:
1916	An additional fix for the issue described in the 20150614 sendmail
1917	entry below has been committed in revision 284717.
1918
191920150616:
1920	FreeBSD's old make (fmake) has been removed from the system. It is
1921	available as the devel/fmake port or via pkg install fmake.
1922
192320150615:
1924	The fix for the issue described in the 20150614 sendmail entry
1925	below has been committed in revision 284436.  The work
1926	around described in that entry is no longer needed unless the
1927	default setting is overridden by a confDH_PARAMETERS configuration
1928	setting of '5' or pointing to a 512 bit DH parameter file.
1929
193020150614:
1931	ALLOW_DEPRECATED_ATF_TOOLS/ATFFILE support has been removed from
1932	atf.test.mk (included from bsd.test.mk). Please upgrade devel/atf
1933	and devel/kyua to version 0.20+ and adjust any calling code to work
1934	with Kyuafile and kyua.
1935
193620150614:
1937	The import of openssl to address the FreeBSD-SA-15:10.openssl
1938	security advisory includes a change which rejects handshakes
1939	with DH parameters below 768 bits.  sendmail releases prior
1940	to 8.15.2 (not yet released), defaulted to a 512 bit
1941	DH parameter setting for client connections.  To work around
1942	this interoperability, sendmail can be configured to use a
1943	2048 bit DH parameter by:
1944
1945	1. Edit /etc/mail/`hostname`.mc
1946	2. If a setting for confDH_PARAMETERS does not exist or
1947	   exists and is set to a string beginning with '5',
1948	   replace it with '2'.
1949	3. If a setting for confDH_PARAMETERS exists and is set to
1950	   a file path, create a new file with:
1951		openssl dhparam -out /path/to/file 2048
1952	4. Rebuild the .cf file:
1953		cd /etc/mail/; make; make install
1954	5. Restart sendmail:
1955		cd /etc/mail/; make restart
1956
1957	A sendmail patch is coming, at which time this file will be
1958	updated.
1959
196020150604:
1961	Generation of legacy formatted entries have been disabled by default
1962	in pwd_mkdb(8), as all base system consumers of the legacy formatted
1963	entries were converted to use the new format by default when the new,
1964	machine independent format have been added and supported since FreeBSD
1965	5.x.
1966
1967	Please see the pwd_mkdb(8) manual page for further details.
1968
196920150525:
1970	Clang and llvm have been upgraded to 3.6.1 release.  Please see the
1971	20141231 entry below for information about prerequisites and upgrading,
1972	if you are not already using 3.5.0 or higher.
1973
197420150521:
1975	TI platform code switched to using vendor DTS files and this update
1976	may break existing systems running on Beaglebone, Beaglebone Black,
1977	and Pandaboard:
1978
1979	- dtb files should be regenerated/reinstalled. Filenames are the
1980	  same but content is different now
1981	- GPIO addressing was changed, now each GPIO bank (32 pins per bank)
1982	  has its own /dev/gpiocX device, e.g. pin 121 on /dev/gpioc0 in old
1983	  addressing scheme is now pin 25 on /dev/gpioc3.
1984	- Pandaboard: /etc/ttys should be updated, serial console device is
1985	  now /dev/ttyu2, not /dev/ttyu0
1986
198720150501:
1988	soelim(1) from gnu/usr.bin/groff has been replaced by usr.bin/soelim.
1989	If you need the GNU extension from groff soelim(1), install groff
1990	from package: pkg install groff, or via ports: textproc/groff.
1991
199220150423:
1993	chmod, chflags, chown and chgrp now affect symlinks in -R mode as
1994	defined in symlink(7); previously symlinks were silently ignored.
1995
199620150415:
1997	The const qualifier has been removed from iconv(3) to comply with
1998	POSIX.  The ports tree is aware of this from r384038 onwards.
1999
200020150416:
2001	Libraries specified by LIBADD in Makefiles must have a corresponding
2002	DPADD_<lib> variable to ensure correct dependencies.  This is now
2003	enforced in src.libnames.mk.
2004
200520150324:
2006	From legacy ata(4) driver was removed support for SATA controllers
2007	supported by more functional drivers ahci(4), siis(4) and mvs(4).
2008	Kernel modules ataahci and ataadaptec were removed completely,
2009	replaced by ahci and mvs modules respectively.
2010
201120150315:
2012	Clang, llvm and lldb have been upgraded to 3.6.0 release.  Please see
2013	the 20141231 entry below for information about prerequisites and
2014	upgrading, if you are not already using 3.5.0 or higher.
2015
201620150307:
2017	The 32-bit PowerPC kernel has been changed to a position-independent
2018	executable. This can only be booted with a version of loader(8)
2019	newer than January 31, 2015, so make sure to update both world and
2020	kernel before rebooting.
2021
202220150217:
2023	If you are running a -CURRENT kernel since r273872 (Oct 30th, 2014),
2024	but before r278950, the RNG was not seeded properly.  Immediately
2025	upgrade the kernel to r278950 or later and regenerate any keys (e.g.
2026	ssh keys or openssl keys) that were generated w/ a kernel from that
2027	range.  This does not affect programs that directly used /dev/random
2028	or /dev/urandom.  All userland uses of arc4random(3) are affected.
2029
203020150210:
2031	The autofs(4) ABI was changed in order to restore binary compatibility
2032	with 10.1-RELEASE.  The automountd(8) daemon needs to be rebuilt to work
2033	with the new kernel.
2034
203520150131:
2036	The powerpc64 kernel has been changed to a position-independent
2037	executable. This can only be booted with a new version of loader(8),
2038	so make sure to update both world and kernel before rebooting.
2039
204020150118:
2041	Clang and llvm have been upgraded to 3.5.1 release.  This is a bugfix
2042	only release, no new features have been added.  Please see the 20141231
2043	entry below for information about prerequisites and upgrading, if you
2044	are not already using 3.5.0.
2045
204620150107:
2047	ELF tools addr2line, elfcopy (strip), nm, size, and strings are now
2048	taken from the ELF Tool Chain project rather than GNU binutils. They
2049	should be drop-in replacements, with the addition of arm64 support.
2050	The WITHOUT_ELFTOOLCHAIN_TOOLS= knob may be used to obtain the
2051	binutils tools, if necessary. See 20150805 for updated information.
2052
205320150105:
2054	The default Unbound configuration now enables remote control
2055	using a local socket.  Users who have already enabled the
2056	local_unbound service should regenerate their configuration
2057	by running "service local_unbound setup" as root.
2058
205920150102:
2060	The GNU texinfo and GNU info pages have been removed.
2061	To be able to view GNU info pages please install texinfo from ports.
2062
206320141231:
2064	Clang, llvm and lldb have been upgraded to 3.5.0 release.
2065
2066	As of this release, a prerequisite for building clang, llvm and lldb is
2067	a C++11 capable compiler and C++11 standard library.  This means that to
2068	be able to successfully build the cross-tools stage of buildworld, with
2069	clang as the bootstrap compiler, your system compiler or cross compiler
2070	should either be clang 3.3 or later, or gcc 4.8 or later, and your
2071	system C++ library should be libc++, or libdstdc++ from gcc 4.8 or
2072	later.
2073
2074	On any standard FreeBSD 10.x or 11.x installation, where clang and
2075	libc++ are on by default (that is, on x86 or arm), this should work out
2076	of the box.
2077
2078	On 9.x installations where clang is enabled by default, e.g. on x86 and
2079	powerpc, libc++ will not be enabled by default, so libc++ should be
2080	built (with clang) and installed first.  If both clang and libc++ are
2081	missing, build clang first, then use it to build libc++.
2082
2083	On 8.x and earlier installations, upgrade to 9.x first, and then follow
2084	the instructions for 9.x above.
2085
2086	Sparc64 and mips users are unaffected, as they still use gcc 4.2.1 by
2087	default, and do not build clang.
2088
2089	Many embedded systems are resource constrained, and will not be able to
2090	build clang in a reasonable time, or in some cases at all.  In those
2091	cases, cross building bootable systems on amd64 is a workaround.
2092
2093	This new version of clang introduces a number of new warnings, of which
2094	the following are most likely to appear:
2095
2096	-Wabsolute-value
2097
2098	This warns in two cases, for both C and C++:
2099	* When the code is trying to take the absolute value of an unsigned
2100	  quantity, which is effectively a no-op, and almost never what was
2101	  intended.  The code should be fixed, if at all possible.  If you are
2102	  sure that the unsigned quantity can be safely cast to signed, without
2103	  loss of information or undefined behavior, you can add an explicit
2104	  cast, or disable the warning.
2105
2106	* When the code is trying to take an absolute value, but the called
2107	  abs() variant is for the wrong type, which can lead to truncation.
2108	  If you want to disable the warning instead of fixing the code, please
2109	  make sure that truncation will not occur, or it might lead to unwanted
2110	  side-effects.
2111
2112	-Wtautological-undefined-compare and
2113	-Wundefined-bool-conversion
2114
2115	These warn when C++ code is trying to compare 'this' against NULL, while
2116	'this' should never be NULL in well-defined C++ code.  However, there is
2117	some legacy (pre C++11) code out there, which actively abuses this
2118	feature, which was less strictly defined in previous C++ versions.
2119
2120	Squid and openjdk do this, for example.  The warning can be turned off
2121	for C++98 and earlier, but compiling the code in C++11 mode might result
2122	in unexpected behavior; for example, the parts of the program that are
2123	unreachable could be optimized away.
2124
212520141222:
2126	The old NFS client and server (kernel options NFSCLIENT, NFSSERVER)
2127	kernel sources have been removed. The .h files remain, since some
2128	utilities include them. This will need to be fixed later.
2129	If "mount -t oldnfs ..." is attempted, it will fail.
2130	If the "-o" option on mountd(8), nfsd(8) or nfsstat(1) is used,
2131	the utilities will report errors.
2132
213320141121:
2134	The handling of LOCAL_LIB_DIRS has been altered to skip addition of
2135	directories to top level SUBDIR variable when their parent
2136	directory is included in LOCAL_DIRS.  Users with build systems with
2137	such hierarchies and without SUBDIR entries in the parent
2138	directory Makefiles should add them or add the directories to
2139	LOCAL_DIRS.
2140
214120141109:
2142	faith(4) and faithd(8) have been removed from the base system. Faith
2143	has been obsolete for a very long time.
2144
214520141104:
2146	vt(4), the new console driver, is enabled by default. It brings
2147	support for Unicode and double-width characters, as well as
2148	support for UEFI and integration with the KMS kernel video
2149	drivers.
2150
2151	You may need to update your console settings in /etc/rc.conf,
2152	most probably the keymap. During boot, /etc/rc.d/syscons will
2153	indicate what you need to do.
2154
2155	vt(4) still has issues and lacks some features compared to
2156	syscons(4). See the wiki for up-to-date information:
2157	  https://wiki.freebsd.org/Newcons
2158
2159	If you want to keep using syscons(4), you can do so by adding
2160	the following line to /boot/loader.conf:
2161	  kern.vty=sc
2162
216320141102:
2164	pjdfstest has been integrated into kyua as an opt-in test suite.
2165	Please see share/doc/pjdfstest/README for more details on how to
2166	execute it.
2167
216820141009:
2169	gperf has been removed from the base system for architectures
2170	that use clang. Ports that require gperf will obtain it from the
2171	devel/gperf port.
2172
217320140923:
2174	pjdfstest has been moved from tools/regression/pjdfstest to
2175	contrib/pjdfstest .
2176
217720140922:
2178	At svn r271982, The default linux compat kernel ABI has been adjusted
2179	to 2.6.18 in support of the linux-c6 compat ports infrastructure
2180	update.  If you wish to continue using the linux-f10 compat ports,
2181	add compat.linux.osrelease=2.6.16 to your local sysctl.conf.  Users are
2182	encouraged to update their linux-compat packages to linux-c6 during
2183	their next update cycle.
2184
218520140729:
2186	The ofwfb driver, used to provide a graphics console on PowerPC when
2187	using vt(4), no longer allows mmap() of all physical memory. This
2188	will prevent Xorg on PowerPC with some ATI graphics cards from
2189	initializing properly unless x11-servers/xorg-server is updated to
2190	1.12.4_8 or newer.
2191
219220140723:
2193	The xdev targets have been converted to using TARGET and
2194	TARGET_ARCH instead of XDEV and XDEV_ARCH.
2195
219620140719:
2197	The default unbound configuration has been modified to address
2198	issues with reverse lookups on networks that use private
2199	address ranges.  If you use the local_unbound service, run
2200	"service local_unbound setup" as root to regenerate your
2201	configuration, then "service local_unbound reload" to load the
2202	new configuration.
2203
220420140709:
2205	The GNU texinfo and GNU info pages are not built and installed
2206	anymore, WITH_INFO knob has been added to allow to built and install
2207	them again.
2208	UPDATE: see 20150102 entry on texinfo's removal
2209
221020140708:
2211	The GNU readline library is now an INTERNALLIB - that is, it is
2212	statically linked into consumers (GDB and variants) in the base
2213	system, and the shared library is no longer installed.  The
2214	devel/readline port is available for third party software that
2215	requires readline.
2216
221720140702:
2218	The Itanium architecture (ia64) has been removed from the list of
2219	known architectures. This is the first step in the removal of the
2220	architecture.
2221
222220140701:
2223	Commit r268115 has added NFSv4.1 server support, merged from
2224	projects/nfsv4.1-server.  Since this includes changes to the
2225	internal interfaces between the NFS related modules, a full
2226	build of the kernel and modules will be necessary.
2227	__FreeBSD_version has been bumped.
2228
222920140629:
2230	The WITHOUT_VT_SUPPORT kernel config knob has been renamed
2231	WITHOUT_VT.  (The other _SUPPORT knobs have a consistent meaning
2232	which differs from the behaviour controlled by this knob.)
2233
223420140619:
2235	Maximal length of the serial number in CTL was increased from 16 to
2236	64 chars, that breaks ABI.  All CTL-related tools, such as ctladm
2237	and ctld, need to be rebuilt to work with a new kernel.
2238
223920140606:
2240	The libatf-c and libatf-c++ major versions were downgraded to 0 and
2241	1 respectively to match the upstream numbers.  They were out of
2242	sync because, when they were originally added to FreeBSD, the
2243	upstream versions were not respected.  These libraries are private
2244	and not yet built by default, so renumbering them should be a
2245	non-issue.  However, unclean source trees will yield broken test
2246	programs once the operator executes "make delete-old-libs" after a
2247	"make installworld".
2248
2249	Additionally, the atf-sh binary was made private by moving it into
2250	/usr/libexec/.  Already-built shell test programs will keep the
2251	path to the old binary so they will break after "make delete-old"
2252	is run.
2253
2254	If you are using WITH_TESTS=yes (not the default), wipe the object
2255	tree and rebuild from scratch to prevent spurious test failures.
2256	This is only needed once: the misnumbered libraries and misplaced
2257	binaries have been added to OptionalObsoleteFiles.inc so they will
2258	be removed during a clean upgrade.
2259
226020140512:
2261	Clang and llvm have been upgraded to 3.4.1 release.
2262
226320140508:
2264	We bogusly installed src.opts.mk in /usr/share/mk. This file should
2265	be removed to avoid issues in the future (and has been added to
2266	ObsoleteFiles.inc).
2267
226820140505:
2269	/etc/src.conf now affects only builds of the FreeBSD src tree. In the
2270	past, it affected all builds that used the bsd.*.mk files. The old
2271	behavior was a bug, but people may have relied upon it. To get this
2272	behavior back, you can .include /etc/src.conf from /etc/make.conf
2273	(which is still global and isn't changed). This also changes the
2274	behavior of incremental builds inside the tree of individual
2275	directories. Set MAKESYSPATH to ".../share/mk" to do that.
2276	Although this has survived make universe and some upgrade scenarios,
2277	other upgrade scenarios may have broken. At least one form of
2278	temporary breakage was fixed with MAKESYSPATH settings for buildworld
2279	as well... In cases where MAKESYSPATH isn't working with this
2280	setting, you'll need to set it to the full path to your tree.
2281
2282	One side effect of all this cleaning up is that bsd.compiler.mk
2283	is no longer implicitly included by bsd.own.mk. If you wish to
2284	use COMPILER_TYPE, you must now explicitly include bsd.compiler.mk
2285	as well.
2286
228720140430:
2288	The lindev device has been removed since /dev/full has been made a
2289	standard device.  __FreeBSD_version has been bumped.
2290
229120140424:
2292	The knob WITHOUT_VI was added to the base system, which controls
2293	building ex(1), vi(1), etc. Older releases of FreeBSD required ex(1)
2294	in order to reorder files share/termcap and didn't build ex(1) as a
2295	build tool, so building/installing with WITH_VI is highly advised for
2296	build hosts for older releases.
2297
2298	This issue has been fixed in stable/9 and stable/10 in r277022 and
2299	r276991, respectively.
2300
230120140418:
2302	The YES_HESIOD knob has been removed. It has been obsolete for
2303	a decade. Please move to using WITH_HESIOD instead or your builds
2304	will silently lack HESIOD.
2305
230620140405:
2307	The uart(4) driver has been changed with respect to its handling
2308	of the low-level console. Previously the uart(4) driver prevented
2309	any process from changing the baudrate or the CLOCAL and HUPCL
2310	control flags. By removing the restrictions, operators can make
2311	changes to the serial console port without having to reboot.
2312	However, when getty(8) is started on the serial device that is
2313	associated with the low-level console, a misconfigured terminal
2314	line in /etc/ttys will now have a real impact.
2315	Before upgrading the kernel, make sure that /etc/ttys has the
2316	serial console device configured as 3wire without baudrate to
2317	preserve the previous behaviour. E.g:
2318	    ttyu0  "/usr/libexec/getty 3wire"  vt100  on  secure
2319
232020140306:
2321	Support for libwrap (TCP wrappers) in rpcbind was disabled by default
2322	to improve performance.  To re-enable it, if needed, run rpcbind
2323	with command line option -W.
2324
232520140226:
2326	Switched back to the GPL dtc compiler due to updates in the upstream
2327	dts files not being supported by the BSDL dtc compiler. You will need
2328	to rebuild your kernel toolchain to pick up the new compiler. Core dumps
2329	may result while building dtb files during a kernel build if you fail
2330	to do so. Set WITHOUT_GPL_DTC if you require the BSDL compiler.
2331
233220140216:
2333	Clang and llvm have been upgraded to 3.4 release.
2334
233520140216:
2336	The nve(4) driver has been removed.  Please use the nfe(4) driver
2337	for NVIDIA nForce MCP Ethernet adapters instead.
2338
233920140212:
2340	An ABI incompatibility crept into the libc++ 3.4 import in r261283.
2341	This could cause certain C++ applications using shared libraries built
2342	against the previous version of libc++ to crash.  The incompatibility
2343	has now been fixed, but any C++ applications or shared libraries built
2344	between r261283 and r261801 should be recompiled.
2345
234620140204:
2347	OpenSSH will now ignore errors caused by kernel lacking of Capsicum
2348	capability mode support.  Please note that enabling the feature in
2349	kernel is still highly recommended.
2350
235120140131:
2352	OpenSSH is now built with sandbox support, and will use sandbox as
2353	the default privilege separation method.  This requires Capsicum
2354	capability mode support in kernel.
2355
235620140128:
2357	The libelf and libdwarf libraries have been updated to newer
2358	versions from upstream. Shared library version numbers for
2359	these two libraries were bumped. Any ports or binaries
2360	requiring these two libraries should be recompiled.
2361	__FreeBSD_version is bumped to 1100006.
2362
236320140110:
2364	If a Makefile in a tests/ directory was auto-generating a Kyuafile
2365	instead of providing an explicit one, this would prevent such
2366	Makefile from providing its own Kyuafile in the future during
2367	NO_CLEAN builds.  This has been fixed in the Makefiles but manual
2368	intervention is needed to clean an objdir if you use NO_CLEAN:
2369	  # find /usr/obj -name Kyuafile | xargs rm -f
2370
237120131213:
2372	The behavior of gss_pseudo_random() for the krb5 mechanism
2373	has changed, for applications requesting a longer random string
2374	than produced by the underlying enctype's pseudo-random() function.
2375	In particular, the random string produced from a session key of
2376	enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will
2377	be different at the 17th octet and later, after this change.
2378	The counter used in the PRF+ construction is now encoded as a
2379	big-endian integer in accordance with RFC 4402.
2380	__FreeBSD_version is bumped to 1100004.
2381
238220131108:
2383	The WITHOUT_ATF build knob has been removed and its functionality
2384	has been subsumed into the more generic WITHOUT_TESTS.  If you were
2385	using the former to disable the build of the ATF libraries, you
2386	should change your settings to use the latter.
2387
238820131025:
2389	The default version of mtree is nmtree which is obtained from
2390	NetBSD.  The output is generally the same, but may vary
2391	slightly.  If you found you need identical output adding
2392	"-F freebsd9" to the command line should do the trick.  For the
2393	time being, the old mtree is available as fmtree.
2394
239520131014:
2396	libbsdyml has been renamed to libyaml and moved to /usr/lib/private.
2397	This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg
2398	1.1.4_8 and verify bsdyml not linked in, before running "make
2399	delete-old-libs":
2400	  # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean
2401	  or
2402	  # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml
2403
240420131010:
2405	The stable/10 branch has been created in subversion from head
2406	revision r256279.
2407
2408COMMON ITEMS:
2409
2410	General Notes
2411	-------------
2412	Sometimes, obscure build problems are the result of environment
2413	poisoning.  This can happen because the make utility reads its
2414	environment when searching for values for global variables.  To run
2415	your build attempts in an "environmental clean room", prefix all make
2416	commands with 'env -i '.  See the env(1) manual page for more details.
2417	Occasionally a build failure will occur with "make -j" due to a race
2418	condition.  If this happens try building again without -j, and please
2419	report a bug if it happens consistently.
2420
2421	When upgrading from one major version to another it is generally best to
2422	upgrade to the latest code in the currently installed branch first, then
2423	do an upgrade to the new branch. This is the best-tested upgrade path,
2424	and has the highest probability of being successful.  Please try this
2425	approach if you encounter problems with a major version upgrade.  Since
2426	the stable 4.x branch point, one has generally been able to upgrade from
2427	anywhere in the most recent stable branch to head / current (or even the
2428	last couple of stable branches). See the top of this file when there's
2429	an exception.
2430
2431	The update process will emit an error on an attempt to perform a build
2432	or install from a FreeBSD version below the earliest supported version.
2433	When updating from an older version the update should be performed one
2434	major release at a time, including running `make delete-old` at each
2435	step.
2436
2437	When upgrading a live system, having a root shell around before
2438	installing anything can help undo problems. Not having a root shell
2439	around can lead to problems if pam has changed too much from your
2440	starting point to allow continued authentication after the upgrade.
2441
2442	This file should be read as a log of events. When a later event changes
2443	information of a prior event, the prior event should not be deleted.
2444	Instead, a pointer to the entry with the new information should be
2445	placed in the old entry. Readers of this file should also sanity check
2446	older entries before relying on them blindly. Authors of new entries
2447	should write them with this in mind.
2448
2449	ZFS notes
2450	---------
2451	When upgrading the boot ZFS pool to a new version, always follow
2452	these two steps:
2453
2454	1.) recompile and reinstall the ZFS boot loader and boot block
2455	(this is part of "make buildworld" and "make installworld")
2456
2457	2.) update the ZFS boot block on your boot drive
2458
2459	The following example updates the ZFS boot block on the
2460	freebsd-boot partition of a GPT partitioned drive ada0:
2461	"gpart bootcode -p /boot/gptzfsboot -i $N ada0"
2462	The value $N will typically be 1 (if booting from BIOS) or 2 (if
2463	booting from EFI).
2464
2465	Non-boot pools do not need these updates.
2466
2467	To build a kernel
2468	-----------------
2469	If you are updating from a prior version of FreeBSD (even one just
2470	a few days old), you should follow this procedure.  It is the most
2471	failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
2472
2473	make kernel-toolchain
2474	make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
2475	make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
2476
2477	To test a kernel once
2478	---------------------
2479	If you just want to boot a kernel once (because you are not sure
2480	if it works, or if you want to boot a known bad kernel to provide
2481	debugging information) run
2482	make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
2483	nextboot -k testkernel
2484
2485	To rebuild everything and install it on the current system.
2486	-----------------------------------------------------------
2487	# Note: sometimes if you are running current you gotta do more than
2488	# is listed here if you are upgrading from a really old current.
2489
2490	<make sure you have good level 0 dumps>
2491	make buildworld
2492	make buildkernel KERNCONF=YOUR_KERNEL_HERE
2493	make installkernel KERNCONF=YOUR_KERNEL_HERE
2494							[1]
2495	<reboot in single user>				[3]
2496	etcupdate -p					[5]
2497	make installworld
2498	etcupdate -B					[4]
2499	make delete-old					[6]
2500	<reboot>
2501
2502	To cross-install current onto a separate partition
2503	--------------------------------------------------
2504	# In this approach we use a separate partition to hold
2505	# current's root, 'usr', and 'var' directories.   A partition
2506	# holding "/", "/usr" and "/var" should be about 2GB in
2507	# size.
2508
2509	<make sure you have good level 0 dumps>
2510	<boot into -stable>
2511	make buildworld
2512	make buildkernel KERNCONF=YOUR_KERNEL_HERE
2513	<maybe newfs current's root partition>
2514	<mount current's root partition on directory ${CURRENT_ROOT}>
2515	make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC
2516	make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
2517	make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
2518	cp /etc/fstab ${CURRENT_ROOT}/etc/fstab 		   # if newfs'd
2519	<edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
2520	<reboot into current>
2521	<do a "native" rebuild/install as described in the previous section>
2522	<maybe install compatibility libraries from ports/misc/compat*>
2523	<reboot>
2524
2525
2526	To upgrade in-place from stable to current
2527	----------------------------------------------
2528	<make sure you have good level 0 dumps>
2529	make buildworld					[9]
2530	make buildkernel KERNCONF=YOUR_KERNEL_HERE	[8]
2531	make installkernel KERNCONF=YOUR_KERNEL_HERE
2532							[1]
2533	<reboot in single user>				[3]
2534	etcupdate -p					[5]
2535	make installworld
2536	etcupdate -B					[4]
2537	make delete-old					[6]
2538	<reboot>
2539
2540	Make sure that you've read the UPDATING file to understand the
2541	tweaks to various things you need.  At this point in the life
2542	cycle of current, things change often and you are on your own
2543	to cope.  The defaults can also change, so please read ALL of
2544	the UPDATING entries.
2545
2546	Also, if you are tracking -current, you must be subscribed to
2547	freebsd-current@freebsd.org.  Make sure that before you update
2548	your sources that you have read and understood all the recent
2549	messages there.  If in doubt, please track -stable which has
2550	much fewer pitfalls.
2551
2552	[1] If you have third party modules, such as vmware, you should disable
2553	them at this point so they don't crash your system on
2554	reboot. Alternatively, you should rebuild all the modules you have in
2555	your system and install them as well.  If you are running -current, you
2556	should seriously consider placing all sources to all the modules for
2557	your system (or symlinks to them) in /usr/local/sys/modules so this
2558	happens automatically. If all your modules come from ports, then adding
2559	the port origin directories to PORTS_MODULES instead is also automatic
2560	and effective, eg:
2561	     PORTS_MODULES+=x11/nvidia-driver
2562
2563	[3] From the bootblocks, boot -s, and then do
2564		fsck -p
2565		mount -u /
2566		mount -a
2567		sh /etc/rc.d/zfs start	# mount zfs filesystem, if needed
2568		cd src			# full path to source
2569		adjkerntz -i		# if CMOS is wall time
2570	Also, when doing a major release upgrade, it is required that you boot
2571	into single user mode to do the installworld.
2572
2573	[4] Note: This step is non-optional.  Failure to do this step
2574	can result in a significant reduction in the functionality of the
2575	system.  Attempting to do it by hand is not recommended and those
2576	that pursue this avenue should read this file carefully, as well
2577	as the archives of freebsd-current and freebsd-hackers mailing lists
2578	for potential gotchas.  See etcupdate(8) for more information.
2579
2580	[5] Usually this step is a no-op.  However, from time to time
2581	you may need to do this if you get unknown user in the following
2582	step.
2583
2584	[6] This only deletes old files and directories. Old libraries
2585	can be deleted by "make delete-old-libs", but you have to make
2586	sure that no program is using those libraries anymore.
2587
2588	[8] The new kernel must be able to run existing binaries used by an
2589	installworld.  When upgrading across major versions, the new kernel's
2590	configuration must include the correct COMPAT_FREEBSD<n> option for
2591	existing binaries (e.g. COMPAT_FREEBSD11 to run 11.x binaries).  Failure
2592	to do so may leave you with a system that is hard to boot to recover. A
2593	GENERIC kernel will include suitable compatibility options to run
2594	binaries from older branches.  Note that the ability to run binaries
2595	from unsupported branches is not guaranteed.
2596
2597	Make sure that you merge any new devices from GENERIC since the
2598	last time you updated your kernel config file. Options also
2599	change over time, so you may need to adjust your custom kernels
2600	for these as well.
2601
2602	[9] If CPUTYPE is defined in your /etc/make.conf, make sure to use the
2603	"?=" instead of the "=" assignment operator, so that buildworld can
2604	override the CPUTYPE if it needs to.
2605
2606	MAKEOBJDIRPREFIX must be defined in an environment variable, and
2607	not on the command line, or in /etc/make.conf.  buildworld will
2608	warn if it is improperly defined.
2609FORMAT:
2610
2611This file contains a list, in reverse chronological order, of major
2612breakages in tracking -current.  It is not guaranteed to be a complete
2613list of such breakages, and only contains entries since September 23, 2011.
2614If you need to see UPDATING entries from before that date, you will need
2615to fetch an UPDATING file from an older FreeBSD release.
2616
2617Copyright information:
2618
2619Copyright 1998-2009 M. Warner Losh <imp@FreeBSD.org>
2620
2621Redistribution, publication, translation and use, with or without
2622modification, in full or in part, in any form or format of this
2623document are permitted without further permission from the author.
2624
2625THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
2626IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
2627WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
2628DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
2629INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
2630(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
2631SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2632HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
2633STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
2634IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
2635POSSIBILITY OF SUCH DAMAGE.
2636
2637Contact Warner Losh if you have any questions about your use of
2638this document.
2639
2640$FreeBSD$
2641