]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - UPDATING
Let syslog(3) use RFC 5424.
[FreeBSD/FreeBSD.git] / UPDATING
1 Updating Information for FreeBSD current users.
2
3 This file is maintained and copyrighted by M. Warner Losh <imp@freebsd.org>.
4 See end of file for further details.  For commonly done items, please see the
5 COMMON ITEMS: section later in the file.  These instructions assume that you
6 basically know what you are doing.  If not, then please consult the FreeBSD
7 handbook:
8
9     https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/current-stable.html
10
11 Items affecting the ports and packages system can be found in
12 /usr/ports/UPDATING.  Please read that file before running portupgrade.
13
14 NOTE: FreeBSD has switched from gcc to clang. If you have trouble bootstrapping
15 from older versions of FreeBSD, try WITHOUT_CLANG and WITH_GCC to bootstrap to
16 the tip of head, and then rebuild without this option. The bootstrap process
17 from older version of current across the gcc/clang cutover is a bit fragile.
18
19 NOTE TO PEOPLE WHO THINK THAT FreeBSD 12.x IS SLOW:
20         FreeBSD 12.x has many debugging features turned on, in both the kernel
21         and userland.  These features attempt to detect incorrect use of
22         system primitives, and encourage loud failure through extra sanity
23         checking and fail stop semantics.  They also substantially impact
24         system performance.  If you want to do performance measurement,
25         benchmarking, and optimization, you'll want to turn them off.  This
26         includes various WITNESS- related kernel options, INVARIANTS, malloc
27         debugging flags in userland, and various verbose features in the
28         kernel.  Many developers choose to disable these features on build
29         machines to maximize performance.  (To completely disable malloc
30         debugging, define MALLOC_PRODUCTION in /etc/make.conf, or to merely
31         disable the most expensive debugging functionality run
32         "ln -s 'abort:false,junk:false' /etc/malloc.conf".)
33
34
35 ****************************** SPECIAL WARNING: ******************************
36
37         Due to a bug in some versions of clang that's very hard to workaround in
38         the upgrade process, to upgrade to -current you must first upgrade
39         either stable/9 after r286035 or stable/10 after r286033 (including
40         10.3-RELEASE) or current after r286007 (including stable/11 and
41         11.0-RELEASE). These revisions post-date the 10.2 and 9.3 releases, so
42         you'll need to take the unusual step of upgrading to the tip of the
43         stable branch before moving to 11 or -current via a source upgrade.
44         stable/11 and 11.0-RELEASE have working newer compiler. This differs
45         from the historical situation where one could upgrade from anywhere on
46         the last couple of stable branches, so be careful.
47
48         If you're running a hybrid system on 9.x or 10.x with an updated clang
49         compiler or are using an supported external toolchain, the build system
50         will allow the upgrade. Otherwise it will print a reminder.
51
52 ****************************** SPECIAL WARNING: ******************************
53
54 20180406:
55         In addition to supporting RFC 3164 formatted messages, the
56         syslogd(8) service is now capable of parsing RFC 5424 formatted
57         log messages. The main benefit of using RFC 5424 is that clients
58         may now send log messages with timestamps containing year numbers,
59         microseconds and time zone offsets.
60
61         Similarly, the syslog(3) C library function has been altered to
62         send RFC 5424 formatted messages to the local system logging
63         daemon. On systems using syslogd(8), this change should have no
64         negative impact, as long as syslogd(8) and the C library are
65         updated at the same time. On systems using a different system
66         logging daemon, it may be necessary to make configuration
67         adjustments, depending on the software used.
68
69         When using syslog-ng, add the 'syslog-protocol' flag to local
70         input sources to enable parsing of RFC 5424 formatted messages:
71
72                 source src {
73                         unix-dgram("/var/run/log" flags(syslog-protocol));
74                 }
75
76         When using rsyslog, disable the 'SysSock.UseSpecialParser' option
77         of the 'imuxsock' module to let messages be processed by the
78         regular RFC 3164/5424 parsing pipeline:
79
80                 module(load="imuxsock" SysSock.UseSpecialParser="off")
81
82         Do note that these changes only affect communication between local
83         applications and syslogd(8). The format that syslogd(8) uses to
84         store messages on disk or forward messages to other systems
85         remains unchanged. syslogd(8) still uses RFC 3164 for these
86         purposes. Options to customize this behaviour will be added in the
87         future. Utilities that process log files stored in /var/log are
88         thus expected to continue to function as before.
89
90         __FreeBSD_version has been incremented to 1200061 to denote this
91         change.
92
93 20180328:
94         Support for token ring networks has been removed. If you
95         have "device token" in your kernel config you should remove
96         it. No device drivers supported token ring.
97
98 20180323:
99         makefs was modified to be able to tag ISO9660 El Torito boot catalog
100         entries as EFI instead of overloading the i386 tag as done previously.
101         The amd64 mkisoimages.sh script used to build amd64 ISO images for
102         release was updated to use this. This may mean that makefs must be
103         updated before "make cdrom" can be run in the release directory. This
104         should be as simple as:
105
106                 $ cd $SRCDIR/usr.sbin/makefs
107                 $ make depend all install
108
109 20180212:
110         FreeBSD boot loader enhanced with Lua scripting. It's purely opt-in for
111         now by building WITH_LOADER_LUA and WITHOUT_FORTH in /etc/src.conf.
112         Co-existance for the transition period will come shortly. Booting is a
113         complex environment and test coverage for Lua-enabled loaders has been
114         thin, so it would be prudent to assume it might not work and make
115         provisions for backup boot methods.
116
117 20180211:
118         devmatch functionality has been turned on in devd. It will automatically
119         load drivers for unattached devices. This may cause unexpected drivers to
120         be loaded. Please report any problems to current@ and imp@freebsd.org.
121
122 20180114:
123         Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
124         6.0.0.  Please see the 20141231 entry below for information about
125         prerequisites and upgrading, if you are not already using clang 3.5.0
126         or higher.
127
128 20180110:
129         LLVM's lld linker is now used as the FreeBSD/amd64 bootstrap linker.
130         This means it is used to link the kernel and userland libraries and
131         executables, but is not yet installed as /usr/bin/ld by default.
132
133         To revert to ld.bfd as the bootstrap linker, in /etc/src.conf set
134         WITHOUT_LLD_BOOTSTRAP=yes
135
136 20180110:
137         On i386, pmtimer has been removed. Its functionality has been folded
138         into apm. It was a no-op on ACPI in current for a while now (but was still
139         needed on i386 in FreeBSD 11 and earlier). Users may need to remove it
140         from kernel config files.
141
142 20180104:
143         The use of RSS hash from the network card aka flowid has been
144         disabled by default for lagg(4) as it's currently incompatible with
145         the lacp and loadbalance protocols.
146
147         This can be re-enabled by setting the following in loader.conf:
148         net.link.lagg.default_use_flowid="1"
149
150 20180102:
151         The SW_WATCHDOG option is no longer necessary to enable the
152         hardclock-based software watchdog if no hardware watchdog is
153         configured. As before, SW_WATCHDOG will cause the software
154         watchdog to be enabled even if a hardware watchdog is configured.
155
156 20171215:
157         r326887 fixes the issue described in the 20171214 UPDATING entry.
158         r326888 flips the switch back to building GELI support always.
159
160 20171214:
161         r362593 broke ZFS + GELI support for reasons unknown. However,
162         it also broke ZFS support generally, so GELI has been turned off
163         by default as the lesser evil in r326857. If you boot off ZFS and/or
164         GELI, it might not be a good time to update.
165
166 20171125:
167         PowerPC users must update loader(8) by rebuilding world before
168         installing a new kernel, as the protocol connecting them has
169         changed. Without the update, loader metadata will not be passed
170         successfully to the kernel and users will have to enter their
171         root partition at the kernel mountroot prompt to continue booting.
172         Newer versions of loader can boot old kernels without issue.
173
174 20171110:
175         The LOADER_FIREWIRE_SUPPORT build variable as been renamed to
176         WITH/OUT_LOADER_FIREWIRE. LOADER_{NO_,}GELI_SUPPORT has been renamed
177         to WITH/OUT_LOADER_GELI.
178
179 20171106:
180         The naive and non-compliant support of posix_fallocate(2) in ZFS
181         has been removed as of r325320.  The system call now returns EINVAL
182         when used on a ZFS file.  Although the new behavior complies with the
183         standard, some consumers are not prepared to cope with it.
184         One known victim is lld prior to r325420.
185
186 20171102:
187         Building in a FreeBSD src checkout will automatically create object
188         directories now rather than store files in the current directory if
189         'make obj' was not ran.  Calling 'make obj' is no longer necessary.
190         This feature can be disabled by setting WITHOUT_AUTO_OBJ=yes in
191         /etc/src-env.conf (not /etc/src.conf), or passing the option in the
192         environment.
193
194 20171101:
195         The default MAKEOBJDIR has changed from /usr/obj/<srcdir> for native
196         builds, and /usr/obj/<arch>/<srcdir> for cross-builds, to a unified
197         /usr/obj/<srcdir>/<arch>.  This behavior can be changed to the old
198         format by setting WITHOUT_UNIFIED_OBJDIR=yes in /etc/src-env.conf,
199         the environment, or with -DWITHOUT_UNIFIED_OBJDIR when building.
200         The UNIFIED_OBJDIR option is a transitional feature that will be
201         removed for 12.0 release; please migrate to the new format for any
202         tools by looking up the OBJDIR used by 'make -V .OBJDIR' means rather
203         than hardcoding paths.
204
205 20171028:
206         The native-xtools target no longer installs the files by default to the
207         OBJDIR.  Use the native-xtools-install target with a DESTDIR to install
208         to ${DESTDIR}/${NXTP} where NXTP defaults to /nxb-bin.
209
210 20171021:
211         As part of the boot loader infrastructure cleanup, LOADER_*_SUPPORT
212         options are changing from controlling the build if defined / undefined
213         to controlling the build with explicit 'yes' or 'no' values. They will
214         shift to WITH/WITHOUT options to match other options in the system.
215
216 20171010:
217         libstand has turned into a private library for sys/boot use only.
218         It is no longer supported as a public interface outside of sys/boot.
219
220 20171005:
221         The arm port has split armv6 into armv6 and armv7. armv7 is now
222         a valid TARGET_ARCH/MACHINE_ARCH setting. If you have an armv7 system
223         and are running a kernel from before r324363, you will need to add
224         MACHINE_ARCH=armv7 to 'make buildworld' to do a native build.
225
226 20171003:
227         When building multiple kernels using KERNCONF, non-existent KERNCONF
228         files will produce an error and buildkernel will fail. Previously
229         missing KERNCONF files silently failed giving no indication as to
230         why, only to subsequently discover during installkernel that the
231         desired kernel was never built in the first place.
232
233 20170912:
234         The default serial number format for CTL LUNs has changed.  This will
235         affect users who use /dev/diskid/* device nodes, or whose FibreChannel
236         or iSCSI clients care about their LUNs' serial numbers.  Users who
237         require serial number stability should hardcode serial numbers in
238         /etc/ctl.conf .
239
240 20170912:
241         For 32-bit arm compiled for hard-float support, soft-floating point
242         binaries now always get their shared libraries from
243         LD_SOFT_LIBRARY_PATH (in the past, this was only used if
244         /usr/libsoft also existed). Only users with a hard-float ld.so, but
245         soft-float everything else should be affected.
246
247 20170826:
248         The geli password typed at boot is now hidden.  To restore the previous
249         behavior, see geli(8) for configuration options.
250
251 20170825:
252         Move PMTUD blackhole counters to TCPSTATS and remove them from bare
253         sysctl values.  Minor nit, but requires a rebuild of both world/kernel
254         to complete.
255
256 20170814:
257         "make check" behavior (made in ^/head@r295380) has been changed to
258         execute from a limited sandbox, as opposed to executing from
259         ${TESTSDIR}.
260
261         Behavioral changes:
262         - The "beforecheck" and "aftercheck" targets are now specified.
263         - ${CHECKDIR} (added in commit noted above) has been removed.
264         - Legacy behavior can be enabled by setting
265           WITHOUT_MAKE_CHECK_USE_SANDBOX in src.conf(5) or the environment.
266
267         If the limited sandbox mode is enabled, "make check" will execute
268         "make distribution", then install, execute the tests, and clean up the
269         sandbox if successful.
270
271         The "make distribution" and "make install" targets are typically run as
272         root to set appropriate permissions and ownership at installation time.
273         The end-user should set "WITH_INSTALL_AS_USER" in src.conf(5) or the
274         environment if executing "make check" with limited sandbox mode using
275         an unprivileged user.
276
277 20170808:
278         Since the switch to GPT disk labels, fsck for UFS/FFS has been
279         unable to automatically find alternate superblocks. As of r322297,
280         the information needed to find alternate superblocks has been
281         moved to the end of the area reserved for the boot block.
282         Filesystems created with a newfs of this vintage or later
283         will create the recovery information. If you have a filesystem
284         created prior to this change and wish to have a recovery block
285         created for your filesystem, you can do so by running fsck in
286         foreground mode (i.e., do not use the -p or -y options). As it
287         starts, fsck will ask ``SAVE DATA TO FIND ALTERNATE SUPERBLOCKS''
288         to which you should answer yes.
289
290 20170728:
291         As of r321665, an NFSv4 server configuration that services
292         Kerberos mounts or clients that do not support the uid/gid in
293         owner/owner_group string capability, must explicitly enable
294         the nfsuserd daemon by adding nfsuserd_enable="YES" to the
295         machine's /etc/rc.conf file.
296
297 20170722:
298         Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 5.0.0.
299         Please see the 20141231 entry below for information about prerequisites
300         and upgrading, if you are not already using clang 3.5.0 or higher.
301
302 20170701:
303         WITHOUT_RCMDS is now the default. Set WITH_RCMDS if you need the
304         r-commands (rlogin, rsh, etc.) to be built with the base system.
305
306 20170625:
307         The FreeBSD/powerpc platform now uses a 64-bit type for time_t.  This is
308         a very major ABI incompatible change, so users of FreeBSD/powerpc must
309         be careful when performing source upgrades.  It is best to run
310         'make installworld' from an alternate root system, either a live
311         CD/memory stick, or a temporary root partition.  Additionally, all ports
312         must be recompiled.  powerpc64 is largely unaffected, except in the case
313         of 32-bit compatibility.  All 32-bit binaries will be affected.
314
315 20170623:
316         Forward compatibility for the "ino64" project have been committed. This
317         will allow most new binaries to run on older kernels in a limited
318         fashion.  This prevents many of the common foot-shooting actions in the
319         upgrade as well as the limited ability to roll back the kernel across
320         the ino64 upgrade. Complicated use cases may not work properly, though
321         enough simpler ones work to allow recovery in most situations.
322
323 20170620:
324         Switch back to the BSDL dtc (Device Tree Compiler). Set WITH_GPL_DTC
325         if you require the GPL compiler.
326
327 20170618:
328         The internal ABI used for communication between the NFS kernel modules
329         was changed by r320085, so __FreeBSD_version was bumped to
330         ensure all the NFS related modules are updated together.
331
332 20170617:
333         The ABI of struct event was changed by extending the data
334         member to 64bit and adding ext fields.  For upgrade, same
335         precautions as for the entry 20170523 "ino64" must be
336         followed.
337
338 20170531:
339         The GNU roff toolchain has been removed from base. To render manpages
340         which are not supported by mandoc(1), man(1) can fallback on GNU roff
341         from ports (and recommends to install it).
342         To render roff(7) documents, consider using GNU roff from ports or the
343         heirloom doctools roff toolchain from ports via pkg install groff or
344         via pkg install heirloom-doctools.
345
346 20170524:
347         The ath(4) and ath_hal(4) modules now build piecemeal to allow for
348         smaller runtime footprint builds.  This is useful for embedded systems
349         which only require one chipset support.
350
351         If you load it as a module, make sure this is in /boot/loader.conf:
352
353         if_ath_load="YES"
354
355         This will load the HAL, all chip/RF backends and if_ath_pci.
356         If you have if_ath_pci in /boot/loader.conf, ensure it is after
357         if_ath or it will not load any HAL chipset support.
358
359         If you want to selectively load things (eg on ye cheape ARM/MIPS
360         platforms where RAM is at a premium) you should:
361
362         * load ath_hal
363         * load the chip modules in question
364         * load ath_rate, ath_dfs
365         * load ath_main
366         * load if_ath_pci and/or if_ath_ahb depending upon your particular
367           bus bind type - this is where probe/attach is done.
368
369         For further comments/feedback, poke adrian@ .
370
371 20170523:
372         The "ino64" 64-bit inode project has been committed, which extends
373         a number of types to 64 bits.  Upgrading in place requires care and
374         adherence to the documented upgrade procedure.
375
376         If using a custom kernel configuration ensure that the
377         COMPAT_FREEBSD11 option is included (as during the upgrade the
378         system will be running the ino64 kernel with the existing world).
379
380         For the safest in-place upgrade begin by removing previous build
381         artifacts via "rm -rf /usr/obj/*".   Then, carefully follow the
382         full procedure documented below under the heading "To rebuild
383         everything and install it on the current system."  Specifically,
384         a reboot is required after installing the new kernel before
385         installing world.
386
387 20170424:
388         The NATM framework including the en(4), fatm(4), hatm(4), and
389         patm(4) devices has been removed.  Consumers should plan a
390         migration before the end-of-life date for FreeBSD 11.
391
392 20170420:
393         GNU diff has been replaced by a BSD licensed diff. Some features of GNU
394         diff has not been implemented, if those are needed a newer version of
395         GNU diff is available via the diffutils package under the gdiff name.
396
397 20170413:
398         As of r316810 for ipfilter, keep frags is no longer assumed when
399         keep state is specified in a rule. r316810 aligns ipfilter with
400         documentation in man pages separating keep frags from keep state.
401         This allows keep state to be specified without forcing keep frags
402         and allows keep frags to be specified independently of keep state.
403         To maintain previous behaviour, also specify keep frags with
404         keep state (as documented in ipf.conf.5).
405
406 20170407:
407         arm64 builds now use the base system LLD 4.0.0 linker by default,
408         instead of requiring that the aarch64-binutils port or package be
409         installed. To continue using aarch64-binutils, set
410         CROSS_BINUTILS_PREFIX=/usr/local/aarch64-freebsd/bin .
411
412 20170405:
413         The UDP optimization in entry 20160818 that added the sysctl
414         net.inet.udp.require_l2_bcast has been reverted.  L2 broadcast
415         packets will no longer be treated as L3 broadcast packets.
416
417 20170331:
418         Binds and sends to the loopback addresses, IPv6 and IPv4, will now
419         use any explicitly assigned loopback address available in the jail
420         instead of using the first assigned address of the jail.
421
422 20170329:
423         The ctl.ko module no longer implements the iSCSI target frontend:
424         cfiscsi.ko does instead.
425
426         If building cfiscsi.ko as a kernel module, the module can be loaded
427         via one of the following methods:
428         - `cfiscsi_load="YES"` in loader.conf(5).
429         - Add `cfiscsi` to `$kld_list` in rc.conf(5).
430         - ctladm(8)/ctld(8), when compiled with iSCSI support
431           (`WITH_ISCSI=yes` in src.conf(5))
432
433         Please see cfiscsi(4) for more details.
434
435 20170316:
436         The mmcsd.ko module now additionally depends on geom_flashmap.ko.
437         Also, mmc.ko and mmcsd.ko need to be a matching pair built from the
438         same source (previously, the dependency of mmcsd.ko on mmc.ko was
439         missing, but mmcsd.ko now will refuse to load if it is incompatible
440         with mmc.ko).
441
442 20170315:
443         The syntax of ipfw(8) named states was changed to avoid ambiguity.
444         If you have used named states in the firewall rules, you need to modify
445         them after installworld and before rebooting. Now named states must
446         be prefixed with colon.
447
448 20170311:
449         The old drm (sys/dev/drm/) drivers for i915 and radeon have been
450         removed as the userland we provide cannot use them. The KMS version
451         (sys/dev/drm2) supports the same hardware.
452
453 20170302:
454         Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 4.0.0.
455         Please see the 20141231 entry below for information about prerequisites
456         and upgrading, if you are not already using clang 3.5.0 or higher.
457
458 20170221:
459         The code that provides support for ZFS .zfs/ directory functionality
460         has been reimplemented.  It's not possible now to create a snapshot
461         by mkdir under .zfs/snapshot/.  That should be the only user visible
462         change.
463
464 20170216:
465         EISA bus support has been removed. The WITH_EISA option is no longer
466         valid.
467
468 20170215:
469         MCA bus support has been removed.
470
471 20170127:
472         The WITH_LLD_AS_LD / WITHOUT_LLD_AS_LD build knobs have been renamed
473         WITH_LLD_IS_LD / WITHOUT_LLD_IS_LD, for consistency with CLANG_IS_CC.
474
475 20170112:
476         The EM_MULTIQUEUE kernel configuration option is deprecated now that
477         the em(4) driver conforms to iflib specifications.
478
479 20170109:
480         The igb(4), em(4) and lem(4) ethernet drivers are now implemented via
481         IFLIB.  If you have a custom kernel configuration that excludes em(4)
482         but you use igb(4), you need to re-add em(4) to your custom configuration.
483
484 20161217:
485         Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1.
486         Please see the 20141231 entry below for information about prerequisites
487         and upgrading, if you are not already using clang 3.5.0 or higher.
488
489 20161124:
490         Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.0.
491         Please see the 20141231 entry below for information about prerequisites
492         and upgrading, if you are not already using clang 3.5.0 or higher.
493
494 20161119:
495         The layout of the pmap structure has changed for powerpc to put the pmap
496         statistics at the front for all CPU variations.  libkvm(3) and all tools
497         that link against it need to be recompiled.
498
499 20161030:
500         isl(4) and cyapa(4) drivers now require a new driver,
501         chromebook_platform(4), to work properly on Chromebook-class hardware.
502         On other types of hardware the drivers may need to be configured using
503         device hints.  Please see the corresponding manual pages for details.
504
505 20161017:
506         The urtwn(4) driver was merged into rtwn(4) and now consists of
507         rtwn(4) main module + rtwn_usb(4) and rtwn_pci(4) bus-specific
508         parts.
509         Also, firmware for RTL8188CE was renamed due to possible name
510         conflict (rtwnrtl8192cU(B) -> rtwnrtl8192cE(B))
511
512 20161015:
513         GNU rcs has been removed from base.  It is available as packages:
514         - rcs: Latest GPLv3 GNU rcs version.
515         - rcs57: Copy of the latest version of GNU rcs (GPLv2) before it was
516         removed from base.
517
518 20161008:
519         Use of the cc_cdg, cc_chd, cc_hd, or cc_vegas congestion control
520         modules now requires that the kernel configuration contain the
521         TCP_HHOOK option. (This option is included in the GENERIC kernel.)
522
523 20161003:
524         The WITHOUT_ELFCOPY_AS_OBJCOPY src.conf(5) knob has been retired.
525         ELF Tool Chain's elfcopy is always installed as /usr/bin/objcopy.
526
527 20160924:
528         Relocatable object files with the extension of .So have been renamed
529         to use an extension of .pico instead.  The purpose of this change is
530         to avoid a name clash with shared libraries on case-insensitive file
531         systems.  On those file systems, foo.So is the same file as foo.so.
532
533 20160918:
534         GNU rcs has been turned off by default.  It can (temporarily) be built
535         again by adding WITH_RCS knob in src.conf.
536         Otherwise, GNU rcs is available from packages:
537         - rcs: Latest GPLv3 GNU rcs version.
538         - rcs57: Copy of the latest version of GNU rcs (GPLv2) from base.
539
540 20160918:
541         The backup_uses_rcs functionality has been removed from rc.subr.
542
543 20160908:
544         The queue(3) debugging macro, QUEUE_MACRO_DEBUG, has been split into
545         two separate components, QUEUE_MACRO_DEBUG_TRACE and
546         QUEUE_MACRO_DEBUG_TRASH.  Define both for the original
547         QUEUE_MACRO_DEBUG behavior.
548
549 20160824:
550         r304787 changed some ioctl interfaces between the iSCSI userspace
551         programs and the kernel.  ctladm, ctld, iscsictl, and iscsid must be
552         rebuilt to work with new kernels.  __FreeBSD_version has been bumped
553         to 1200005.
554
555 20160818:
556         The UDP receive code has been updated to only treat incoming UDP
557         packets that were addressed to an L2 broadcast address as L3
558         broadcast packets.  It is not expected that this will affect any
559         standards-conforming UDP application.  The new behaviour can be
560         disabled by setting the sysctl net.inet.udp.require_l2_bcast to
561         0.
562
563 20160818:
564         Remove the openbsd_poll system call.
565         __FreeBSD_version has been bumped because of this.
566
567 20160622:
568         The libc stub for the pipe(2) system call has been replaced with
569         a wrapper that calls the pipe2(2) system call and the pipe(2)
570         system call is now only implemented by the kernels that include
571         "options COMPAT_FREEBSD10" in their config file (this is the
572         default).  Users should ensure that this option is enabled in
573         their kernel or upgrade userspace to r302092 before upgrading their
574         kernel.
575
576 20160527:
577         CAM will now strip leading spaces from SCSI disks' serial numbers.
578         This will affect users who create UFS filesystems on SCSI disks using
579         those disk's diskid device nodes.  For example, if /etc/fstab
580         previously contained a line like
581         "/dev/diskid/DISK-%20%20%20%20%20%20%20ABCDEFG0123456", you should
582         change it to "/dev/diskid/DISK-ABCDEFG0123456".  Users of geom
583         transforms like gmirror may also be affected.  ZFS users should
584         generally be fine.
585
586 20160523:
587         The bitstring(3) API has been updated with new functionality and
588         improved performance.  But it is binary-incompatible with the old API.
589         Objects built with the new headers may not be linked against objects
590         built with the old headers.
591
592 20160520:
593         The brk and sbrk functions have been removed from libc on arm64.
594         Binutils from ports has been updated to not link to these
595         functions and should be updated to the latest version before
596         installing a new libc.
597
598 20160517:
599         The armv6 port now defaults to hard float ABI. Limited support
600         for running both hardfloat and soft float on the same system
601         is available using the libraries installed with -DWITH_LIBSOFT.
602         This has only been tested as an upgrade path for installworld
603         and packages may fail or need manual intervention to run. New
604         packages will be needed.
605
606         To update an existing self-hosted armv6hf system, you must add
607         TARGET_ARCH=armv6 on the make command line for both the build
608         and the install steps.
609
610 20160510:
611         Kernel modules compiled outside of a kernel build now default to
612         installing to /boot/modules instead of /boot/kernel.  Many kernel
613         modules built this way (such as those in ports) already overrode
614         KMODDIR explicitly to install into /boot/modules.  However,
615         manually building and installing a module from /sys/modules will
616         now install to /boot/modules instead of /boot/kernel.
617
618 20160414:
619         The CAM I/O scheduler has been committed to the kernel. There should be
620         no user visible impact. This does enable NCQ Trim on ada SSDs. While the
621         list of known rogues that claim support for this but actually corrupt
622         data is believed to be complete, be on the lookout for data
623         corruption. The known rogue list is believed to be complete:
624
625                 o Crucial MX100, M550 drives with MU01 firmware.
626                 o Micron M510 and M550 drives with MU01 firmware.
627                 o Micron M500 prior to MU07 firmware
628                 o Samsung 830, 840, and 850 all firmwares
629                 o FCCT M500 all firmwares
630
631         Crucial has firmware http://www.crucial.com/usa/en/support-ssd-firmware
632         with working NCQ TRIM. For Micron branded drives, see your sales rep for
633         updated firmware. Black listed drives will work correctly because these
634         drives work correctly so long as no NCQ TRIMs are sent to them. Given
635         this list is the same as found in Linux, it's believed there are no
636         other rogues in the market place. All other models from the above
637         vendors work.
638
639         To be safe, if you are at all concerned, you can quirk each of your
640         drives to prevent NCQ from being sent by setting:
641                 kern.cam.ada.X.quirks="0x2"
642         in loader.conf. If the drive requires the 4k sector quirk, set the
643         quirks entry to 0x3.
644
645 20160330:
646         The FAST_DEPEND build option has been removed and its functionality is
647         now the one true way.  The old mkdep(1) style of 'make depend' has
648         been removed.  See 20160311 for further details.
649
650 20160317:
651         Resource range types have grown from unsigned long to uintmax_t.  All
652         drivers, and anything using libdevinfo, need to be recompiled.
653
654 20160311:
655         WITH_FAST_DEPEND is now enabled by default for in-tree and out-of-tree
656         builds.  It no longer runs mkdep(1) during 'make depend', and the
657         'make depend' stage can safely be skipped now as it is auto ran
658         when building 'make all' and will generate all SRCS and DPSRCS before
659         building anything else.  Dependencies are gathered at compile time with
660         -MF flags kept in separate .depend files per object file.  Users should
661         run 'make cleandepend' once if using -DNO_CLEAN to clean out older
662         stale .depend files.
663
664 20160306:
665         On amd64, clang 3.8.0 can now insert sections of type AMD64_UNWIND into
666         kernel modules.  Therefore, if you load any kernel modules at boot time,
667         please install the boot loaders after you install the kernel, but before
668         rebooting, e.g.:
669
670         make buildworld
671         make buildkernel KERNCONF=YOUR_KERNEL_HERE
672         make installkernel KERNCONF=YOUR_KERNEL_HERE
673         make -C sys/boot install
674         <reboot in single user>
675
676         Then follow the usual steps, described in the General Notes section,
677         below.
678
679 20160305:
680         Clang, llvm, lldb and compiler-rt have been upgraded to 3.8.0.  Please
681         see the 20141231 entry below for information about prerequisites and
682         upgrading, if you are not already using clang 3.5.0 or higher.
683
684 20160301:
685         The AIO subsystem is now a standard part of the kernel.  The
686         VFS_AIO kernel option and aio.ko kernel module have been removed.
687         Due to stability concerns, asynchronous I/O requests are only
688         permitted on sockets and raw disks by default.  To enable
689         asynchronous I/O requests on all file types, set the
690         vfs.aio.enable_unsafe sysctl to a non-zero value.
691
692 20160226:
693         The ELF object manipulation tool objcopy is now provided by the
694         ELF Tool Chain project rather than by GNU binutils. It should be a
695         drop-in replacement, with the addition of arm64 support. The
696         (temporary) src.conf knob WITHOUT_ELFCOPY_AS_OBJCOPY knob may be set
697         to obtain the GNU version if necessary.
698
699 20160129:
700         Building ZFS pools on top of zvols is prohibited by default.  That
701         feature has never worked safely; it's always been prone to deadlocks.
702         Using a zvol as the backing store for a VM guest's virtual disk will
703         still work, even if the guest is using ZFS.  Legacy behavior can be
704         restored by setting vfs.zfs.vol.recursive=1.
705
706 20160119:
707         The NONE and HPN patches has been removed from OpenSSH.  They are
708         still available in the security/openssh-portable port.
709
710 20160113:
711         With the addition of ypldap(8), a new _ypldap user is now required
712         during installworld. "mergemaster -p" can be used to add the user
713         prior to installworld, as documented in the handbook.
714
715 20151216:
716         The tftp loader (pxeboot) now uses the option root-path directive. As a
717         consequence it no longer looks for a pxeboot.4th file on the tftp
718         server. Instead it uses the regular /boot infrastructure as with the
719         other loaders.
720
721 20151211:
722         The code to start recording plug and play data into the modules has
723         been committed. While the old tools will properly build a new kernel,
724         a number of warnings about "unknown metadata record 4" will be produced
725         for an older kldxref. To avoid such warnings, make sure to rebuild
726         the kernel toolchain (or world). Make sure that you have r292078 or
727         later when trying to build 292077 or later before rebuilding.
728
729 20151207:
730         Debug data files are now built by default with 'make buildworld' and
731         installed with 'make installworld'. This facilitates debugging but
732         requires more disk space both during the build and for the installed
733         world. Debug files may be disabled by setting WITHOUT_DEBUG_FILES=yes
734         in src.conf(5).
735
736 20151130:
737         r291527 changed the internal interface between the nfsd.ko and
738         nfscommon.ko modules. As such, they must both be upgraded to-gether.
739         __FreeBSD_version has been bumped because of this.
740
741 20151108:
742         Add support for unicode collation strings leads to a change of
743         order of files listed by ls(1) for example. To get back to the old
744         behaviour, set LC_COLLATE environment variable to "C".
745
746         Databases administrators will need to reindex their databases given
747         collation results will be different.
748
749         Due to a bug in install(1) it is recommended to remove the ancient
750         locales before running make installworld.
751
752         rm -rf /usr/share/locale/*
753
754 20151030:
755         The OpenSSL has been upgraded to 1.0.2d.  Any binaries requiring
756         libcrypto.so.7 or libssl.so.7 must be recompiled.
757
758 20151020:
759         Qlogic 24xx/25xx firmware images were updated from 5.5.0 to 7.3.0.
760         Kernel modules isp_2400_multi and isp_2500_multi were removed and
761         should be replaced with isp_2400 and isp_2500 modules respectively.
762
763 20151017:
764         The build previously allowed using 'make -n' to not recurse into
765         sub-directories while showing what commands would be executed, and
766         'make -n -n' to recursively show commands.  Now 'make -n' will recurse
767         and 'make -N' will not.
768
769 20151012:
770         If you specify SENDMAIL_MC or SENDMAIL_CF in make.conf, mergemaster
771         and etcupdate will now use this file. A custom sendmail.cf is now
772         updated via this mechanism rather than via installworld.  If you had
773         excluded sendmail.cf in mergemaster.rc or etcupdate.conf, you may
774         want to remove the exclusion or change it to "always install".
775         /etc/mail/sendmail.cf is now managed the same way regardless of
776         whether SENDMAIL_MC/SENDMAIL_CF is used.  If you are not using
777         SENDMAIL_MC/SENDMAIL_CF there should be no change in behavior.
778
779 20151011:
780         Compatibility shims for legacy ATA device names have been removed.
781         It includes ATA_STATIC_ID kernel option, kern.cam.ada.legacy_aliases
782         and kern.geom.raid.legacy_aliases loader tunables, kern.devalias.*
783         environment variables, /dev/ad* and /dev/ar* symbolic links.
784
785 20151006:
786         Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.7.0.
787         Please see the 20141231 entry below for information about prerequisites
788         and upgrading, if you are not already using clang 3.5.0 or higher.
789
790 20150924:
791         Kernel debug files have been moved to /usr/lib/debug/boot/kernel/,
792         and renamed from .symbols to .debug. This reduces the size requirements
793         on the boot partition or file system and provides consistency with
794         userland debug files.
795
796         When using the supported kernel installation method the
797         /usr/lib/debug/boot/kernel directory will be renamed (to kernel.old)
798         as is done with /boot/kernel.
799
800         Developers wishing to maintain the historical behavior of installing
801         debug files in /boot/kernel/ can set KERN_DEBUGDIR="" in src.conf(5).
802
803 20150827:
804         The wireless drivers had undergone changes that remove the 'parent
805         interface' from the ifconfig -l output. The rc.d network scripts
806         used to check presence of a parent interface in the list, so old
807         scripts would fail to start wireless networking. Thus, etcupdate(3)
808         or mergemaster(8) run is required after kernel update, to update your
809         rc.d scripts in /etc.
810
811 20150827:
812         pf no longer supports 'scrub fragment crop' or 'scrub fragment drop-ovl'
813         These configurations are now automatically interpreted as
814         'scrub fragment reassemble'.
815
816 20150817:
817         Kernel-loadable modules for the random(4) device are back. To use
818         them, the kernel must have
819
820         device  random
821         options RANDOM_LOADABLE
822
823         kldload(8) can then be used to load random_fortuna.ko
824         or random_yarrow.ko. Please note that due to the indirect
825         function calls that the loadable modules need to provide,
826         the build-in variants will be slightly more efficient.
827
828         The random(4) kernel option RANDOM_DUMMY has been retired due to
829         unpopularity. It was not all that useful anyway.
830
831 20150813:
832         The WITHOUT_ELFTOOLCHAIN_TOOLS src.conf(5) knob has been retired.
833         Control over building the ELF Tool Chain tools is now provided by
834         the WITHOUT_TOOLCHAIN knob.
835
836 20150810:
837         The polarity of Pulse Per Second (PPS) capture events with the
838         uart(4) driver has been corrected.  Prior to this change the PPS
839         "assert" event corresponded to the trailing edge of a positive PPS
840         pulse and the "clear" event was the leading edge of the next pulse.
841
842         As the width of a PPS pulse in a typical GPS receiver is on the
843         order of 1 millisecond, most users will not notice any significant
844         difference with this change.
845
846         Anyone who has compensated for the historical polarity reversal by
847         configuring a negative offset equal to the pulse width will need to
848         remove that workaround.
849
850 20150809:
851         The default group assigned to /dev/dri entries has been changed
852         from 'wheel' to 'video' with the id of '44'. If you want to have
853         access to the dri devices please add yourself to the video group
854         with:
855
856         # pw groupmod video -m $USER
857
858 20150806:
859         The menu.rc and loader.rc files will now be replaced during
860         upgrades. Please migrate local changes to menu.rc.local and
861         loader.rc.local instead.
862
863 20150805:
864         GNU Binutils versions of addr2line, c++filt, nm, readelf, size,
865         strings and strip have been removed. The src.conf(5) knob
866         WITHOUT_ELFTOOLCHAIN_TOOLS no longer provides the binutils tools.
867
868 20150728:
869         As ZFS requires more kernel stack pages than is the default on some
870         architectures e.g. i386, it now warns if KSTACK_PAGES is less than
871         ZFS_MIN_KSTACK_PAGES (which is 4 at the time of writing).
872
873         Please consider using 'options KSTACK_PAGES=X' where X is greater
874         than or equal to ZFS_MIN_KSTACK_PAGES i.e. 4 in such configurations.
875
876 20150706:
877         sendmail has been updated to 8.15.2.  Starting with FreeBSD 11.0
878         and sendmail 8.15, sendmail uses uncompressed IPv6 addresses by
879         default, i.e., they will not contain "::".  For example, instead
880         of ::1, it will be 0:0:0:0:0:0:0:1.  This permits a zero subnet
881         to have a more specific match, such as different map entries for
882         IPv6:0:0 vs IPv6:0.  This change requires that configuration
883         data (including maps, files, classes, custom ruleset, etc.) must
884         use the same format, so make certain such configuration data is
885         upgrading.  As a very simple check search for patterns like
886         'IPv6:[0-9a-fA-F:]*::' and 'IPv6::'.  To return to the old
887         behavior, set the m4 option confUSE_COMPRESSED_IPV6_ADDRESSES or
888         the cf option UseCompressedIPv6Addresses.
889
890 20150630:
891         The default kernel entropy-processing algorithm is now
892         Fortuna, replacing Yarrow.
893
894         Assuming you have 'device random' in your kernel config
895         file, the configurations allow a kernel option to override
896         this default. You may choose *ONE* of:
897
898         options RANDOM_YARROW   # Legacy /dev/random algorithm.
899         options RANDOM_DUMMY    # Blocking-only driver.
900
901         If you have neither, you get Fortuna.  For most people,
902         read no further, Fortuna will give a /dev/random that works
903         like it always used to, and the difference will be irrelevant.
904
905         If you remove 'device random', you get *NO* kernel-processed
906         entropy at all. This may be acceptable to folks building
907         embedded systems, but has complications. Carry on reading,
908         and it is assumed you know what you need.
909
910         *PLEASE* read random(4) and random(9) if you are in the
911         habit of tweaking kernel configs, and/or if you are a member
912         of the embedded community, wanting specific and not-usual
913         behaviour from your security subsystems.
914
915         NOTE!! If you use RANDOM_DUMMY and/or have no 'device
916         random', you will NOT have a functioning /dev/random, and
917         many cryptographic features will not work, including SSH.
918         You may also find strange behaviour from the random(3) set
919         of library functions, in particular sranddev(3), srandomdev(3)
920         and arc4random(3). The reason for this is that the KERN_ARND
921         sysctl only returns entropy if it thinks it has some to
922         share, and with RANDOM_DUMMY or no 'device random' this
923         will never happen.
924
925 20150623:
926         An additional fix for the issue described in the 20150614 sendmail
927         entry below has been committed in revision 284717.
928
929 20150616:
930         FreeBSD's old make (fmake) has been removed from the system. It is
931         available as the devel/fmake port or via pkg install fmake.
932
933 20150615:
934         The fix for the issue described in the 20150614 sendmail entry
935         below has been committed in revision 284436.  The work
936         around described in that entry is no longer needed unless the
937         default setting is overridden by a confDH_PARAMETERS configuration
938         setting of '5' or pointing to a 512 bit DH parameter file.
939
940 20150614:
941         ALLOW_DEPRECATED_ATF_TOOLS/ATFFILE support has been removed from
942         atf.test.mk (included from bsd.test.mk). Please upgrade devel/atf
943         and devel/kyua to version 0.20+ and adjust any calling code to work
944         with Kyuafile and kyua.
945
946 20150614:
947         The import of openssl to address the FreeBSD-SA-15:10.openssl
948         security advisory includes a change which rejects handshakes
949         with DH parameters below 768 bits.  sendmail releases prior
950         to 8.15.2 (not yet released), defaulted to a 512 bit
951         DH parameter setting for client connections.  To work around
952         this interoperability, sendmail can be configured to use a
953         2048 bit DH parameter by:
954
955         1. Edit /etc/mail/`hostname`.mc
956         2. If a setting for confDH_PARAMETERS does not exist or
957            exists and is set to a string beginning with '5',
958            replace it with '2'.
959         3. If a setting for confDH_PARAMETERS exists and is set to
960            a file path, create a new file with:
961                 openssl dhparam -out /path/to/file 2048
962         4. Rebuild the .cf file:
963                 cd /etc/mail/; make; make install
964         5. Restart sendmail:
965                 cd /etc/mail/; make restart
966
967         A sendmail patch is coming, at which time this file will be
968         updated.
969
970 20150604:
971         Generation of legacy formatted entries have been disabled by default
972         in pwd_mkdb(8), as all base system consumers of the legacy formatted
973         entries were converted to use the new format by default when the new,
974         machine independent format have been added and supported since FreeBSD
975         5.x.
976
977         Please see the pwd_mkdb(8) manual page for further details.
978
979 20150525:
980         Clang and llvm have been upgraded to 3.6.1 release.  Please see the
981         20141231 entry below for information about prerequisites and upgrading,
982         if you are not already using 3.5.0 or higher.
983
984 20150521:
985         TI platform code switched to using vendor DTS files and this update
986         may break existing systems running on Beaglebone, Beaglebone Black,
987         and Pandaboard:
988
989         - dtb files should be regenerated/reinstalled. Filenames are the
990           same but content is different now
991         - GPIO addressing was changed, now each GPIO bank (32 pins per bank)
992           has its own /dev/gpiocX device, e.g. pin 121 on /dev/gpioc0 in old
993           addressing scheme is now pin 25 on /dev/gpioc3.
994         - Pandaboard: /etc/ttys should be updated, serial console device is
995           now /dev/ttyu2, not /dev/ttyu0
996
997 20150501:
998         soelim(1) from gnu/usr.bin/groff has been replaced by usr.bin/soelim.
999         If you need the GNU extension from groff soelim(1), install groff
1000         from package: pkg install groff, or via ports: textproc/groff.
1001
1002 20150423:
1003         chmod, chflags, chown and chgrp now affect symlinks in -R mode as
1004         defined in symlink(7); previously symlinks were silently ignored.
1005
1006 20150415:
1007         The const qualifier has been removed from iconv(3) to comply with
1008         POSIX.  The ports tree is aware of this from r384038 onwards.
1009
1010 20150416:
1011         Libraries specified by LIBADD in Makefiles must have a corresponding
1012         DPADD_<lib> variable to ensure correct dependencies.  This is now
1013         enforced in src.libnames.mk.
1014
1015 20150324:
1016         From legacy ata(4) driver was removed support for SATA controllers
1017         supported by more functional drivers ahci(4), siis(4) and mvs(4).
1018         Kernel modules ataahci and ataadaptec were removed completely,
1019         replaced by ahci and mvs modules respectively.
1020
1021 20150315:
1022         Clang, llvm and lldb have been upgraded to 3.6.0 release.  Please see
1023         the 20141231 entry below for information about prerequisites and
1024         upgrading, if you are not already using 3.5.0 or higher.
1025
1026 20150307:
1027         The 32-bit PowerPC kernel has been changed to a position-independent
1028         executable. This can only be booted with a version of loader(8)
1029         newer than January 31, 2015, so make sure to update both world and
1030         kernel before rebooting.
1031
1032 20150217:
1033         If you are running a -CURRENT kernel since r273872 (Oct 30th, 2014),
1034         but before r278950, the RNG was not seeded properly.  Immediately
1035         upgrade the kernel to r278950 or later and regenerate any keys (e.g.
1036         ssh keys or openssl keys) that were generated w/ a kernel from that
1037         range.  This does not affect programs that directly used /dev/random
1038         or /dev/urandom.  All userland uses of arc4random(3) are affected.
1039
1040 20150210:
1041         The autofs(4) ABI was changed in order to restore binary compatibility
1042         with 10.1-RELEASE.  The automountd(8) daemon needs to be rebuilt to work
1043         with the new kernel.
1044
1045 20150131:
1046         The powerpc64 kernel has been changed to a position-independent
1047         executable. This can only be booted with a new version of loader(8),
1048         so make sure to update both world and kernel before rebooting.
1049
1050 20150118:
1051         Clang and llvm have been upgraded to 3.5.1 release.  This is a bugfix
1052         only release, no new features have been added.  Please see the 20141231
1053         entry below for information about prerequisites and upgrading, if you
1054         are not already using 3.5.0.
1055
1056 20150107:
1057         ELF tools addr2line, elfcopy (strip), nm, size, and strings are now
1058         taken from the ELF Tool Chain project rather than GNU binutils. They
1059         should be drop-in replacements, with the addition of arm64 support.
1060         The WITHOUT_ELFTOOLCHAIN_TOOLS= knob may be used to obtain the
1061         binutils tools, if necessary. See 20150805 for updated information.
1062
1063 20150105:
1064         The default Unbound configuration now enables remote control
1065         using a local socket.  Users who have already enabled the
1066         local_unbound service should regenerate their configuration
1067         by running "service local_unbound setup" as root.
1068
1069 20150102:
1070         The GNU texinfo and GNU info pages have been removed.
1071         To be able to view GNU info pages please install texinfo from ports.
1072
1073 20141231:
1074         Clang, llvm and lldb have been upgraded to 3.5.0 release.
1075
1076         As of this release, a prerequisite for building clang, llvm and lldb is
1077         a C++11 capable compiler and C++11 standard library.  This means that to
1078         be able to successfully build the cross-tools stage of buildworld, with
1079         clang as the bootstrap compiler, your system compiler or cross compiler
1080         should either be clang 3.3 or later, or gcc 4.8 or later, and your
1081         system C++ library should be libc++, or libdstdc++ from gcc 4.8 or
1082         later.
1083
1084         On any standard FreeBSD 10.x or 11.x installation, where clang and
1085         libc++ are on by default (that is, on x86 or arm), this should work out
1086         of the box.
1087
1088         On 9.x installations where clang is enabled by default, e.g. on x86 and
1089         powerpc, libc++ will not be enabled by default, so libc++ should be
1090         built (with clang) and installed first.  If both clang and libc++ are
1091         missing, build clang first, then use it to build libc++.
1092
1093         On 8.x and earlier installations, upgrade to 9.x first, and then follow
1094         the instructions for 9.x above.
1095
1096         Sparc64 and mips users are unaffected, as they still use gcc 4.2.1 by
1097         default, and do not build clang.
1098
1099         Many embedded systems are resource constrained, and will not be able to
1100         build clang in a reasonable time, or in some cases at all.  In those
1101         cases, cross building bootable systems on amd64 is a workaround.
1102
1103         This new version of clang introduces a number of new warnings, of which
1104         the following are most likely to appear:
1105
1106         -Wabsolute-value
1107
1108         This warns in two cases, for both C and C++:
1109         * When the code is trying to take the absolute value of an unsigned
1110           quantity, which is effectively a no-op, and almost never what was
1111           intended.  The code should be fixed, if at all possible.  If you are
1112           sure that the unsigned quantity can be safely cast to signed, without
1113           loss of information or undefined behavior, you can add an explicit
1114           cast, or disable the warning.
1115
1116         * When the code is trying to take an absolute value, but the called
1117           abs() variant is for the wrong type, which can lead to truncation.
1118           If you want to disable the warning instead of fixing the code, please
1119           make sure that truncation will not occur, or it might lead to unwanted
1120           side-effects.
1121
1122         -Wtautological-undefined-compare and
1123         -Wundefined-bool-conversion
1124
1125         These warn when C++ code is trying to compare 'this' against NULL, while
1126         'this' should never be NULL in well-defined C++ code.  However, there is
1127         some legacy (pre C++11) code out there, which actively abuses this
1128         feature, which was less strictly defined in previous C++ versions.
1129
1130         Squid and openjdk do this, for example.  The warning can be turned off
1131         for C++98 and earlier, but compiling the code in C++11 mode might result
1132         in unexpected behavior; for example, the parts of the program that are
1133         unreachable could be optimized away.
1134
1135 20141222:
1136         The old NFS client and server (kernel options NFSCLIENT, NFSSERVER)
1137         kernel sources have been removed. The .h files remain, since some
1138         utilities include them. This will need to be fixed later.
1139         If "mount -t oldnfs ..." is attempted, it will fail.
1140         If the "-o" option on mountd(8), nfsd(8) or nfsstat(1) is used,
1141         the utilities will report errors.
1142
1143 20141121:
1144         The handling of LOCAL_LIB_DIRS has been altered to skip addition of
1145         directories to top level SUBDIR variable when their parent
1146         directory is included in LOCAL_DIRS.  Users with build systems with
1147         such hierarchies and without SUBDIR entries in the parent
1148         directory Makefiles should add them or add the directories to
1149         LOCAL_DIRS.
1150
1151 20141109:
1152         faith(4) and faithd(8) have been removed from the base system. Faith
1153         has been obsolete for a very long time.
1154
1155 20141104:
1156         vt(4), the new console driver, is enabled by default. It brings
1157         support for Unicode and double-width characters, as well as
1158         support for UEFI and integration with the KMS kernel video
1159         drivers.
1160
1161         You may need to update your console settings in /etc/rc.conf,
1162         most probably the keymap. During boot, /etc/rc.d/syscons will
1163         indicate what you need to do.
1164
1165         vt(4) still has issues and lacks some features compared to
1166         syscons(4). See the wiki for up-to-date information:
1167           https://wiki.freebsd.org/Newcons
1168
1169         If you want to keep using syscons(4), you can do so by adding
1170         the following line to /boot/loader.conf:
1171           kern.vty=sc
1172
1173 20141102:
1174         pjdfstest has been integrated into kyua as an opt-in test suite.
1175         Please see share/doc/pjdfstest/README for more details on how to
1176         execute it.
1177
1178 20141009:
1179         gperf has been removed from the base system for architectures
1180         that use clang. Ports that require gperf will obtain it from the
1181         devel/gperf port.
1182
1183 20140923:
1184         pjdfstest has been moved from tools/regression/pjdfstest to
1185         contrib/pjdfstest .
1186
1187 20140922:
1188         At svn r271982, The default linux compat kernel ABI has been adjusted
1189         to 2.6.18 in support of the linux-c6 compat ports infrastructure
1190         update.  If you wish to continue using the linux-f10 compat ports,
1191         add compat.linux.osrelease=2.6.16 to your local sysctl.conf.  Users are
1192         encouraged to update their linux-compat packages to linux-c6 during
1193         their next update cycle.
1194
1195 20140729:
1196         The ofwfb driver, used to provide a graphics console on PowerPC when
1197         using vt(4), no longer allows mmap() of all physical memory. This
1198         will prevent Xorg on PowerPC with some ATI graphics cards from
1199         initializing properly unless x11-servers/xorg-server is updated to
1200         1.12.4_8 or newer.
1201
1202 20140723:
1203         The xdev targets have been converted to using TARGET and
1204         TARGET_ARCH instead of XDEV and XDEV_ARCH.
1205
1206 20140719:
1207         The default unbound configuration has been modified to address
1208         issues with reverse lookups on networks that use private
1209         address ranges.  If you use the local_unbound service, run
1210         "service local_unbound setup" as root to regenerate your
1211         configuration, then "service local_unbound reload" to load the
1212         new configuration.
1213
1214 20140709:
1215         The GNU texinfo and GNU info pages are not built and installed
1216         anymore, WITH_INFO knob has been added to allow to built and install
1217         them again.
1218         UPDATE: see 20150102 entry on texinfo's removal
1219
1220 20140708:
1221         The GNU readline library is now an INTERNALLIB - that is, it is
1222         statically linked into consumers (GDB and variants) in the base
1223         system, and the shared library is no longer installed.  The
1224         devel/readline port is available for third party software that
1225         requires readline.
1226
1227 20140702:
1228         The Itanium architecture (ia64) has been removed from the list of
1229         known architectures. This is the first step in the removal of the
1230         architecture.
1231
1232 20140701:
1233         Commit r268115 has added NFSv4.1 server support, merged from
1234         projects/nfsv4.1-server.  Since this includes changes to the
1235         internal interfaces between the NFS related modules, a full
1236         build of the kernel and modules will be necessary.
1237         __FreeBSD_version has been bumped.
1238
1239 20140629:
1240         The WITHOUT_VT_SUPPORT kernel config knob has been renamed
1241         WITHOUT_VT.  (The other _SUPPORT knobs have a consistent meaning
1242         which differs from the behaviour controlled by this knob.)
1243
1244 20140619:
1245         Maximal length of the serial number in CTL was increased from 16 to
1246         64 chars, that breaks ABI.  All CTL-related tools, such as ctladm
1247         and ctld, need to be rebuilt to work with a new kernel.
1248
1249 20140606:
1250         The libatf-c and libatf-c++ major versions were downgraded to 0 and
1251         1 respectively to match the upstream numbers.  They were out of
1252         sync because, when they were originally added to FreeBSD, the
1253         upstream versions were not respected.  These libraries are private
1254         and not yet built by default, so renumbering them should be a
1255         non-issue.  However, unclean source trees will yield broken test
1256         programs once the operator executes "make delete-old-libs" after a
1257         "make installworld".
1258
1259         Additionally, the atf-sh binary was made private by moving it into
1260         /usr/libexec/.  Already-built shell test programs will keep the
1261         path to the old binary so they will break after "make delete-old"
1262         is run.
1263
1264         If you are using WITH_TESTS=yes (not the default), wipe the object
1265         tree and rebuild from scratch to prevent spurious test failures.
1266         This is only needed once: the misnumbered libraries and misplaced
1267         binaries have been added to OptionalObsoleteFiles.inc so they will
1268         be removed during a clean upgrade.
1269
1270 20140512:
1271         Clang and llvm have been upgraded to 3.4.1 release.
1272
1273 20140508:
1274         We bogusly installed src.opts.mk in /usr/share/mk. This file should
1275         be removed to avoid issues in the future (and has been added to
1276         ObsoleteFiles.inc).
1277
1278 20140505:
1279         /etc/src.conf now affects only builds of the FreeBSD src tree. In the
1280         past, it affected all builds that used the bsd.*.mk files. The old
1281         behavior was a bug, but people may have relied upon it. To get this
1282         behavior back, you can .include /etc/src.conf from /etc/make.conf
1283         (which is still global and isn't changed). This also changes the
1284         behavior of incremental builds inside the tree of individual
1285         directories. Set MAKESYSPATH to ".../share/mk" to do that.
1286         Although this has survived make universe and some upgrade scenarios,
1287         other upgrade scenarios may have broken. At least one form of
1288         temporary breakage was fixed with MAKESYSPATH settings for buildworld
1289         as well... In cases where MAKESYSPATH isn't working with this
1290         setting, you'll need to set it to the full path to your tree.
1291
1292         One side effect of all this cleaning up is that bsd.compiler.mk
1293         is no longer implicitly included by bsd.own.mk. If you wish to
1294         use COMPILER_TYPE, you must now explicitly include bsd.compiler.mk
1295         as well.
1296
1297 20140430:
1298         The lindev device has been removed since /dev/full has been made a
1299         standard device.  __FreeBSD_version has been bumped.
1300
1301 20140424:
1302         The knob WITHOUT_VI was added to the base system, which controls
1303         building ex(1), vi(1), etc. Older releases of FreeBSD required ex(1)
1304         in order to reorder files share/termcap and didn't build ex(1) as a
1305         build tool, so building/installing with WITH_VI is highly advised for
1306         build hosts for older releases.
1307
1308         This issue has been fixed in stable/9 and stable/10 in r277022 and
1309         r276991, respectively.
1310
1311 20140418:
1312         The YES_HESIOD knob has been removed. It has been obsolete for
1313         a decade. Please move to using WITH_HESIOD instead or your builds
1314         will silently lack HESIOD.
1315
1316 20140405:
1317         The uart(4) driver has been changed with respect to its handling
1318         of the low-level console. Previously the uart(4) driver prevented
1319         any process from changing the baudrate or the CLOCAL and HUPCL
1320         control flags. By removing the restrictions, operators can make
1321         changes to the serial console port without having to reboot.
1322         However, when getty(8) is started on the serial device that is
1323         associated with the low-level console, a misconfigured terminal
1324         line in /etc/ttys will now have a real impact.
1325         Before upgrading the kernel, make sure that /etc/ttys has the
1326         serial console device configured as 3wire without baudrate to
1327         preserve the previous behaviour. E.g:
1328             ttyu0  "/usr/libexec/getty 3wire"  vt100  on  secure
1329
1330 20140306:
1331         Support for libwrap (TCP wrappers) in rpcbind was disabled by default
1332         to improve performance.  To re-enable it, if needed, run rpcbind
1333         with command line option -W.
1334
1335 20140226:
1336         Switched back to the GPL dtc compiler due to updates in the upstream
1337         dts files not being supported by the BSDL dtc compiler. You will need
1338         to rebuild your kernel toolchain to pick up the new compiler. Core dumps
1339         may result while building dtb files during a kernel build if you fail
1340         to do so. Set WITHOUT_GPL_DTC if you require the BSDL compiler.
1341
1342 20140216:
1343         Clang and llvm have been upgraded to 3.4 release.
1344
1345 20140216:
1346         The nve(4) driver has been removed.  Please use the nfe(4) driver
1347         for NVIDIA nForce MCP Ethernet adapters instead.
1348
1349 20140212:
1350         An ABI incompatibility crept into the libc++ 3.4 import in r261283.
1351         This could cause certain C++ applications using shared libraries built
1352         against the previous version of libc++ to crash.  The incompatibility
1353         has now been fixed, but any C++ applications or shared libraries built
1354         between r261283 and r261801 should be recompiled.
1355
1356 20140204:
1357         OpenSSH will now ignore errors caused by kernel lacking of Capsicum
1358         capability mode support.  Please note that enabling the feature in
1359         kernel is still highly recommended.
1360
1361 20140131:
1362         OpenSSH is now built with sandbox support, and will use sandbox as
1363         the default privilege separation method.  This requires Capsicum
1364         capability mode support in kernel.
1365
1366 20140128:
1367         The libelf and libdwarf libraries have been updated to newer
1368         versions from upstream. Shared library version numbers for
1369         these two libraries were bumped. Any ports or binaries
1370         requiring these two libraries should be recompiled.
1371         __FreeBSD_version is bumped to 1100006.
1372
1373 20140110:
1374         If a Makefile in a tests/ directory was auto-generating a Kyuafile
1375         instead of providing an explicit one, this would prevent such
1376         Makefile from providing its own Kyuafile in the future during
1377         NO_CLEAN builds.  This has been fixed in the Makefiles but manual
1378         intervention is needed to clean an objdir if you use NO_CLEAN:
1379           # find /usr/obj -name Kyuafile | xargs rm -f
1380
1381 20131213:
1382         The behavior of gss_pseudo_random() for the krb5 mechanism
1383         has changed, for applications requesting a longer random string
1384         than produced by the underlying enctype's pseudo-random() function.
1385         In particular, the random string produced from a session key of
1386         enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will
1387         be different at the 17th octet and later, after this change.
1388         The counter used in the PRF+ construction is now encoded as a
1389         big-endian integer in accordance with RFC 4402.
1390         __FreeBSD_version is bumped to 1100004.
1391
1392 20131108:
1393         The WITHOUT_ATF build knob has been removed and its functionality
1394         has been subsumed into the more generic WITHOUT_TESTS.  If you were
1395         using the former to disable the build of the ATF libraries, you
1396         should change your settings to use the latter.
1397
1398 20131025:
1399         The default version of mtree is nmtree which is obtained from
1400         NetBSD.  The output is generally the same, but may vary
1401         slightly.  If you found you need identical output adding
1402         "-F freebsd9" to the command line should do the trick.  For the
1403         time being, the old mtree is available as fmtree.
1404
1405 20131014:
1406         libbsdyml has been renamed to libyaml and moved to /usr/lib/private.
1407         This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg
1408         1.1.4_8 and verify bsdyml not linked in, before running "make
1409         delete-old-libs":
1410           # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean
1411           or
1412           # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml
1413
1414 20131010:
1415         The stable/10 branch has been created in subversion from head
1416         revision r256279.
1417
1418 20131010:
1419         The rc.d/jail script has been updated to support jail(8)
1420         configuration file.  The "jail_<jname>_*" rc.conf(5) variables
1421         for per-jail configuration are automatically converted to
1422         /var/run/jail.<jname>.conf before the jail(8) utility is invoked.
1423         This is transparently backward compatible.  See below about some
1424         incompatibilities and rc.conf(5) manual page for more details.
1425
1426         These variables are now deprecated in favor of jail(8) configuration
1427         file.  One can use "rc.d/jail config <jname>" command to generate
1428         a jail(8) configuration file in /var/run/jail.<jname>.conf without
1429         running the jail(8) utility.   The default pathname of the
1430         configuration file is /etc/jail.conf and can be specified by
1431         using $jail_conf or $jail_<jname>_conf variables.
1432
1433         Please note that jail_devfs_ruleset accepts an integer at
1434         this moment.  Please consider to rewrite the ruleset name
1435         with an integer.
1436
1437 20130930:
1438         BIND has been removed from the base system.  If all you need
1439         is a local resolver, simply enable and start the local_unbound
1440         service instead.  Otherwise, several versions of BIND are
1441         available in the ports tree.   The dns/bind99 port is one example.
1442
1443         With this change, nslookup(1) and dig(1) are no longer in the base
1444         system.  Users should instead use host(1) and drill(1) which are
1445         in the base system.  Alternatively, nslookup and dig can
1446         be obtained by installing the dns/bind-tools port.
1447
1448 20130916:
1449         With the addition of unbound(8), a new unbound user is now
1450         required during installworld.  "mergemaster -p" can be used to
1451         add the user prior to installworld, as documented in the handbook.
1452
1453 20130911:
1454         OpenSSH is now built with DNSSEC support, and will by default
1455         silently trust signed SSHFP records.  This can be controlled with
1456         the VerifyHostKeyDNS client configuration setting.  DNSSEC support
1457         can be disabled entirely with the WITHOUT_LDNS option in src.conf.
1458
1459 20130906:
1460         The GNU Compiler Collection and C++ standard library (libstdc++)
1461         are no longer built by default on platforms where clang is the system
1462         compiler.  You can enable them with the WITH_GCC and WITH_GNUCXX
1463         options in src.conf.
1464
1465 20130905:
1466         The PROCDESC kernel option is now part of the GENERIC kernel
1467         configuration and is required for the rwhod(8) to work.
1468         If you are using custom kernel configuration, you should include
1469         'options PROCDESC'.
1470
1471 20130905:
1472         The API and ABI related to the Capsicum framework was modified
1473         in backward incompatible way. The userland libraries and programs
1474         have to be recompiled to work with the new kernel. This includes the
1475         following libraries and programs, but the whole buildworld is
1476         advised: libc, libprocstat, dhclient, tcpdump, hastd, hastctl,
1477         kdump, procstat, rwho, rwhod, uniq.
1478
1479 20130903:
1480         AES-NI intrinsic support has been added to gcc.  The AES-NI module
1481         has been updated to use this support.  A new gcc is required to build
1482         the aesni module on both i386 and amd64.
1483
1484 20130821:
1485         The PADLOCK_RNG and RDRAND_RNG kernel options are now devices.
1486         Thus "device padlock_rng" and "device rdrand_rng" should be
1487         used instead of "options PADLOCK_RNG" & "options RDRAND_RNG".
1488
1489 20130813:
1490         WITH_ICONV has been split into two feature sets.  WITH_ICONV now
1491         enables just the iconv* functionality and is now on by default.
1492         WITH_LIBICONV_COMPAT enables the libiconv api and link time
1493         compatibility.  Set WITHOUT_ICONV to build the old way.
1494         If you have been using WITH_ICONV before, you will very likely
1495         need to turn on WITH_LIBICONV_COMPAT.
1496
1497 20130806:
1498         INVARIANTS option now enables DEBUG for code with OpenSolaris and
1499         Illumos origin, including ZFS.  If you have INVARIANTS in your
1500         kernel configuration, then there is no need to set DEBUG or ZFS_DEBUG
1501         explicitly.
1502         DEBUG used to enable witness(9) tracking of OpenSolaris (mostly ZFS)
1503         locks if WITNESS option was set.  Because that generated a lot of
1504         witness(9) reports and all of them were believed to be false
1505         positives, this is no longer done.  New option OPENSOLARIS_WITNESS
1506         can be used to achieve the previous behavior.
1507
1508 20130806:
1509         Timer values in IPv6 data structures now use time_uptime instead
1510         of time_second.  Although this is not a user-visible functional
1511         change, userland utilities which directly use them---ndp(8),
1512         rtadvd(8), and rtsold(8) in the base system---need to be updated
1513         to r253970 or later.
1514
1515 20130802:
1516         find -delete can now delete the pathnames given as arguments,
1517         instead of only files found below them or if the pathname did
1518         not contain any slashes. Formerly, the following error message
1519         would result:
1520
1521         find: -delete: <path>: relative path potentially not safe
1522
1523         Deleting the pathnames given as arguments can be prevented
1524         without error messages using -mindepth 1 or by changing
1525         directory and passing "." as argument to find. This works in the
1526         old as well as the new version of find.
1527
1528 20130726:
1529         Behavior of devfs rules path matching has been changed.
1530         Pattern is now always matched against fully qualified devfs
1531         path and slash characters must be explicitly matched by
1532         slashes in pattern (FNM_PATHNAME). Rulesets involving devfs
1533         subdirectories must be reviewed.
1534
1535 20130716:
1536         The default ARM ABI has changed to the ARM EABI. The old ABI is
1537         incompatible with the ARM EABI and all programs and modules will
1538         need to be rebuilt to work with a new kernel.
1539
1540         To keep using the old ABI ensure the WITHOUT_ARM_EABI knob is set.
1541
1542         NOTE: Support for the old ABI will be removed in the future and
1543         users are advised to upgrade.
1544
1545 20130709:
1546         pkg_install has been disconnected from the build if you really need it
1547         you should add WITH_PKGTOOLS in your src.conf(5).
1548
1549 20130709:
1550         Most of network statistics structures were changed to be able
1551         keep 64-bits counters. Thus all tools, that work with networking
1552         statistics, must be rebuilt (netstat(1), bsnmpd(1), etc.)
1553
1554 20130618:
1555         Fix a bug that allowed a tracing process (e.g. gdb) to write
1556         to a memory-mapped file in the traced process's address space
1557         even if neither the traced process nor the tracing process had
1558         write access to that file.
1559
1560 20130615:
1561         CVS has been removed from the base system.  An exact copy
1562         of the code is available from the devel/cvs port.
1563
1564 20130613:
1565         Some people report the following error after the switch to bmake:
1566
1567                 make: illegal option -- J
1568                 usage: make [-BPSXeiknpqrstv] [-C directory] [-D variable]
1569                         ...
1570                 *** [buildworld] Error code 2
1571
1572         this likely due to an old instance of make in
1573         ${MAKEPATH} (${MAKEOBJDIRPREFIX}${.CURDIR}/make.${MACHINE})
1574         which src/Makefile will use that blindly, if it exists, so if
1575         you see the above error:
1576
1577                 rm -rf `make -V MAKEPATH`
1578
1579         should resolve it.
1580
1581 20130516:
1582         Use bmake by default.
1583         Whereas before one could choose to build with bmake via
1584         -DWITH_BMAKE one must now use -DWITHOUT_BMAKE to use the old
1585         make. The goal is to remove these knobs for 10-RELEASE.
1586
1587         It is worth noting that bmake (like gmake) treats the command
1588         line as the unit of failure, rather than statements within the
1589         command line.  Thus '(cd some/where && dosomething)' is safer
1590         than 'cd some/where; dosomething'. The '()' allows consistent
1591         behavior in parallel build.
1592
1593 20130429:
1594         Fix a bug that allows NFS clients to issue READDIR on files.
1595
1596 20130426:
1597         The WITHOUT_IDEA option has been removed because
1598         the IDEA patent expired.
1599
1600 20130426:
1601         The sysctl which controls TRIM support under ZFS has been renamed
1602         from vfs.zfs.trim_disable -> vfs.zfs.trim.enabled and has been
1603         enabled by default.
1604
1605 20130425:
1606         The mergemaster command now uses the default MAKEOBJDIRPREFIX
1607         rather than creating it's own in the temporary directory in
1608         order allow access to bootstrapped versions of tools such as
1609         install and mtree.  When upgrading from version of FreeBSD where
1610         the install command does not support -l, you will need to
1611         install a new mergemaster command if mergemaster -p is required.
1612         This can be accomplished with the command (cd src/usr.sbin/mergemaster
1613         && make install).
1614
1615 20130404:
1616         Legacy ATA stack, disabled and replaced by new CAM-based one since
1617         FreeBSD 9.0, completely removed from the sources.  Kernel modules
1618         atadisk and atapi*, user-level tools atacontrol and burncd are
1619         removed.  Kernel option `options ATA_CAM` is now permanently enabled
1620         and removed.
1621
1622 20130319:
1623         SOCK_CLOEXEC and SOCK_NONBLOCK flags have been added to socket(2)
1624         and socketpair(2). Software, in particular Kerberos, may
1625         automatically detect and use these during building. The resulting
1626         binaries will not work on older kernels.
1627
1628 20130308:
1629         CTL_DISABLE has also been added to the sparc64 GENERIC (for further
1630         information, see the respective 20130304 entry).
1631
1632 20130304:
1633         Recent commits to callout(9) changed the size of struct callout,
1634         so the KBI is probably heavily disturbed. Also, some functions
1635         in callout(9)/sleep(9)/sleepqueue(9)/condvar(9) KPIs were replaced
1636         by macros. Every kernel module using it won't load, so rebuild
1637         is requested.
1638
1639         The ctl device has been re-enabled in GENERIC for i386 and amd64,
1640         but does not initialize by default (because of the new CTL_DISABLE
1641         option) to save memory.  To re-enable it, remove the CTL_DISABLE
1642         option from the kernel config file or set kern.cam.ctl.disable=0
1643         in /boot/loader.conf.
1644
1645 20130301:
1646         The ctl device has been disabled in GENERIC for i386 and amd64.
1647         This was done due to the extra memory being allocated at system
1648         initialisation time by the ctl driver which was only used if
1649         a CAM target device was created.  This makes a FreeBSD system
1650         unusable on 128MB or less of RAM.
1651
1652 20130208:
1653         A new compression method (lz4) has been merged to -HEAD.  Please
1654         refer to zpool-features(7) for more information.
1655
1656         Please refer to the "ZFS notes" section of this file for information
1657         on upgrading boot ZFS pools.
1658
1659 20130129:
1660         A BSD-licensed patch(1) variant has been added and is installed
1661         as bsdpatch, being the GNU version the default patch.
1662         To inverse the logic and use the BSD-licensed one as default,
1663         while having the GNU version installed as gnupatch, rebuild
1664         and install world with the WITH_BSD_PATCH knob set.
1665
1666 20130121:
1667         Due to the use of the new -l option to install(1) during build
1668         and install, you must take care not to directly set the INSTALL
1669         make variable in your /etc/make.conf, /etc/src.conf, or on the
1670         command line.  If you wish to use the -C flag for all installs
1671         you may be able to add INSTALL+=-C to /etc/make.conf or
1672         /etc/src.conf.
1673
1674 20130118:
1675         The install(1) option -M has changed meaning and now takes an
1676         argument that is a file or path to append logs to.  In the
1677         unlikely event that -M was the last option on the command line
1678         and the command line contained at least two files and a target
1679         directory the first file will have logs appended to it.  The -M
1680         option served little practical purpose in the last decade so its
1681         use is expected to be extremely rare.
1682
1683 20121223:
1684         After switching to Clang as the default compiler some users of ZFS
1685         on i386 systems started to experience stack overflow kernel panics.
1686         Please consider using 'options KSTACK_PAGES=4' in such configurations.
1687
1688 20121222:
1689         GEOM_LABEL now mangles label names read from file system metadata.
1690         Mangling affect labels containing spaces, non-printable characters,
1691         '%' or '"'. Device names in /etc/fstab and other places may need to
1692         be updated.
1693
1694 20121217:
1695         By default, only the 10 most recent kernel dumps will be saved.  To
1696         restore the previous behaviour (no limit on the number of kernel dumps
1697         stored in the dump directory) add the following line to /etc/rc.conf:
1698
1699                 savecore_flags=""
1700
1701 20121201:
1702         With the addition of auditdistd(8), a new auditdistd user is now
1703         required during installworld.  "mergemaster -p" can be used to
1704         add the user prior to installworld, as documented in the handbook.
1705
1706 20121117:
1707         The sin6_scope_id member variable in struct sockaddr_in6 is now
1708         filled by the kernel before passing the structure to the userland via
1709         sysctl or routing socket.  This means the KAME-specific embedded scope
1710         id in sin6_addr.s6_addr[2] is always cleared in userland application.
1711         This behavior can be controlled by net.inet6.ip6.deembed_scopeid.
1712         __FreeBSD_version is bumped to 1000025.
1713
1714 20121105:
1715         On i386 and amd64 systems WITH_CLANG_IS_CC is now the default.
1716         This means that the world and kernel will be compiled with clang
1717         and that clang will be installed as /usr/bin/cc, /usr/bin/c++,
1718         and /usr/bin/cpp.  To disable this behavior and revert to building
1719         with gcc, compile with WITHOUT_CLANG_IS_CC. Really old versions
1720         of current may need to bootstrap WITHOUT_CLANG first if the clang
1721         build fails (its compatibility window doesn't extend to the 9 stable
1722         branch point).
1723
1724 20121102:
1725         The IPFIREWALL_FORWARD kernel option has been removed. Its
1726         functionality now turned on by default.
1727
1728 20121023:
1729         The ZERO_COPY_SOCKET kernel option has been removed and
1730         split into SOCKET_SEND_COW and SOCKET_RECV_PFLIP.
1731         NB: SOCKET_SEND_COW uses the VM page based copy-on-write
1732         mechanism which is not safe and may result in kernel crashes.
1733         NB: The SOCKET_RECV_PFLIP mechanism is useless as no current
1734         driver supports disposeable external page sized mbuf storage.
1735         Proper replacements for both zero-copy mechanisms are under
1736         consideration and will eventually lead to complete removal
1737         of the two kernel options.
1738
1739 20121023:
1740         The IPv4 network stack has been converted to network byte
1741         order. The following modules need to be recompiled together
1742         with kernel: carp(4), divert(4), gif(4), siftr(4), gre(4),
1743         pf(4), ipfw(4), ng_ipfw(4), stf(4).
1744
1745 20121022:
1746         Support for non-MPSAFE filesystems was removed from VFS. The
1747         VFS_VERSION was bumped, all filesystem modules shall be
1748         recompiled.
1749
1750 20121018:
1751         All the non-MPSAFE filesystems have been disconnected from
1752         the build. The full list includes: codafs, hpfs, ntfs, nwfs,
1753         portalfs, smbfs, xfs.
1754
1755 20121016:
1756         The interface cloning API and ABI has changed. The following
1757         modules need to be recompiled together with kernel:
1758         ipfw(4), pfsync(4), pflog(4), usb(4), wlan(4), stf(4),
1759         vlan(4), disc(4), edsc(4), if_bridge(4), gif(4), tap(4),
1760         faith(4), epair(4), enc(4), tun(4), if_lagg(4), gre(4).
1761
1762 20121015:
1763         The sdhci driver was split in two parts: sdhci (generic SD Host
1764         Controller logic) and sdhci_pci (actual hardware driver).
1765         No kernel config modifications are required, but if you
1766         load sdhc as a module you must switch to sdhci_pci instead.
1767
1768 20121014:
1769         Import the FUSE kernel and userland support into base system.
1770
1771 20121013:
1772         The GNU sort(1) program has been removed since the BSD-licensed
1773         sort(1) has been the default for quite some time and no serious
1774         problems have been reported.  The corresponding WITH_GNU_SORT
1775         knob has also gone.
1776
1777 20121006:
1778         The pfil(9) API/ABI for AF_INET family has been changed. Packet
1779         filtering modules: pf(4), ipfw(4), ipfilter(4) need to be recompiled
1780         with new kernel.
1781
1782 20121001:
1783         The net80211(4) ABI has been changed to allow for improved driver
1784         PS-POLL and power-save support.  All wireless drivers need to be
1785         recompiled to work with the new kernel.
1786
1787 20120913:
1788         The random(4) support for the VIA hardware random number
1789         generator (`PADLOCK') is no longer enabled unconditionally.
1790         Add the padlock_rng device in the custom kernel config if
1791         needed.  The GENERIC kernels on i386 and amd64 do include the
1792         device, so the change only affects the custom kernel
1793         configurations.
1794
1795 20120908:
1796         The pf(4) packet filter ABI has been changed. pfctl(8) and
1797         snmp_pf module need to be recompiled to work with new kernel.
1798
1799 20120828:
1800         A new ZFS feature flag "com.delphix:empty_bpobj" has been merged
1801         to -HEAD. Pools that have empty_bpobj in active state can not be
1802         imported read-write with ZFS implementations that do not support
1803         this feature. For more information read the zpool-features(5)
1804         manual page.
1805
1806 20120727:
1807         The sparc64 ZFS loader has been changed to no longer try to auto-
1808         detect ZFS providers based on diskN aliases but now requires these
1809         to be explicitly listed in the OFW boot-device environment variable.
1810
1811 20120712:
1812         The OpenSSL has been upgraded to 1.0.1c.  Any binaries requiring
1813         libcrypto.so.6 or libssl.so.6 must be recompiled.  Also, there are
1814         configuration changes.  Make sure to merge /etc/ssl/openssl.cnf.
1815
1816 20120712:
1817         The following sysctls and tunables have been renamed for consistency
1818         with other variables:
1819           kern.cam.da.da_send_ordered   -> kern.cam.da.send_ordered
1820           kern.cam.ada.ada_send_ordered -> kern.cam.ada.send_ordered
1821
1822 20120628:
1823         The sort utility has been replaced with BSD sort.  For now, GNU sort
1824         is also available as "gnusort" or the default can be set back to
1825         GNU sort by setting WITH_GNU_SORT.  In this case, BSD sort will be
1826         installed as "bsdsort".
1827
1828 20120611:
1829         A new version of ZFS (pool version 5000) has been merged to -HEAD.
1830         Starting with this version the old system of ZFS pool versioning
1831         is superseded by "feature flags". This concept enables forward
1832         compatibility against certain future changes in functionality of ZFS
1833         pools. The first read-only compatible "feature flag" for ZFS pools
1834         is named "com.delphix:async_destroy". For more information
1835         read the new zpool-features(5) manual page.
1836         Please refer to the "ZFS notes" section of this file for information
1837         on upgrading boot ZFS pools.
1838
1839 20120417:
1840         The malloc(3) implementation embedded in libc now uses sources imported
1841         as contrib/jemalloc.  The most disruptive API change is to
1842         /etc/malloc.conf.  If your system has an old-style /etc/malloc.conf,
1843         delete it prior to installworld, and optionally re-create it using the
1844         new format after rebooting.  See malloc.conf(5) for details
1845         (specifically the TUNING section and the "opt.*" entries in the MALLCTL
1846         NAMESPACE section).
1847
1848 20120328:
1849         Big-endian MIPS TARGET_ARCH values no longer end in "eb".  mips64eb
1850         is now spelled mips64.  mipsn32eb is now spelled mipsn32.  mipseb is
1851         now spelled mips.  This is to aid compatibility with third-party
1852         software that expects this naming scheme in uname(3).  Little-endian
1853         settings are unchanged. If you are updating a big-endian mips64 machine
1854         from before this change, you may need to set MACHINE_ARCH=mips64 in
1855         your environment before the new build system will recognize your machine.
1856
1857 20120306:
1858         Disable by default the option VFS_ALLOW_NONMPSAFE for all supported
1859         platforms.
1860
1861 20120229:
1862         Now unix domain sockets behave "as expected" on nullfs(5). Previously
1863         nullfs(5) did not pass through all behaviours to the underlying layer,
1864         as a result if we bound to a socket on the lower layer we could connect
1865         only to the lower path; if we bound to the upper layer we could connect
1866         only to the upper path. The new behavior is one can connect to both the
1867         lower and the upper paths regardless what layer path one binds to.
1868
1869 20120211:
1870         The getifaddrs upgrade path broken with 20111215 has been restored.
1871         If you have upgraded in between 20111215 and 20120209 you need to
1872         recompile libc again with your kernel.  You still need to recompile
1873         world to be able to configure CARP but this restriction already
1874         comes from 20111215.
1875
1876 20120114:
1877         The set_rcvar() function has been removed from /etc/rc.subr.  All
1878         base and ports rc.d scripts have been updated, so if you have a
1879         port installed with a script in /usr/local/etc/rc.d you can either
1880         hand-edit the rcvar= line, or reinstall the port.
1881
1882         An easy way to handle the mass-update of /etc/rc.d:
1883         rm /etc/rc.d/* && mergemaster -i
1884
1885 20120109:
1886         panic(9) now stops other CPUs in the SMP systems, disables interrupts
1887         on the current CPU and prevents other threads from running.
1888         This behavior can be reverted using the kern.stop_scheduler_on_panic
1889         tunable/sysctl.
1890         The new behavior can be incompatible with kern.sync_on_panic.
1891
1892 20111215:
1893         The carp(4) facility has been changed significantly. Configuration
1894         of the CARP protocol via ifconfig(8) has changed, as well as format
1895         of CARP events submitted to devd(8) has changed. See manual pages
1896         for more information. The arpbalance feature of carp(4) is currently
1897         not supported anymore.
1898
1899         Size of struct in_aliasreq, struct in6_aliasreq has changed. User
1900         utilities using SIOCAIFADDR, SIOCAIFADDR_IN6, e.g. ifconfig(8),
1901         need to be recompiled.
1902
1903 20111122:
1904         The acpi_wmi(4) status device /dev/wmistat has been renamed to
1905         /dev/wmistat0.
1906
1907 20111108:
1908         The option VFS_ALLOW_NONMPSAFE option has been added in order to
1909         explicitely support non-MPSAFE filesystems.
1910         It is on by default for all supported platform at this present
1911         time.
1912
1913 20111101:
1914         The broken amd(4) driver has been replaced with esp(4) in the amd64,
1915         i386 and pc98 GENERIC kernel configuration files.
1916
1917 20110930:
1918         sysinstall has been removed
1919
1920 20110923:
1921         The stable/9 branch created in subversion.  This corresponds to the
1922         RELENG_9 branch in CVS.
1923
1924 COMMON ITEMS:
1925
1926         General Notes
1927         -------------
1928         Avoid using make -j when upgrading.  While generally safe, there are
1929         sometimes problems using -j to upgrade.  If your upgrade fails with
1930         -j, please try again without -j.  From time to time in the past there
1931         have been problems using -j with buildworld and/or installworld.  This
1932         is especially true when upgrading between "distant" versions (eg one
1933         that cross a major release boundary or several minor releases, or when
1934         several months have passed on the -current branch).
1935
1936         Sometimes, obscure build problems are the result of environment
1937         poisoning.  This can happen because the make utility reads its
1938         environment when searching for values for global variables.  To run
1939         your build attempts in an "environmental clean room", prefix all make
1940         commands with 'env -i '.  See the env(1) manual page for more details.
1941
1942         When upgrading from one major version to another it is generally best to
1943         upgrade to the latest code in the currently installed branch first, then
1944         do an upgrade to the new branch. This is the best-tested upgrade path,
1945         and has the highest probability of being successful.  Please try this
1946         approach if you encounter problems with a major version upgrade.  Since
1947         the stable 4.x branch point, one has generally been able to upgrade from
1948         anywhere in the most recent stable branch to head / current (or even the
1949         last couple of stable branches). See the top of this file when there's
1950         an exception.
1951
1952         When upgrading a live system, having a root shell around before
1953         installing anything can help undo problems. Not having a root shell
1954         around can lead to problems if pam has changed too much from your
1955         starting point to allow continued authentication after the upgrade.
1956
1957         This file should be read as a log of events. When a later event changes
1958         information of a prior event, the prior event should not be deleted.
1959         Instead, a pointer to the entry with the new information should be
1960         placed in the old entry. Readers of this file should also sanity check
1961         older entries before relying on them blindly. Authors of new entries
1962         should write them with this in mind.
1963
1964         ZFS notes
1965         ---------
1966         When upgrading the boot ZFS pool to a new version, always follow
1967         these two steps:
1968
1969         1.) recompile and reinstall the ZFS boot loader and boot block
1970         (this is part of "make buildworld" and "make installworld")
1971
1972         2.) update the ZFS boot block on your boot drive
1973
1974         The following example updates the ZFS boot block on the first
1975         partition (freebsd-boot) of a GPT partitioned drive ada0:
1976         "gpart bootcode -p /boot/gptzfsboot -i 1 ada0"
1977
1978         Non-boot pools do not need these updates.
1979
1980         To build a kernel
1981         -----------------
1982         If you are updating from a prior version of FreeBSD (even one just
1983         a few days old), you should follow this procedure.  It is the most
1984         failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
1985
1986         make kernel-toolchain
1987         make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
1988         make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
1989
1990         To test a kernel once
1991         ---------------------
1992         If you just want to boot a kernel once (because you are not sure
1993         if it works, or if you want to boot a known bad kernel to provide
1994         debugging information) run
1995         make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
1996         nextboot -k testkernel
1997
1998         To rebuild everything and install it on the current system.
1999         -----------------------------------------------------------
2000         # Note: sometimes if you are running current you gotta do more than
2001         # is listed here if you are upgrading from a really old current.
2002
2003         <make sure you have good level 0 dumps>
2004         make buildworld
2005         make buildkernel KERNCONF=YOUR_KERNEL_HERE
2006         make installkernel KERNCONF=YOUR_KERNEL_HERE
2007                                                         [1]
2008         <reboot in single user>                         [3]
2009         mergemaster -Fp                                 [5]
2010         make installworld
2011         mergemaster -Fi                                 [4]
2012         make delete-old                                 [6]
2013         <reboot>
2014
2015         To cross-install current onto a separate partition
2016         --------------------------------------------------
2017         # In this approach we use a separate partition to hold
2018         # current's root, 'usr', and 'var' directories.   A partition
2019         # holding "/", "/usr" and "/var" should be about 2GB in
2020         # size.
2021
2022         <make sure you have good level 0 dumps>
2023         <boot into -stable>
2024         make buildworld
2025         make buildkernel KERNCONF=YOUR_KERNEL_HERE
2026         <maybe newfs current's root partition>
2027         <mount current's root partition on directory ${CURRENT_ROOT}>
2028         make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC
2029         make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
2030         make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
2031         cp /etc/fstab ${CURRENT_ROOT}/etc/fstab                    # if newfs'd
2032         <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
2033         <reboot into current>
2034         <do a "native" rebuild/install as described in the previous section>
2035         <maybe install compatibility libraries from ports/misc/compat*>
2036         <reboot>
2037
2038
2039         To upgrade in-place from stable to current
2040         ----------------------------------------------
2041         <make sure you have good level 0 dumps>
2042         make buildworld                                 [9]
2043         make buildkernel KERNCONF=YOUR_KERNEL_HERE      [8]
2044         make installkernel KERNCONF=YOUR_KERNEL_HERE
2045                                                         [1]
2046         <reboot in single user>                         [3]
2047         mergemaster -Fp                                 [5]
2048         make installworld
2049         mergemaster -Fi                                 [4]
2050         make delete-old                                 [6]
2051         <reboot>
2052
2053         Make sure that you've read the UPDATING file to understand the
2054         tweaks to various things you need.  At this point in the life
2055         cycle of current, things change often and you are on your own
2056         to cope.  The defaults can also change, so please read ALL of
2057         the UPDATING entries.
2058
2059         Also, if you are tracking -current, you must be subscribed to
2060         freebsd-current@freebsd.org.  Make sure that before you update
2061         your sources that you have read and understood all the recent
2062         messages there.  If in doubt, please track -stable which has
2063         much fewer pitfalls.
2064
2065         [1] If you have third party modules, such as vmware, you
2066         should disable them at this point so they don't crash your
2067         system on reboot.
2068
2069         [3] From the bootblocks, boot -s, and then do
2070                 fsck -p
2071                 mount -u /
2072                 mount -a
2073                 cd src
2074                 adjkerntz -i            # if CMOS is wall time
2075         Also, when doing a major release upgrade, it is required that
2076         you boot into single user mode to do the installworld.
2077
2078         [4] Note: This step is non-optional.  Failure to do this step
2079         can result in a significant reduction in the functionality of the
2080         system.  Attempting to do it by hand is not recommended and those
2081         that pursue this avenue should read this file carefully, as well
2082         as the archives of freebsd-current and freebsd-hackers mailing lists
2083         for potential gotchas.  The -U option is also useful to consider.
2084         See mergemaster(8) for more information.
2085
2086         [5] Usually this step is a no-op.  However, from time to time
2087         you may need to do this if you get unknown user in the following
2088         step.  It never hurts to do it all the time.  You may need to
2089         install a new mergemaster (cd src/usr.sbin/mergemaster && make
2090         install) after the buildworld before this step if you last updated
2091         from current before 20130425 or from -stable before 20130430.
2092
2093         [6] This only deletes old files and directories. Old libraries
2094         can be deleted by "make delete-old-libs", but you have to make
2095         sure that no program is using those libraries anymore.
2096
2097         [8] In order to have a kernel that can run the 4.x binaries needed to
2098         do an installworld, you must include the COMPAT_FREEBSD4 option in
2099         your kernel.  Failure to do so may leave you with a system that is
2100         hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 is
2101         required to run the 5.x binaries on more recent kernels.  And so on
2102         for COMPAT_FREEBSD6 and COMPAT_FREEBSD7.
2103
2104         Make sure that you merge any new devices from GENERIC since the
2105         last time you updated your kernel config file.
2106
2107         [9] If CPUTYPE is defined in your /etc/make.conf, make sure to use the
2108         "?=" instead of the "=" assignment operator, so that buildworld can
2109         override the CPUTYPE if it needs to.
2110
2111         MAKEOBJDIRPREFIX must be defined in an environment variable, and
2112         not on the command line, or in /etc/make.conf.  buildworld will
2113         warn if it is improperly defined.
2114 FORMAT:
2115
2116 This file contains a list, in reverse chronological order, of major
2117 breakages in tracking -current.  It is not guaranteed to be a complete
2118 list of such breakages, and only contains entries since September 23, 2011.
2119 If you need to see UPDATING entries from before that date, you will need
2120 to fetch an UPDATING file from an older FreeBSD release.
2121
2122 Copyright information:
2123
2124 Copyright 1998-2009 M. Warner Losh.  All Rights Reserved.
2125
2126 Redistribution, publication, translation and use, with or without
2127 modification, in full or in part, in any form or format of this
2128 document are permitted without further permission from the author.
2129
2130 THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
2131 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
2132 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
2133 DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
2134 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
2135 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
2136 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2137 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
2138 STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
2139 IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
2140 POSSIBILITY OF SUCH DAMAGE.
2141
2142 Contact Warner Losh if you have any questions about your use of
2143 this document.
2144
2145 $FreeBSD$