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 TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: 15 FreeBSD 13.x has many debugging features turned on, in both the kernel 16 and userland. These features attempt to detect incorrect use of 17 system primitives, and encourage loud failure through extra sanity 18 checking and fail stop semantics. They also substantially impact 19 system performance. If you want to do performance measurement, 20 benchmarking, and optimization, you'll want to turn them off. This 21 includes various WITNESS- related kernel options, INVARIANTS, malloc 22 debugging flags in userland, and various verbose features in the 23 kernel. Many developers choose to disable these features on build 24 machines to maximize performance. (To completely disable malloc 25 debugging, define MALLOC_PRODUCTION in /etc/make.conf, or to merely 26 disable the most expensive debugging functionality run 27 "ln -s 'abort:false,junk:false' /etc/malloc.conf".) 28 2920200817: 30 r364330 modified the internal API used between the NFS modules. 31 As such, all the NFS modules must be re-compiled from sources. 32 3320200816: 34 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 35 been upgraded to 11.0.0. Please see the 20141231 entry below for 36 information about prerequisites and upgrading, if you are not already 37 using clang 3.5.0 or higher. 38 3920200810: 40 r364092 modified the internal ABI used between the kernel NFS 41 modules. As such, all of these modules need to be rebuilt 42 from sources, so a version bump was done. 43 4420200807: 45 Makefile.inc has been updated to work around the issue documented in 46 20200729. It was a case where the optimization of using symbolic links 47 to point to binaries created a situation where we'd run new binaries 48 with old libraries starting midway through the installworld process. 49 5020200729: 51 r363679 has redefined some undefined behavior in regcomp(3); notably, 52 extraneous escapes of most ordinary characters will no longer be 53 accepted. An exp-run has identified all of the problems with this in 54 ports, but other non-ports software may need extra escapes removed to 55 continue to function. 56 57 Because of this change, installworld may encounter the following error 58 from rtld: Undefined symbol "regcomp@FBSD_1.6" -- It is imperative that 59 you do not halt installworld. Instead, let it run to completion (whether 60 successful or not) and run installworld once more. 61 6220200627: 63 A new implementation of bc and dc has been imorted in r362681. This 64 implementation corrects non-conformant behavior of the previous bc 65 and adds GNU bc compatible options. It offers a number of extensions, 66 is much faster on large values, and has support for message catalogs 67 (a number of languages are already supported, contributions of further 68 languages welcome). The option WITHOUT_GH_BC can be used to build the 69 world with the previous versions of bc and dc. 70 7120200625: 72 r362639 changed the internal API used between the NFS kernel modules. 73 As such, they all need to be rebuilt from sources. 74 7520200613: 76 r362158 changed the arguments for VFS_CHECKEXP(). As such, any 77 out of tree file systems need to be modified and rebuilt. 78 Also, any file systems that are modules must be rebuilt. 79 8020200604: 81 read(2) of a directory fd is now rejected by default. root may 82 re-enable it for system root only on non-ZFS filesystems with the 83 security.bsd.allow_read_dir sysctl(8) MIB if 84 security.bsd.suser_enabled=1. 85 86 It may be advised to setup aliases for grep to default to `-d skip` if 87 commonly non-recursively grepping a list that includes directories and 88 the potential for the resulting stderr output is not tolerable. Example 89 aliases are now installed, commented out, in /root/.cshrc and 90 /root/.shrc. 91 9220200523: 93 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 94 been upgraded to 10.0.1. Please see the 20141231 entry below for 95 information about prerequisites and upgrading, if you are not already 96 using clang 3.5.0 or higher. 97 9820200512: 99 Support for obsolete compilers has been removed from the build system. 100 Clang 6 and GCC 6.4 are the minimum supported versions. 101 10220200424: 103 closefrom(2) has been moved under COMPAT12, and replaced in libc with a 104 stub that calls close_range(2). If using a custom kernel configuration, 105 you may want to ensure that the COMPAT_FREEBSD12 option is included, as 106 a slightly older -CURRENT userland and older FreeBSD userlands may not 107 be functional without closefrom(2). 108 10920200414: 110 Upstream DTS from Linux 5.6 was merged and they now have the SID 111 and THS (Secure ID controller and THermal Sensor) node present. 112 The DTB overlays have now been removed from the tree for the H3/H5 and 113 A64 SoCs and the aw_sid and aw_thermal driver have been updated to 114 deal with upstream DTS. If you are using those overlays you need to 115 remove them from loader.conf and update the DTBs on the FAT partition. 116 11720200310: 118 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 119 been upgraded to 10.0.0. Please see the 20141231 entry below for 120 information about prerequisites and upgrading, if you are not already 121 using clang 3.5.0 or higher. 122 12320200309: 124 The amd(8) automount daemon has been removed from the source tree. 125 As of FreeBSD 10.1 autofs(5) is the preferred tool for automounting. 126 amd is still available in the sysutils/am-utils port. 127 12820200301: 129 Removed brooktree driver (bktr.4) from the tree. 130 13120200229: 132 The WITH_GPL_DTC option has been removed. The BSD-licenced device tree 133 compiler in usr.bin/dtc is used on all architectures which use dtc, and 134 the GPL dtc is available (if needed) from the sysutils/dtc port. 135 13620200229: 137 The WITHOUT_LLVM_LIBUNWIND option has been removed. LLVM's libunwind 138 is used by all supported CPU architectures. 139 14020200229: 141 GCC 4.2.1 has been removed from the tree. The WITH_GCC, 142 WITH_GCC_BOOTSTRAP, and WITH_GNUCXX options are no longer available. 143 Users who wish to build FreeBSD with GCC must use the external toolchain 144 ports or packages. 145 14620200220: 147 ncurses has been updated to a newer version (6.2-20200215). Given the ABI 148 has changed, users will have to rebuild all the ports that are linked to 149 ncurses. 150 15120200217: 152 The size of struct vnet and the magic cookie have changed. 153 Users need to recompile libkvm and all modules using VIMAGE 154 together with their new kernel. 155 15620200212: 157 Defining the long deprecated NO_CTF, NO_DEBUG_FILES, NO_INSTALLLIB, 158 NO_MAN, NO_PROFILE, and NO_WARNS variables is now an error. Update 159 your Makefiles and scripts to define MK_<var>=no instead as required. 160 161 One exception to this is that program or library Makefiles should 162 define MAN to empty rather than setting MK_MAN=no. 163 16420200108: 165 Clang/LLVM is now the default compiler and LLD the default 166 linker for riscv64. 167 16820200107: 169 make universe no longer uses GCC 4.2.1 on any architectures. 170 Architectures not supported by in-tree Clang/LLVM require an 171 external toolchain package. 172 17320200104: 174 GCC 4.2.1 is now not built by default, as part of the GCC 4.2.1 175 retirement plan. Specifically, the GCC, GCC_BOOTSTRAP, and GNUCXX 176 options default to off for all supported CPU architectures. As a 177 short-term transition aid they may be enabled via WITH_* options. 178 GCC 4.2.1 is expected to be removed from the tree on 2020-03-31. 179 18020200102: 181 Support for armv5 has been disconnected and is being removed. The 182 machine combination MACHINE=arm MACHINE_ARCH=arm is no longer valid. 183 You must now use a MACHINE_ARCH of armv6 or armv7. The default 184 MACHINE_ARCH for MACHINE=arm is now armv7. 185 18620191226: 187 Clang/LLVM is now the default compiler for all powerpc architectures. 188 LLD is now the default linker for powerpc64. The change for powerpc64 189 also includes a change to the ELFv2 ABI, incompatible with the existing 190 ABI. 191 19220191226: 193 Kernel-loadable random(4) modules are no longer unloadable. 194 19520191222: 196 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 197 been upgraded to 9.0.1. Please see the 20141231 entry below for 198 information about prerequisites and upgrading, if you are not already 199 using clang 3.5.0 or higher. 200 20120191212: 202 r355677 has modified the internal interface used between the 203 NFS modules in the kernel. As such, they must all be upgraded 204 simultaneously. I will do a version bump for this. 205 20620191205: 207 The root certificates of the Mozilla CA Certificate Store have been 208 imported into the base system and can be managed with the certctl(8) 209 utility. If you have installed the security/ca_root_nss port or package 210 with the ETCSYMLINK option (the default), be advised that there may be 211 differences between those included in the port and those included in 212 base due to differences in nss branch used as well as general update 213 frequency. Note also that certctl(8) cannot manage certs in the 214 format used by the security/ca_root_nss port. 215 21620191120: 217 The amd(8) automount daemon has been disabled by default, and will be 218 removed in the future. As of FreeBSD 10.1 the autofs(5) is available 219 for automounting. 220 22120191107: 222 The nctgpio and wbwd drivers have been moved to the superio bus. 223 If you have one of these drivers in a kernel configuration, then 224 you should add device superio to it. If you use one of these drivers 225 as a module and you compile a custom set of modules, then you should 226 add superio to the set. 227 22820191021: 229 KPIs for network drivers to access interface addresses have changed. 230 Users need to recompile NIC driver modules together with kernel. 231 23220191021: 233 The net.link.tap.user_open sysctl no longer prevents user opening of 234 already created /dev/tapNN devices. Access is still controlled by 235 node permissions, just like tun devices. The net.link.tap.user_open 236 sysctl is now used only to allow users to perform devfs cloning of 237 tap devices, and the subsequent open may not succeed if the user is not 238 in the appropriate group. This sysctl may be deprecated/removed 239 completely in the future. 240 24120191009: 242 mips, powerpc, and sparc64 are no longer built as part of 243 universe / tinderbox unless MAKE_OBSOLETE_GCC is defined. If 244 not defined, mips, powerpc, and sparc64 builds will look for 245 the xtoolchain binaries and if installed use them for universe 246 builds. As llvm 9.0 becomes vetted for these architectures, they 247 will be removed from the list. 248 24920191009: 250 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 251 been upgraded to 9.0.0. Please see the 20141231 entry below for 252 information about prerequisites and upgrading, if you are not already 253 using clang 3.5.0 or higher. 254 25520191003: 256 The hpt27xx, hptmv, hptnr, and hptrr drivers have been removed from 257 GENERIC. They are available as modules and can be loaded by adding 258 to /boot/loader.conf hpt27xx_load="YES", hptmv_load="YES", 259 hptnr_load="YES", or hptrr_load="YES", respectively. 260 26120190913: 262 ntpd no longer by default locks its pages in memory, allowing them 263 to be paged out by the kernel. Use rlimit memlock to restore 264 historic BSD behaviour. For example, add "rlimit memlock 32" 265 to ntp.conf to lock up to 32 MB of ntpd address space in memory. 266 26720190823: 268 Several of ping6's options have been renamed for better consistency 269 with ping. If you use any of -ARWXaghmrtwx, you must update your 270 scripts. See ping6(8) for details. 271 27220190727: 273 The vfs.fusefs.sync_unmount and vfs.fusefs.init_backgrounded sysctls 274 and the "-o sync_unmount" and "-o init_backgrounded" mount options have 275 been removed from mount_fusefs(8). You can safely remove them from 276 your scripts, because they had no effect. 277 278 The vfs.fusefs.fix_broken_io, vfs.fusefs.sync_resize, 279 vfs.fusefs.refresh_size, vfs.fusefs.mmap_enable, 280 vfs.fusefs.reclaim_revoked, and vfs.fusefs.data_cache_invalidate 281 sysctls have been removed. If you felt the need to set any of them to 282 a non-default value, please tell asomers@FreeBSD.org why. 283 28420190713: 285 Default permissions on the /var/account/acct file (and copies of it 286 rotated by periodic daily scripts) are changed from 0644 to 0640 287 because the file contains sensitive information that should not be 288 world-readable. If the /var/account directory must be created by 289 rc.d/accounting, the mode used is now 0750. Admins who use the 290 accounting feature are encouraged to change the mode of an existing 291 /var/account directory to 0750 or 0700. 292 29320190620: 294 Entropy collection and the /dev/random device are no longer optional 295 components. The "device random" option has been removed. 296 Implementations of distilling algorithms can still be made loadable 297 with "options RANDOM_LOADABLE" (e.g., random_fortuna.ko). 298 29920190612: 300 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 301 been upgraded to 8.0.1. Please see the 20141231 entry below for 302 information about prerequisites and upgrading, if you are not already 303 using clang 3.5.0 or higher. 304 30520190608: 306 A fix was applied to i386 kernel modules to avoid panics with 307 dpcpu or vnet. Users need to recompile i386 kernel modules 308 having pcpu or vnet sections or they will refuse to load. 309 31020190513: 311 User-wired pages now have their own counter, 312 vm.stats.vm.v_user_wire_count. The vm.max_wired sysctl was renamed 313 to vm.max_user_wired and changed from an unsigned int to an unsigned 314 long. bhyve VMs wired with the -S are now subject to the user 315 wiring limit; the vm.max_user_wired sysctl may need to be tuned to 316 avoid running into the limit. 317 31820190507: 319 The IPSEC option has been removed from GENERIC. Users requiring 320 ipsec(4) must now load the ipsec(4) kernel module. 321 32220190507: 323 The tap(4) driver has been folded into tun(4), and the module has been 324 renamed to tuntap. You should update any kld_list="if_tap" or 325 kld_list="if_tun" entries in /etc/rc.conf, if_tap_load="YES" or 326 if_tun_load="YES" entries in /boot/loader.conf to load the if_tuntap 327 module instead, and "device tap" or "device tun" entries in kernel 328 config files to select the tuntap device instead. 329 33020190418: 331 The following knobs have been added related to tradeoffs between 332 safe use of the random device and availability in the absence of 333 entropy: 334 335 kern.random.initial_seeding.bypass_before_seeding: tunable; set 336 non-zero to bypass the random device prior to seeding, or zero to 337 block random requests until the random device is initially seeded. 338 For now, set to 1 (unsafe) by default to restore pre-r346250 boot 339 availability properties. 340 341 kern.random.initial_seeding.read_random_bypassed_before_seeding: 342 read-only diagnostic sysctl that is set when bypass is enabled and 343 read_random(9) is bypassed, to enable programmatic handling of this 344 initial condition, if desired. 345 346 kern.random.initial_seeding.arc4random_bypassed_before_seeding: 347 Similar to the above, but for for arc4random(9) initial seeding. 348 349 kern.random.initial_seeding.disable_bypass_warnings: tunable; set 350 non-zero to disable warnings in dmesg when the same conditions are 351 met as for the diagnostic sysctls above. Defaults to zero, i.e., 352 produce warnings in dmesg when the conditions are met. 353 35420190416: 355 The loadable random module KPI has changed; the random_infra_init() 356 routine now requires a 3rd function pointer for a bool (*)(void) 357 method that returns true if the random device is seeded (and 358 therefore unblocked). 359 36020190404: 361 r345895 reverts r320698. This implies that an nfsuserd(8) daemon 362 built from head sources between r320757 (July 6, 2017) and 363 r338192 (Aug. 22, 2018) will not work unless the "-use-udpsock" 364 is added to the command line. 365 nfsuserd daemons built from head sources that are post-r338192 are 366 not affected and should continue to work. 367 36820190320: 369 The fuse(4) module has been renamed to fusefs(4) for consistency with 370 other filesystems. You should update any kld_load="fuse" entries in 371 /etc/rc.conf, fuse_load="YES" entries in /boot/loader.conf, and 372 "options FUSE" entries in kernel config files. 373 37420190304: 375 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 376 8.0.0. Please see the 20141231 entry below for information about 377 prerequisites and upgrading, if you are not already using clang 3.5.0 378 or higher. 379 38020190226: 381 geom_uzip(4) depends on the new module xz. If geom_uzip is statically 382 compiled into your custom kernel, add 'device xz' statement to the 383 kernel config. 384 38520190219: 386 drm and drm2 have been removed from the tree. Please see 387 https://wiki.freebsd.org/Graphics for the latest information on 388 migrating to the drm ports. 389 39020190131: 391 Iflib is no longer unconditionally compiled into the kernel. Drivers 392 using iflib and statically compiled into the kernel, now require 393 the 'device iflib' config option. For the same drivers loaded as 394 modules on kernels not having 'device iflib', the iflib.ko module 395 is loaded automatically. 396 39720190125: 398 The IEEE80211_AMPDU_AGE and AH_SUPPORT_AR5416 kernel configuration 399 options no longer exist since r343219 and r343427 respectively; 400 nothing uses them, so they should be just removed from custom 401 kernel config files. 402 40320181230: 404 r342635 changes the way efibootmgr(8) works by requiring users to add 405 the -b (bootnum) parameter for commands where the bootnum was previously 406 specified with each option. For example 'efibootmgr -B 0001' is now 407 'efibootmgr -B -b 0001'. 408 40920181220: 410 r342286 modifies the NFSv4 server so that it obeys vfs.nfsd.nfs_privport 411 in the same as it is applied to NFSv2 and 3. This implies that NFSv4 412 servers that have vfs.nfsd.nfs_privport set will only allow mounts 413 from clients using a reserved port#. Since both the FreeBSD and Linux 414 NFSv4 clients use reserved port#s by default, this should not affect 415 most NFSv4 mounts. 416 41720181219: 418 The XLP config has been removed. We can't support 64-bit atomics in this 419 kernel because it is running in 32-bit mode. XLP users must transition 420 to running a 64-bit kernel (XLP64 or XLPN32). 421 422 The mips GXEMUL support has been removed from FreeBSD. MALTA* + qemu is 423 the preferred emulator today and we don't need two different ones. 424 425 The old sibyte / swarm / Broadcom BCM1250 support has been 426 removed from the mips port. 427 42820181211: 429 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 430 7.0.1. Please see the 20141231 entry below for information about 431 prerequisites and upgrading, if you are not already using clang 3.5.0 432 or higher. 433 43420181211: 435 Remove the timed and netdate programs from the base tree. Setting 436 the time with these daemons has been obsolete for over a decade. 437 43820181126: 439 On amd64, arm64 and armv7 (architectures that install LLVM's ld.lld 440 linker as /usr/bin/ld) GNU ld is no longer installed as ld.bfd, as 441 it produces broken binaries when ifuncs are in use. Users needing 442 GNU ld should install the binutils port or package. 443 44420181123: 445 The BSD crtbegin and crtend code has been enabled by default. It has 446 had extensive testing on amd64, arm64, and i386. It can be disabled 447 by building a world with -DWITHOUT_BSD_CRTBEGIN. 448 44920181115: 450 The set of CTM commands (ctm, ctm_smail, ctm_rmail, ctm_dequeue) 451 has been converted to a port (misc/ctm) and will be removed from 452 FreeBSD-13. It is available as a package (ctm) for all supported 453 FreeBSD versions. 454 45520181110: 456 The default newsyslog.conf(5) file has been changed to only include 457 files in /etc/newsyslog.conf.d/ and /usr/local/etc/newsyslog.conf.d/ if 458 the filenames end in '.conf' and do not begin with a '.'. 459 460 You should check the configuration files in these two directories match 461 this naming convention. You can verify which configuration files are 462 being included using the command: 463 $ newsyslog -Nrv 464 46520181015: 466 Ports for the DRM modules have been simplified. Now, amd64 users should 467 just install the drm-kmod port. All others should install 468 drm-legacy-kmod. 469 470 Graphics hardware that's newer than about 2010 usually works with 471 drm-kmod. For hardware older than 2013, however, some users will need 472 to use drm-legacy-kmod if drm-kmod doesn't work for them. Hardware older 473 than 2008 usually only works in drm-legacy-kmod. The graphics team can 474 only commit to hardware made since 2013 due to the complexity of the 475 market and difficulty to test all the older cards effectively. If you 476 have hardware supported by drm-kmod, you are strongly encouraged to use 477 that as you will get better support. 478 479 Other than KPI chasing, drm-legacy-kmod will not be updated. As outlined 480 elsewhere, the drm and drm2 modules will be eliminated from the src base 481 soon (with a limited exception for arm). Please update to the package 482 asap and report any issues to x11@freebsd.org. 483 484 Generally, anybody using the drm*-kmod packages should add 485 WITHOUT_DRM_MODULE=t and WITHOUT_DRM2_MODULE=t to avoid nasty 486 cross-threading surprises, especially with automatic driver 487 loading from X11 startup. These will become the defaults in 13-current 488 shortly. 489 49020181012: 491 The ixlv(4) driver has been renamed to iavf(4). As a consequence, 492 custom kernel and module loading configuration files must be updated 493 accordingly. Moreover, interfaces previous presented as ixlvN to the 494 system are now exposed as iavfN and network configuration files must 495 be adjusted as necessary. 496 49720181009: 498 OpenSSL has been updated to version 1.1.1. This update included 499 additional various API changes throughout the base system. It is 500 important to rebuild third-party software after upgrading. The value 501 of __FreeBSD_version has been bumped accordingly. 502 50320181006: 504 The legacy DRM modules and drivers have now been added to the loader's 505 module blacklist, in favor of loading them with kld_list in rc.conf(5). 506 The module blacklist may be overridden with the loader.conf(5) 507 'module_blacklist' variable, but loading them via rc.conf(5) is strongly 508 encouraged. 509 51020181002: 511 The cam(4) based nda(4) driver will be used over nvd(4) by default on 512 powerpc64. You may set 'options NVME_USE_NVD=1' in your kernel conf or 513 loader tunable 'hw.nvme.use_nvd=1' if you wish to use the existing 514 driver. Make sure to edit /boot/etc/kboot.conf and fstab to use the 515 nda device name. 516 51720180913: 518 Reproducible build mode is now on by default, in preparation for 519 FreeBSD 12.0. This eliminates build metadata such as the user, 520 host, and time from the kernel (and uname), unless the working tree 521 corresponds to a modified checkout from a version control system. 522 The previous behavior can be obtained by setting the /etc/src.conf 523 knob WITHOUT_REPRODUCIBLE_BUILD. 524 52520180826: 526 The Yarrow CSPRNG has been removed from the kernel as it has not been 527 supported by its designers since at least 2003. Fortuna has been the 528 default since FreeBSD-11. 529 53020180822: 531 devctl freeze/thaw have gone into the tree, the rc scripts have been 532 updated to use them and devmatch has been changed. You should update 533 kernel, userland and rc scripts all at the same time. 534 53520180818: 536 The default interpreter has been switched from 4th to Lua. 537 LOADER_DEFAULT_INTERP, documented in build(7), will override the default 538 interpreter. If you have custom FORTH code you will need to set 539 LOADER_DEFAULT_INTERP=4th (valid values are 4th, lua or simp) in 540 src.conf for the build. This will create default hard links between 541 loader and loader_4th instead of loader and loader_lua, the new default. 542 If you are using UEFI it will create the proper hard link to loader.efi. 543 544 bhyve uses userboot.so. It remains 4th-only until some issues are solved 545 regarding coexisting with multiple versions of FreeBSD are resolved. 546 54720180815: 548 ls(1) now respects the COLORTERM environment variable used in other 549 systems and software to indicate that a colored terminal is both 550 supported and desired. If ls(1) is suddenly emitting colors, they may 551 be disabled again by either removing the unwanted COLORTERM from your 552 environment, or using `ls --color=never`. The ls(1) specific CLICOLOR 553 may not be observed in a future release. 554 55520180808: 556 The default pager for most commands has been changed to "less". To 557 restore the old behavior, set PAGER="more" and MANPAGER="more -s" in 558 your environment. 559 56020180731: 561 The jedec_ts(4) driver has been removed. A superset of its functionality 562 is available in the jedec_dimm(4) driver, and the manpage for that 563 driver includes migration instructions. If you have "device jedec_ts" 564 in your kernel configuration file, it must be removed. 565 56620180730: 567 amd64/GENERIC now has EFI runtime services, EFIRT, enabled by default. 568 This should have no effect if the kernel is booted via BIOS/legacy boot. 569 EFIRT may be disabled via a loader tunable, efi.rt.disabled, if a system 570 has a buggy firmware that prevents a successful boot due to use of 571 runtime services. 572 57320180727: 574 Atmel AT91RM9200 and AT91SAM9, Cavium CNS 11xx and XScale 575 support has been removed from the tree. These ports were 576 obsolete and/or known to be broken for many years. 577 57820180723: 579 loader.efi has been augmented to participate more fully in the 580 UEFI boot manager protocol. loader.efi will now look at the 581 BootXXXX environment variable to determine if a specific kernel 582 or root partition was specified. XXXX is derived from BootCurrent. 583 efibootmgr(8) manages these standard UEFI variables. 584 58520180720: 586 zfsloader's functionality has now been folded into loader. 587 zfsloader is no longer necessary once you've updated your 588 boot blocks. For a transition period, we will install a 589 hardlink for zfsloader to loader to allow a smooth transition 590 until the boot blocks can be updated (hard link because old 591 zfs boot blocks don't understand symlinks). 592 59320180719: 594 ARM64 now have efifb support, if you want to have serial console 595 on your arm64 board when an screen is connected and the bootloader 596 setup a frame buffer for us to use, just add : 597 boot_serial=YES 598 boot_multicons=YES 599 in /boot/loader.conf 600 For Raspberry Pi 3 (RPI) users, this is needed even if you don't have 601 an screen connected as the firmware will setup a frame buffer are that 602 u-boot will expose as an EFI frame buffer. 603 60420180719: 605 New uid:gid added, ntpd:ntpd (123:123). Be sure to run mergemaster 606 or take steps to update /etc/passwd before doing installworld on 607 existing systems. Do not skip the "mergemaster -Fp" step before 608 installworld, as described in the update procedures near the bottom 609 of this document. Also, rc.d/ntpd now starts ntpd(8) as user ntpd 610 if the new mac_ntpd(4) policy is available, unless ntpd_flags or 611 the ntp config file contain options that change file/dir locations. 612 When such options (e.g., "statsdir" or "crypto") are used, ntpd can 613 still be run as non-root by setting ntpd_user=ntpd in rc.conf, after 614 taking steps to ensure that all required files/dirs are accessible 615 by the ntpd user. 616 61720180717: 618 Big endian arm support has been removed. 619 62020180711: 621 The static environment setup in kernel configs is no longer mutually 622 exclusive with the loader(8) environment by default. In order to 623 restore the previous default behavior of disabling the loader(8) 624 environment if a static environment is present, you must specify 625 loader_env.disabled=1 in the static environment. 626 62720180705: 628 The ABI of syscalls used by management tools like sockstat and 629 netstat has been broken to allow 32-bit binaries to work on 630 64-bit kernels without modification. These programs will need 631 to match the kernel in order to function. External programs may 632 require minor modifications to accommodate a change of type in 633 structures from pointers to 64-bit virtual addresses. 634 63520180702: 636 On i386 and amd64 atomics are now inlined. Out of tree modules using 637 atomics will need to be rebuilt. 638 63920180701: 640 The '%I' format in the kern.corefile sysctl limits the number of 641 core files that a process can generate to the number stored in the 642 debug.ncores sysctl. The '%I' format is replaced by the single digit 643 index. Previously, if all indexes were taken the kernel would overwrite 644 only a core file with the highest index in a filename. 645 Currently the system will create a new core file if there is a free 646 index or if all slots are taken it will overwrite the oldest one. 647 64820180630: 649 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 650 6.0.1. Please see the 20141231 entry below for information about 651 prerequisites and upgrading, if you are not already using clang 3.5.0 652 or higher. 653 65420180628: 655 r335753 introduced a new quoting method. However, etc/devd/devmatch.conf 656 needed to be changed to work with it. This change was made with r335763 657 and requires a mergemaster / etcupdate / etc to update the installed 658 file. 659 66020180612: 661 r334930 changed the interface between the NFS modules, so they all 662 need to be rebuilt. r335018 did a __FreeBSD_version bump for this. 663 66420180530: 665 As of r334391 lld is the default amd64 system linker; it is installed 666 as /usr/bin/ld. Kernel build workarounds (see 20180510 entry) are no 667 longer necessary. 668 66920180530: 670 The kernel / userland interface for devinfo changed, so you'll 671 need a new kernel and userland as a pair for it to work (rebuilding 672 lib/libdevinfo is all that's required). devinfo and devmatch will 673 not work, but everything else will when there's a mismatch. 674 67520180523: 676 The on-disk format for hwpmc callchain records has changed to include 677 threadid corresponding to a given record. This changes the field offsets 678 and thus requires that libpmcstat be rebuilt before using a kernel 679 later than r334108. 680 68120180517: 682 The vxge(4) driver has been removed. This driver was introduced into 683 HEAD one week before the Exar left the Ethernet market and is not 684 known to be used. If you have device vxge in your kernel config file 685 it must be removed. 686 68720180510: 688 The amd64 kernel now requires a ld that supports ifunc to produce a 689 working kernel, either lld or a newer binutils. lld is built by default 690 on amd64, and the 'buildkernel' target uses it automatically. However, 691 it is not the default linker, so building the kernel the traditional 692 way requires LD=ld.lld on the command line (or LD=/usr/local/bin/ld for 693 binutils port/package). lld will soon be default, and this requirement 694 will go away. 695 696 NOTE: As of r334391 lld is the default system linker on amd64, and no 697 workaround is necessary. 698 69920180508: 700 The nxge(4) driver has been removed. This driver was for PCI-X 10g 701 cards made by s2io/Neterion. The company was acquired by Exar and 702 no longer sells or supports Ethernet products. If you have device 703 nxge in your kernel config file it must be removed. 704 70520180504: 706 The tz database (tzdb) has been updated to 2018e. This version more 707 correctly models time stamps in time zones with negative DST such as 708 Europe/Dublin (from 1971 on), Europe/Prague (1946/7), and 709 Africa/Windhoek (1994/2017). This does not affect the UT offsets, only 710 time zone abbreviations and the tm_isdst flag. 711 71220180502: 713 The ixgb(4) driver has been removed. This driver was for an early and 714 uncommon legacy PCI 10GbE for a single ASIC, Intel 82597EX. Intel 715 quickly shifted to the long lived ixgbe family. If you have device 716 ixgb in your kernel config file it must be removed. 717 71820180501: 719 The lmc(4) driver has been removed. This was a WAN interface 720 card that was already reportedly rare in 2003, and had an ambiguous 721 license. If you have device lmc in your kernel config file it must 722 be removed. 723 72420180413: 725 Support for Arcnet networks has been removed. If you have device 726 arcnet or device cm in your kernel config file they must be 727 removed. 728 72920180411: 730 Support for FDDI networks has been removed. If you have device 731 fddi or device fpa in your kernel config file they must be 732 removed. 733 73420180406: 735 In addition to supporting RFC 3164 formatted messages, the 736 syslogd(8) service is now capable of parsing RFC 5424 formatted 737 log messages. The main benefit of using RFC 5424 is that clients 738 may now send log messages with timestamps containing year numbers, 739 microseconds and time zone offsets. 740 741 Similarly, the syslog(3) C library function has been altered to 742 send RFC 5424 formatted messages to the local system logging 743 daemon. On systems using syslogd(8), this change should have no 744 negative impact, as long as syslogd(8) and the C library are 745 updated at the same time. On systems using a different system 746 logging daemon, it may be necessary to make configuration 747 adjustments, depending on the software used. 748 749 When using syslog-ng, add the 'syslog-protocol' flag to local 750 input sources to enable parsing of RFC 5424 formatted messages: 751 752 source src { 753 unix-dgram("/var/run/log" flags(syslog-protocol)); 754 } 755 756 When using rsyslog, disable the 'SysSock.UseSpecialParser' option 757 of the 'imuxsock' module to let messages be processed by the 758 regular RFC 3164/5424 parsing pipeline: 759 760 module(load="imuxsock" SysSock.UseSpecialParser="off") 761 762 Do note that these changes only affect communication between local 763 applications and syslogd(8). The format that syslogd(8) uses to 764 store messages on disk or forward messages to other systems 765 remains unchanged. syslogd(8) still uses RFC 3164 for these 766 purposes. Options to customize this behaviour will be added in the 767 future. Utilities that process log files stored in /var/log are 768 thus expected to continue to function as before. 769 770 __FreeBSD_version has been incremented to 1200061 to denote this 771 change. 772 77320180328: 774 Support for token ring networks has been removed. If you 775 have "device token" in your kernel config you should remove 776 it. No device drivers supported token ring. 777 77820180323: 779 makefs was modified to be able to tag ISO9660 El Torito boot catalog 780 entries as EFI instead of overloading the i386 tag as done previously. 781 The amd64 mkisoimages.sh script used to build amd64 ISO images for 782 release was updated to use this. This may mean that makefs must be 783 updated before "make cdrom" can be run in the release directory. This 784 should be as simple as: 785 786 $ cd $SRCDIR/usr.sbin/makefs 787 $ make depend all install 788 78920180212: 790 FreeBSD boot loader enhanced with Lua scripting. It's purely opt-in for 791 now by building WITH_LOADER_LUA and WITHOUT_FORTH in /etc/src.conf. 792 Co-existence for the transition period will come shortly. Booting is a 793 complex environment and test coverage for Lua-enabled loaders has been 794 thin, so it would be prudent to assume it might not work and make 795 provisions for backup boot methods. 796 79720180211: 798 devmatch functionality has been turned on in devd. It will automatically 799 load drivers for unattached devices. This may cause unexpected drivers 800 to be loaded. Please report any problems to current@ and 801 imp@freebsd.org. 802 80320180114: 804 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 805 6.0.0. Please see the 20141231 entry below for information about 806 prerequisites and upgrading, if you are not already using clang 3.5.0 807 or higher. 808 80920180110: 810 LLVM's lld linker is now used as the FreeBSD/amd64 bootstrap linker. 811 This means it is used to link the kernel and userland libraries and 812 executables, but is not yet installed as /usr/bin/ld by default. 813 814 To revert to ld.bfd as the bootstrap linker, in /etc/src.conf set 815 WITHOUT_LLD_BOOTSTRAP=yes 816 81720180110: 818 On i386, pmtimer has been removed. Its functionality has been folded 819 into apm. It was a no-op on ACPI in current for a while now (but was 820 still needed on i386 in FreeBSD 11 and earlier). Users may need to 821 remove it from kernel config files. 822 82320180104: 824 The use of RSS hash from the network card aka flowid has been 825 disabled by default for lagg(4) as it's currently incompatible with 826 the lacp and loadbalance protocols. 827 828 This can be re-enabled by setting the following in loader.conf: 829 net.link.lagg.default_use_flowid="1" 830 83120180102: 832 The SW_WATCHDOG option is no longer necessary to enable the 833 hardclock-based software watchdog if no hardware watchdog is 834 configured. As before, SW_WATCHDOG will cause the software 835 watchdog to be enabled even if a hardware watchdog is configured. 836 83720171215: 838 r326887 fixes the issue described in the 20171214 UPDATING entry. 839 r326888 flips the switch back to building GELI support always. 840 84120171214: 842 r362593 broke ZFS + GELI support for reasons unknown. However, 843 it also broke ZFS support generally, so GELI has been turned off 844 by default as the lesser evil in r326857. If you boot off ZFS and/or 845 GELI, it might not be a good time to update. 846 84720171125: 848 PowerPC users must update loader(8) by rebuilding world before 849 installing a new kernel, as the protocol connecting them has 850 changed. Without the update, loader metadata will not be passed 851 successfully to the kernel and users will have to enter their 852 root partition at the kernel mountroot prompt to continue booting. 853 Newer versions of loader can boot old kernels without issue. 854 85520171110: 856 The LOADER_FIREWIRE_SUPPORT build variable as been renamed to 857 WITH/OUT_LOADER_FIREWIRE. LOADER_{NO_,}GELI_SUPPORT has been renamed 858 to WITH/OUT_LOADER_GELI. 859 86020171106: 861 The naive and non-compliant support of posix_fallocate(2) in ZFS 862 has been removed as of r325320. The system call now returns EINVAL 863 when used on a ZFS file. Although the new behavior complies with the 864 standard, some consumers are not prepared to cope with it. 865 One known victim is lld prior to r325420. 866 86720171102: 868 Building in a FreeBSD src checkout will automatically create object 869 directories now rather than store files in the current directory if 870 'make obj' was not ran. Calling 'make obj' is no longer necessary. 871 This feature can be disabled by setting WITHOUT_AUTO_OBJ=yes in 872 /etc/src-env.conf (not /etc/src.conf), or passing the option in the 873 environment. 874 87520171101: 876 The default MAKEOBJDIR has changed from /usr/obj/<srcdir> for native 877 builds, and /usr/obj/<arch>/<srcdir> for cross-builds, to a unified 878 /usr/obj/<srcdir>/<arch>. This behavior can be changed to the old 879 format by setting WITHOUT_UNIFIED_OBJDIR=yes in /etc/src-env.conf, 880 the environment, or with -DWITHOUT_UNIFIED_OBJDIR when building. 881 The UNIFIED_OBJDIR option is a transitional feature that will be 882 removed for 12.0 release; please migrate to the new format for any 883 tools by looking up the OBJDIR used by 'make -V .OBJDIR' means rather 884 than hardcoding paths. 885 88620171028: 887 The native-xtools target no longer installs the files by default to the 888 OBJDIR. Use the native-xtools-install target with a DESTDIR to install 889 to ${DESTDIR}/${NXTP} where NXTP defaults to /nxb-bin. 890 89120171021: 892 As part of the boot loader infrastructure cleanup, LOADER_*_SUPPORT 893 options are changing from controlling the build if defined / undefined 894 to controlling the build with explicit 'yes' or 'no' values. They will 895 shift to WITH/WITHOUT options to match other options in the system. 896 89720171010: 898 libstand has turned into a private library for sys/boot use only. 899 It is no longer supported as a public interface outside of sys/boot. 900 90120171005: 902 The arm port has split armv6 into armv6 and armv7. armv7 is now 903 a valid TARGET_ARCH/MACHINE_ARCH setting. If you have an armv7 system 904 and are running a kernel from before r324363, you will need to add 905 MACHINE_ARCH=armv7 to 'make buildworld' to do a native build. 906 90720171003: 908 When building multiple kernels using KERNCONF, non-existent KERNCONF 909 files will produce an error and buildkernel will fail. Previously 910 missing KERNCONF files silently failed giving no indication as to 911 why, only to subsequently discover during installkernel that the 912 desired kernel was never built in the first place. 913 91420170912: 915 The default serial number format for CTL LUNs has changed. This will 916 affect users who use /dev/diskid/* device nodes, or whose FibreChannel 917 or iSCSI clients care about their LUNs' serial numbers. Users who 918 require serial number stability should hardcode serial numbers in 919 /etc/ctl.conf . 920 92120170912: 922 For 32-bit arm compiled for hard-float support, soft-floating point 923 binaries now always get their shared libraries from 924 LD_SOFT_LIBRARY_PATH (in the past, this was only used if 925 /usr/libsoft also existed). Only users with a hard-float ld.so, but 926 soft-float everything else should be affected. 927 92820170826: 929 The geli password typed at boot is now hidden. To restore the previous 930 behavior, see geli(8) for configuration options. 931 93220170825: 933 Move PMTUD blackhole counters to TCPSTATS and remove them from bare 934 sysctl values. Minor nit, but requires a rebuild of both world/kernel 935 to complete. 936 93720170814: 938 "make check" behavior (made in ^/head@r295380) has been changed to 939 execute from a limited sandbox, as opposed to executing from 940 ${TESTSDIR}. 941 942 Behavioral changes: 943 - The "beforecheck" and "aftercheck" targets are now specified. 944 - ${CHECKDIR} (added in commit noted above) has been removed. 945 - Legacy behavior can be enabled by setting 946 WITHOUT_MAKE_CHECK_USE_SANDBOX in src.conf(5) or the environment. 947 948 If the limited sandbox mode is enabled, "make check" will execute 949 "make distribution", then install, execute the tests, and clean up the 950 sandbox if successful. 951 952 The "make distribution" and "make install" targets are typically run as 953 root to set appropriate permissions and ownership at installation time. 954 The end-user should set "WITH_INSTALL_AS_USER" in src.conf(5) or the 955 environment if executing "make check" with limited sandbox mode using 956 an unprivileged user. 957 95820170808: 959 Since the switch to GPT disk labels, fsck for UFS/FFS has been 960 unable to automatically find alternate superblocks. As of r322297, 961 the information needed to find alternate superblocks has been 962 moved to the end of the area reserved for the boot block. 963 Filesystems created with a newfs of this vintage or later 964 will create the recovery information. If you have a filesystem 965 created prior to this change and wish to have a recovery block 966 created for your filesystem, you can do so by running fsck in 967 foreground mode (i.e., do not use the -p or -y options). As it 968 starts, fsck will ask ``SAVE DATA TO FIND ALTERNATE SUPERBLOCKS'' 969 to which you should answer yes. 970 97120170728: 972 As of r321665, an NFSv4 server configuration that services 973 Kerberos mounts or clients that do not support the uid/gid in 974 owner/owner_group string capability, must explicitly enable 975 the nfsuserd daemon by adding nfsuserd_enable="YES" to the 976 machine's /etc/rc.conf file. 977 97820170722: 979 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 5.0.0. 980 Please see the 20141231 entry below for information about prerequisites 981 and upgrading, if you are not already using clang 3.5.0 or higher. 982 98320170701: 984 WITHOUT_RCMDS is now the default. Set WITH_RCMDS if you need the 985 r-commands (rlogin, rsh, etc.) to be built with the base system. 986 98720170625: 988 The FreeBSD/powerpc platform now uses a 64-bit type for time_t. This is 989 a very major ABI incompatible change, so users of FreeBSD/powerpc must 990 be careful when performing source upgrades. It is best to run 991 'make installworld' from an alternate root system, either a live 992 CD/memory stick, or a temporary root partition. Additionally, all ports 993 must be recompiled. powerpc64 is largely unaffected, except in the case 994 of 32-bit compatibility. All 32-bit binaries will be affected. 995 99620170623: 997 Forward compatibility for the "ino64" project have been committed. This 998 will allow most new binaries to run on older kernels in a limited 999 fashion. This prevents many of the common foot-shooting actions in the 1000 upgrade as well as the limited ability to roll back the kernel across 1001 the ino64 upgrade. Complicated use cases may not work properly, though 1002 enough simpler ones work to allow recovery in most situations. 1003 100420170620: 1005 Switch back to the BSDL dtc (Device Tree Compiler). Set WITH_GPL_DTC 1006 if you require the GPL compiler. 1007 100820170618: 1009 The internal ABI used for communication between the NFS kernel modules 1010 was changed by r320085, so __FreeBSD_version was bumped to 1011 ensure all the NFS related modules are updated together. 1012 101320170617: 1014 The ABI of struct event was changed by extending the data 1015 member to 64bit and adding ext fields. For upgrade, same 1016 precautions as for the entry 20170523 "ino64" must be 1017 followed. 1018 101920170531: 1020 The GNU roff toolchain has been removed from base. To render manpages 1021 which are not supported by mandoc(1), man(1) can fallback on GNU roff 1022 from ports (and recommends to install it). 1023 To render roff(7) documents, consider using GNU roff from ports or the 1024 heirloom doctools roff toolchain from ports via pkg install groff or 1025 via pkg install heirloom-doctools. 1026 102720170524: 1028 The ath(4) and ath_hal(4) modules now build piecemeal to allow for 1029 smaller runtime footprint builds. This is useful for embedded systems 1030 which only require one chipset support. 1031 1032 If you load it as a module, make sure this is in /boot/loader.conf: 1033 1034 if_ath_load="YES" 1035 1036 This will load the HAL, all chip/RF backends and if_ath_pci. 1037 If you have if_ath_pci in /boot/loader.conf, ensure it is after 1038 if_ath or it will not load any HAL chipset support. 1039 1040 If you want to selectively load things (eg on ye cheape ARM/MIPS 1041 platforms where RAM is at a premium) you should: 1042 1043 * load ath_hal 1044 * load the chip modules in question 1045 * load ath_rate, ath_dfs 1046 * load ath_main 1047 * load if_ath_pci and/or if_ath_ahb depending upon your particular 1048 bus bind type - this is where probe/attach is done. 1049 1050 For further comments/feedback, poke adrian@ . 1051 105220170523: 1053 The "ino64" 64-bit inode project has been committed, which extends 1054 a number of types to 64 bits. Upgrading in place requires care and 1055 adherence to the documented upgrade procedure. 1056 1057 If using a custom kernel configuration ensure that the 1058 COMPAT_FREEBSD11 option is included (as during the upgrade the 1059 system will be running the ino64 kernel with the existing world). 1060 1061 For the safest in-place upgrade begin by removing previous build 1062 artifacts via "rm -rf /usr/obj/*". Then, carefully follow the full 1063 procedure documented below under the heading "To rebuild everything and 1064 install it on the current system." Specifically, a reboot is required 1065 after installing the new kernel before installing world. While an 1066 installworld normally works by accident from multiuser after rebooting 1067 the proper kernel, there are many cases where this will fail across this 1068 upgrade and installworld from single user is required. 1069 107020170424: 1071 The NATM framework including the en(4), fatm(4), hatm(4), and 1072 patm(4) devices has been removed. Consumers should plan a 1073 migration before the end-of-life date for FreeBSD 11. 1074 107520170420: 1076 GNU diff has been replaced by a BSD licensed diff. Some features of GNU 1077 diff has not been implemented, if those are needed a newer version of 1078 GNU diff is available via the diffutils package under the gdiff name. 1079 108020170413: 1081 As of r316810 for ipfilter, keep frags is no longer assumed when 1082 keep state is specified in a rule. r316810 aligns ipfilter with 1083 documentation in man pages separating keep frags from keep state. 1084 This allows keep state to be specified without forcing keep frags 1085 and allows keep frags to be specified independently of keep state. 1086 To maintain previous behaviour, also specify keep frags with 1087 keep state (as documented in ipf.conf.5). 1088 108920170407: 1090 arm64 builds now use the base system LLD 4.0.0 linker by default, 1091 instead of requiring that the aarch64-binutils port or package be 1092 installed. To continue using aarch64-binutils, set 1093 CROSS_BINUTILS_PREFIX=/usr/local/aarch64-freebsd/bin . 1094 109520170405: 1096 The UDP optimization in entry 20160818 that added the sysctl 1097 net.inet.udp.require_l2_bcast has been reverted. L2 broadcast 1098 packets will no longer be treated as L3 broadcast packets. 1099 110020170331: 1101 Binds and sends to the loopback addresses, IPv6 and IPv4, will now 1102 use any explicitly assigned loopback address available in the jail 1103 instead of using the first assigned address of the jail. 1104 110520170329: 1106 The ctl.ko module no longer implements the iSCSI target frontend: 1107 cfiscsi.ko does instead. 1108 1109 If building cfiscsi.ko as a kernel module, the module can be loaded 1110 via one of the following methods: 1111 - `cfiscsi_load="YES"` in loader.conf(5). 1112 - Add `cfiscsi` to `$kld_list` in rc.conf(5). 1113 - ctladm(8)/ctld(8), when compiled with iSCSI support 1114 (`WITH_ISCSI=yes` in src.conf(5)) 1115 1116 Please see cfiscsi(4) for more details. 1117 111820170316: 1119 The mmcsd.ko module now additionally depends on geom_flashmap.ko. 1120 Also, mmc.ko and mmcsd.ko need to be a matching pair built from the 1121 same source (previously, the dependency of mmcsd.ko on mmc.ko was 1122 missing, but mmcsd.ko now will refuse to load if it is incompatible 1123 with mmc.ko). 1124 112520170315: 1126 The syntax of ipfw(8) named states was changed to avoid ambiguity. 1127 If you have used named states in the firewall rules, you need to modify 1128 them after installworld and before rebooting. Now named states must 1129 be prefixed with colon. 1130 113120170311: 1132 The old drm (sys/dev/drm/) drivers for i915 and radeon have been 1133 removed as the userland we provide cannot use them. The KMS version 1134 (sys/dev/drm2) supports the same hardware. 1135 113620170302: 1137 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 4.0.0. 1138 Please see the 20141231 entry below for information about prerequisites 1139 and upgrading, if you are not already using clang 3.5.0 or higher. 1140 114120170221: 1142 The code that provides support for ZFS .zfs/ directory functionality 1143 has been reimplemented. It's not possible now to create a snapshot 1144 by mkdir under .zfs/snapshot/. That should be the only user visible 1145 change. 1146 114720170216: 1148 EISA bus support has been removed. The WITH_EISA option is no longer 1149 valid. 1150 115120170215: 1152 MCA bus support has been removed. 1153 115420170127: 1155 The WITH_LLD_AS_LD / WITHOUT_LLD_AS_LD build knobs have been renamed 1156 WITH_LLD_IS_LD / WITHOUT_LLD_IS_LD, for consistency with CLANG_IS_CC. 1157 115820170112: 1159 The EM_MULTIQUEUE kernel configuration option is deprecated now that 1160 the em(4) driver conforms to iflib specifications. 1161 116220170109: 1163 The igb(4), em(4) and lem(4) ethernet drivers are now implemented via 1164 IFLIB. If you have a custom kernel configuration that excludes em(4) 1165 but you use igb(4), you need to re-add em(4) to your custom 1166 configuration. 1167 116820161217: 1169 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1. 1170 Please see the 20141231 entry below for information about prerequisites 1171 and upgrading, if you are not already using clang 3.5.0 or higher. 1172 117320161124: 1174 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.0. 1175 Please see the 20141231 entry below for information about prerequisites 1176 and upgrading, if you are not already using clang 3.5.0 or higher. 1177 117820161119: 1179 The layout of the pmap structure has changed for powerpc to put the pmap 1180 statistics at the front for all CPU variations. libkvm(3) and all tools 1181 that link against it need to be recompiled. 1182 118320161030: 1184 isl(4) and cyapa(4) drivers now require a new driver, 1185 chromebook_platform(4), to work properly on Chromebook-class hardware. 1186 On other types of hardware the drivers may need to be configured using 1187 device hints. Please see the corresponding manual pages for details. 1188 118920161017: 1190 The urtwn(4) driver was merged into rtwn(4) and now consists of 1191 rtwn(4) main module + rtwn_usb(4) and rtwn_pci(4) bus-specific 1192 parts. 1193 Also, firmware for RTL8188CE was renamed due to possible name 1194 conflict (rtwnrtl8192cU(B) -> rtwnrtl8192cE(B)) 1195 119620161015: 1197 GNU rcs has been removed from base. It is available as packages: 1198 - rcs: Latest GPLv3 GNU rcs version. 1199 - rcs57: Copy of the latest version of GNU rcs (GPLv2) before it was 1200 removed from base. 1201 120220161008: 1203 Use of the cc_cdg, cc_chd, cc_hd, or cc_vegas congestion control 1204 modules now requires that the kernel configuration contain the 1205 TCP_HHOOK option. (This option is included in the GENERIC kernel.) 1206 120720161003: 1208 The WITHOUT_ELFCOPY_AS_OBJCOPY src.conf(5) knob has been retired. 1209 ELF Tool Chain's elfcopy is always installed as /usr/bin/objcopy. 1210 121120160924: 1212 Relocatable object files with the extension of .So have been renamed 1213 to use an extension of .pico instead. The purpose of this change is 1214 to avoid a name clash with shared libraries on case-insensitive file 1215 systems. On those file systems, foo.So is the same file as foo.so. 1216 121720160918: 1218 GNU rcs has been turned off by default. It can (temporarily) be built 1219 again by adding WITH_RCS knob in src.conf. 1220 Otherwise, GNU rcs is available from packages: 1221 - rcs: Latest GPLv3 GNU rcs version. 1222 - rcs57: Copy of the latest version of GNU rcs (GPLv2) from base. 1223 122420160918: 1225 The backup_uses_rcs functionality has been removed from rc.subr. 1226 122720160908: 1228 The queue(3) debugging macro, QUEUE_MACRO_DEBUG, has been split into 1229 two separate components, QUEUE_MACRO_DEBUG_TRACE and 1230 QUEUE_MACRO_DEBUG_TRASH. Define both for the original 1231 QUEUE_MACRO_DEBUG behavior. 1232 123320160824: 1234 r304787 changed some ioctl interfaces between the iSCSI userspace 1235 programs and the kernel. ctladm, ctld, iscsictl, and iscsid must be 1236 rebuilt to work with new kernels. __FreeBSD_version has been bumped 1237 to 1200005. 1238 123920160818: 1240 The UDP receive code has been updated to only treat incoming UDP 1241 packets that were addressed to an L2 broadcast address as L3 1242 broadcast packets. It is not expected that this will affect any 1243 standards-conforming UDP application. The new behaviour can be 1244 disabled by setting the sysctl net.inet.udp.require_l2_bcast to 1245 0. 1246 124720160818: 1248 Remove the openbsd_poll system call. 1249 __FreeBSD_version has been bumped because of this. 1250 125120160708: 1252 The stable/11 branch has been created from head@r302406. 1253 125420160622: 1255 The libc stub for the pipe(2) system call has been replaced with 1256 a wrapper that calls the pipe2(2) system call and the pipe(2) 1257 system call is now only implemented by the kernels that include 1258 "options COMPAT_FREEBSD10" in their config file (this is the 1259 default). Users should ensure that this option is enabled in 1260 their kernel or upgrade userspace to r302092 before upgrading their 1261 kernel. 1262 126320160527: 1264 CAM will now strip leading spaces from SCSI disks' serial numbers. 1265 This will affect users who create UFS filesystems on SCSI disks using 1266 those disk's diskid device nodes. For example, if /etc/fstab 1267 previously contained a line like 1268 "/dev/diskid/DISK-%20%20%20%20%20%20%20ABCDEFG0123456", you should 1269 change it to "/dev/diskid/DISK-ABCDEFG0123456". Users of geom 1270 transforms like gmirror may also be affected. ZFS users should 1271 generally be fine. 1272 127320160523: 1274 The bitstring(3) API has been updated with new functionality and 1275 improved performance. But it is binary-incompatible with the old API. 1276 Objects built with the new headers may not be linked against objects 1277 built with the old headers. 1278 127920160520: 1280 The brk and sbrk functions have been removed from libc on arm64. 1281 Binutils from ports has been updated to not link to these 1282 functions and should be updated to the latest version before 1283 installing a new libc. 1284 128520160517: 1286 The armv6 port now defaults to hard float ABI. Limited support 1287 for running both hardfloat and soft float on the same system 1288 is available using the libraries installed with -DWITH_LIBSOFT. 1289 This has only been tested as an upgrade path for installworld 1290 and packages may fail or need manual intervention to run. New 1291 packages will be needed. 1292 1293 To update an existing self-hosted armv6hf system, you must add 1294 TARGET_ARCH=armv6 on the make command line for both the build 1295 and the install steps. 1296 129720160510: 1298 Kernel modules compiled outside of a kernel build now default to 1299 installing to /boot/modules instead of /boot/kernel. Many kernel 1300 modules built this way (such as those in ports) already overrode 1301 KMODDIR explicitly to install into /boot/modules. However, 1302 manually building and installing a module from /sys/modules will 1303 now install to /boot/modules instead of /boot/kernel. 1304 130520160414: 1306 The CAM I/O scheduler has been committed to the kernel. There should be 1307 no user visible impact. This does enable NCQ Trim on ada SSDs. While the 1308 list of known rogues that claim support for this but actually corrupt 1309 data is believed to be complete, be on the lookout for data 1310 corruption. The known rogue list is believed to be complete: 1311 1312 o Crucial MX100, M550 drives with MU01 firmware. 1313 o Micron M510 and M550 drives with MU01 firmware. 1314 o Micron M500 prior to MU07 firmware 1315 o Samsung 830, 840, and 850 all firmwares 1316 o FCCT M500 all firmwares 1317 1318 Crucial has firmware http://www.crucial.com/usa/en/support-ssd-firmware 1319 with working NCQ TRIM. For Micron branded drives, see your sales rep for 1320 updated firmware. Black listed drives will work correctly because these 1321 drives work correctly so long as no NCQ TRIMs are sent to them. Given 1322 this list is the same as found in Linux, it's believed there are no 1323 other rogues in the market place. All other models from the above 1324 vendors work. 1325 1326 To be safe, if you are at all concerned, you can quirk each of your 1327 drives to prevent NCQ from being sent by setting: 1328 kern.cam.ada.X.quirks="0x2" 1329 in loader.conf. If the drive requires the 4k sector quirk, set the 1330 quirks entry to 0x3. 1331 133220160330: 1333 The FAST_DEPEND build option has been removed and its functionality is 1334 now the one true way. The old mkdep(1) style of 'make depend' has 1335 been removed. See 20160311 for further details. 1336 133720160317: 1338 Resource range types have grown from unsigned long to uintmax_t. All 1339 drivers, and anything using libdevinfo, need to be recompiled. 1340 134120160311: 1342 WITH_FAST_DEPEND is now enabled by default for in-tree and out-of-tree 1343 builds. It no longer runs mkdep(1) during 'make depend', and the 1344 'make depend' stage can safely be skipped now as it is auto ran 1345 when building 'make all' and will generate all SRCS and DPSRCS before 1346 building anything else. Dependencies are gathered at compile time with 1347 -MF flags kept in separate .depend files per object file. Users should 1348 run 'make cleandepend' once if using -DNO_CLEAN to clean out older 1349 stale .depend files. 1350 135120160306: 1352 On amd64, clang 3.8.0 can now insert sections of type AMD64_UNWIND into 1353 kernel modules. Therefore, if you load any kernel modules at boot time, 1354 please install the boot loaders after you install the kernel, but before 1355 rebooting, e.g.: 1356 1357 make buildworld 1358 make buildkernel KERNCONF=YOUR_KERNEL_HERE 1359 make installkernel KERNCONF=YOUR_KERNEL_HERE 1360 make -C sys/boot install 1361 <reboot in single user> 1362 1363 Then follow the usual steps, described in the General Notes section, 1364 below. 1365 136620160305: 1367 Clang, llvm, lldb and compiler-rt have been upgraded to 3.8.0. Please 1368 see the 20141231 entry below for information about prerequisites and 1369 upgrading, if you are not already using clang 3.5.0 or higher. 1370 137120160301: 1372 The AIO subsystem is now a standard part of the kernel. The 1373 VFS_AIO kernel option and aio.ko kernel module have been removed. 1374 Due to stability concerns, asynchronous I/O requests are only 1375 permitted on sockets and raw disks by default. To enable 1376 asynchronous I/O requests on all file types, set the 1377 vfs.aio.enable_unsafe sysctl to a non-zero value. 1378 137920160226: 1380 The ELF object manipulation tool objcopy is now provided by the 1381 ELF Tool Chain project rather than by GNU binutils. It should be a 1382 drop-in replacement, with the addition of arm64 support. The 1383 (temporary) src.conf knob WITHOUT_ELFCOPY_AS_OBJCOPY knob may be set 1384 to obtain the GNU version if necessary. 1385 138620160129: 1387 Building ZFS pools on top of zvols is prohibited by default. That 1388 feature has never worked safely; it's always been prone to deadlocks. 1389 Using a zvol as the backing store for a VM guest's virtual disk will 1390 still work, even if the guest is using ZFS. Legacy behavior can be 1391 restored by setting vfs.zfs.vol.recursive=1. 1392 139320160119: 1394 The NONE and HPN patches has been removed from OpenSSH. They are 1395 still available in the security/openssh-portable port. 1396 139720160113: 1398 With the addition of ypldap(8), a new _ypldap user is now required 1399 during installworld. "mergemaster -p" can be used to add the user 1400 prior to installworld, as documented in the handbook. 1401 140220151216: 1403 The tftp loader (pxeboot) now uses the option root-path directive. As a 1404 consequence it no longer looks for a pxeboot.4th file on the tftp 1405 server. Instead it uses the regular /boot infrastructure as with the 1406 other loaders. 1407 140820151211: 1409 The code to start recording plug and play data into the modules has 1410 been committed. While the old tools will properly build a new kernel, 1411 a number of warnings about "unknown metadata record 4" will be produced 1412 for an older kldxref. To avoid such warnings, make sure to rebuild 1413 the kernel toolchain (or world). Make sure that you have r292078 or 1414 later when trying to build 292077 or later before rebuilding. 1415 141620151207: 1417 Debug data files are now built by default with 'make buildworld' and 1418 installed with 'make installworld'. This facilitates debugging but 1419 requires more disk space both during the build and for the installed 1420 world. Debug files may be disabled by setting WITHOUT_DEBUG_FILES=yes 1421 in src.conf(5). 1422 142320151130: 1424 r291527 changed the internal interface between the nfsd.ko and 1425 nfscommon.ko modules. As such, they must both be upgraded to-gether. 1426 __FreeBSD_version has been bumped because of this. 1427 142820151108: 1429 Add support for unicode collation strings leads to a change of 1430 order of files listed by ls(1) for example. To get back to the old 1431 behaviour, set LC_COLLATE environment variable to "C". 1432 1433 Databases administrators will need to reindex their databases given 1434 collation results will be different. 1435 1436 Due to a bug in install(1) it is recommended to remove the ancient 1437 locales before running make installworld. 1438 1439 rm -rf /usr/share/locale/* 1440 144120151030: 1442 The OpenSSL has been upgraded to 1.0.2d. Any binaries requiring 1443 libcrypto.so.7 or libssl.so.7 must be recompiled. 1444 144520151020: 1446 Qlogic 24xx/25xx firmware images were updated from 5.5.0 to 7.3.0. 1447 Kernel modules isp_2400_multi and isp_2500_multi were removed and 1448 should be replaced with isp_2400 and isp_2500 modules respectively. 1449 145020151017: 1451 The build previously allowed using 'make -n' to not recurse into 1452 sub-directories while showing what commands would be executed, and 1453 'make -n -n' to recursively show commands. Now 'make -n' will recurse 1454 and 'make -N' will not. 1455 145620151012: 1457 If you specify SENDMAIL_MC or SENDMAIL_CF in make.conf, mergemaster 1458 and etcupdate will now use this file. A custom sendmail.cf is now 1459 updated via this mechanism rather than via installworld. If you had 1460 excluded sendmail.cf in mergemaster.rc or etcupdate.conf, you may 1461 want to remove the exclusion or change it to "always install". 1462 /etc/mail/sendmail.cf is now managed the same way regardless of 1463 whether SENDMAIL_MC/SENDMAIL_CF is used. If you are not using 1464 SENDMAIL_MC/SENDMAIL_CF there should be no change in behavior. 1465 146620151011: 1467 Compatibility shims for legacy ATA device names have been removed. 1468 It includes ATA_STATIC_ID kernel option, kern.cam.ada.legacy_aliases 1469 and kern.geom.raid.legacy_aliases loader tunables, kern.devalias.* 1470 environment variables, /dev/ad* and /dev/ar* symbolic links. 1471 147220151006: 1473 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.7.0. 1474 Please see the 20141231 entry below for information about prerequisites 1475 and upgrading, if you are not already using clang 3.5.0 or higher. 1476 147720150924: 1478 Kernel debug files have been moved to /usr/lib/debug/boot/kernel/, 1479 and renamed from .symbols to .debug. This reduces the size requirements 1480 on the boot partition or file system and provides consistency with 1481 userland debug files. 1482 1483 When using the supported kernel installation method the 1484 /usr/lib/debug/boot/kernel directory will be renamed (to kernel.old) 1485 as is done with /boot/kernel. 1486 1487 Developers wishing to maintain the historical behavior of installing 1488 debug files in /boot/kernel/ can set KERN_DEBUGDIR="" in src.conf(5). 1489 149020150827: 1491 The wireless drivers had undergone changes that remove the 'parent 1492 interface' from the ifconfig -l output. The rc.d network scripts 1493 used to check presence of a parent interface in the list, so old 1494 scripts would fail to start wireless networking. Thus, etcupdate(3) 1495 or mergemaster(8) run is required after kernel update, to update your 1496 rc.d scripts in /etc. 1497 149820150827: 1499 pf no longer supports 'scrub fragment crop' or 'scrub fragment drop-ovl' 1500 These configurations are now automatically interpreted as 1501 'scrub fragment reassemble'. 1502 150320150817: 1504 Kernel-loadable modules for the random(4) device are back. To use 1505 them, the kernel must have 1506 1507 device random 1508 options RANDOM_LOADABLE 1509 1510 kldload(8) can then be used to load random_fortuna.ko 1511 or random_yarrow.ko. Please note that due to the indirect 1512 function calls that the loadable modules need to provide, 1513 the build-in variants will be slightly more efficient. 1514 1515 The random(4) kernel option RANDOM_DUMMY has been retired due to 1516 unpopularity. It was not all that useful anyway. 1517 151820150813: 1519 The WITHOUT_ELFTOOLCHAIN_TOOLS src.conf(5) knob has been retired. 1520 Control over building the ELF Tool Chain tools is now provided by 1521 the WITHOUT_TOOLCHAIN knob. 1522 152320150810: 1524 The polarity of Pulse Per Second (PPS) capture events with the 1525 uart(4) driver has been corrected. Prior to this change the PPS 1526 "assert" event corresponded to the trailing edge of a positive PPS 1527 pulse and the "clear" event was the leading edge of the next pulse. 1528 1529 As the width of a PPS pulse in a typical GPS receiver is on the 1530 order of 1 millisecond, most users will not notice any significant 1531 difference with this change. 1532 1533 Anyone who has compensated for the historical polarity reversal by 1534 configuring a negative offset equal to the pulse width will need to 1535 remove that workaround. 1536 153720150809: 1538 The default group assigned to /dev/dri entries has been changed 1539 from 'wheel' to 'video' with the id of '44'. If you want to have 1540 access to the dri devices please add yourself to the video group 1541 with: 1542 1543 # pw groupmod video -m $USER 1544 154520150806: 1546 The menu.rc and loader.rc files will now be replaced during 1547 upgrades. Please migrate local changes to menu.rc.local and 1548 loader.rc.local instead. 1549 155020150805: 1551 GNU Binutils versions of addr2line, c++filt, nm, readelf, size, 1552 strings and strip have been removed. The src.conf(5) knob 1553 WITHOUT_ELFTOOLCHAIN_TOOLS no longer provides the binutils tools. 1554 155520150728: 1556 As ZFS requires more kernel stack pages than is the default on some 1557 architectures e.g. i386, it now warns if KSTACK_PAGES is less than 1558 ZFS_MIN_KSTACK_PAGES (which is 4 at the time of writing). 1559 1560 Please consider using 'options KSTACK_PAGES=X' where X is greater 1561 than or equal to ZFS_MIN_KSTACK_PAGES i.e. 4 in such configurations. 1562 156320150706: 1564 sendmail has been updated to 8.15.2. Starting with FreeBSD 11.0 1565 and sendmail 8.15, sendmail uses uncompressed IPv6 addresses by 1566 default, i.e., they will not contain "::". For example, instead 1567 of ::1, it will be 0:0:0:0:0:0:0:1. This permits a zero subnet 1568 to have a more specific match, such as different map entries for 1569 IPv6:0:0 vs IPv6:0. This change requires that configuration 1570 data (including maps, files, classes, custom ruleset, etc.) must 1571 use the same format, so make certain such configuration data is 1572 upgrading. As a very simple check search for patterns like 1573 'IPv6:[0-9a-fA-F:]*::' and 'IPv6::'. To return to the old 1574 behavior, set the m4 option confUSE_COMPRESSED_IPV6_ADDRESSES or 1575 the cf option UseCompressedIPv6Addresses. 1576 157720150630: 1578 The default kernel entropy-processing algorithm is now 1579 Fortuna, replacing Yarrow. 1580 1581 Assuming you have 'device random' in your kernel config 1582 file, the configurations allow a kernel option to override 1583 this default. You may choose *ONE* of: 1584 1585 options RANDOM_YARROW # Legacy /dev/random algorithm. 1586 options RANDOM_DUMMY # Blocking-only driver. 1587 1588 If you have neither, you get Fortuna. For most people, 1589 read no further, Fortuna will give a /dev/random that works 1590 like it always used to, and the difference will be irrelevant. 1591 1592 If you remove 'device random', you get *NO* kernel-processed 1593 entropy at all. This may be acceptable to folks building 1594 embedded systems, but has complications. Carry on reading, 1595 and it is assumed you know what you need. 1596 1597 *PLEASE* read random(4) and random(9) if you are in the 1598 habit of tweaking kernel configs, and/or if you are a member 1599 of the embedded community, wanting specific and not-usual 1600 behaviour from your security subsystems. 1601 1602 NOTE!! If you use RANDOM_DUMMY and/or have no 'device 1603 random', you will NOT have a functioning /dev/random, and 1604 many cryptographic features will not work, including SSH. 1605 You may also find strange behaviour from the random(3) set 1606 of library functions, in particular sranddev(3), srandomdev(3) 1607 and arc4random(3). The reason for this is that the KERN_ARND 1608 sysctl only returns entropy if it thinks it has some to 1609 share, and with RANDOM_DUMMY or no 'device random' this 1610 will never happen. 1611 161220150623: 1613 An additional fix for the issue described in the 20150614 sendmail 1614 entry below has been committed in revision 284717. 1615 161620150616: 1617 FreeBSD's old make (fmake) has been removed from the system. It is 1618 available as the devel/fmake port or via pkg install fmake. 1619 162020150615: 1621 The fix for the issue described in the 20150614 sendmail entry 1622 below has been committed in revision 284436. The work 1623 around described in that entry is no longer needed unless the 1624 default setting is overridden by a confDH_PARAMETERS configuration 1625 setting of '5' or pointing to a 512 bit DH parameter file. 1626 162720150614: 1628 ALLOW_DEPRECATED_ATF_TOOLS/ATFFILE support has been removed from 1629 atf.test.mk (included from bsd.test.mk). Please upgrade devel/atf 1630 and devel/kyua to version 0.20+ and adjust any calling code to work 1631 with Kyuafile and kyua. 1632 163320150614: 1634 The import of openssl to address the FreeBSD-SA-15:10.openssl 1635 security advisory includes a change which rejects handshakes 1636 with DH parameters below 768 bits. sendmail releases prior 1637 to 8.15.2 (not yet released), defaulted to a 512 bit 1638 DH parameter setting for client connections. To work around 1639 this interoperability, sendmail can be configured to use a 1640 2048 bit DH parameter by: 1641 1642 1. Edit /etc/mail/`hostname`.mc 1643 2. If a setting for confDH_PARAMETERS does not exist or 1644 exists and is set to a string beginning with '5', 1645 replace it with '2'. 1646 3. If a setting for confDH_PARAMETERS exists and is set to 1647 a file path, create a new file with: 1648 openssl dhparam -out /path/to/file 2048 1649 4. Rebuild the .cf file: 1650 cd /etc/mail/; make; make install 1651 5. Restart sendmail: 1652 cd /etc/mail/; make restart 1653 1654 A sendmail patch is coming, at which time this file will be 1655 updated. 1656 165720150604: 1658 Generation of legacy formatted entries have been disabled by default 1659 in pwd_mkdb(8), as all base system consumers of the legacy formatted 1660 entries were converted to use the new format by default when the new, 1661 machine independent format have been added and supported since FreeBSD 1662 5.x. 1663 1664 Please see the pwd_mkdb(8) manual page for further details. 1665 166620150525: 1667 Clang and llvm have been upgraded to 3.6.1 release. Please see the 1668 20141231 entry below for information about prerequisites and upgrading, 1669 if you are not already using 3.5.0 or higher. 1670 167120150521: 1672 TI platform code switched to using vendor DTS files and this update 1673 may break existing systems running on Beaglebone, Beaglebone Black, 1674 and Pandaboard: 1675 1676 - dtb files should be regenerated/reinstalled. Filenames are the 1677 same but content is different now 1678 - GPIO addressing was changed, now each GPIO bank (32 pins per bank) 1679 has its own /dev/gpiocX device, e.g. pin 121 on /dev/gpioc0 in old 1680 addressing scheme is now pin 25 on /dev/gpioc3. 1681 - Pandaboard: /etc/ttys should be updated, serial console device is 1682 now /dev/ttyu2, not /dev/ttyu0 1683 168420150501: 1685 soelim(1) from gnu/usr.bin/groff has been replaced by usr.bin/soelim. 1686 If you need the GNU extension from groff soelim(1), install groff 1687 from package: pkg install groff, or via ports: textproc/groff. 1688 168920150423: 1690 chmod, chflags, chown and chgrp now affect symlinks in -R mode as 1691 defined in symlink(7); previously symlinks were silently ignored. 1692 169320150415: 1694 The const qualifier has been removed from iconv(3) to comply with 1695 POSIX. The ports tree is aware of this from r384038 onwards. 1696 169720150416: 1698 Libraries specified by LIBADD in Makefiles must have a corresponding 1699 DPADD_<lib> variable to ensure correct dependencies. This is now 1700 enforced in src.libnames.mk. 1701 170220150324: 1703 From legacy ata(4) driver was removed support for SATA controllers 1704 supported by more functional drivers ahci(4), siis(4) and mvs(4). 1705 Kernel modules ataahci and ataadaptec were removed completely, 1706 replaced by ahci and mvs modules respectively. 1707 170820150315: 1709 Clang, llvm and lldb have been upgraded to 3.6.0 release. Please see 1710 the 20141231 entry below for information about prerequisites and 1711 upgrading, if you are not already using 3.5.0 or higher. 1712 171320150307: 1714 The 32-bit PowerPC kernel has been changed to a position-independent 1715 executable. This can only be booted with a version of loader(8) 1716 newer than January 31, 2015, so make sure to update both world and 1717 kernel before rebooting. 1718 171920150217: 1720 If you are running a -CURRENT kernel since r273872 (Oct 30th, 2014), 1721 but before r278950, the RNG was not seeded properly. Immediately 1722 upgrade the kernel to r278950 or later and regenerate any keys (e.g. 1723 ssh keys or openssl keys) that were generated w/ a kernel from that 1724 range. This does not affect programs that directly used /dev/random 1725 or /dev/urandom. All userland uses of arc4random(3) are affected. 1726 172720150210: 1728 The autofs(4) ABI was changed in order to restore binary compatibility 1729 with 10.1-RELEASE. The automountd(8) daemon needs to be rebuilt to work 1730 with the new kernel. 1731 173220150131: 1733 The powerpc64 kernel has been changed to a position-independent 1734 executable. This can only be booted with a new version of loader(8), 1735 so make sure to update both world and kernel before rebooting. 1736 173720150118: 1738 Clang and llvm have been upgraded to 3.5.1 release. This is a bugfix 1739 only release, no new features have been added. Please see the 20141231 1740 entry below for information about prerequisites and upgrading, if you 1741 are not already using 3.5.0. 1742 174320150107: 1744 ELF tools addr2line, elfcopy (strip), nm, size, and strings are now 1745 taken from the ELF Tool Chain project rather than GNU binutils. They 1746 should be drop-in replacements, with the addition of arm64 support. 1747 The WITHOUT_ELFTOOLCHAIN_TOOLS= knob may be used to obtain the 1748 binutils tools, if necessary. See 20150805 for updated information. 1749 175020150105: 1751 The default Unbound configuration now enables remote control 1752 using a local socket. Users who have already enabled the 1753 local_unbound service should regenerate their configuration 1754 by running "service local_unbound setup" as root. 1755 175620150102: 1757 The GNU texinfo and GNU info pages have been removed. 1758 To be able to view GNU info pages please install texinfo from ports. 1759 176020141231: 1761 Clang, llvm and lldb have been upgraded to 3.5.0 release. 1762 1763 As of this release, a prerequisite for building clang, llvm and lldb is 1764 a C++11 capable compiler and C++11 standard library. This means that to 1765 be able to successfully build the cross-tools stage of buildworld, with 1766 clang as the bootstrap compiler, your system compiler or cross compiler 1767 should either be clang 3.3 or later, or gcc 4.8 or later, and your 1768 system C++ library should be libc++, or libdstdc++ from gcc 4.8 or 1769 later. 1770 1771 On any standard FreeBSD 10.x or 11.x installation, where clang and 1772 libc++ are on by default (that is, on x86 or arm), this should work out 1773 of the box. 1774 1775 On 9.x installations where clang is enabled by default, e.g. on x86 and 1776 powerpc, libc++ will not be enabled by default, so libc++ should be 1777 built (with clang) and installed first. If both clang and libc++ are 1778 missing, build clang first, then use it to build libc++. 1779 1780 On 8.x and earlier installations, upgrade to 9.x first, and then follow 1781 the instructions for 9.x above. 1782 1783 Sparc64 and mips users are unaffected, as they still use gcc 4.2.1 by 1784 default, and do not build clang. 1785 1786 Many embedded systems are resource constrained, and will not be able to 1787 build clang in a reasonable time, or in some cases at all. In those 1788 cases, cross building bootable systems on amd64 is a workaround. 1789 1790 This new version of clang introduces a number of new warnings, of which 1791 the following are most likely to appear: 1792 1793 -Wabsolute-value 1794 1795 This warns in two cases, for both C and C++: 1796 * When the code is trying to take the absolute value of an unsigned 1797 quantity, which is effectively a no-op, and almost never what was 1798 intended. The code should be fixed, if at all possible. If you are 1799 sure that the unsigned quantity can be safely cast to signed, without 1800 loss of information or undefined behavior, you can add an explicit 1801 cast, or disable the warning. 1802 1803 * When the code is trying to take an absolute value, but the called 1804 abs() variant is for the wrong type, which can lead to truncation. 1805 If you want to disable the warning instead of fixing the code, please 1806 make sure that truncation will not occur, or it might lead to unwanted 1807 side-effects. 1808 1809 -Wtautological-undefined-compare and 1810 -Wundefined-bool-conversion 1811 1812 These warn when C++ code is trying to compare 'this' against NULL, while 1813 'this' should never be NULL in well-defined C++ code. However, there is 1814 some legacy (pre C++11) code out there, which actively abuses this 1815 feature, which was less strictly defined in previous C++ versions. 1816 1817 Squid and openjdk do this, for example. The warning can be turned off 1818 for C++98 and earlier, but compiling the code in C++11 mode might result 1819 in unexpected behavior; for example, the parts of the program that are 1820 unreachable could be optimized away. 1821 182220141222: 1823 The old NFS client and server (kernel options NFSCLIENT, NFSSERVER) 1824 kernel sources have been removed. The .h files remain, since some 1825 utilities include them. This will need to be fixed later. 1826 If "mount -t oldnfs ..." is attempted, it will fail. 1827 If the "-o" option on mountd(8), nfsd(8) or nfsstat(1) is used, 1828 the utilities will report errors. 1829 183020141121: 1831 The handling of LOCAL_LIB_DIRS has been altered to skip addition of 1832 directories to top level SUBDIR variable when their parent 1833 directory is included in LOCAL_DIRS. Users with build systems with 1834 such hierarchies and without SUBDIR entries in the parent 1835 directory Makefiles should add them or add the directories to 1836 LOCAL_DIRS. 1837 183820141109: 1839 faith(4) and faithd(8) have been removed from the base system. Faith 1840 has been obsolete for a very long time. 1841 184220141104: 1843 vt(4), the new console driver, is enabled by default. It brings 1844 support for Unicode and double-width characters, as well as 1845 support for UEFI and integration with the KMS kernel video 1846 drivers. 1847 1848 You may need to update your console settings in /etc/rc.conf, 1849 most probably the keymap. During boot, /etc/rc.d/syscons will 1850 indicate what you need to do. 1851 1852 vt(4) still has issues and lacks some features compared to 1853 syscons(4). See the wiki for up-to-date information: 1854 https://wiki.freebsd.org/Newcons 1855 1856 If you want to keep using syscons(4), you can do so by adding 1857 the following line to /boot/loader.conf: 1858 kern.vty=sc 1859 186020141102: 1861 pjdfstest has been integrated into kyua as an opt-in test suite. 1862 Please see share/doc/pjdfstest/README for more details on how to 1863 execute it. 1864 186520141009: 1866 gperf has been removed from the base system for architectures 1867 that use clang. Ports that require gperf will obtain it from the 1868 devel/gperf port. 1869 187020140923: 1871 pjdfstest has been moved from tools/regression/pjdfstest to 1872 contrib/pjdfstest . 1873 187420140922: 1875 At svn r271982, The default linux compat kernel ABI has been adjusted 1876 to 2.6.18 in support of the linux-c6 compat ports infrastructure 1877 update. If you wish to continue using the linux-f10 compat ports, 1878 add compat.linux.osrelease=2.6.16 to your local sysctl.conf. Users are 1879 encouraged to update their linux-compat packages to linux-c6 during 1880 their next update cycle. 1881 188220140729: 1883 The ofwfb driver, used to provide a graphics console on PowerPC when 1884 using vt(4), no longer allows mmap() of all physical memory. This 1885 will prevent Xorg on PowerPC with some ATI graphics cards from 1886 initializing properly unless x11-servers/xorg-server is updated to 1887 1.12.4_8 or newer. 1888 188920140723: 1890 The xdev targets have been converted to using TARGET and 1891 TARGET_ARCH instead of XDEV and XDEV_ARCH. 1892 189320140719: 1894 The default unbound configuration has been modified to address 1895 issues with reverse lookups on networks that use private 1896 address ranges. If you use the local_unbound service, run 1897 "service local_unbound setup" as root to regenerate your 1898 configuration, then "service local_unbound reload" to load the 1899 new configuration. 1900 190120140709: 1902 The GNU texinfo and GNU info pages are not built and installed 1903 anymore, WITH_INFO knob has been added to allow to built and install 1904 them again. 1905 UPDATE: see 20150102 entry on texinfo's removal 1906 190720140708: 1908 The GNU readline library is now an INTERNALLIB - that is, it is 1909 statically linked into consumers (GDB and variants) in the base 1910 system, and the shared library is no longer installed. The 1911 devel/readline port is available for third party software that 1912 requires readline. 1913 191420140702: 1915 The Itanium architecture (ia64) has been removed from the list of 1916 known architectures. This is the first step in the removal of the 1917 architecture. 1918 191920140701: 1920 Commit r268115 has added NFSv4.1 server support, merged from 1921 projects/nfsv4.1-server. Since this includes changes to the 1922 internal interfaces between the NFS related modules, a full 1923 build of the kernel and modules will be necessary. 1924 __FreeBSD_version has been bumped. 1925 192620140629: 1927 The WITHOUT_VT_SUPPORT kernel config knob has been renamed 1928 WITHOUT_VT. (The other _SUPPORT knobs have a consistent meaning 1929 which differs from the behaviour controlled by this knob.) 1930 193120140619: 1932 Maximal length of the serial number in CTL was increased from 16 to 1933 64 chars, that breaks ABI. All CTL-related tools, such as ctladm 1934 and ctld, need to be rebuilt to work with a new kernel. 1935 193620140606: 1937 The libatf-c and libatf-c++ major versions were downgraded to 0 and 1938 1 respectively to match the upstream numbers. They were out of 1939 sync because, when they were originally added to FreeBSD, the 1940 upstream versions were not respected. These libraries are private 1941 and not yet built by default, so renumbering them should be a 1942 non-issue. However, unclean source trees will yield broken test 1943 programs once the operator executes "make delete-old-libs" after a 1944 "make installworld". 1945 1946 Additionally, the atf-sh binary was made private by moving it into 1947 /usr/libexec/. Already-built shell test programs will keep the 1948 path to the old binary so they will break after "make delete-old" 1949 is run. 1950 1951 If you are using WITH_TESTS=yes (not the default), wipe the object 1952 tree and rebuild from scratch to prevent spurious test failures. 1953 This is only needed once: the misnumbered libraries and misplaced 1954 binaries have been added to OptionalObsoleteFiles.inc so they will 1955 be removed during a clean upgrade. 1956 195720140512: 1958 Clang and llvm have been upgraded to 3.4.1 release. 1959 196020140508: 1961 We bogusly installed src.opts.mk in /usr/share/mk. This file should 1962 be removed to avoid issues in the future (and has been added to 1963 ObsoleteFiles.inc). 1964 196520140505: 1966 /etc/src.conf now affects only builds of the FreeBSD src tree. In the 1967 past, it affected all builds that used the bsd.*.mk files. The old 1968 behavior was a bug, but people may have relied upon it. To get this 1969 behavior back, you can .include /etc/src.conf from /etc/make.conf 1970 (which is still global and isn't changed). This also changes the 1971 behavior of incremental builds inside the tree of individual 1972 directories. Set MAKESYSPATH to ".../share/mk" to do that. 1973 Although this has survived make universe and some upgrade scenarios, 1974 other upgrade scenarios may have broken. At least one form of 1975 temporary breakage was fixed with MAKESYSPATH settings for buildworld 1976 as well... In cases where MAKESYSPATH isn't working with this 1977 setting, you'll need to set it to the full path to your tree. 1978 1979 One side effect of all this cleaning up is that bsd.compiler.mk 1980 is no longer implicitly included by bsd.own.mk. If you wish to 1981 use COMPILER_TYPE, you must now explicitly include bsd.compiler.mk 1982 as well. 1983 198420140430: 1985 The lindev device has been removed since /dev/full has been made a 1986 standard device. __FreeBSD_version has been bumped. 1987 198820140424: 1989 The knob WITHOUT_VI was added to the base system, which controls 1990 building ex(1), vi(1), etc. Older releases of FreeBSD required ex(1) 1991 in order to reorder files share/termcap and didn't build ex(1) as a 1992 build tool, so building/installing with WITH_VI is highly advised for 1993 build hosts for older releases. 1994 1995 This issue has been fixed in stable/9 and stable/10 in r277022 and 1996 r276991, respectively. 1997 199820140418: 1999 The YES_HESIOD knob has been removed. It has been obsolete for 2000 a decade. Please move to using WITH_HESIOD instead or your builds 2001 will silently lack HESIOD. 2002 200320140405: 2004 The uart(4) driver has been changed with respect to its handling 2005 of the low-level console. Previously the uart(4) driver prevented 2006 any process from changing the baudrate or the CLOCAL and HUPCL 2007 control flags. By removing the restrictions, operators can make 2008 changes to the serial console port without having to reboot. 2009 However, when getty(8) is started on the serial device that is 2010 associated with the low-level console, a misconfigured terminal 2011 line in /etc/ttys will now have a real impact. 2012 Before upgrading the kernel, make sure that /etc/ttys has the 2013 serial console device configured as 3wire without baudrate to 2014 preserve the previous behaviour. E.g: 2015 ttyu0 "/usr/libexec/getty 3wire" vt100 on secure 2016 201720140306: 2018 Support for libwrap (TCP wrappers) in rpcbind was disabled by default 2019 to improve performance. To re-enable it, if needed, run rpcbind 2020 with command line option -W. 2021 202220140226: 2023 Switched back to the GPL dtc compiler due to updates in the upstream 2024 dts files not being supported by the BSDL dtc compiler. You will need 2025 to rebuild your kernel toolchain to pick up the new compiler. Core dumps 2026 may result while building dtb files during a kernel build if you fail 2027 to do so. Set WITHOUT_GPL_DTC if you require the BSDL compiler. 2028 202920140216: 2030 Clang and llvm have been upgraded to 3.4 release. 2031 203220140216: 2033 The nve(4) driver has been removed. Please use the nfe(4) driver 2034 for NVIDIA nForce MCP Ethernet adapters instead. 2035 203620140212: 2037 An ABI incompatibility crept into the libc++ 3.4 import in r261283. 2038 This could cause certain C++ applications using shared libraries built 2039 against the previous version of libc++ to crash. The incompatibility 2040 has now been fixed, but any C++ applications or shared libraries built 2041 between r261283 and r261801 should be recompiled. 2042 204320140204: 2044 OpenSSH will now ignore errors caused by kernel lacking of Capsicum 2045 capability mode support. Please note that enabling the feature in 2046 kernel is still highly recommended. 2047 204820140131: 2049 OpenSSH is now built with sandbox support, and will use sandbox as 2050 the default privilege separation method. This requires Capsicum 2051 capability mode support in kernel. 2052 205320140128: 2054 The libelf and libdwarf libraries have been updated to newer 2055 versions from upstream. Shared library version numbers for 2056 these two libraries were bumped. Any ports or binaries 2057 requiring these two libraries should be recompiled. 2058 __FreeBSD_version is bumped to 1100006. 2059 206020140110: 2061 If a Makefile in a tests/ directory was auto-generating a Kyuafile 2062 instead of providing an explicit one, this would prevent such 2063 Makefile from providing its own Kyuafile in the future during 2064 NO_CLEAN builds. This has been fixed in the Makefiles but manual 2065 intervention is needed to clean an objdir if you use NO_CLEAN: 2066 # find /usr/obj -name Kyuafile | xargs rm -f 2067 206820131213: 2069 The behavior of gss_pseudo_random() for the krb5 mechanism 2070 has changed, for applications requesting a longer random string 2071 than produced by the underlying enctype's pseudo-random() function. 2072 In particular, the random string produced from a session key of 2073 enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will 2074 be different at the 17th octet and later, after this change. 2075 The counter used in the PRF+ construction is now encoded as a 2076 big-endian integer in accordance with RFC 4402. 2077 __FreeBSD_version is bumped to 1100004. 2078 207920131108: 2080 The WITHOUT_ATF build knob has been removed and its functionality 2081 has been subsumed into the more generic WITHOUT_TESTS. If you were 2082 using the former to disable the build of the ATF libraries, you 2083 should change your settings to use the latter. 2084 208520131025: 2086 The default version of mtree is nmtree which is obtained from 2087 NetBSD. The output is generally the same, but may vary 2088 slightly. If you found you need identical output adding 2089 "-F freebsd9" to the command line should do the trick. For the 2090 time being, the old mtree is available as fmtree. 2091 209220131014: 2093 libbsdyml has been renamed to libyaml and moved to /usr/lib/private. 2094 This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg 2095 1.1.4_8 and verify bsdyml not linked in, before running "make 2096 delete-old-libs": 2097 # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean 2098 or 2099 # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml 2100 210120131010: 2102 The stable/10 branch has been created in subversion from head 2103 revision r256279. 2104 2105COMMON ITEMS: 2106 2107 General Notes 2108 ------------- 2109 Sometimes, obscure build problems are the result of environment 2110 poisoning. This can happen because the make utility reads its 2111 environment when searching for values for global variables. To run 2112 your build attempts in an "environmental clean room", prefix all make 2113 commands with 'env -i '. See the env(1) manual page for more details. 2114 Occasionally a build failure will occur with "make -j" due to a race 2115 condition. If this happens try building again without -j, and please 2116 report a bug if it happens consistently. 2117 2118 When upgrading from one major version to another it is generally best to 2119 upgrade to the latest code in the currently installed branch first, then 2120 do an upgrade to the new branch. This is the best-tested upgrade path, 2121 and has the highest probability of being successful. Please try this 2122 approach if you encounter problems with a major version upgrade. Since 2123 the stable 4.x branch point, one has generally been able to upgrade from 2124 anywhere in the most recent stable branch to head / current (or even the 2125 last couple of stable branches). See the top of this file when there's 2126 an exception. 2127 2128 The update process will emit an error on an attempt to perform a build 2129 or install from a FreeBSD version below the earliest supported version. 2130 When updating from an older version the update should be performed one 2131 major release at a time, including running `make delete-old` at each 2132 step. 2133 2134 When upgrading a live system, having a root shell around before 2135 installing anything can help undo problems. Not having a root shell 2136 around can lead to problems if pam has changed too much from your 2137 starting point to allow continued authentication after the upgrade. 2138 2139 This file should be read as a log of events. When a later event changes 2140 information of a prior event, the prior event should not be deleted. 2141 Instead, a pointer to the entry with the new information should be 2142 placed in the old entry. Readers of this file should also sanity check 2143 older entries before relying on them blindly. Authors of new entries 2144 should write them with this in mind. 2145 2146 ZFS notes 2147 --------- 2148 When upgrading the boot ZFS pool to a new version, always follow 2149 these two steps: 2150 2151 1.) recompile and reinstall the ZFS boot loader and boot block 2152 (this is part of "make buildworld" and "make installworld") 2153 2154 2.) update the ZFS boot block on your boot drive 2155 2156 The following example updates the ZFS boot block on the first 2157 partition (freebsd-boot) of a GPT partitioned drive ada0: 2158 "gpart bootcode -p /boot/gptzfsboot -i 1 ada0" 2159 2160 Non-boot pools do not need these updates. 2161 2162 To build a kernel 2163 ----------------- 2164 If you are updating from a prior version of FreeBSD (even one just 2165 a few days old), you should follow this procedure. It is the most 2166 failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 2167 2168 make kernel-toolchain 2169 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 2170 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 2171 2172 To test a kernel once 2173 --------------------- 2174 If you just want to boot a kernel once (because you are not sure 2175 if it works, or if you want to boot a known bad kernel to provide 2176 debugging information) run 2177 make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 2178 nextboot -k testkernel 2179 2180 To rebuild everything and install it on the current system. 2181 ----------------------------------------------------------- 2182 # Note: sometimes if you are running current you gotta do more than 2183 # is listed here if you are upgrading from a really old current. 2184 2185 <make sure you have good level 0 dumps> 2186 make buildworld 2187 make buildkernel KERNCONF=YOUR_KERNEL_HERE 2188 make installkernel KERNCONF=YOUR_KERNEL_HERE 2189 [1] 2190 <reboot in single user> [3] 2191 mergemaster -Fp [5] 2192 make installworld 2193 mergemaster -Fi [4] 2194 make delete-old [6] 2195 <reboot> 2196 2197 To cross-install current onto a separate partition 2198 -------------------------------------------------- 2199 # In this approach we use a separate partition to hold 2200 # current's root, 'usr', and 'var' directories. A partition 2201 # holding "/", "/usr" and "/var" should be about 2GB in 2202 # size. 2203 2204 <make sure you have good level 0 dumps> 2205 <boot into -stable> 2206 make buildworld 2207 make buildkernel KERNCONF=YOUR_KERNEL_HERE 2208 <maybe newfs current's root partition> 2209 <mount current's root partition on directory ${CURRENT_ROOT}> 2210 make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC 2211 make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 2212 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 2213 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 2214 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 2215 <reboot into current> 2216 <do a "native" rebuild/install as described in the previous section> 2217 <maybe install compatibility libraries from ports/misc/compat*> 2218 <reboot> 2219 2220 2221 To upgrade in-place from stable to current 2222 ---------------------------------------------- 2223 <make sure you have good level 0 dumps> 2224 make buildworld [9] 2225 make buildkernel KERNCONF=YOUR_KERNEL_HERE [8] 2226 make installkernel KERNCONF=YOUR_KERNEL_HERE 2227 [1] 2228 <reboot in single user> [3] 2229 mergemaster -Fp [5] 2230 make installworld 2231 mergemaster -Fi [4] 2232 make delete-old [6] 2233 <reboot> 2234 2235 Make sure that you've read the UPDATING file to understand the 2236 tweaks to various things you need. At this point in the life 2237 cycle of current, things change often and you are on your own 2238 to cope. The defaults can also change, so please read ALL of 2239 the UPDATING entries. 2240 2241 Also, if you are tracking -current, you must be subscribed to 2242 freebsd-current@freebsd.org. Make sure that before you update 2243 your sources that you have read and understood all the recent 2244 messages there. If in doubt, please track -stable which has 2245 much fewer pitfalls. 2246 2247 [1] If you have third party modules, such as vmware, you 2248 should disable them at this point so they don't crash your 2249 system on reboot. 2250 2251 [3] From the bootblocks, boot -s, and then do 2252 fsck -p 2253 mount -u / 2254 mount -a 2255 sh /etc/rc.d/zfs start # mount zfs filesystem, if needed 2256 cd src # full path to source 2257 adjkerntz -i # if CMOS is wall time 2258 Also, when doing a major release upgrade, it is required that 2259 you boot into single user mode to do the installworld. 2260 2261 [4] Note: This step is non-optional. Failure to do this step 2262 can result in a significant reduction in the functionality of the 2263 system. Attempting to do it by hand is not recommended and those 2264 that pursue this avenue should read this file carefully, as well 2265 as the archives of freebsd-current and freebsd-hackers mailing lists 2266 for potential gotchas. The -U option is also useful to consider. 2267 See mergemaster(8) for more information. 2268 2269 [5] Usually this step is a no-op. However, from time to time 2270 you may need to do this if you get unknown user in the following 2271 step. It never hurts to do it all the time. You may need to 2272 install a new mergemaster (cd src/usr.sbin/mergemaster && make 2273 install) after the buildworld before this step if you last updated 2274 from current before 20130425 or from -stable before 20130430. 2275 2276 [6] This only deletes old files and directories. Old libraries 2277 can be deleted by "make delete-old-libs", but you have to make 2278 sure that no program is using those libraries anymore. 2279 2280 [8] The new kernel must be able to run existing binaries used by an 2281 installworld. When upgrading across major versions, the new kernel's 2282 configuration must include the correct COMPAT_FREEBSD<n> option for 2283 existing binaries (e.g. COMPAT_FREEBSD11 to run 11.x binaries). Failure 2284 to do so may leave you with a system that is hard to boot to recover. A 2285 GENERIC kernel will include suitable compatibility options to run 2286 binaries from older branches. Note that the ability to run binaries 2287 from unsupported branches is not guaranteed. 2288 2289 Make sure that you merge any new devices from GENERIC since the 2290 last time you updated your kernel config file. Options also 2291 change over time, so you may need to adjust your custom kernels 2292 for these as well. 2293 2294 [9] If CPUTYPE is defined in your /etc/make.conf, make sure to use the 2295 "?=" instead of the "=" assignment operator, so that buildworld can 2296 override the CPUTYPE if it needs to. 2297 2298 MAKEOBJDIRPREFIX must be defined in an environment variable, and 2299 not on the command line, or in /etc/make.conf. buildworld will 2300 warn if it is improperly defined. 2301FORMAT: 2302 2303This file contains a list, in reverse chronological order, of major 2304breakages in tracking -current. It is not guaranteed to be a complete 2305list of such breakages, and only contains entries since September 23, 2011. 2306If you need to see UPDATING entries from before that date, you will need 2307to fetch an UPDATING file from an older FreeBSD release. 2308 2309Copyright information: 2310 2311Copyright 1998-2009 M. Warner Losh <imp@FreeBSD.org> 2312 2313Redistribution, publication, translation and use, with or without 2314modification, in full or in part, in any form or format of this 2315document are permitted without further permission from the author. 2316 2317THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 2318IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 2319WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 2320DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 2321INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 2322(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 2323SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2324HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 2325STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 2326IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2327POSSIBILITY OF SUCH DAMAGE. 2328 2329Contact Warner Losh if you have any questions about your use of 2330this document. 2331 2332$FreeBSD$ 2333