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