1 Updating Information for FreeBSD current users. 2 3This file is maintained and copyrighted by M. Warner Losh <imp@freebsd.org>. 4See end of file for further details. For commonly done items, please see the 5COMMON ITEMS: section later in the file. These instructions assume that you 6basically know what you are doing. If not, then please consult the FreeBSD 7handbook: 8 9 https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html 10 11Items affecting the ports and packages system can be found in 12/usr/ports/UPDATING. Please read that file before running portupgrade. 13 14NOTE: FreeBSD has switched from gcc to clang. If you have trouble bootstrapping 15from older versions of FreeBSD, try WITHOUT_CLANG and WITH_GCC to bootstrap to 16the tip of head, and then rebuild without this option. The bootstrap process 17from older version of current across the gcc/clang cutover is a bit fragile. 18 19NOTE 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 3420180727: 35 Atmel AT91RM9200 and AT91SAM9, Cavium CNS 11xx and XScale 36 support has been removed from the tree. These ports were 37 obsolete and/or known to be broken for many years. 38 3920180723: 40 loader.efi has been augmented to participate more fully in the 41 UEFI boot manager protocol. loader.efi will now look at the 42 BootXXXX environment variable to determine if a specific kernel 43 or root partition was specified. XXXX is derived from BootCurrent. 44 efibootmgr(8) manages these standard UEFI variables. 45 4620180720: 47 zfsloader's functionality has now been folded into loader. 48 zfsloader is no longer necesasary once you've updated your 49 boot blocks. For a transition period, we will install a 50 hardlink for zfsloader to loader to allow a smooth transition 51 until the boot blocks can be updated (hard link because old 52 zfs boot blocks don't understand symlinks). 53 5420180719: 55 ARM64 now have efifb support, if you want to have serial console 56 on your arm64 board when an screen is connected and the bootloader 57 setup a frambuffer for us to use, just add : 58 boot_serial=YES 59 boot_multicons=YES 60 in /boot/loader.conf 61 For Raspberry Pi 3 (RPI) users, this is needed even if you don't have 62 an screen connected as the firmware will setup a framebuffer are that 63 u-boot will expose as an EFI framebuffer. 64 6520180719: 66 New uid:gid added, ntpd:ntpd (123:123). Be sure to run mergemaster 67 or take steps to update /etc/passwd before doing installworld on 68 existing systems. Also, rc.d/ntpd now starts ntpd(8) as user ntpd 69 if the new mac_ntpd(4) policy is available, unless ntpd_flags or 70 the ntp config file contain options that change file/dir locations. 71 When such options (e.g., "statsdir" or "crypto") are used, ntpd can 72 still be run as non-root by setting ntpd_user=ntpd in rc.conf, after 73 taking steps to ensure that all required files/dirs are accessible 74 by the ntpd user. 75 7620180717: 77 Big endian arm support has been removed. 78 7920180711: 80 The static environment setup in kernel configs is no longer mutually 81 exclusive with the loader(8) environment by default. In order to 82 restore the previous default behavior of disabling the loader(8) 83 environment if a static environment is present, you must specify 84 loader_env.disabled=1 in the static environment. 85 8620180705: 87 The ABI of syscalls used by management tools like sockstat and 88 netstat has been broken to allow 32-bit binaries to work on 89 64-bit kernels without modification. These programs will need 90 to match the kernel in order to function. External programs may 91 require minor modifications to accommodate a change of type in 92 structures from pointers to 64-bit virtual addresses. 93 9420180702: 95 On i386 and amd64 atomics are now inlined. Out of tree modules using 96 atomics will need to be rebuilt. 97 9820180701: 99 The '%I' format in the kern.corefile sysctl limits the number of 100 core files that a process can generate to the number stored in the 101 debug.ncores sysctl. The '%I' format is replaced by the single digit 102 index. Previously, if all indexes were taken the kernel would overwrite 103 only a core file with the highest index in a filename. 104 Currently the system will create a new core file if there is a free 105 index or if all slots are taken it will overwrite the oldest one. 106 10720180630: 108 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 109 6.0.1. Please see the 20141231 entry below for information about 110 prerequisites and upgrading, if you are not already using clang 3.5.0 111 or higher. 112 11320180628: 114 r335753 introduced a new quoting method. However, etc/devd/devmatch.conf 115 needed to be changed to work with it. This change was made with r335763 116 and requires a mergemaster / etcupdate / etc to update the installed file. 117 11820180612: 119 r334930 changed the interface between the NFS modules, so they all 120 need to be rebuilt. r335018 did a __FreeBSD_version bump for this. 121 12220180530: 123 The kernel / userland interface for devinfo changed, so you'll 124 need a new kernel and userland as a pair for it to work (rebuilding 125 lib/libdevinfo is all that's required). devinfo and devmatch will 126 not work, but everything else will when there's a mismatch. 127 12820180523: 129 The on-disk format for hwpmc callchain records has changed to include 130 threadid corresponding to a given record. This changes the field offsets 131 and thus requires that libpmcstat be rebuilt before using a kernel 132 later than r334108. 133 13420180517: 135 The vxge(4) driver has been removed. This driver was introduced into 136 HEAD one week before the Exar left the Ethernet market and is not 137 known to be used. If you have device vxge in your kernel config file 138 it must be removed. 139 14020180510: 141 The amd64 kernel now requires a ld that supports ifunc to produce a 142 working kernel, either lld or a newer binutils. lld is built by default 143 on amd64, and the 'buildkernel' target uses it automatically. However, 144 it is not the default linker, so building the kernel the traditional 145 way requires LD=ld.lld on the command line (or LD=/usr/local/bin/ld for 146 binutils port/package). lld will soon be default, and this requirement 147 will go away. 148 14920180508: 150 The nxge(4) driver has been removed. This driver was for PCI-X 10g 151 cards made by s2io/Neterion. The company was aquired by Exar and 152 no longer sells or supports Ethernet products. If you have device 153 nxge in your kernel config file it must be removed. 154 15520180504: 156 The tz database (tzdb) has been updated to 2018e. This version more 157 correctly models time stamps in time zones with negative DST such as 158 Europe/Dublin (from 1971 on), Europe/Prague (1946/7), and 159 Africa/Windhoek (1994/2017). This does not affect the UT offsets, only 160 time zone abbreviations and the tm_isdst flag. 161 16220180502: 163 The ixgb(4) driver has been removed. This driver was for an early and 164 uncommon legacy PCI 10GbE for a single ASIC, Intel 82597EX. Intel 165 quickly shifted to the long lived ixgbe family. If you have device 166 ixgb in your kernel config file it must be removed. 167 16820180501: 169 The lmc(4) driver has been removed. This was a WAN interface 170 card that was already reportedly rare in 2003, and had an ambiguous 171 license. If you have device lmc in your kernel config file it must 172 be removed. 173 17420180413: 175 Support for Arcnet networks has been removed. If you have device 176 arcnet or device cm in your kernel config file they must be 177 removed. 178 17920180411: 180 Support for FDDI networks has been removed. If you have device 181 fddi or device fpa in your kernel config file they must be 182 removed. 183 18420180406: 185 In addition to supporting RFC 3164 formatted messages, the 186 syslogd(8) service is now capable of parsing RFC 5424 formatted 187 log messages. The main benefit of using RFC 5424 is that clients 188 may now send log messages with timestamps containing year numbers, 189 microseconds and time zone offsets. 190 191 Similarly, the syslog(3) C library function has been altered to 192 send RFC 5424 formatted messages to the local system logging 193 daemon. On systems using syslogd(8), this change should have no 194 negative impact, as long as syslogd(8) and the C library are 195 updated at the same time. On systems using a different system 196 logging daemon, it may be necessary to make configuration 197 adjustments, depending on the software used. 198 199 When using syslog-ng, add the 'syslog-protocol' flag to local 200 input sources to enable parsing of RFC 5424 formatted messages: 201 202 source src { 203 unix-dgram("/var/run/log" flags(syslog-protocol)); 204 } 205 206 When using rsyslog, disable the 'SysSock.UseSpecialParser' option 207 of the 'imuxsock' module to let messages be processed by the 208 regular RFC 3164/5424 parsing pipeline: 209 210 module(load="imuxsock" SysSock.UseSpecialParser="off") 211 212 Do note that these changes only affect communication between local 213 applications and syslogd(8). The format that syslogd(8) uses to 214 store messages on disk or forward messages to other systems 215 remains unchanged. syslogd(8) still uses RFC 3164 for these 216 purposes. Options to customize this behaviour will be added in the 217 future. Utilities that process log files stored in /var/log are 218 thus expected to continue to function as before. 219 220 __FreeBSD_version has been incremented to 1200061 to denote this 221 change. 222 22320180328: 224 Support for token ring networks has been removed. If you 225 have "device token" in your kernel config you should remove 226 it. No device drivers supported token ring. 227 22820180323: 229 makefs was modified to be able to tag ISO9660 El Torito boot catalog 230 entries as EFI instead of overloading the i386 tag as done previously. 231 The amd64 mkisoimages.sh script used to build amd64 ISO images for 232 release was updated to use this. This may mean that makefs must be 233 updated before "make cdrom" can be run in the release directory. This 234 should be as simple as: 235 236 $ cd $SRCDIR/usr.sbin/makefs 237 $ make depend all install 238 23920180212: 240 FreeBSD boot loader enhanced with Lua scripting. It's purely opt-in for 241 now by building WITH_LOADER_LUA and WITHOUT_FORTH in /etc/src.conf. 242 Co-existance for the transition period will come shortly. Booting is a 243 complex environment and test coverage for Lua-enabled loaders has been 244 thin, so it would be prudent to assume it might not work and make 245 provisions for backup boot methods. 246 24720180211: 248 devmatch functionality has been turned on in devd. It will automatically 249 load drivers for unattached devices. This may cause unexpected drivers to 250 be loaded. Please report any problems to current@ and imp@freebsd.org. 251 25220180114: 253 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 254 6.0.0. Please see the 20141231 entry below for information about 255 prerequisites and upgrading, if you are not already using clang 3.5.0 256 or higher. 257 25820180110: 259 LLVM's lld linker is now used as the FreeBSD/amd64 bootstrap linker. 260 This means it is used to link the kernel and userland libraries and 261 executables, but is not yet installed as /usr/bin/ld by default. 262 263 To revert to ld.bfd as the bootstrap linker, in /etc/src.conf set 264 WITHOUT_LLD_BOOTSTRAP=yes 265 26620180110: 267 On i386, pmtimer has been removed. Its functionality has been folded 268 into apm. It was a no-op on ACPI in current for a while now (but was still 269 needed on i386 in FreeBSD 11 and earlier). Users may need to remove it 270 from kernel config files. 271 27220180104: 273 The use of RSS hash from the network card aka flowid has been 274 disabled by default for lagg(4) as it's currently incompatible with 275 the lacp and loadbalance protocols. 276 277 This can be re-enabled by setting the following in loader.conf: 278 net.link.lagg.default_use_flowid="1" 279 28020180102: 281 The SW_WATCHDOG option is no longer necessary to enable the 282 hardclock-based software watchdog if no hardware watchdog is 283 configured. As before, SW_WATCHDOG will cause the software 284 watchdog to be enabled even if a hardware watchdog is configured. 285 28620171215: 287 r326887 fixes the issue described in the 20171214 UPDATING entry. 288 r326888 flips the switch back to building GELI support always. 289 29020171214: 291 r362593 broke ZFS + GELI support for reasons unknown. However, 292 it also broke ZFS support generally, so GELI has been turned off 293 by default as the lesser evil in r326857. If you boot off ZFS and/or 294 GELI, it might not be a good time to update. 295 29620171125: 297 PowerPC users must update loader(8) by rebuilding world before 298 installing a new kernel, as the protocol connecting them has 299 changed. Without the update, loader metadata will not be passed 300 successfully to the kernel and users will have to enter their 301 root partition at the kernel mountroot prompt to continue booting. 302 Newer versions of loader can boot old kernels without issue. 303 30420171110: 305 The LOADER_FIREWIRE_SUPPORT build variable as been renamed to 306 WITH/OUT_LOADER_FIREWIRE. LOADER_{NO_,}GELI_SUPPORT has been renamed 307 to WITH/OUT_LOADER_GELI. 308 30920171106: 310 The naive and non-compliant support of posix_fallocate(2) in ZFS 311 has been removed as of r325320. The system call now returns EINVAL 312 when used on a ZFS file. Although the new behavior complies with the 313 standard, some consumers are not prepared to cope with it. 314 One known victim is lld prior to r325420. 315 31620171102: 317 Building in a FreeBSD src checkout will automatically create object 318 directories now rather than store files in the current directory if 319 'make obj' was not ran. Calling 'make obj' is no longer necessary. 320 This feature can be disabled by setting WITHOUT_AUTO_OBJ=yes in 321 /etc/src-env.conf (not /etc/src.conf), or passing the option in the 322 environment. 323 32420171101: 325 The default MAKEOBJDIR has changed from /usr/obj/<srcdir> for native 326 builds, and /usr/obj/<arch>/<srcdir> for cross-builds, to a unified 327 /usr/obj/<srcdir>/<arch>. This behavior can be changed to the old 328 format by setting WITHOUT_UNIFIED_OBJDIR=yes in /etc/src-env.conf, 329 the environment, or with -DWITHOUT_UNIFIED_OBJDIR when building. 330 The UNIFIED_OBJDIR option is a transitional feature that will be 331 removed for 12.0 release; please migrate to the new format for any 332 tools by looking up the OBJDIR used by 'make -V .OBJDIR' means rather 333 than hardcoding paths. 334 33520171028: 336 The native-xtools target no longer installs the files by default to the 337 OBJDIR. Use the native-xtools-install target with a DESTDIR to install 338 to ${DESTDIR}/${NXTP} where NXTP defaults to /nxb-bin. 339 34020171021: 341 As part of the boot loader infrastructure cleanup, LOADER_*_SUPPORT 342 options are changing from controlling the build if defined / undefined 343 to controlling the build with explicit 'yes' or 'no' values. They will 344 shift to WITH/WITHOUT options to match other options in the system. 345 34620171010: 347 libstand has turned into a private library for sys/boot use only. 348 It is no longer supported as a public interface outside of sys/boot. 349 35020171005: 351 The arm port has split armv6 into armv6 and armv7. armv7 is now 352 a valid TARGET_ARCH/MACHINE_ARCH setting. If you have an armv7 system 353 and are running a kernel from before r324363, you will need to add 354 MACHINE_ARCH=armv7 to 'make buildworld' to do a native build. 355 35620171003: 357 When building multiple kernels using KERNCONF, non-existent KERNCONF 358 files will produce an error and buildkernel will fail. Previously 359 missing KERNCONF files silently failed giving no indication as to 360 why, only to subsequently discover during installkernel that the 361 desired kernel was never built in the first place. 362 36320170912: 364 The default serial number format for CTL LUNs has changed. This will 365 affect users who use /dev/diskid/* device nodes, or whose FibreChannel 366 or iSCSI clients care about their LUNs' serial numbers. Users who 367 require serial number stability should hardcode serial numbers in 368 /etc/ctl.conf . 369 37020170912: 371 For 32-bit arm compiled for hard-float support, soft-floating point 372 binaries now always get their shared libraries from 373 LD_SOFT_LIBRARY_PATH (in the past, this was only used if 374 /usr/libsoft also existed). Only users with a hard-float ld.so, but 375 soft-float everything else should be affected. 376 37720170826: 378 The geli password typed at boot is now hidden. To restore the previous 379 behavior, see geli(8) for configuration options. 380 38120170825: 382 Move PMTUD blackhole counters to TCPSTATS and remove them from bare 383 sysctl values. Minor nit, but requires a rebuild of both world/kernel 384 to complete. 385 38620170814: 387 "make check" behavior (made in ^/head@r295380) has been changed to 388 execute from a limited sandbox, as opposed to executing from 389 ${TESTSDIR}. 390 391 Behavioral changes: 392 - The "beforecheck" and "aftercheck" targets are now specified. 393 - ${CHECKDIR} (added in commit noted above) has been removed. 394 - Legacy behavior can be enabled by setting 395 WITHOUT_MAKE_CHECK_USE_SANDBOX in src.conf(5) or the environment. 396 397 If the limited sandbox mode is enabled, "make check" will execute 398 "make distribution", then install, execute the tests, and clean up the 399 sandbox if successful. 400 401 The "make distribution" and "make install" targets are typically run as 402 root to set appropriate permissions and ownership at installation time. 403 The end-user should set "WITH_INSTALL_AS_USER" in src.conf(5) or the 404 environment if executing "make check" with limited sandbox mode using 405 an unprivileged user. 406 40720170808: 408 Since the switch to GPT disk labels, fsck for UFS/FFS has been 409 unable to automatically find alternate superblocks. As of r322297, 410 the information needed to find alternate superblocks has been 411 moved to the end of the area reserved for the boot block. 412 Filesystems created with a newfs of this vintage or later 413 will create the recovery information. If you have a filesystem 414 created prior to this change and wish to have a recovery block 415 created for your filesystem, you can do so by running fsck in 416 foreground mode (i.e., do not use the -p or -y options). As it 417 starts, fsck will ask ``SAVE DATA TO FIND ALTERNATE SUPERBLOCKS'' 418 to which you should answer yes. 419 42020170728: 421 As of r321665, an NFSv4 server configuration that services 422 Kerberos mounts or clients that do not support the uid/gid in 423 owner/owner_group string capability, must explicitly enable 424 the nfsuserd daemon by adding nfsuserd_enable="YES" to the 425 machine's /etc/rc.conf file. 426 42720170722: 428 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 5.0.0. 429 Please see the 20141231 entry below for information about prerequisites 430 and upgrading, if you are not already using clang 3.5.0 or higher. 431 43220170701: 433 WITHOUT_RCMDS is now the default. Set WITH_RCMDS if you need the 434 r-commands (rlogin, rsh, etc.) to be built with the base system. 435 43620170625: 437 The FreeBSD/powerpc platform now uses a 64-bit type for time_t. This is 438 a very major ABI incompatible change, so users of FreeBSD/powerpc must 439 be careful when performing source upgrades. It is best to run 440 'make installworld' from an alternate root system, either a live 441 CD/memory stick, or a temporary root partition. Additionally, all ports 442 must be recompiled. powerpc64 is largely unaffected, except in the case 443 of 32-bit compatibility. All 32-bit binaries will be affected. 444 44520170623: 446 Forward compatibility for the "ino64" project have been committed. This 447 will allow most new binaries to run on older kernels in a limited 448 fashion. This prevents many of the common foot-shooting actions in the 449 upgrade as well as the limited ability to roll back the kernel across 450 the ino64 upgrade. Complicated use cases may not work properly, though 451 enough simpler ones work to allow recovery in most situations. 452 45320170620: 454 Switch back to the BSDL dtc (Device Tree Compiler). Set WITH_GPL_DTC 455 if you require the GPL compiler. 456 45720170618: 458 The internal ABI used for communication between the NFS kernel modules 459 was changed by r320085, so __FreeBSD_version was bumped to 460 ensure all the NFS related modules are updated together. 461 46220170617: 463 The ABI of struct event was changed by extending the data 464 member to 64bit and adding ext fields. For upgrade, same 465 precautions as for the entry 20170523 "ino64" must be 466 followed. 467 46820170531: 469 The GNU roff toolchain has been removed from base. To render manpages 470 which are not supported by mandoc(1), man(1) can fallback on GNU roff 471 from ports (and recommends to install it). 472 To render roff(7) documents, consider using GNU roff from ports or the 473 heirloom doctools roff toolchain from ports via pkg install groff or 474 via pkg install heirloom-doctools. 475 47620170524: 477 The ath(4) and ath_hal(4) modules now build piecemeal to allow for 478 smaller runtime footprint builds. This is useful for embedded systems 479 which only require one chipset support. 480 481 If you load it as a module, make sure this is in /boot/loader.conf: 482 483 if_ath_load="YES" 484 485 This will load the HAL, all chip/RF backends and if_ath_pci. 486 If you have if_ath_pci in /boot/loader.conf, ensure it is after 487 if_ath or it will not load any HAL chipset support. 488 489 If you want to selectively load things (eg on ye cheape ARM/MIPS 490 platforms where RAM is at a premium) you should: 491 492 * load ath_hal 493 * load the chip modules in question 494 * load ath_rate, ath_dfs 495 * load ath_main 496 * load if_ath_pci and/or if_ath_ahb depending upon your particular 497 bus bind type - this is where probe/attach is done. 498 499 For further comments/feedback, poke adrian@ . 500 50120170523: 502 The "ino64" 64-bit inode project has been committed, which extends 503 a number of types to 64 bits. Upgrading in place requires care and 504 adherence to the documented upgrade procedure. 505 506 If using a custom kernel configuration ensure that the 507 COMPAT_FREEBSD11 option is included (as during the upgrade the 508 system will be running the ino64 kernel with the existing world). 509 510 For the safest in-place upgrade begin by removing previous build 511 artifacts via "rm -rf /usr/obj/*". Then, carefully follow the 512 full procedure documented below under the heading "To rebuild 513 everything and install it on the current system." Specifically, 514 a reboot is required after installing the new kernel before 515 installing world. 516 51720170424: 518 The NATM framework including the en(4), fatm(4), hatm(4), and 519 patm(4) devices has been removed. Consumers should plan a 520 migration before the end-of-life date for FreeBSD 11. 521 52220170420: 523 GNU diff has been replaced by a BSD licensed diff. Some features of GNU 524 diff has not been implemented, if those are needed a newer version of 525 GNU diff is available via the diffutils package under the gdiff name. 526 52720170413: 528 As of r316810 for ipfilter, keep frags is no longer assumed when 529 keep state is specified in a rule. r316810 aligns ipfilter with 530 documentation in man pages separating keep frags from keep state. 531 This allows keep state to be specified without forcing keep frags 532 and allows keep frags to be specified independently of keep state. 533 To maintain previous behaviour, also specify keep frags with 534 keep state (as documented in ipf.conf.5). 535 53620170407: 537 arm64 builds now use the base system LLD 4.0.0 linker by default, 538 instead of requiring that the aarch64-binutils port or package be 539 installed. To continue using aarch64-binutils, set 540 CROSS_BINUTILS_PREFIX=/usr/local/aarch64-freebsd/bin . 541 54220170405: 543 The UDP optimization in entry 20160818 that added the sysctl 544 net.inet.udp.require_l2_bcast has been reverted. L2 broadcast 545 packets will no longer be treated as L3 broadcast packets. 546 54720170331: 548 Binds and sends to the loopback addresses, IPv6 and IPv4, will now 549 use any explicitly assigned loopback address available in the jail 550 instead of using the first assigned address of the jail. 551 55220170329: 553 The ctl.ko module no longer implements the iSCSI target frontend: 554 cfiscsi.ko does instead. 555 556 If building cfiscsi.ko as a kernel module, the module can be loaded 557 via one of the following methods: 558 - `cfiscsi_load="YES"` in loader.conf(5). 559 - Add `cfiscsi` to `$kld_list` in rc.conf(5). 560 - ctladm(8)/ctld(8), when compiled with iSCSI support 561 (`WITH_ISCSI=yes` in src.conf(5)) 562 563 Please see cfiscsi(4) for more details. 564 56520170316: 566 The mmcsd.ko module now additionally depends on geom_flashmap.ko. 567 Also, mmc.ko and mmcsd.ko need to be a matching pair built from the 568 same source (previously, the dependency of mmcsd.ko on mmc.ko was 569 missing, but mmcsd.ko now will refuse to load if it is incompatible 570 with mmc.ko). 571 57220170315: 573 The syntax of ipfw(8) named states was changed to avoid ambiguity. 574 If you have used named states in the firewall rules, you need to modify 575 them after installworld and before rebooting. Now named states must 576 be prefixed with colon. 577 57820170311: 579 The old drm (sys/dev/drm/) drivers for i915 and radeon have been 580 removed as the userland we provide cannot use them. The KMS version 581 (sys/dev/drm2) supports the same hardware. 582 58320170302: 584 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 4.0.0. 585 Please see the 20141231 entry below for information about prerequisites 586 and upgrading, if you are not already using clang 3.5.0 or higher. 587 58820170221: 589 The code that provides support for ZFS .zfs/ directory functionality 590 has been reimplemented. It's not possible now to create a snapshot 591 by mkdir under .zfs/snapshot/. That should be the only user visible 592 change. 593 59420170216: 595 EISA bus support has been removed. The WITH_EISA option is no longer 596 valid. 597 59820170215: 599 MCA bus support has been removed. 600 60120170127: 602 The WITH_LLD_AS_LD / WITHOUT_LLD_AS_LD build knobs have been renamed 603 WITH_LLD_IS_LD / WITHOUT_LLD_IS_LD, for consistency with CLANG_IS_CC. 604 60520170112: 606 The EM_MULTIQUEUE kernel configuration option is deprecated now that 607 the em(4) driver conforms to iflib specifications. 608 60920170109: 610 The igb(4), em(4) and lem(4) ethernet drivers are now implemented via 611 IFLIB. If you have a custom kernel configuration that excludes em(4) 612 but you use igb(4), you need to re-add em(4) to your custom configuration. 613 61420161217: 615 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1. 616 Please see the 20141231 entry below for information about prerequisites 617 and upgrading, if you are not already using clang 3.5.0 or higher. 618 61920161124: 620 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.0. 621 Please see the 20141231 entry below for information about prerequisites 622 and upgrading, if you are not already using clang 3.5.0 or higher. 623 62420161119: 625 The layout of the pmap structure has changed for powerpc to put the pmap 626 statistics at the front for all CPU variations. libkvm(3) and all tools 627 that link against it need to be recompiled. 628 62920161030: 630 isl(4) and cyapa(4) drivers now require a new driver, 631 chromebook_platform(4), to work properly on Chromebook-class hardware. 632 On other types of hardware the drivers may need to be configured using 633 device hints. Please see the corresponding manual pages for details. 634 63520161017: 636 The urtwn(4) driver was merged into rtwn(4) and now consists of 637 rtwn(4) main module + rtwn_usb(4) and rtwn_pci(4) bus-specific 638 parts. 639 Also, firmware for RTL8188CE was renamed due to possible name 640 conflict (rtwnrtl8192cU(B) -> rtwnrtl8192cE(B)) 641 64220161015: 643 GNU rcs has been removed from base. It is available as packages: 644 - rcs: Latest GPLv3 GNU rcs version. 645 - rcs57: Copy of the latest version of GNU rcs (GPLv2) before it was 646 removed from base. 647 64820161008: 649 Use of the cc_cdg, cc_chd, cc_hd, or cc_vegas congestion control 650 modules now requires that the kernel configuration contain the 651 TCP_HHOOK option. (This option is included in the GENERIC kernel.) 652 65320161003: 654 The WITHOUT_ELFCOPY_AS_OBJCOPY src.conf(5) knob has been retired. 655 ELF Tool Chain's elfcopy is always installed as /usr/bin/objcopy. 656 65720160924: 658 Relocatable object files with the extension of .So have been renamed 659 to use an extension of .pico instead. The purpose of this change is 660 to avoid a name clash with shared libraries on case-insensitive file 661 systems. On those file systems, foo.So is the same file as foo.so. 662 66320160918: 664 GNU rcs has been turned off by default. It can (temporarily) be built 665 again by adding WITH_RCS knob in src.conf. 666 Otherwise, GNU rcs is available from packages: 667 - rcs: Latest GPLv3 GNU rcs version. 668 - rcs57: Copy of the latest version of GNU rcs (GPLv2) from base. 669 67020160918: 671 The backup_uses_rcs functionality has been removed from rc.subr. 672 67320160908: 674 The queue(3) debugging macro, QUEUE_MACRO_DEBUG, has been split into 675 two separate components, QUEUE_MACRO_DEBUG_TRACE and 676 QUEUE_MACRO_DEBUG_TRASH. Define both for the original 677 QUEUE_MACRO_DEBUG behavior. 678 67920160824: 680 r304787 changed some ioctl interfaces between the iSCSI userspace 681 programs and the kernel. ctladm, ctld, iscsictl, and iscsid must be 682 rebuilt to work with new kernels. __FreeBSD_version has been bumped 683 to 1200005. 684 68520160818: 686 The UDP receive code has been updated to only treat incoming UDP 687 packets that were addressed to an L2 broadcast address as L3 688 broadcast packets. It is not expected that this will affect any 689 standards-conforming UDP application. The new behaviour can be 690 disabled by setting the sysctl net.inet.udp.require_l2_bcast to 691 0. 692 69320160818: 694 Remove the openbsd_poll system call. 695 __FreeBSD_version has been bumped because of this. 696 69720160708: 698 The stable/11 branch has been created from head@r302406. 699 70020160622: 701 The libc stub for the pipe(2) system call has been replaced with 702 a wrapper that calls the pipe2(2) system call and the pipe(2) 703 system call is now only implemented by the kernels that include 704 "options COMPAT_FREEBSD10" in their config file (this is the 705 default). Users should ensure that this option is enabled in 706 their kernel or upgrade userspace to r302092 before upgrading their 707 kernel. 708 70920160527: 710 CAM will now strip leading spaces from SCSI disks' serial numbers. 711 This will affect users who create UFS filesystems on SCSI disks using 712 those disk's diskid device nodes. For example, if /etc/fstab 713 previously contained a line like 714 "/dev/diskid/DISK-%20%20%20%20%20%20%20ABCDEFG0123456", you should 715 change it to "/dev/diskid/DISK-ABCDEFG0123456". Users of geom 716 transforms like gmirror may also be affected. ZFS users should 717 generally be fine. 718 71920160523: 720 The bitstring(3) API has been updated with new functionality and 721 improved performance. But it is binary-incompatible with the old API. 722 Objects built with the new headers may not be linked against objects 723 built with the old headers. 724 72520160520: 726 The brk and sbrk functions have been removed from libc on arm64. 727 Binutils from ports has been updated to not link to these 728 functions and should be updated to the latest version before 729 installing a new libc. 730 73120160517: 732 The armv6 port now defaults to hard float ABI. Limited support 733 for running both hardfloat and soft float on the same system 734 is available using the libraries installed with -DWITH_LIBSOFT. 735 This has only been tested as an upgrade path for installworld 736 and packages may fail or need manual intervention to run. New 737 packages will be needed. 738 739 To update an existing self-hosted armv6hf system, you must add 740 TARGET_ARCH=armv6 on the make command line for both the build 741 and the install steps. 742 74320160510: 744 Kernel modules compiled outside of a kernel build now default to 745 installing to /boot/modules instead of /boot/kernel. Many kernel 746 modules built this way (such as those in ports) already overrode 747 KMODDIR explicitly to install into /boot/modules. However, 748 manually building and installing a module from /sys/modules will 749 now install to /boot/modules instead of /boot/kernel. 750 75120160414: 752 The CAM I/O scheduler has been committed to the kernel. There should be 753 no user visible impact. This does enable NCQ Trim on ada SSDs. While the 754 list of known rogues that claim support for this but actually corrupt 755 data is believed to be complete, be on the lookout for data 756 corruption. The known rogue list is believed to be complete: 757 758 o Crucial MX100, M550 drives with MU01 firmware. 759 o Micron M510 and M550 drives with MU01 firmware. 760 o Micron M500 prior to MU07 firmware 761 o Samsung 830, 840, and 850 all firmwares 762 o FCCT M500 all firmwares 763 764 Crucial has firmware http://www.crucial.com/usa/en/support-ssd-firmware 765 with working NCQ TRIM. For Micron branded drives, see your sales rep for 766 updated firmware. Black listed drives will work correctly because these 767 drives work correctly so long as no NCQ TRIMs are sent to them. Given 768 this list is the same as found in Linux, it's believed there are no 769 other rogues in the market place. All other models from the above 770 vendors work. 771 772 To be safe, if you are at all concerned, you can quirk each of your 773 drives to prevent NCQ from being sent by setting: 774 kern.cam.ada.X.quirks="0x2" 775 in loader.conf. If the drive requires the 4k sector quirk, set the 776 quirks entry to 0x3. 777 77820160330: 779 The FAST_DEPEND build option has been removed and its functionality is 780 now the one true way. The old mkdep(1) style of 'make depend' has 781 been removed. See 20160311 for further details. 782 78320160317: 784 Resource range types have grown from unsigned long to uintmax_t. All 785 drivers, and anything using libdevinfo, need to be recompiled. 786 78720160311: 788 WITH_FAST_DEPEND is now enabled by default for in-tree and out-of-tree 789 builds. It no longer runs mkdep(1) during 'make depend', and the 790 'make depend' stage can safely be skipped now as it is auto ran 791 when building 'make all' and will generate all SRCS and DPSRCS before 792 building anything else. Dependencies are gathered at compile time with 793 -MF flags kept in separate .depend files per object file. Users should 794 run 'make cleandepend' once if using -DNO_CLEAN to clean out older 795 stale .depend files. 796 79720160306: 798 On amd64, clang 3.8.0 can now insert sections of type AMD64_UNWIND into 799 kernel modules. Therefore, if you load any kernel modules at boot time, 800 please install the boot loaders after you install the kernel, but before 801 rebooting, e.g.: 802 803 make buildworld 804 make buildkernel KERNCONF=YOUR_KERNEL_HERE 805 make installkernel KERNCONF=YOUR_KERNEL_HERE 806 make -C sys/boot install 807 <reboot in single user> 808 809 Then follow the usual steps, described in the General Notes section, 810 below. 811 81220160305: 813 Clang, llvm, lldb and compiler-rt have been upgraded to 3.8.0. Please 814 see the 20141231 entry below for information about prerequisites and 815 upgrading, if you are not already using clang 3.5.0 or higher. 816 81720160301: 818 The AIO subsystem is now a standard part of the kernel. The 819 VFS_AIO kernel option and aio.ko kernel module have been removed. 820 Due to stability concerns, asynchronous I/O requests are only 821 permitted on sockets and raw disks by default. To enable 822 asynchronous I/O requests on all file types, set the 823 vfs.aio.enable_unsafe sysctl to a non-zero value. 824 82520160226: 826 The ELF object manipulation tool objcopy is now provided by the 827 ELF Tool Chain project rather than by GNU binutils. It should be a 828 drop-in replacement, with the addition of arm64 support. The 829 (temporary) src.conf knob WITHOUT_ELFCOPY_AS_OBJCOPY knob may be set 830 to obtain the GNU version if necessary. 831 83220160129: 833 Building ZFS pools on top of zvols is prohibited by default. That 834 feature has never worked safely; it's always been prone to deadlocks. 835 Using a zvol as the backing store for a VM guest's virtual disk will 836 still work, even if the guest is using ZFS. Legacy behavior can be 837 restored by setting vfs.zfs.vol.recursive=1. 838 83920160119: 840 The NONE and HPN patches has been removed from OpenSSH. They are 841 still available in the security/openssh-portable port. 842 84320160113: 844 With the addition of ypldap(8), a new _ypldap user is now required 845 during installworld. "mergemaster -p" can be used to add the user 846 prior to installworld, as documented in the handbook. 847 84820151216: 849 The tftp loader (pxeboot) now uses the option root-path directive. As a 850 consequence it no longer looks for a pxeboot.4th file on the tftp 851 server. Instead it uses the regular /boot infrastructure as with the 852 other loaders. 853 85420151211: 855 The code to start recording plug and play data into the modules has 856 been committed. While the old tools will properly build a new kernel, 857 a number of warnings about "unknown metadata record 4" will be produced 858 for an older kldxref. To avoid such warnings, make sure to rebuild 859 the kernel toolchain (or world). Make sure that you have r292078 or 860 later when trying to build 292077 or later before rebuilding. 861 86220151207: 863 Debug data files are now built by default with 'make buildworld' and 864 installed with 'make installworld'. This facilitates debugging but 865 requires more disk space both during the build and for the installed 866 world. Debug files may be disabled by setting WITHOUT_DEBUG_FILES=yes 867 in src.conf(5). 868 86920151130: 870 r291527 changed the internal interface between the nfsd.ko and 871 nfscommon.ko modules. As such, they must both be upgraded to-gether. 872 __FreeBSD_version has been bumped because of this. 873 87420151108: 875 Add support for unicode collation strings leads to a change of 876 order of files listed by ls(1) for example. To get back to the old 877 behaviour, set LC_COLLATE environment variable to "C". 878 879 Databases administrators will need to reindex their databases given 880 collation results will be different. 881 882 Due to a bug in install(1) it is recommended to remove the ancient 883 locales before running make installworld. 884 885 rm -rf /usr/share/locale/* 886 88720151030: 888 The OpenSSL has been upgraded to 1.0.2d. Any binaries requiring 889 libcrypto.so.7 or libssl.so.7 must be recompiled. 890 89120151020: 892 Qlogic 24xx/25xx firmware images were updated from 5.5.0 to 7.3.0. 893 Kernel modules isp_2400_multi and isp_2500_multi were removed and 894 should be replaced with isp_2400 and isp_2500 modules respectively. 895 89620151017: 897 The build previously allowed using 'make -n' to not recurse into 898 sub-directories while showing what commands would be executed, and 899 'make -n -n' to recursively show commands. Now 'make -n' will recurse 900 and 'make -N' will not. 901 90220151012: 903 If you specify SENDMAIL_MC or SENDMAIL_CF in make.conf, mergemaster 904 and etcupdate will now use this file. A custom sendmail.cf is now 905 updated via this mechanism rather than via installworld. If you had 906 excluded sendmail.cf in mergemaster.rc or etcupdate.conf, you may 907 want to remove the exclusion or change it to "always install". 908 /etc/mail/sendmail.cf is now managed the same way regardless of 909 whether SENDMAIL_MC/SENDMAIL_CF is used. If you are not using 910 SENDMAIL_MC/SENDMAIL_CF there should be no change in behavior. 911 91220151011: 913 Compatibility shims for legacy ATA device names have been removed. 914 It includes ATA_STATIC_ID kernel option, kern.cam.ada.legacy_aliases 915 and kern.geom.raid.legacy_aliases loader tunables, kern.devalias.* 916 environment variables, /dev/ad* and /dev/ar* symbolic links. 917 91820151006: 919 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.7.0. 920 Please see the 20141231 entry below for information about prerequisites 921 and upgrading, if you are not already using clang 3.5.0 or higher. 922 92320150924: 924 Kernel debug files have been moved to /usr/lib/debug/boot/kernel/, 925 and renamed from .symbols to .debug. This reduces the size requirements 926 on the boot partition or file system and provides consistency with 927 userland debug files. 928 929 When using the supported kernel installation method the 930 /usr/lib/debug/boot/kernel directory will be renamed (to kernel.old) 931 as is done with /boot/kernel. 932 933 Developers wishing to maintain the historical behavior of installing 934 debug files in /boot/kernel/ can set KERN_DEBUGDIR="" in src.conf(5). 935 93620150827: 937 The wireless drivers had undergone changes that remove the 'parent 938 interface' from the ifconfig -l output. The rc.d network scripts 939 used to check presence of a parent interface in the list, so old 940 scripts would fail to start wireless networking. Thus, etcupdate(3) 941 or mergemaster(8) run is required after kernel update, to update your 942 rc.d scripts in /etc. 943 94420150827: 945 pf no longer supports 'scrub fragment crop' or 'scrub fragment drop-ovl' 946 These configurations are now automatically interpreted as 947 'scrub fragment reassemble'. 948 94920150817: 950 Kernel-loadable modules for the random(4) device are back. To use 951 them, the kernel must have 952 953 device random 954 options RANDOM_LOADABLE 955 956 kldload(8) can then be used to load random_fortuna.ko 957 or random_yarrow.ko. Please note that due to the indirect 958 function calls that the loadable modules need to provide, 959 the build-in variants will be slightly more efficient. 960 961 The random(4) kernel option RANDOM_DUMMY has been retired due to 962 unpopularity. It was not all that useful anyway. 963 96420150813: 965 The WITHOUT_ELFTOOLCHAIN_TOOLS src.conf(5) knob has been retired. 966 Control over building the ELF Tool Chain tools is now provided by 967 the WITHOUT_TOOLCHAIN knob. 968 96920150810: 970 The polarity of Pulse Per Second (PPS) capture events with the 971 uart(4) driver has been corrected. Prior to this change the PPS 972 "assert" event corresponded to the trailing edge of a positive PPS 973 pulse and the "clear" event was the leading edge of the next pulse. 974 975 As the width of a PPS pulse in a typical GPS receiver is on the 976 order of 1 millisecond, most users will not notice any significant 977 difference with this change. 978 979 Anyone who has compensated for the historical polarity reversal by 980 configuring a negative offset equal to the pulse width will need to 981 remove that workaround. 982 98320150809: 984 The default group assigned to /dev/dri entries has been changed 985 from 'wheel' to 'video' with the id of '44'. If you want to have 986 access to the dri devices please add yourself to the video group 987 with: 988 989 # pw groupmod video -m $USER 990 99120150806: 992 The menu.rc and loader.rc files will now be replaced during 993 upgrades. Please migrate local changes to menu.rc.local and 994 loader.rc.local instead. 995 99620150805: 997 GNU Binutils versions of addr2line, c++filt, nm, readelf, size, 998 strings and strip have been removed. The src.conf(5) knob 999 WITHOUT_ELFTOOLCHAIN_TOOLS no longer provides the binutils tools. 1000 100120150728: 1002 As ZFS requires more kernel stack pages than is the default on some 1003 architectures e.g. i386, it now warns if KSTACK_PAGES is less than 1004 ZFS_MIN_KSTACK_PAGES (which is 4 at the time of writing). 1005 1006 Please consider using 'options KSTACK_PAGES=X' where X is greater 1007 than or equal to ZFS_MIN_KSTACK_PAGES i.e. 4 in such configurations. 1008 100920150706: 1010 sendmail has been updated to 8.15.2. Starting with FreeBSD 11.0 1011 and sendmail 8.15, sendmail uses uncompressed IPv6 addresses by 1012 default, i.e., they will not contain "::". For example, instead 1013 of ::1, it will be 0:0:0:0:0:0:0:1. This permits a zero subnet 1014 to have a more specific match, such as different map entries for 1015 IPv6:0:0 vs IPv6:0. This change requires that configuration 1016 data (including maps, files, classes, custom ruleset, etc.) must 1017 use the same format, so make certain such configuration data is 1018 upgrading. As a very simple check search for patterns like 1019 'IPv6:[0-9a-fA-F:]*::' and 'IPv6::'. To return to the old 1020 behavior, set the m4 option confUSE_COMPRESSED_IPV6_ADDRESSES or 1021 the cf option UseCompressedIPv6Addresses. 1022 102320150630: 1024 The default kernel entropy-processing algorithm is now 1025 Fortuna, replacing Yarrow. 1026 1027 Assuming you have 'device random' in your kernel config 1028 file, the configurations allow a kernel option to override 1029 this default. You may choose *ONE* of: 1030 1031 options RANDOM_YARROW # Legacy /dev/random algorithm. 1032 options RANDOM_DUMMY # Blocking-only driver. 1033 1034 If you have neither, you get Fortuna. For most people, 1035 read no further, Fortuna will give a /dev/random that works 1036 like it always used to, and the difference will be irrelevant. 1037 1038 If you remove 'device random', you get *NO* kernel-processed 1039 entropy at all. This may be acceptable to folks building 1040 embedded systems, but has complications. Carry on reading, 1041 and it is assumed you know what you need. 1042 1043 *PLEASE* read random(4) and random(9) if you are in the 1044 habit of tweaking kernel configs, and/or if you are a member 1045 of the embedded community, wanting specific and not-usual 1046 behaviour from your security subsystems. 1047 1048 NOTE!! If you use RANDOM_DUMMY and/or have no 'device 1049 random', you will NOT have a functioning /dev/random, and 1050 many cryptographic features will not work, including SSH. 1051 You may also find strange behaviour from the random(3) set 1052 of library functions, in particular sranddev(3), srandomdev(3) 1053 and arc4random(3). The reason for this is that the KERN_ARND 1054 sysctl only returns entropy if it thinks it has some to 1055 share, and with RANDOM_DUMMY or no 'device random' this 1056 will never happen. 1057 105820150623: 1059 An additional fix for the issue described in the 20150614 sendmail 1060 entry below has been committed in revision 284717. 1061 106220150616: 1063 FreeBSD's old make (fmake) has been removed from the system. It is 1064 available as the devel/fmake port or via pkg install fmake. 1065 106620150615: 1067 The fix for the issue described in the 20150614 sendmail entry 1068 below has been committed in revision 284436. The work 1069 around described in that entry is no longer needed unless the 1070 default setting is overridden by a confDH_PARAMETERS configuration 1071 setting of '5' or pointing to a 512 bit DH parameter file. 1072 107320150614: 1074 ALLOW_DEPRECATED_ATF_TOOLS/ATFFILE support has been removed from 1075 atf.test.mk (included from bsd.test.mk). Please upgrade devel/atf 1076 and devel/kyua to version 0.20+ and adjust any calling code to work 1077 with Kyuafile and kyua. 1078 107920150614: 1080 The import of openssl to address the FreeBSD-SA-15:10.openssl 1081 security advisory includes a change which rejects handshakes 1082 with DH parameters below 768 bits. sendmail releases prior 1083 to 8.15.2 (not yet released), defaulted to a 512 bit 1084 DH parameter setting for client connections. To work around 1085 this interoperability, sendmail can be configured to use a 1086 2048 bit DH parameter by: 1087 1088 1. Edit /etc/mail/`hostname`.mc 1089 2. If a setting for confDH_PARAMETERS does not exist or 1090 exists and is set to a string beginning with '5', 1091 replace it with '2'. 1092 3. If a setting for confDH_PARAMETERS exists and is set to 1093 a file path, create a new file with: 1094 openssl dhparam -out /path/to/file 2048 1095 4. Rebuild the .cf file: 1096 cd /etc/mail/; make; make install 1097 5. Restart sendmail: 1098 cd /etc/mail/; make restart 1099 1100 A sendmail patch is coming, at which time this file will be 1101 updated. 1102 110320150604: 1104 Generation of legacy formatted entries have been disabled by default 1105 in pwd_mkdb(8), as all base system consumers of the legacy formatted 1106 entries were converted to use the new format by default when the new, 1107 machine independent format have been added and supported since FreeBSD 1108 5.x. 1109 1110 Please see the pwd_mkdb(8) manual page for further details. 1111 111220150525: 1113 Clang and llvm have been upgraded to 3.6.1 release. Please see the 1114 20141231 entry below for information about prerequisites and upgrading, 1115 if you are not already using 3.5.0 or higher. 1116 111720150521: 1118 TI platform code switched to using vendor DTS files and this update 1119 may break existing systems running on Beaglebone, Beaglebone Black, 1120 and Pandaboard: 1121 1122 - dtb files should be regenerated/reinstalled. Filenames are the 1123 same but content is different now 1124 - GPIO addressing was changed, now each GPIO bank (32 pins per bank) 1125 has its own /dev/gpiocX device, e.g. pin 121 on /dev/gpioc0 in old 1126 addressing scheme is now pin 25 on /dev/gpioc3. 1127 - Pandaboard: /etc/ttys should be updated, serial console device is 1128 now /dev/ttyu2, not /dev/ttyu0 1129 113020150501: 1131 soelim(1) from gnu/usr.bin/groff has been replaced by usr.bin/soelim. 1132 If you need the GNU extension from groff soelim(1), install groff 1133 from package: pkg install groff, or via ports: textproc/groff. 1134 113520150423: 1136 chmod, chflags, chown and chgrp now affect symlinks in -R mode as 1137 defined in symlink(7); previously symlinks were silently ignored. 1138 113920150415: 1140 The const qualifier has been removed from iconv(3) to comply with 1141 POSIX. The ports tree is aware of this from r384038 onwards. 1142 114320150416: 1144 Libraries specified by LIBADD in Makefiles must have a corresponding 1145 DPADD_<lib> variable to ensure correct dependencies. This is now 1146 enforced in src.libnames.mk. 1147 114820150324: 1149 From legacy ata(4) driver was removed support for SATA controllers 1150 supported by more functional drivers ahci(4), siis(4) and mvs(4). 1151 Kernel modules ataahci and ataadaptec were removed completely, 1152 replaced by ahci and mvs modules respectively. 1153 115420150315: 1155 Clang, llvm and lldb have been upgraded to 3.6.0 release. Please see 1156 the 20141231 entry below for information about prerequisites and 1157 upgrading, if you are not already using 3.5.0 or higher. 1158 115920150307: 1160 The 32-bit PowerPC kernel has been changed to a position-independent 1161 executable. This can only be booted with a version of loader(8) 1162 newer than January 31, 2015, so make sure to update both world and 1163 kernel before rebooting. 1164 116520150217: 1166 If you are running a -CURRENT kernel since r273872 (Oct 30th, 2014), 1167 but before r278950, the RNG was not seeded properly. Immediately 1168 upgrade the kernel to r278950 or later and regenerate any keys (e.g. 1169 ssh keys or openssl keys) that were generated w/ a kernel from that 1170 range. This does not affect programs that directly used /dev/random 1171 or /dev/urandom. All userland uses of arc4random(3) are affected. 1172 117320150210: 1174 The autofs(4) ABI was changed in order to restore binary compatibility 1175 with 10.1-RELEASE. The automountd(8) daemon needs to be rebuilt to work 1176 with the new kernel. 1177 117820150131: 1179 The powerpc64 kernel has been changed to a position-independent 1180 executable. This can only be booted with a new version of loader(8), 1181 so make sure to update both world and kernel before rebooting. 1182 118320150118: 1184 Clang and llvm have been upgraded to 3.5.1 release. This is a bugfix 1185 only release, no new features have been added. Please see the 20141231 1186 entry below for information about prerequisites and upgrading, if you 1187 are not already using 3.5.0. 1188 118920150107: 1190 ELF tools addr2line, elfcopy (strip), nm, size, and strings are now 1191 taken from the ELF Tool Chain project rather than GNU binutils. They 1192 should be drop-in replacements, with the addition of arm64 support. 1193 The WITHOUT_ELFTOOLCHAIN_TOOLS= knob may be used to obtain the 1194 binutils tools, if necessary. See 20150805 for updated information. 1195 119620150105: 1197 The default Unbound configuration now enables remote control 1198 using a local socket. Users who have already enabled the 1199 local_unbound service should regenerate their configuration 1200 by running "service local_unbound setup" as root. 1201 120220150102: 1203 The GNU texinfo and GNU info pages have been removed. 1204 To be able to view GNU info pages please install texinfo from ports. 1205 120620141231: 1207 Clang, llvm and lldb have been upgraded to 3.5.0 release. 1208 1209 As of this release, a prerequisite for building clang, llvm and lldb is 1210 a C++11 capable compiler and C++11 standard library. This means that to 1211 be able to successfully build the cross-tools stage of buildworld, with 1212 clang as the bootstrap compiler, your system compiler or cross compiler 1213 should either be clang 3.3 or later, or gcc 4.8 or later, and your 1214 system C++ library should be libc++, or libdstdc++ from gcc 4.8 or 1215 later. 1216 1217 On any standard FreeBSD 10.x or 11.x installation, where clang and 1218 libc++ are on by default (that is, on x86 or arm), this should work out 1219 of the box. 1220 1221 On 9.x installations where clang is enabled by default, e.g. on x86 and 1222 powerpc, libc++ will not be enabled by default, so libc++ should be 1223 built (with clang) and installed first. If both clang and libc++ are 1224 missing, build clang first, then use it to build libc++. 1225 1226 On 8.x and earlier installations, upgrade to 9.x first, and then follow 1227 the instructions for 9.x above. 1228 1229 Sparc64 and mips users are unaffected, as they still use gcc 4.2.1 by 1230 default, and do not build clang. 1231 1232 Many embedded systems are resource constrained, and will not be able to 1233 build clang in a reasonable time, or in some cases at all. In those 1234 cases, cross building bootable systems on amd64 is a workaround. 1235 1236 This new version of clang introduces a number of new warnings, of which 1237 the following are most likely to appear: 1238 1239 -Wabsolute-value 1240 1241 This warns in two cases, for both C and C++: 1242 * When the code is trying to take the absolute value of an unsigned 1243 quantity, which is effectively a no-op, and almost never what was 1244 intended. The code should be fixed, if at all possible. If you are 1245 sure that the unsigned quantity can be safely cast to signed, without 1246 loss of information or undefined behavior, you can add an explicit 1247 cast, or disable the warning. 1248 1249 * When the code is trying to take an absolute value, but the called 1250 abs() variant is for the wrong type, which can lead to truncation. 1251 If you want to disable the warning instead of fixing the code, please 1252 make sure that truncation will not occur, or it might lead to unwanted 1253 side-effects. 1254 1255 -Wtautological-undefined-compare and 1256 -Wundefined-bool-conversion 1257 1258 These warn when C++ code is trying to compare 'this' against NULL, while 1259 'this' should never be NULL in well-defined C++ code. However, there is 1260 some legacy (pre C++11) code out there, which actively abuses this 1261 feature, which was less strictly defined in previous C++ versions. 1262 1263 Squid and openjdk do this, for example. The warning can be turned off 1264 for C++98 and earlier, but compiling the code in C++11 mode might result 1265 in unexpected behavior; for example, the parts of the program that are 1266 unreachable could be optimized away. 1267 126820141222: 1269 The old NFS client and server (kernel options NFSCLIENT, NFSSERVER) 1270 kernel sources have been removed. The .h files remain, since some 1271 utilities include them. This will need to be fixed later. 1272 If "mount -t oldnfs ..." is attempted, it will fail. 1273 If the "-o" option on mountd(8), nfsd(8) or nfsstat(1) is used, 1274 the utilities will report errors. 1275 127620141121: 1277 The handling of LOCAL_LIB_DIRS has been altered to skip addition of 1278 directories to top level SUBDIR variable when their parent 1279 directory is included in LOCAL_DIRS. Users with build systems with 1280 such hierarchies and without SUBDIR entries in the parent 1281 directory Makefiles should add them or add the directories to 1282 LOCAL_DIRS. 1283 128420141109: 1285 faith(4) and faithd(8) have been removed from the base system. Faith 1286 has been obsolete for a very long time. 1287 128820141104: 1289 vt(4), the new console driver, is enabled by default. It brings 1290 support for Unicode and double-width characters, as well as 1291 support for UEFI and integration with the KMS kernel video 1292 drivers. 1293 1294 You may need to update your console settings in /etc/rc.conf, 1295 most probably the keymap. During boot, /etc/rc.d/syscons will 1296 indicate what you need to do. 1297 1298 vt(4) still has issues and lacks some features compared to 1299 syscons(4). See the wiki for up-to-date information: 1300 https://wiki.freebsd.org/Newcons 1301 1302 If you want to keep using syscons(4), you can do so by adding 1303 the following line to /boot/loader.conf: 1304 kern.vty=sc 1305 130620141102: 1307 pjdfstest has been integrated into kyua as an opt-in test suite. 1308 Please see share/doc/pjdfstest/README for more details on how to 1309 execute it. 1310 131120141009: 1312 gperf has been removed from the base system for architectures 1313 that use clang. Ports that require gperf will obtain it from the 1314 devel/gperf port. 1315 131620140923: 1317 pjdfstest has been moved from tools/regression/pjdfstest to 1318 contrib/pjdfstest . 1319 132020140922: 1321 At svn r271982, The default linux compat kernel ABI has been adjusted 1322 to 2.6.18 in support of the linux-c6 compat ports infrastructure 1323 update. If you wish to continue using the linux-f10 compat ports, 1324 add compat.linux.osrelease=2.6.16 to your local sysctl.conf. Users are 1325 encouraged to update their linux-compat packages to linux-c6 during 1326 their next update cycle. 1327 132820140729: 1329 The ofwfb driver, used to provide a graphics console on PowerPC when 1330 using vt(4), no longer allows mmap() of all physical memory. This 1331 will prevent Xorg on PowerPC with some ATI graphics cards from 1332 initializing properly unless x11-servers/xorg-server is updated to 1333 1.12.4_8 or newer. 1334 133520140723: 1336 The xdev targets have been converted to using TARGET and 1337 TARGET_ARCH instead of XDEV and XDEV_ARCH. 1338 133920140719: 1340 The default unbound configuration has been modified to address 1341 issues with reverse lookups on networks that use private 1342 address ranges. If you use the local_unbound service, run 1343 "service local_unbound setup" as root to regenerate your 1344 configuration, then "service local_unbound reload" to load the 1345 new configuration. 1346 134720140709: 1348 The GNU texinfo and GNU info pages are not built and installed 1349 anymore, WITH_INFO knob has been added to allow to built and install 1350 them again. 1351 UPDATE: see 20150102 entry on texinfo's removal 1352 135320140708: 1354 The GNU readline library is now an INTERNALLIB - that is, it is 1355 statically linked into consumers (GDB and variants) in the base 1356 system, and the shared library is no longer installed. The 1357 devel/readline port is available for third party software that 1358 requires readline. 1359 136020140702: 1361 The Itanium architecture (ia64) has been removed from the list of 1362 known architectures. This is the first step in the removal of the 1363 architecture. 1364 136520140701: 1366 Commit r268115 has added NFSv4.1 server support, merged from 1367 projects/nfsv4.1-server. Since this includes changes to the 1368 internal interfaces between the NFS related modules, a full 1369 build of the kernel and modules will be necessary. 1370 __FreeBSD_version has been bumped. 1371 137220140629: 1373 The WITHOUT_VT_SUPPORT kernel config knob has been renamed 1374 WITHOUT_VT. (The other _SUPPORT knobs have a consistent meaning 1375 which differs from the behaviour controlled by this knob.) 1376 137720140619: 1378 Maximal length of the serial number in CTL was increased from 16 to 1379 64 chars, that breaks ABI. All CTL-related tools, such as ctladm 1380 and ctld, need to be rebuilt to work with a new kernel. 1381 138220140606: 1383 The libatf-c and libatf-c++ major versions were downgraded to 0 and 1384 1 respectively to match the upstream numbers. They were out of 1385 sync because, when they were originally added to FreeBSD, the 1386 upstream versions were not respected. These libraries are private 1387 and not yet built by default, so renumbering them should be a 1388 non-issue. However, unclean source trees will yield broken test 1389 programs once the operator executes "make delete-old-libs" after a 1390 "make installworld". 1391 1392 Additionally, the atf-sh binary was made private by moving it into 1393 /usr/libexec/. Already-built shell test programs will keep the 1394 path to the old binary so they will break after "make delete-old" 1395 is run. 1396 1397 If you are using WITH_TESTS=yes (not the default), wipe the object 1398 tree and rebuild from scratch to prevent spurious test failures. 1399 This is only needed once: the misnumbered libraries and misplaced 1400 binaries have been added to OptionalObsoleteFiles.inc so they will 1401 be removed during a clean upgrade. 1402 140320140512: 1404 Clang and llvm have been upgraded to 3.4.1 release. 1405 140620140508: 1407 We bogusly installed src.opts.mk in /usr/share/mk. This file should 1408 be removed to avoid issues in the future (and has been added to 1409 ObsoleteFiles.inc). 1410 141120140505: 1412 /etc/src.conf now affects only builds of the FreeBSD src tree. In the 1413 past, it affected all builds that used the bsd.*.mk files. The old 1414 behavior was a bug, but people may have relied upon it. To get this 1415 behavior back, you can .include /etc/src.conf from /etc/make.conf 1416 (which is still global and isn't changed). This also changes the 1417 behavior of incremental builds inside the tree of individual 1418 directories. Set MAKESYSPATH to ".../share/mk" to do that. 1419 Although this has survived make universe and some upgrade scenarios, 1420 other upgrade scenarios may have broken. At least one form of 1421 temporary breakage was fixed with MAKESYSPATH settings for buildworld 1422 as well... In cases where MAKESYSPATH isn't working with this 1423 setting, you'll need to set it to the full path to your tree. 1424 1425 One side effect of all this cleaning up is that bsd.compiler.mk 1426 is no longer implicitly included by bsd.own.mk. If you wish to 1427 use COMPILER_TYPE, you must now explicitly include bsd.compiler.mk 1428 as well. 1429 143020140430: 1431 The lindev device has been removed since /dev/full has been made a 1432 standard device. __FreeBSD_version has been bumped. 1433 143420140424: 1435 The knob WITHOUT_VI was added to the base system, which controls 1436 building ex(1), vi(1), etc. Older releases of FreeBSD required ex(1) 1437 in order to reorder files share/termcap and didn't build ex(1) as a 1438 build tool, so building/installing with WITH_VI is highly advised for 1439 build hosts for older releases. 1440 1441 This issue has been fixed in stable/9 and stable/10 in r277022 and 1442 r276991, respectively. 1443 144420140418: 1445 The YES_HESIOD knob has been removed. It has been obsolete for 1446 a decade. Please move to using WITH_HESIOD instead or your builds 1447 will silently lack HESIOD. 1448 144920140405: 1450 The uart(4) driver has been changed with respect to its handling 1451 of the low-level console. Previously the uart(4) driver prevented 1452 any process from changing the baudrate or the CLOCAL and HUPCL 1453 control flags. By removing the restrictions, operators can make 1454 changes to the serial console port without having to reboot. 1455 However, when getty(8) is started on the serial device that is 1456 associated with the low-level console, a misconfigured terminal 1457 line in /etc/ttys will now have a real impact. 1458 Before upgrading the kernel, make sure that /etc/ttys has the 1459 serial console device configured as 3wire without baudrate to 1460 preserve the previous behaviour. E.g: 1461 ttyu0 "/usr/libexec/getty 3wire" vt100 on secure 1462 146320140306: 1464 Support for libwrap (TCP wrappers) in rpcbind was disabled by default 1465 to improve performance. To re-enable it, if needed, run rpcbind 1466 with command line option -W. 1467 146820140226: 1469 Switched back to the GPL dtc compiler due to updates in the upstream 1470 dts files not being supported by the BSDL dtc compiler. You will need 1471 to rebuild your kernel toolchain to pick up the new compiler. Core dumps 1472 may result while building dtb files during a kernel build if you fail 1473 to do so. Set WITHOUT_GPL_DTC if you require the BSDL compiler. 1474 147520140216: 1476 Clang and llvm have been upgraded to 3.4 release. 1477 147820140216: 1479 The nve(4) driver has been removed. Please use the nfe(4) driver 1480 for NVIDIA nForce MCP Ethernet adapters instead. 1481 148220140212: 1483 An ABI incompatibility crept into the libc++ 3.4 import in r261283. 1484 This could cause certain C++ applications using shared libraries built 1485 against the previous version of libc++ to crash. The incompatibility 1486 has now been fixed, but any C++ applications or shared libraries built 1487 between r261283 and r261801 should be recompiled. 1488 148920140204: 1490 OpenSSH will now ignore errors caused by kernel lacking of Capsicum 1491 capability mode support. Please note that enabling the feature in 1492 kernel is still highly recommended. 1493 149420140131: 1495 OpenSSH is now built with sandbox support, and will use sandbox as 1496 the default privilege separation method. This requires Capsicum 1497 capability mode support in kernel. 1498 149920140128: 1500 The libelf and libdwarf libraries have been updated to newer 1501 versions from upstream. Shared library version numbers for 1502 these two libraries were bumped. Any ports or binaries 1503 requiring these two libraries should be recompiled. 1504 __FreeBSD_version is bumped to 1100006. 1505 150620140110: 1507 If a Makefile in a tests/ directory was auto-generating a Kyuafile 1508 instead of providing an explicit one, this would prevent such 1509 Makefile from providing its own Kyuafile in the future during 1510 NO_CLEAN builds. This has been fixed in the Makefiles but manual 1511 intervention is needed to clean an objdir if you use NO_CLEAN: 1512 # find /usr/obj -name Kyuafile | xargs rm -f 1513 151420131213: 1515 The behavior of gss_pseudo_random() for the krb5 mechanism 1516 has changed, for applications requesting a longer random string 1517 than produced by the underlying enctype's pseudo-random() function. 1518 In particular, the random string produced from a session key of 1519 enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will 1520 be different at the 17th octet and later, after this change. 1521 The counter used in the PRF+ construction is now encoded as a 1522 big-endian integer in accordance with RFC 4402. 1523 __FreeBSD_version is bumped to 1100004. 1524 152520131108: 1526 The WITHOUT_ATF build knob has been removed and its functionality 1527 has been subsumed into the more generic WITHOUT_TESTS. If you were 1528 using the former to disable the build of the ATF libraries, you 1529 should change your settings to use the latter. 1530 153120131025: 1532 The default version of mtree is nmtree which is obtained from 1533 NetBSD. The output is generally the same, but may vary 1534 slightly. If you found you need identical output adding 1535 "-F freebsd9" to the command line should do the trick. For the 1536 time being, the old mtree is available as fmtree. 1537 153820131014: 1539 libbsdyml has been renamed to libyaml and moved to /usr/lib/private. 1540 This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg 1541 1.1.4_8 and verify bsdyml not linked in, before running "make 1542 delete-old-libs": 1543 # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean 1544 or 1545 # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml 1546 154720131010: 1548 The stable/10 branch has been created in subversion from head 1549 revision r256279. 1550 1551COMMON ITEMS: 1552 1553 General Notes 1554 ------------- 1555 Avoid using make -j when upgrading. While generally safe, there are 1556 sometimes problems using -j to upgrade. If your upgrade fails with 1557 -j, please try again without -j. From time to time in the past there 1558 have been problems using -j with buildworld and/or installworld. This 1559 is especially true when upgrading between "distant" versions (eg one 1560 that cross a major release boundary or several minor releases, or when 1561 several months have passed on the -current branch). 1562 1563 Sometimes, obscure build problems are the result of environment 1564 poisoning. This can happen because the make utility reads its 1565 environment when searching for values for global variables. To run 1566 your build attempts in an "environmental clean room", prefix all make 1567 commands with 'env -i '. See the env(1) manual page for more details. 1568 1569 When upgrading from one major version to another it is generally best to 1570 upgrade to the latest code in the currently installed branch first, then 1571 do an upgrade to the new branch. This is the best-tested upgrade path, 1572 and has the highest probability of being successful. Please try this 1573 approach if you encounter problems with a major version upgrade. Since 1574 the stable 4.x branch point, one has generally been able to upgrade from 1575 anywhere in the most recent stable branch to head / current (or even the 1576 last couple of stable branches). See the top of this file when there's 1577 an exception. 1578 1579 When upgrading a live system, having a root shell around before 1580 installing anything can help undo problems. Not having a root shell 1581 around can lead to problems if pam has changed too much from your 1582 starting point to allow continued authentication after the upgrade. 1583 1584 This file should be read as a log of events. When a later event changes 1585 information of a prior event, the prior event should not be deleted. 1586 Instead, a pointer to the entry with the new information should be 1587 placed in the old entry. Readers of this file should also sanity check 1588 older entries before relying on them blindly. Authors of new entries 1589 should write them with this in mind. 1590 1591 ZFS notes 1592 --------- 1593 When upgrading the boot ZFS pool to a new version, always follow 1594 these two steps: 1595 1596 1.) recompile and reinstall the ZFS boot loader and boot block 1597 (this is part of "make buildworld" and "make installworld") 1598 1599 2.) update the ZFS boot block on your boot drive 1600 1601 The following example updates the ZFS boot block on the first 1602 partition (freebsd-boot) of a GPT partitioned drive ada0: 1603 "gpart bootcode -p /boot/gptzfsboot -i 1 ada0" 1604 1605 Non-boot pools do not need these updates. 1606 1607 To build a kernel 1608 ----------------- 1609 If you are updating from a prior version of FreeBSD (even one just 1610 a few days old), you should follow this procedure. It is the most 1611 failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 1612 1613 make kernel-toolchain 1614 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 1615 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 1616 1617 To test a kernel once 1618 --------------------- 1619 If you just want to boot a kernel once (because you are not sure 1620 if it works, or if you want to boot a known bad kernel to provide 1621 debugging information) run 1622 make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 1623 nextboot -k testkernel 1624 1625 To rebuild everything and install it on the current system. 1626 ----------------------------------------------------------- 1627 # Note: sometimes if you are running current you gotta do more than 1628 # is listed here if you are upgrading from a really old current. 1629 1630 <make sure you have good level 0 dumps> 1631 make buildworld 1632 make buildkernel KERNCONF=YOUR_KERNEL_HERE 1633 make installkernel KERNCONF=YOUR_KERNEL_HERE 1634 [1] 1635 <reboot in single user> [3] 1636 mergemaster -Fp [5] 1637 make installworld 1638 mergemaster -Fi [4] 1639 make delete-old [6] 1640 <reboot> 1641 1642 To cross-install current onto a separate partition 1643 -------------------------------------------------- 1644 # In this approach we use a separate partition to hold 1645 # current's root, 'usr', and 'var' directories. A partition 1646 # holding "/", "/usr" and "/var" should be about 2GB in 1647 # size. 1648 1649 <make sure you have good level 0 dumps> 1650 <boot into -stable> 1651 make buildworld 1652 make buildkernel KERNCONF=YOUR_KERNEL_HERE 1653 <maybe newfs current's root partition> 1654 <mount current's root partition on directory ${CURRENT_ROOT}> 1655 make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC 1656 make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 1657 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 1658 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 1659 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 1660 <reboot into current> 1661 <do a "native" rebuild/install as described in the previous section> 1662 <maybe install compatibility libraries from ports/misc/compat*> 1663 <reboot> 1664 1665 1666 To upgrade in-place from stable to current 1667 ---------------------------------------------- 1668 <make sure you have good level 0 dumps> 1669 make buildworld [9] 1670 make buildkernel KERNCONF=YOUR_KERNEL_HERE [8] 1671 make installkernel KERNCONF=YOUR_KERNEL_HERE 1672 [1] 1673 <reboot in single user> [3] 1674 mergemaster -Fp [5] 1675 make installworld 1676 mergemaster -Fi [4] 1677 make delete-old [6] 1678 <reboot> 1679 1680 Make sure that you've read the UPDATING file to understand the 1681 tweaks to various things you need. At this point in the life 1682 cycle of current, things change often and you are on your own 1683 to cope. The defaults can also change, so please read ALL of 1684 the UPDATING entries. 1685 1686 Also, if you are tracking -current, you must be subscribed to 1687 freebsd-current@freebsd.org. Make sure that before you update 1688 your sources that you have read and understood all the recent 1689 messages there. If in doubt, please track -stable which has 1690 much fewer pitfalls. 1691 1692 [1] If you have third party modules, such as vmware, you 1693 should disable them at this point so they don't crash your 1694 system on reboot. 1695 1696 [3] From the bootblocks, boot -s, and then do 1697 fsck -p 1698 mount -u / 1699 mount -a 1700 cd src 1701 adjkerntz -i # if CMOS is wall time 1702 Also, when doing a major release upgrade, it is required that 1703 you boot into single user mode to do the installworld. 1704 1705 [4] Note: This step is non-optional. Failure to do this step 1706 can result in a significant reduction in the functionality of the 1707 system. Attempting to do it by hand is not recommended and those 1708 that pursue this avenue should read this file carefully, as well 1709 as the archives of freebsd-current and freebsd-hackers mailing lists 1710 for potential gotchas. The -U option is also useful to consider. 1711 See mergemaster(8) for more information. 1712 1713 [5] Usually this step is a no-op. However, from time to time 1714 you may need to do this if you get unknown user in the following 1715 step. It never hurts to do it all the time. You may need to 1716 install a new mergemaster (cd src/usr.sbin/mergemaster && make 1717 install) after the buildworld before this step if you last updated 1718 from current before 20130425 or from -stable before 20130430. 1719 1720 [6] This only deletes old files and directories. Old libraries 1721 can be deleted by "make delete-old-libs", but you have to make 1722 sure that no program is using those libraries anymore. 1723 1724 [8] In order to have a kernel that can run the 4.x binaries needed to 1725 do an installworld, you must include the COMPAT_FREEBSD4 option in 1726 your kernel. Failure to do so may leave you with a system that is 1727 hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 is 1728 required to run the 5.x binaries on more recent kernels. And so on 1729 for COMPAT_FREEBSD6 and COMPAT_FREEBSD7. 1730 1731 Make sure that you merge any new devices from GENERIC since the 1732 last time you updated your kernel config file. 1733 1734 [9] If CPUTYPE is defined in your /etc/make.conf, make sure to use the 1735 "?=" instead of the "=" assignment operator, so that buildworld can 1736 override the CPUTYPE if it needs to. 1737 1738 MAKEOBJDIRPREFIX must be defined in an environment variable, and 1739 not on the command line, or in /etc/make.conf. buildworld will 1740 warn if it is improperly defined. 1741FORMAT: 1742 1743This file contains a list, in reverse chronological order, of major 1744breakages in tracking -current. It is not guaranteed to be a complete 1745list of such breakages, and only contains entries since September 23, 2011. 1746If you need to see UPDATING entries from before that date, you will need 1747to fetch an UPDATING file from an older FreeBSD release. 1748 1749Copyright information: 1750 1751Copyright 1998-2009 M. Warner Losh. All Rights Reserved. 1752 1753Redistribution, publication, translation and use, with or without 1754modification, in full or in part, in any form or format of this 1755document are permitted without further permission from the author. 1756 1757THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 1758IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 1759WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1760DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 1761INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 1762(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 1763SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 1764HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 1765STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 1766IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 1767POSSIBILITY OF SUCH DAMAGE. 1768 1769Contact Warner Losh if you have any questions about your use of 1770this document. 1771 1772$FreeBSD$ 1773