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 292020mmdd: 30 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 31 been upgraded to 10.0.0. Please see the 20141231 entry below for 32 information about prerequisites and upgrading, if you are not already 33 using clang 3.5.0 or higher. 34 3520200309: 36 The amd(8) automount daemon has been removed from the source tree. 37 As of FreeBSD 10.1 autofs(5) is the preferred tool for automounting. 38 amd is still available in the sysutils/am-utils port. 39 4020200301: 41 Removed brooktree driver (bktr.4) from the tree. 42 4320200229: 44 The WITH_GPL_DTC option has been removed. The BSD-licenced device tree 45 compiler in usr.bin/dtc is used on all architectures which use dtc, and 46 the GPL dtc is available (if needed) from the sysutils/dtc port. 47 4820200229: 49 The WITHOUT_LLVM_LIBUNWIND option has been removed. LLVM's libunwind 50 is used by all supported CPU architectures. 51 5220200229: 53 GCC 4.2.1 has been removed from the tree. The WITH_GCC, 54 WITH_GCC_BOOTSTRAP, and WITH_GNUCXX options are no longer available. 55 Users who wish to build FreeBSD with GCC must use the external toolchain 56 ports or packages. 57 5820200220: 59 ncurses has been updated to a newer version (6.2-20200215). Given the ABI 60 has changed, users will have to rebuild all the ports that are linked to 61 ncurses. 62 6320200217: 64 The size of struct vnet and the magic cookie have changed. 65 Users need to recompile libkvm and all modules using VIMAGE 66 together with their new kernel. 67 6820200212: 69 Defining the long deprecated NO_CTF, NO_DEBUG_FILES, NO_INSTALLLIB, 70 NO_MAN, NO_PROFILE, and NO_WARNS variables is now an error. Update 71 your Makefiles and scripts to define MK_<var>=no instead as required. 72 73 One exception to this is that program or library Makefiles should 74 define MAN to empty rather than setting MK_MAN=no. 75 7620200108: 77 Clang/LLVM is now the default compiler and LLD the default 78 linker for riscv64. 79 8020200107: 81 make universe no longer uses GCC 4.2.1 on any architectures. 82 Architectures not supported by in-tree Clang/LLVM require an 83 external toolchain package. 84 8520200104: 86 GCC 4.2.1 is now not built by default, as part of the GCC 4.2.1 87 retirement plan. Specifically, the GCC, GCC_BOOTSTRAP, and GNUCXX 88 options default to off for all supported CPU architectures. As a 89 short-term transition aid they may be enabled via WITH_* options. 90 GCC 4.2.1 is expected to be removed from the tree on 2020-03-31. 91 9220200102: 93 Support for armv5 has been disconnected and is being removed. The 94 machine combination MACHINE=arm MACHINE_ARCH=arm is no longer valid. 95 You must now use a MACHINE_ARCH of armv6 or armv7. The default 96 MACHINE_ARCH for MACHINE=arm is now armv7. 97 9820191226: 99 Clang/LLVM is now the default compiler for all powerpc architectures. 100 LLD is now the default linker for powerpc64. The change for powerpc64 101 also includes a change to the ELFv2 ABI, incompatible with the existing 102 ABI. 103 10420191226: 105 Kernel-loadable random(4) modules are no longer unloadable. 106 10720191222: 108 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 109 been upgraded to 9.0.1. Please see the 20141231 entry below for 110 information about prerequisites and upgrading, if you are not already 111 using clang 3.5.0 or higher. 112 11320191212: 114 r355677 has modified the internal interface used between the 115 NFS modules in the kernel. As such, they must all be upgraded 116 simultaneously. I will do a version bump for this. 117 11820191205: 119 The root certificates of the Mozilla CA Certificate Store have been 120 imported into the base system and can be managed with the certctl(8) 121 utility. If you have installed the security/ca_root_nss port or package 122 with the ETCSYMLINK option (the default), be advised that there may be 123 differences between those included in the port and those included in 124 base due to differences in nss branch used as well as general update 125 frequency. Note also that certctl(8) cannot manage certs in the 126 format used by the security/ca_root_nss port. 127 12820191120: 129 The amd(8) automount daemon has been disabled by default, and will be 130 removed in the future. As of FreeBSD 10.1 the autofs(5) is available 131 for automounting. 132 13320191107: 134 The nctgpio and wbwd drivers have been moved to the superio bus. 135 If you have one of these drivers in a kernel configuration, then 136 you should add device superio to it. If you use one of these drivers 137 as a module and you compile a custom set of modules, then you should 138 add superio to the set. 139 14020191021: 141 KPIs for network drivers to access interface addresses have changed. 142 Users need to recompile NIC driver modules together with kernel. 143 14420191021: 145 The net.link.tap.user_open sysctl no longer prevents user opening of 146 already created /dev/tapNN devices. Access is still controlled by 147 node permissions, just like tun devices. The net.link.tap.user_open 148 sysctl is now used only to allow users to perform devfs cloning of 149 tap devices, and the subsequent open may not succeed if the user is not 150 in the appropriate group. This sysctl may be deprecated/removed 151 completely in the future. 152 15320191009: 154 mips, powerpc, and sparc64 are no longer built as part of 155 universe / tinderbox unless MAKE_OBSOLETE_GCC is defined. If 156 not defined, mips, powerpc, and sparc64 builds will look for 157 the xtoolchain binaries and if installed use them for universe 158 builds. As llvm 9.0 becomes vetted for these architectures, they 159 will be removed from the list. 160 16120191009: 162 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 163 been upgraded to 9.0.0. Please see the 20141231 entry below for 164 information about prerequisites and upgrading, if you are not already 165 using clang 3.5.0 or higher. 166 16720191003: 168 The hpt27xx, hptmv, hptnr, and hptrr drivers have been removed from 169 GENERIC. They are available as modules and can be loaded by adding 170 to /boot/loader.conf hpt27xx_load="YES", hptmv_load="YES", 171 hptnr_load="YES", or hptrr_load="YES", respectively. 172 17320190913: 174 ntpd no longer by default locks its pages in memory, allowing them 175 to be paged out by the kernel. Use rlimit memlock to restore 176 historic BSD behaviour. For example, add "rlimit memlock 32" 177 to ntp.conf to lock up to 32 MB of ntpd address space in memory. 178 17920190823: 180 Several of ping6's options have been renamed for better consistency 181 with ping. If you use any of -ARWXaghmrtwx, you must update your 182 scripts. See ping6(8) for details. 183 18420190727: 185 The vfs.fusefs.sync_unmount and vfs.fusefs.init_backgrounded sysctls 186 and the "-o sync_unmount" and "-o init_backgrounded" mount options have 187 been removed from mount_fusefs(8). You can safely remove them from 188 your scripts, because they had no effect. 189 190 The vfs.fusefs.fix_broken_io, vfs.fusefs.sync_resize, 191 vfs.fusefs.refresh_size, vfs.fusefs.mmap_enable, 192 vfs.fusefs.reclaim_revoked, and vfs.fusefs.data_cache_invalidate 193 sysctls have been removed. If you felt the need to set any of them to 194 a non-default value, please tell asomers@FreeBSD.org why. 195 19620190713: 197 Default permissions on the /var/account/acct file (and copies of it 198 rotated by periodic daily scripts) are changed from 0644 to 0640 199 because the file contains sensitive information that should not be 200 world-readable. If the /var/account directory must be created by 201 rc.d/accounting, the mode used is now 0750. Admins who use the 202 accounting feature are encouraged to change the mode of an existing 203 /var/account directory to 0750 or 0700. 204 20520190620: 206 Entropy collection and the /dev/random device are no longer optional 207 components. The "device random" option has been removed. 208 Implementations of distilling algorithms can still be made loadable 209 with "options RANDOM_LOADABLE" (e.g., random_fortuna.ko). 210 21120190612: 212 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 213 been upgraded to 8.0.1. Please see the 20141231 entry below for 214 information about prerequisites and upgrading, if you are not already 215 using clang 3.5.0 or higher. 216 21720190608: 218 A fix was applied to i386 kernel modules to avoid panics with 219 dpcpu or vnet. Users need to recompile i386 kernel modules 220 having pcpu or vnet sections or they will refuse to load. 221 22220190513: 223 User-wired pages now have their own counter, 224 vm.stats.vm.v_user_wire_count. The vm.max_wired sysctl was renamed 225 to vm.max_user_wired and changed from an unsigned int to an unsigned 226 long. bhyve VMs wired with the -S are now subject to the user 227 wiring limit; the vm.max_user_wired sysctl may need to be tuned to 228 avoid running into the limit. 229 23020190507: 231 The IPSEC option has been removed from GENERIC. Users requiring 232 ipsec(4) must now load the ipsec(4) kernel module. 233 23420190507: 235 The tap(4) driver has been folded into tun(4), and the module has been 236 renamed to tuntap. You should update any kld_list="if_tap" or 237 kld_list="if_tun" entries in /etc/rc.conf, if_tap_load="YES" or 238 if_tun_load="YES" entries in /boot/loader.conf to load the if_tuntap 239 module instead, and "device tap" or "device tun" entries in kernel 240 config files to select the tuntap device instead. 241 24220190418: 243 The following knobs have been added related to tradeoffs between 244 safe use of the random device and availability in the absence of 245 entropy: 246 247 kern.random.initial_seeding.bypass_before_seeding: tunable; set 248 non-zero to bypass the random device prior to seeding, or zero to 249 block random requests until the random device is initially seeded. 250 For now, set to 1 (unsafe) by default to restore pre-r346250 boot 251 availability properties. 252 253 kern.random.initial_seeding.read_random_bypassed_before_seeding: 254 read-only diagnostic sysctl that is set when bypass is enabled and 255 read_random(9) is bypassed, to enable programmatic handling of this 256 initial condition, if desired. 257 258 kern.random.initial_seeding.arc4random_bypassed_before_seeding: 259 Similar to the above, but for for arc4random(9) initial seeding. 260 261 kern.random.initial_seeding.disable_bypass_warnings: tunable; set 262 non-zero to disable warnings in dmesg when the same conditions are 263 met as for the diagnostic sysctls above. Defaults to zero, i.e., 264 produce warnings in dmesg when the conditions are met. 265 26620190416: 267 The loadable random module KPI has changed; the random_infra_init() 268 routine now requires a 3rd function pointer for a bool (*)(void) 269 method that returns true if the random device is seeded (and 270 therefore unblocked). 271 27220190404: 273 r345895 reverts r320698. This implies that an nfsuserd(8) daemon 274 built from head sources between r320757 (July 6, 2017) and 275 r338192 (Aug. 22, 2018) will not work unless the "-use-udpsock" 276 is added to the command line. 277 nfsuserd daemons built from head sources that are post-r338192 are 278 not affected and should continue to work. 279 28020190320: 281 The fuse(4) module has been renamed to fusefs(4) for consistency with 282 other filesystems. You should update any kld_load="fuse" entries in 283 /etc/rc.conf, fuse_load="YES" entries in /boot/loader.conf, and 284 "options FUSE" entries in kernel config files. 285 28620190304: 287 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 288 8.0.0. Please see the 20141231 entry below for information about 289 prerequisites and upgrading, if you are not already using clang 3.5.0 290 or higher. 291 29220190226: 293 geom_uzip(4) depends on the new module xz. If geom_uzip is statically 294 compiled into your custom kernel, add 'device xz' statement to the 295 kernel config. 296 29720190219: 298 drm and drm2 have been removed from the tree. Please see 299 https://wiki.freebsd.org/Graphics for the latest information on 300 migrating to the drm ports. 301 30220190131: 303 Iflib is no longer unconditionally compiled into the kernel. Drivers 304 using iflib and statically compiled into the kernel, now require 305 the 'device iflib' config option. For the same drivers loaded as 306 modules on kernels not having 'device iflib', the iflib.ko module 307 is loaded automatically. 308 30920190125: 310 The IEEE80211_AMPDU_AGE and AH_SUPPORT_AR5416 kernel configuration 311 options no longer exist since r343219 and r343427 respectively; 312 nothing uses them, so they should be just removed from custom 313 kernel config files. 314 31520181230: 316 r342635 changes the way efibootmgr(8) works by requiring users to add 317 the -b (bootnum) parameter for commands where the bootnum was previously 318 specified with each option. For example 'efibootmgr -B 0001' is now 319 'efibootmgr -B -b 0001'. 320 32120181220: 322 r342286 modifies the NFSv4 server so that it obeys vfs.nfsd.nfs_privport 323 in the same as it is applied to NFSv2 and 3. This implies that NFSv4 324 servers that have vfs.nfsd.nfs_privport set will only allow mounts 325 from clients using a reserved port#. Since both the FreeBSD and Linux 326 NFSv4 clients use reserved port#s by default, this should not affect 327 most NFSv4 mounts. 328 32920181219: 330 The XLP config has been removed. We can't support 64-bit atomics in this 331 kernel because it is running in 32-bit mode. XLP users must transition 332 to running a 64-bit kernel (XLP64 or XLPN32). 333 334 The mips GXEMUL support has been removed from FreeBSD. MALTA* + qemu is 335 the preferred emulator today and we don't need two different ones. 336 337 The old sibyte / swarm / Broadcom BCM1250 support has been 338 removed from the mips port. 339 34020181211: 341 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 342 7.0.1. Please see the 20141231 entry below for information about 343 prerequisites and upgrading, if you are not already using clang 3.5.0 344 or higher. 345 34620181211: 347 Remove the timed and netdate programs from the base tree. Setting 348 the time with these daemons has been obsolete for over a decade. 349 35020181126: 351 On amd64, arm64 and armv7 (architectures that install LLVM's ld.lld 352 linker as /usr/bin/ld) GNU ld is no longer installed as ld.bfd, as 353 it produces broken binaries when ifuncs are in use. Users needing 354 GNU ld should install the binutils port or package. 355 35620181123: 357 The BSD crtbegin and crtend code has been enabled by default. It has 358 had extensive testing on amd64, arm64, and i386. It can be disabled 359 by building a world with -DWITHOUT_BSD_CRTBEGIN. 360 36120181115: 362 The set of CTM commands (ctm, ctm_smail, ctm_rmail, ctm_dequeue) 363 has been converted to a port (misc/ctm) and will be removed from 364 FreeBSD-13. It is available as a package (ctm) for all supported 365 FreeBSD versions. 366 36720181110: 368 The default newsyslog.conf(5) file has been changed to only include 369 files in /etc/newsyslog.conf.d/ and /usr/local/etc/newsyslog.conf.d/ if 370 the filenames end in '.conf' and do not begin with a '.'. 371 372 You should check the configuration files in these two directories match 373 this naming convention. You can verify which configuration files are 374 being included using the command: 375 $ newsyslog -Nrv 376 37720181015: 378 Ports for the DRM modules have been simplified. Now, amd64 users should 379 just install the drm-kmod port. All others should install 380 drm-legacy-kmod. 381 382 Graphics hardware that's newer than about 2010 usually works with 383 drm-kmod. For hardware older than 2013, however, some users will need 384 to use drm-legacy-kmod if drm-kmod doesn't work for them. Hardware older 385 than 2008 usually only works in drm-legacy-kmod. The graphics team can 386 only commit to hardware made since 2013 due to the complexity of the 387 market and difficulty to test all the older cards effectively. If you 388 have hardware supported by drm-kmod, you are strongly encouraged to use 389 that as you will get better support. 390 391 Other than KPI chasing, drm-legacy-kmod will not be updated. As outlined 392 elsewhere, the drm and drm2 modules will be eliminated from the src base 393 soon (with a limited exception for arm). Please update to the package 394 asap and report any issues to x11@freebsd.org. 395 396 Generally, anybody using the drm*-kmod packages should add 397 WITHOUT_DRM_MODULE=t and WITHOUT_DRM2_MODULE=t to avoid nasty 398 cross-threading surprises, especially with automatic driver 399 loading from X11 startup. These will become the defaults in 13-current 400 shortly. 401 40220181012: 403 The ixlv(4) driver has been renamed to iavf(4). As a consequence, 404 custom kernel and module loading configuration files must be updated 405 accordingly. Moreover, interfaces previous presented as ixlvN to the 406 system are now exposed as iavfN and network configuration files must 407 be adjusted as necessary. 408 40920181009: 410 OpenSSL has been updated to version 1.1.1. This update included 411 additional various API changes throughout the base system. It is 412 important to rebuild third-party software after upgrading. The value 413 of __FreeBSD_version has been bumped accordingly. 414 41520181006: 416 The legacy DRM modules and drivers have now been added to the loader's 417 module blacklist, in favor of loading them with kld_list in rc.conf(5). 418 The module blacklist may be overridden with the loader.conf(5) 419 'module_blacklist' variable, but loading them via rc.conf(5) is strongly 420 encouraged. 421 42220181002: 423 The cam(4) based nda(4) driver will be used over nvd(4) by default on 424 powerpc64. You may set 'options NVME_USE_NVD=1' in your kernel conf or 425 loader tunable 'hw.nvme.use_nvd=1' if you wish to use the existing 426 driver. Make sure to edit /boot/etc/kboot.conf and fstab to use the 427 nda device name. 428 42920180913: 430 Reproducible build mode is now on by default, in preparation for 431 FreeBSD 12.0. This eliminates build metadata such as the user, 432 host, and time from the kernel (and uname), unless the working tree 433 corresponds to a modified checkout from a version control system. 434 The previous behavior can be obtained by setting the /etc/src.conf 435 knob WITHOUT_REPRODUCIBLE_BUILD. 436 43720180826: 438 The Yarrow CSPRNG has been removed from the kernel as it has not been 439 supported by its designers since at least 2003. Fortuna has been the 440 default since FreeBSD-11. 441 44220180822: 443 devctl freeze/thaw have gone into the tree, the rc scripts have been 444 updated to use them and devmatch has been changed. You should update 445 kernel, userland and rc scripts all at the same time. 446 44720180818: 448 The default interpreter has been switched from 4th to Lua. 449 LOADER_DEFAULT_INTERP, documented in build(7), will override the default 450 interpreter. If you have custom FORTH code you will need to set 451 LOADER_DEFAULT_INTERP=4th (valid values are 4th, lua or simp) in 452 src.conf for the build. This will create default hard links between 453 loader and loader_4th instead of loader and loader_lua, the new default. 454 If you are using UEFI it will create the proper hard link to loader.efi. 455 456 bhyve uses userboot.so. It remains 4th-only until some issues are solved 457 regarding coexisting with multiple versions of FreeBSD are resolved. 458 45920180815: 460 ls(1) now respects the COLORTERM environment variable used in other 461 systems and software to indicate that a colored terminal is both 462 supported and desired. If ls(1) is suddenly emitting colors, they may 463 be disabled again by either removing the unwanted COLORTERM from your 464 environment, or using `ls --color=never`. The ls(1) specific CLICOLOR 465 may not be observed in a future release. 466 46720180808: 468 The default pager for most commands has been changed to "less". To 469 restore the old behavior, set PAGER="more" and MANPAGER="more -s" in 470 your environment. 471 47220180731: 473 The jedec_ts(4) driver has been removed. A superset of its functionality 474 is available in the jedec_dimm(4) driver, and the manpage for that 475 driver includes migration instructions. If you have "device jedec_ts" 476 in your kernel configuration file, it must be removed. 477 47820180730: 479 amd64/GENERIC now has EFI runtime services, EFIRT, enabled by default. 480 This should have no effect if the kernel is booted via BIOS/legacy boot. 481 EFIRT may be disabled via a loader tunable, efi.rt.disabled, if a system 482 has a buggy firmware that prevents a successful boot due to use of 483 runtime services. 484 48520180727: 486 Atmel AT91RM9200 and AT91SAM9, Cavium CNS 11xx and XScale 487 support has been removed from the tree. These ports were 488 obsolete and/or known to be broken for many years. 489 49020180723: 491 loader.efi has been augmented to participate more fully in the 492 UEFI boot manager protocol. loader.efi will now look at the 493 BootXXXX environment variable to determine if a specific kernel 494 or root partition was specified. XXXX is derived from BootCurrent. 495 efibootmgr(8) manages these standard UEFI variables. 496 49720180720: 498 zfsloader's functionality has now been folded into loader. 499 zfsloader is no longer necessary once you've updated your 500 boot blocks. For a transition period, we will install a 501 hardlink for zfsloader to loader to allow a smooth transition 502 until the boot blocks can be updated (hard link because old 503 zfs boot blocks don't understand symlinks). 504 50520180719: 506 ARM64 now have efifb support, if you want to have serial console 507 on your arm64 board when an screen is connected and the bootloader 508 setup a frame buffer for us to use, just add : 509 boot_serial=YES 510 boot_multicons=YES 511 in /boot/loader.conf 512 For Raspberry Pi 3 (RPI) users, this is needed even if you don't have 513 an screen connected as the firmware will setup a frame buffer are that 514 u-boot will expose as an EFI frame buffer. 515 51620180719: 517 New uid:gid added, ntpd:ntpd (123:123). Be sure to run mergemaster 518 or take steps to update /etc/passwd before doing installworld on 519 existing systems. Do not skip the "mergemaster -Fp" step before 520 installworld, as described in the update procedures near the bottom 521 of this document. Also, rc.d/ntpd now starts ntpd(8) as user ntpd 522 if the new mac_ntpd(4) policy is available, unless ntpd_flags or 523 the ntp config file contain options that change file/dir locations. 524 When such options (e.g., "statsdir" or "crypto") are used, ntpd can 525 still be run as non-root by setting ntpd_user=ntpd in rc.conf, after 526 taking steps to ensure that all required files/dirs are accessible 527 by the ntpd user. 528 52920180717: 530 Big endian arm support has been removed. 531 53220180711: 533 The static environment setup in kernel configs is no longer mutually 534 exclusive with the loader(8) environment by default. In order to 535 restore the previous default behavior of disabling the loader(8) 536 environment if a static environment is present, you must specify 537 loader_env.disabled=1 in the static environment. 538 53920180705: 540 The ABI of syscalls used by management tools like sockstat and 541 netstat has been broken to allow 32-bit binaries to work on 542 64-bit kernels without modification. These programs will need 543 to match the kernel in order to function. External programs may 544 require minor modifications to accommodate a change of type in 545 structures from pointers to 64-bit virtual addresses. 546 54720180702: 548 On i386 and amd64 atomics are now inlined. Out of tree modules using 549 atomics will need to be rebuilt. 550 55120180701: 552 The '%I' format in the kern.corefile sysctl limits the number of 553 core files that a process can generate to the number stored in the 554 debug.ncores sysctl. The '%I' format is replaced by the single digit 555 index. Previously, if all indexes were taken the kernel would overwrite 556 only a core file with the highest index in a filename. 557 Currently the system will create a new core file if there is a free 558 index or if all slots are taken it will overwrite the oldest one. 559 56020180630: 561 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 562 6.0.1. Please see the 20141231 entry below for information about 563 prerequisites and upgrading, if you are not already using clang 3.5.0 564 or higher. 565 56620180628: 567 r335753 introduced a new quoting method. However, etc/devd/devmatch.conf 568 needed to be changed to work with it. This change was made with r335763 569 and requires a mergemaster / etcupdate / etc to update the installed 570 file. 571 57220180612: 573 r334930 changed the interface between the NFS modules, so they all 574 need to be rebuilt. r335018 did a __FreeBSD_version bump for this. 575 57620180530: 577 As of r334391 lld is the default amd64 system linker; it is installed 578 as /usr/bin/ld. Kernel build workarounds (see 20180510 entry) are no 579 longer necessary. 580 58120180530: 582 The kernel / userland interface for devinfo changed, so you'll 583 need a new kernel and userland as a pair for it to work (rebuilding 584 lib/libdevinfo is all that's required). devinfo and devmatch will 585 not work, but everything else will when there's a mismatch. 586 58720180523: 588 The on-disk format for hwpmc callchain records has changed to include 589 threadid corresponding to a given record. This changes the field offsets 590 and thus requires that libpmcstat be rebuilt before using a kernel 591 later than r334108. 592 59320180517: 594 The vxge(4) driver has been removed. This driver was introduced into 595 HEAD one week before the Exar left the Ethernet market and is not 596 known to be used. If you have device vxge in your kernel config file 597 it must be removed. 598 59920180510: 600 The amd64 kernel now requires a ld that supports ifunc to produce a 601 working kernel, either lld or a newer binutils. lld is built by default 602 on amd64, and the 'buildkernel' target uses it automatically. However, 603 it is not the default linker, so building the kernel the traditional 604 way requires LD=ld.lld on the command line (or LD=/usr/local/bin/ld for 605 binutils port/package). lld will soon be default, and this requirement 606 will go away. 607 608 NOTE: As of r334391 lld is the default system linker on amd64, and no 609 workaround is necessary. 610 61120180508: 612 The nxge(4) driver has been removed. This driver was for PCI-X 10g 613 cards made by s2io/Neterion. The company was acquired by Exar and 614 no longer sells or supports Ethernet products. If you have device 615 nxge in your kernel config file it must be removed. 616 61720180504: 618 The tz database (tzdb) has been updated to 2018e. This version more 619 correctly models time stamps in time zones with negative DST such as 620 Europe/Dublin (from 1971 on), Europe/Prague (1946/7), and 621 Africa/Windhoek (1994/2017). This does not affect the UT offsets, only 622 time zone abbreviations and the tm_isdst flag. 623 62420180502: 625 The ixgb(4) driver has been removed. This driver was for an early and 626 uncommon legacy PCI 10GbE for a single ASIC, Intel 82597EX. Intel 627 quickly shifted to the long lived ixgbe family. If you have device 628 ixgb in your kernel config file it must be removed. 629 63020180501: 631 The lmc(4) driver has been removed. This was a WAN interface 632 card that was already reportedly rare in 2003, and had an ambiguous 633 license. If you have device lmc in your kernel config file it must 634 be removed. 635 63620180413: 637 Support for Arcnet networks has been removed. If you have device 638 arcnet or device cm in your kernel config file they must be 639 removed. 640 64120180411: 642 Support for FDDI networks has been removed. If you have device 643 fddi or device fpa in your kernel config file they must be 644 removed. 645 64620180406: 647 In addition to supporting RFC 3164 formatted messages, the 648 syslogd(8) service is now capable of parsing RFC 5424 formatted 649 log messages. The main benefit of using RFC 5424 is that clients 650 may now send log messages with timestamps containing year numbers, 651 microseconds and time zone offsets. 652 653 Similarly, the syslog(3) C library function has been altered to 654 send RFC 5424 formatted messages to the local system logging 655 daemon. On systems using syslogd(8), this change should have no 656 negative impact, as long as syslogd(8) and the C library are 657 updated at the same time. On systems using a different system 658 logging daemon, it may be necessary to make configuration 659 adjustments, depending on the software used. 660 661 When using syslog-ng, add the 'syslog-protocol' flag to local 662 input sources to enable parsing of RFC 5424 formatted messages: 663 664 source src { 665 unix-dgram("/var/run/log" flags(syslog-protocol)); 666 } 667 668 When using rsyslog, disable the 'SysSock.UseSpecialParser' option 669 of the 'imuxsock' module to let messages be processed by the 670 regular RFC 3164/5424 parsing pipeline: 671 672 module(load="imuxsock" SysSock.UseSpecialParser="off") 673 674 Do note that these changes only affect communication between local 675 applications and syslogd(8). The format that syslogd(8) uses to 676 store messages on disk or forward messages to other systems 677 remains unchanged. syslogd(8) still uses RFC 3164 for these 678 purposes. Options to customize this behaviour will be added in the 679 future. Utilities that process log files stored in /var/log are 680 thus expected to continue to function as before. 681 682 __FreeBSD_version has been incremented to 1200061 to denote this 683 change. 684 68520180328: 686 Support for token ring networks has been removed. If you 687 have "device token" in your kernel config you should remove 688 it. No device drivers supported token ring. 689 69020180323: 691 makefs was modified to be able to tag ISO9660 El Torito boot catalog 692 entries as EFI instead of overloading the i386 tag as done previously. 693 The amd64 mkisoimages.sh script used to build amd64 ISO images for 694 release was updated to use this. This may mean that makefs must be 695 updated before "make cdrom" can be run in the release directory. This 696 should be as simple as: 697 698 $ cd $SRCDIR/usr.sbin/makefs 699 $ make depend all install 700 70120180212: 702 FreeBSD boot loader enhanced with Lua scripting. It's purely opt-in for 703 now by building WITH_LOADER_LUA and WITHOUT_FORTH in /etc/src.conf. 704 Co-existence for the transition period will come shortly. Booting is a 705 complex environment and test coverage for Lua-enabled loaders has been 706 thin, so it would be prudent to assume it might not work and make 707 provisions for backup boot methods. 708 70920180211: 710 devmatch functionality has been turned on in devd. It will automatically 711 load drivers for unattached devices. This may cause unexpected drivers 712 to be loaded. Please report any problems to current@ and 713 imp@freebsd.org. 714 71520180114: 716 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 717 6.0.0. Please see the 20141231 entry below for information about 718 prerequisites and upgrading, if you are not already using clang 3.5.0 719 or higher. 720 72120180110: 722 LLVM's lld linker is now used as the FreeBSD/amd64 bootstrap linker. 723 This means it is used to link the kernel and userland libraries and 724 executables, but is not yet installed as /usr/bin/ld by default. 725 726 To revert to ld.bfd as the bootstrap linker, in /etc/src.conf set 727 WITHOUT_LLD_BOOTSTRAP=yes 728 72920180110: 730 On i386, pmtimer has been removed. Its functionality has been folded 731 into apm. It was a no-op on ACPI in current for a while now (but was 732 still needed on i386 in FreeBSD 11 and earlier). Users may need to 733 remove it from kernel config files. 734 73520180104: 736 The use of RSS hash from the network card aka flowid has been 737 disabled by default for lagg(4) as it's currently incompatible with 738 the lacp and loadbalance protocols. 739 740 This can be re-enabled by setting the following in loader.conf: 741 net.link.lagg.default_use_flowid="1" 742 74320180102: 744 The SW_WATCHDOG option is no longer necessary to enable the 745 hardclock-based software watchdog if no hardware watchdog is 746 configured. As before, SW_WATCHDOG will cause the software 747 watchdog to be enabled even if a hardware watchdog is configured. 748 74920171215: 750 r326887 fixes the issue described in the 20171214 UPDATING entry. 751 r326888 flips the switch back to building GELI support always. 752 75320171214: 754 r362593 broke ZFS + GELI support for reasons unknown. However, 755 it also broke ZFS support generally, so GELI has been turned off 756 by default as the lesser evil in r326857. If you boot off ZFS and/or 757 GELI, it might not be a good time to update. 758 75920171125: 760 PowerPC users must update loader(8) by rebuilding world before 761 installing a new kernel, as the protocol connecting them has 762 changed. Without the update, loader metadata will not be passed 763 successfully to the kernel and users will have to enter their 764 root partition at the kernel mountroot prompt to continue booting. 765 Newer versions of loader can boot old kernels without issue. 766 76720171110: 768 The LOADER_FIREWIRE_SUPPORT build variable as been renamed to 769 WITH/OUT_LOADER_FIREWIRE. LOADER_{NO_,}GELI_SUPPORT has been renamed 770 to WITH/OUT_LOADER_GELI. 771 77220171106: 773 The naive and non-compliant support of posix_fallocate(2) in ZFS 774 has been removed as of r325320. The system call now returns EINVAL 775 when used on a ZFS file. Although the new behavior complies with the 776 standard, some consumers are not prepared to cope with it. 777 One known victim is lld prior to r325420. 778 77920171102: 780 Building in a FreeBSD src checkout will automatically create object 781 directories now rather than store files in the current directory if 782 'make obj' was not ran. Calling 'make obj' is no longer necessary. 783 This feature can be disabled by setting WITHOUT_AUTO_OBJ=yes in 784 /etc/src-env.conf (not /etc/src.conf), or passing the option in the 785 environment. 786 78720171101: 788 The default MAKEOBJDIR has changed from /usr/obj/<srcdir> for native 789 builds, and /usr/obj/<arch>/<srcdir> for cross-builds, to a unified 790 /usr/obj/<srcdir>/<arch>. This behavior can be changed to the old 791 format by setting WITHOUT_UNIFIED_OBJDIR=yes in /etc/src-env.conf, 792 the environment, or with -DWITHOUT_UNIFIED_OBJDIR when building. 793 The UNIFIED_OBJDIR option is a transitional feature that will be 794 removed for 12.0 release; please migrate to the new format for any 795 tools by looking up the OBJDIR used by 'make -V .OBJDIR' means rather 796 than hardcoding paths. 797 79820171028: 799 The native-xtools target no longer installs the files by default to the 800 OBJDIR. Use the native-xtools-install target with a DESTDIR to install 801 to ${DESTDIR}/${NXTP} where NXTP defaults to /nxb-bin. 802 80320171021: 804 As part of the boot loader infrastructure cleanup, LOADER_*_SUPPORT 805 options are changing from controlling the build if defined / undefined 806 to controlling the build with explicit 'yes' or 'no' values. They will 807 shift to WITH/WITHOUT options to match other options in the system. 808 80920171010: 810 libstand has turned into a private library for sys/boot use only. 811 It is no longer supported as a public interface outside of sys/boot. 812 81320171005: 814 The arm port has split armv6 into armv6 and armv7. armv7 is now 815 a valid TARGET_ARCH/MACHINE_ARCH setting. If you have an armv7 system 816 and are running a kernel from before r324363, you will need to add 817 MACHINE_ARCH=armv7 to 'make buildworld' to do a native build. 818 81920171003: 820 When building multiple kernels using KERNCONF, non-existent KERNCONF 821 files will produce an error and buildkernel will fail. Previously 822 missing KERNCONF files silently failed giving no indication as to 823 why, only to subsequently discover during installkernel that the 824 desired kernel was never built in the first place. 825 82620170912: 827 The default serial number format for CTL LUNs has changed. This will 828 affect users who use /dev/diskid/* device nodes, or whose FibreChannel 829 or iSCSI clients care about their LUNs' serial numbers. Users who 830 require serial number stability should hardcode serial numbers in 831 /etc/ctl.conf . 832 83320170912: 834 For 32-bit arm compiled for hard-float support, soft-floating point 835 binaries now always get their shared libraries from 836 LD_SOFT_LIBRARY_PATH (in the past, this was only used if 837 /usr/libsoft also existed). Only users with a hard-float ld.so, but 838 soft-float everything else should be affected. 839 84020170826: 841 The geli password typed at boot is now hidden. To restore the previous 842 behavior, see geli(8) for configuration options. 843 84420170825: 845 Move PMTUD blackhole counters to TCPSTATS and remove them from bare 846 sysctl values. Minor nit, but requires a rebuild of both world/kernel 847 to complete. 848 84920170814: 850 "make check" behavior (made in ^/head@r295380) has been changed to 851 execute from a limited sandbox, as opposed to executing from 852 ${TESTSDIR}. 853 854 Behavioral changes: 855 - The "beforecheck" and "aftercheck" targets are now specified. 856 - ${CHECKDIR} (added in commit noted above) has been removed. 857 - Legacy behavior can be enabled by setting 858 WITHOUT_MAKE_CHECK_USE_SANDBOX in src.conf(5) or the environment. 859 860 If the limited sandbox mode is enabled, "make check" will execute 861 "make distribution", then install, execute the tests, and clean up the 862 sandbox if successful. 863 864 The "make distribution" and "make install" targets are typically run as 865 root to set appropriate permissions and ownership at installation time. 866 The end-user should set "WITH_INSTALL_AS_USER" in src.conf(5) or the 867 environment if executing "make check" with limited sandbox mode using 868 an unprivileged user. 869 87020170808: 871 Since the switch to GPT disk labels, fsck for UFS/FFS has been 872 unable to automatically find alternate superblocks. As of r322297, 873 the information needed to find alternate superblocks has been 874 moved to the end of the area reserved for the boot block. 875 Filesystems created with a newfs of this vintage or later 876 will create the recovery information. If you have a filesystem 877 created prior to this change and wish to have a recovery block 878 created for your filesystem, you can do so by running fsck in 879 foreground mode (i.e., do not use the -p or -y options). As it 880 starts, fsck will ask ``SAVE DATA TO FIND ALTERNATE SUPERBLOCKS'' 881 to which you should answer yes. 882 88320170728: 884 As of r321665, an NFSv4 server configuration that services 885 Kerberos mounts or clients that do not support the uid/gid in 886 owner/owner_group string capability, must explicitly enable 887 the nfsuserd daemon by adding nfsuserd_enable="YES" to the 888 machine's /etc/rc.conf file. 889 89020170722: 891 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 5.0.0. 892 Please see the 20141231 entry below for information about prerequisites 893 and upgrading, if you are not already using clang 3.5.0 or higher. 894 89520170701: 896 WITHOUT_RCMDS is now the default. Set WITH_RCMDS if you need the 897 r-commands (rlogin, rsh, etc.) to be built with the base system. 898 89920170625: 900 The FreeBSD/powerpc platform now uses a 64-bit type for time_t. This is 901 a very major ABI incompatible change, so users of FreeBSD/powerpc must 902 be careful when performing source upgrades. It is best to run 903 'make installworld' from an alternate root system, either a live 904 CD/memory stick, or a temporary root partition. Additionally, all ports 905 must be recompiled. powerpc64 is largely unaffected, except in the case 906 of 32-bit compatibility. All 32-bit binaries will be affected. 907 90820170623: 909 Forward compatibility for the "ino64" project have been committed. This 910 will allow most new binaries to run on older kernels in a limited 911 fashion. This prevents many of the common foot-shooting actions in the 912 upgrade as well as the limited ability to roll back the kernel across 913 the ino64 upgrade. Complicated use cases may not work properly, though 914 enough simpler ones work to allow recovery in most situations. 915 91620170620: 917 Switch back to the BSDL dtc (Device Tree Compiler). Set WITH_GPL_DTC 918 if you require the GPL compiler. 919 92020170618: 921 The internal ABI used for communication between the NFS kernel modules 922 was changed by r320085, so __FreeBSD_version was bumped to 923 ensure all the NFS related modules are updated together. 924 92520170617: 926 The ABI of struct event was changed by extending the data 927 member to 64bit and adding ext fields. For upgrade, same 928 precautions as for the entry 20170523 "ino64" must be 929 followed. 930 93120170531: 932 The GNU roff toolchain has been removed from base. To render manpages 933 which are not supported by mandoc(1), man(1) can fallback on GNU roff 934 from ports (and recommends to install it). 935 To render roff(7) documents, consider using GNU roff from ports or the 936 heirloom doctools roff toolchain from ports via pkg install groff or 937 via pkg install heirloom-doctools. 938 93920170524: 940 The ath(4) and ath_hal(4) modules now build piecemeal to allow for 941 smaller runtime footprint builds. This is useful for embedded systems 942 which only require one chipset support. 943 944 If you load it as a module, make sure this is in /boot/loader.conf: 945 946 if_ath_load="YES" 947 948 This will load the HAL, all chip/RF backends and if_ath_pci. 949 If you have if_ath_pci in /boot/loader.conf, ensure it is after 950 if_ath or it will not load any HAL chipset support. 951 952 If you want to selectively load things (eg on ye cheape ARM/MIPS 953 platforms where RAM is at a premium) you should: 954 955 * load ath_hal 956 * load the chip modules in question 957 * load ath_rate, ath_dfs 958 * load ath_main 959 * load if_ath_pci and/or if_ath_ahb depending upon your particular 960 bus bind type - this is where probe/attach is done. 961 962 For further comments/feedback, poke adrian@ . 963 96420170523: 965 The "ino64" 64-bit inode project has been committed, which extends 966 a number of types to 64 bits. Upgrading in place requires care and 967 adherence to the documented upgrade procedure. 968 969 If using a custom kernel configuration ensure that the 970 COMPAT_FREEBSD11 option is included (as during the upgrade the 971 system will be running the ino64 kernel with the existing world). 972 973 For the safest in-place upgrade begin by removing previous build 974 artifacts via "rm -rf /usr/obj/*". Then, carefully follow the full 975 procedure documented below under the heading "To rebuild everything and 976 install it on the current system." Specifically, a reboot is required 977 after installing the new kernel before installing world. While an 978 installworld normally works by accident from multiuser after rebooting 979 the proper kernel, there are many cases where this will fail across this 980 upgrade and installworld from single user is required. 981 98220170424: 983 The NATM framework including the en(4), fatm(4), hatm(4), and 984 patm(4) devices has been removed. Consumers should plan a 985 migration before the end-of-life date for FreeBSD 11. 986 98720170420: 988 GNU diff has been replaced by a BSD licensed diff. Some features of GNU 989 diff has not been implemented, if those are needed a newer version of 990 GNU diff is available via the diffutils package under the gdiff name. 991 99220170413: 993 As of r316810 for ipfilter, keep frags is no longer assumed when 994 keep state is specified in a rule. r316810 aligns ipfilter with 995 documentation in man pages separating keep frags from keep state. 996 This allows keep state to be specified without forcing keep frags 997 and allows keep frags to be specified independently of keep state. 998 To maintain previous behaviour, also specify keep frags with 999 keep state (as documented in ipf.conf.5). 1000 100120170407: 1002 arm64 builds now use the base system LLD 4.0.0 linker by default, 1003 instead of requiring that the aarch64-binutils port or package be 1004 installed. To continue using aarch64-binutils, set 1005 CROSS_BINUTILS_PREFIX=/usr/local/aarch64-freebsd/bin . 1006 100720170405: 1008 The UDP optimization in entry 20160818 that added the sysctl 1009 net.inet.udp.require_l2_bcast has been reverted. L2 broadcast 1010 packets will no longer be treated as L3 broadcast packets. 1011 101220170331: 1013 Binds and sends to the loopback addresses, IPv6 and IPv4, will now 1014 use any explicitly assigned loopback address available in the jail 1015 instead of using the first assigned address of the jail. 1016 101720170329: 1018 The ctl.ko module no longer implements the iSCSI target frontend: 1019 cfiscsi.ko does instead. 1020 1021 If building cfiscsi.ko as a kernel module, the module can be loaded 1022 via one of the following methods: 1023 - `cfiscsi_load="YES"` in loader.conf(5). 1024 - Add `cfiscsi` to `$kld_list` in rc.conf(5). 1025 - ctladm(8)/ctld(8), when compiled with iSCSI support 1026 (`WITH_ISCSI=yes` in src.conf(5)) 1027 1028 Please see cfiscsi(4) for more details. 1029 103020170316: 1031 The mmcsd.ko module now additionally depends on geom_flashmap.ko. 1032 Also, mmc.ko and mmcsd.ko need to be a matching pair built from the 1033 same source (previously, the dependency of mmcsd.ko on mmc.ko was 1034 missing, but mmcsd.ko now will refuse to load if it is incompatible 1035 with mmc.ko). 1036 103720170315: 1038 The syntax of ipfw(8) named states was changed to avoid ambiguity. 1039 If you have used named states in the firewall rules, you need to modify 1040 them after installworld and before rebooting. Now named states must 1041 be prefixed with colon. 1042 104320170311: 1044 The old drm (sys/dev/drm/) drivers for i915 and radeon have been 1045 removed as the userland we provide cannot use them. The KMS version 1046 (sys/dev/drm2) supports the same hardware. 1047 104820170302: 1049 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 4.0.0. 1050 Please see the 20141231 entry below for information about prerequisites 1051 and upgrading, if you are not already using clang 3.5.0 or higher. 1052 105320170221: 1054 The code that provides support for ZFS .zfs/ directory functionality 1055 has been reimplemented. It's not possible now to create a snapshot 1056 by mkdir under .zfs/snapshot/. That should be the only user visible 1057 change. 1058 105920170216: 1060 EISA bus support has been removed. The WITH_EISA option is no longer 1061 valid. 1062 106320170215: 1064 MCA bus support has been removed. 1065 106620170127: 1067 The WITH_LLD_AS_LD / WITHOUT_LLD_AS_LD build knobs have been renamed 1068 WITH_LLD_IS_LD / WITHOUT_LLD_IS_LD, for consistency with CLANG_IS_CC. 1069 107020170112: 1071 The EM_MULTIQUEUE kernel configuration option is deprecated now that 1072 the em(4) driver conforms to iflib specifications. 1073 107420170109: 1075 The igb(4), em(4) and lem(4) ethernet drivers are now implemented via 1076 IFLIB. If you have a custom kernel configuration that excludes em(4) 1077 but you use igb(4), you need to re-add em(4) to your custom 1078 configuration. 1079 108020161217: 1081 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1. 1082 Please see the 20141231 entry below for information about prerequisites 1083 and upgrading, if you are not already using clang 3.5.0 or higher. 1084 108520161124: 1086 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.0. 1087 Please see the 20141231 entry below for information about prerequisites 1088 and upgrading, if you are not already using clang 3.5.0 or higher. 1089 109020161119: 1091 The layout of the pmap structure has changed for powerpc to put the pmap 1092 statistics at the front for all CPU variations. libkvm(3) and all tools 1093 that link against it need to be recompiled. 1094 109520161030: 1096 isl(4) and cyapa(4) drivers now require a new driver, 1097 chromebook_platform(4), to work properly on Chromebook-class hardware. 1098 On other types of hardware the drivers may need to be configured using 1099 device hints. Please see the corresponding manual pages for details. 1100 110120161017: 1102 The urtwn(4) driver was merged into rtwn(4) and now consists of 1103 rtwn(4) main module + rtwn_usb(4) and rtwn_pci(4) bus-specific 1104 parts. 1105 Also, firmware for RTL8188CE was renamed due to possible name 1106 conflict (rtwnrtl8192cU(B) -> rtwnrtl8192cE(B)) 1107 110820161015: 1109 GNU rcs has been removed from base. It is available as packages: 1110 - rcs: Latest GPLv3 GNU rcs version. 1111 - rcs57: Copy of the latest version of GNU rcs (GPLv2) before it was 1112 removed from base. 1113 111420161008: 1115 Use of the cc_cdg, cc_chd, cc_hd, or cc_vegas congestion control 1116 modules now requires that the kernel configuration contain the 1117 TCP_HHOOK option. (This option is included in the GENERIC kernel.) 1118 111920161003: 1120 The WITHOUT_ELFCOPY_AS_OBJCOPY src.conf(5) knob has been retired. 1121 ELF Tool Chain's elfcopy is always installed as /usr/bin/objcopy. 1122 112320160924: 1124 Relocatable object files with the extension of .So have been renamed 1125 to use an extension of .pico instead. The purpose of this change is 1126 to avoid a name clash with shared libraries on case-insensitive file 1127 systems. On those file systems, foo.So is the same file as foo.so. 1128 112920160918: 1130 GNU rcs has been turned off by default. It can (temporarily) be built 1131 again by adding WITH_RCS knob in src.conf. 1132 Otherwise, GNU rcs is available from packages: 1133 - rcs: Latest GPLv3 GNU rcs version. 1134 - rcs57: Copy of the latest version of GNU rcs (GPLv2) from base. 1135 113620160918: 1137 The backup_uses_rcs functionality has been removed from rc.subr. 1138 113920160908: 1140 The queue(3) debugging macro, QUEUE_MACRO_DEBUG, has been split into 1141 two separate components, QUEUE_MACRO_DEBUG_TRACE and 1142 QUEUE_MACRO_DEBUG_TRASH. Define both for the original 1143 QUEUE_MACRO_DEBUG behavior. 1144 114520160824: 1146 r304787 changed some ioctl interfaces between the iSCSI userspace 1147 programs and the kernel. ctladm, ctld, iscsictl, and iscsid must be 1148 rebuilt to work with new kernels. __FreeBSD_version has been bumped 1149 to 1200005. 1150 115120160818: 1152 The UDP receive code has been updated to only treat incoming UDP 1153 packets that were addressed to an L2 broadcast address as L3 1154 broadcast packets. It is not expected that this will affect any 1155 standards-conforming UDP application. The new behaviour can be 1156 disabled by setting the sysctl net.inet.udp.require_l2_bcast to 1157 0. 1158 115920160818: 1160 Remove the openbsd_poll system call. 1161 __FreeBSD_version has been bumped because of this. 1162 116320160708: 1164 The stable/11 branch has been created from head@r302406. 1165 116620160622: 1167 The libc stub for the pipe(2) system call has been replaced with 1168 a wrapper that calls the pipe2(2) system call and the pipe(2) 1169 system call is now only implemented by the kernels that include 1170 "options COMPAT_FREEBSD10" in their config file (this is the 1171 default). Users should ensure that this option is enabled in 1172 their kernel or upgrade userspace to r302092 before upgrading their 1173 kernel. 1174 117520160527: 1176 CAM will now strip leading spaces from SCSI disks' serial numbers. 1177 This will affect users who create UFS filesystems on SCSI disks using 1178 those disk's diskid device nodes. For example, if /etc/fstab 1179 previously contained a line like 1180 "/dev/diskid/DISK-%20%20%20%20%20%20%20ABCDEFG0123456", you should 1181 change it to "/dev/diskid/DISK-ABCDEFG0123456". Users of geom 1182 transforms like gmirror may also be affected. ZFS users should 1183 generally be fine. 1184 118520160523: 1186 The bitstring(3) API has been updated with new functionality and 1187 improved performance. But it is binary-incompatible with the old API. 1188 Objects built with the new headers may not be linked against objects 1189 built with the old headers. 1190 119120160520: 1192 The brk and sbrk functions have been removed from libc on arm64. 1193 Binutils from ports has been updated to not link to these 1194 functions and should be updated to the latest version before 1195 installing a new libc. 1196 119720160517: 1198 The armv6 port now defaults to hard float ABI. Limited support 1199 for running both hardfloat and soft float on the same system 1200 is available using the libraries installed with -DWITH_LIBSOFT. 1201 This has only been tested as an upgrade path for installworld 1202 and packages may fail or need manual intervention to run. New 1203 packages will be needed. 1204 1205 To update an existing self-hosted armv6hf system, you must add 1206 TARGET_ARCH=armv6 on the make command line for both the build 1207 and the install steps. 1208 120920160510: 1210 Kernel modules compiled outside of a kernel build now default to 1211 installing to /boot/modules instead of /boot/kernel. Many kernel 1212 modules built this way (such as those in ports) already overrode 1213 KMODDIR explicitly to install into /boot/modules. However, 1214 manually building and installing a module from /sys/modules will 1215 now install to /boot/modules instead of /boot/kernel. 1216 121720160414: 1218 The CAM I/O scheduler has been committed to the kernel. There should be 1219 no user visible impact. This does enable NCQ Trim on ada SSDs. While the 1220 list of known rogues that claim support for this but actually corrupt 1221 data is believed to be complete, be on the lookout for data 1222 corruption. The known rogue list is believed to be complete: 1223 1224 o Crucial MX100, M550 drives with MU01 firmware. 1225 o Micron M510 and M550 drives with MU01 firmware. 1226 o Micron M500 prior to MU07 firmware 1227 o Samsung 830, 840, and 850 all firmwares 1228 o FCCT M500 all firmwares 1229 1230 Crucial has firmware http://www.crucial.com/usa/en/support-ssd-firmware 1231 with working NCQ TRIM. For Micron branded drives, see your sales rep for 1232 updated firmware. Black listed drives will work correctly because these 1233 drives work correctly so long as no NCQ TRIMs are sent to them. Given 1234 this list is the same as found in Linux, it's believed there are no 1235 other rogues in the market place. All other models from the above 1236 vendors work. 1237 1238 To be safe, if you are at all concerned, you can quirk each of your 1239 drives to prevent NCQ from being sent by setting: 1240 kern.cam.ada.X.quirks="0x2" 1241 in loader.conf. If the drive requires the 4k sector quirk, set the 1242 quirks entry to 0x3. 1243 124420160330: 1245 The FAST_DEPEND build option has been removed and its functionality is 1246 now the one true way. The old mkdep(1) style of 'make depend' has 1247 been removed. See 20160311 for further details. 1248 124920160317: 1250 Resource range types have grown from unsigned long to uintmax_t. All 1251 drivers, and anything using libdevinfo, need to be recompiled. 1252 125320160311: 1254 WITH_FAST_DEPEND is now enabled by default for in-tree and out-of-tree 1255 builds. It no longer runs mkdep(1) during 'make depend', and the 1256 'make depend' stage can safely be skipped now as it is auto ran 1257 when building 'make all' and will generate all SRCS and DPSRCS before 1258 building anything else. Dependencies are gathered at compile time with 1259 -MF flags kept in separate .depend files per object file. Users should 1260 run 'make cleandepend' once if using -DNO_CLEAN to clean out older 1261 stale .depend files. 1262 126320160306: 1264 On amd64, clang 3.8.0 can now insert sections of type AMD64_UNWIND into 1265 kernel modules. Therefore, if you load any kernel modules at boot time, 1266 please install the boot loaders after you install the kernel, but before 1267 rebooting, e.g.: 1268 1269 make buildworld 1270 make buildkernel KERNCONF=YOUR_KERNEL_HERE 1271 make installkernel KERNCONF=YOUR_KERNEL_HERE 1272 make -C sys/boot install 1273 <reboot in single user> 1274 1275 Then follow the usual steps, described in the General Notes section, 1276 below. 1277 127820160305: 1279 Clang, llvm, lldb and compiler-rt have been upgraded to 3.8.0. Please 1280 see the 20141231 entry below for information about prerequisites and 1281 upgrading, if you are not already using clang 3.5.0 or higher. 1282 128320160301: 1284 The AIO subsystem is now a standard part of the kernel. The 1285 VFS_AIO kernel option and aio.ko kernel module have been removed. 1286 Due to stability concerns, asynchronous I/O requests are only 1287 permitted on sockets and raw disks by default. To enable 1288 asynchronous I/O requests on all file types, set the 1289 vfs.aio.enable_unsafe sysctl to a non-zero value. 1290 129120160226: 1292 The ELF object manipulation tool objcopy is now provided by the 1293 ELF Tool Chain project rather than by GNU binutils. It should be a 1294 drop-in replacement, with the addition of arm64 support. The 1295 (temporary) src.conf knob WITHOUT_ELFCOPY_AS_OBJCOPY knob may be set 1296 to obtain the GNU version if necessary. 1297 129820160129: 1299 Building ZFS pools on top of zvols is prohibited by default. That 1300 feature has never worked safely; it's always been prone to deadlocks. 1301 Using a zvol as the backing store for a VM guest's virtual disk will 1302 still work, even if the guest is using ZFS. Legacy behavior can be 1303 restored by setting vfs.zfs.vol.recursive=1. 1304 130520160119: 1306 The NONE and HPN patches has been removed from OpenSSH. They are 1307 still available in the security/openssh-portable port. 1308 130920160113: 1310 With the addition of ypldap(8), a new _ypldap user is now required 1311 during installworld. "mergemaster -p" can be used to add the user 1312 prior to installworld, as documented in the handbook. 1313 131420151216: 1315 The tftp loader (pxeboot) now uses the option root-path directive. As a 1316 consequence it no longer looks for a pxeboot.4th file on the tftp 1317 server. Instead it uses the regular /boot infrastructure as with the 1318 other loaders. 1319 132020151211: 1321 The code to start recording plug and play data into the modules has 1322 been committed. While the old tools will properly build a new kernel, 1323 a number of warnings about "unknown metadata record 4" will be produced 1324 for an older kldxref. To avoid such warnings, make sure to rebuild 1325 the kernel toolchain (or world). Make sure that you have r292078 or 1326 later when trying to build 292077 or later before rebuilding. 1327 132820151207: 1329 Debug data files are now built by default with 'make buildworld' and 1330 installed with 'make installworld'. This facilitates debugging but 1331 requires more disk space both during the build and for the installed 1332 world. Debug files may be disabled by setting WITHOUT_DEBUG_FILES=yes 1333 in src.conf(5). 1334 133520151130: 1336 r291527 changed the internal interface between the nfsd.ko and 1337 nfscommon.ko modules. As such, they must both be upgraded to-gether. 1338 __FreeBSD_version has been bumped because of this. 1339 134020151108: 1341 Add support for unicode collation strings leads to a change of 1342 order of files listed by ls(1) for example. To get back to the old 1343 behaviour, set LC_COLLATE environment variable to "C". 1344 1345 Databases administrators will need to reindex their databases given 1346 collation results will be different. 1347 1348 Due to a bug in install(1) it is recommended to remove the ancient 1349 locales before running make installworld. 1350 1351 rm -rf /usr/share/locale/* 1352 135320151030: 1354 The OpenSSL has been upgraded to 1.0.2d. Any binaries requiring 1355 libcrypto.so.7 or libssl.so.7 must be recompiled. 1356 135720151020: 1358 Qlogic 24xx/25xx firmware images were updated from 5.5.0 to 7.3.0. 1359 Kernel modules isp_2400_multi and isp_2500_multi were removed and 1360 should be replaced with isp_2400 and isp_2500 modules respectively. 1361 136220151017: 1363 The build previously allowed using 'make -n' to not recurse into 1364 sub-directories while showing what commands would be executed, and 1365 'make -n -n' to recursively show commands. Now 'make -n' will recurse 1366 and 'make -N' will not. 1367 136820151012: 1369 If you specify SENDMAIL_MC or SENDMAIL_CF in make.conf, mergemaster 1370 and etcupdate will now use this file. A custom sendmail.cf is now 1371 updated via this mechanism rather than via installworld. If you had 1372 excluded sendmail.cf in mergemaster.rc or etcupdate.conf, you may 1373 want to remove the exclusion or change it to "always install". 1374 /etc/mail/sendmail.cf is now managed the same way regardless of 1375 whether SENDMAIL_MC/SENDMAIL_CF is used. If you are not using 1376 SENDMAIL_MC/SENDMAIL_CF there should be no change in behavior. 1377 137820151011: 1379 Compatibility shims for legacy ATA device names have been removed. 1380 It includes ATA_STATIC_ID kernel option, kern.cam.ada.legacy_aliases 1381 and kern.geom.raid.legacy_aliases loader tunables, kern.devalias.* 1382 environment variables, /dev/ad* and /dev/ar* symbolic links. 1383 138420151006: 1385 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.7.0. 1386 Please see the 20141231 entry below for information about prerequisites 1387 and upgrading, if you are not already using clang 3.5.0 or higher. 1388 138920150924: 1390 Kernel debug files have been moved to /usr/lib/debug/boot/kernel/, 1391 and renamed from .symbols to .debug. This reduces the size requirements 1392 on the boot partition or file system and provides consistency with 1393 userland debug files. 1394 1395 When using the supported kernel installation method the 1396 /usr/lib/debug/boot/kernel directory will be renamed (to kernel.old) 1397 as is done with /boot/kernel. 1398 1399 Developers wishing to maintain the historical behavior of installing 1400 debug files in /boot/kernel/ can set KERN_DEBUGDIR="" in src.conf(5). 1401 140220150827: 1403 The wireless drivers had undergone changes that remove the 'parent 1404 interface' from the ifconfig -l output. The rc.d network scripts 1405 used to check presence of a parent interface in the list, so old 1406 scripts would fail to start wireless networking. Thus, etcupdate(3) 1407 or mergemaster(8) run is required after kernel update, to update your 1408 rc.d scripts in /etc. 1409 141020150827: 1411 pf no longer supports 'scrub fragment crop' or 'scrub fragment drop-ovl' 1412 These configurations are now automatically interpreted as 1413 'scrub fragment reassemble'. 1414 141520150817: 1416 Kernel-loadable modules for the random(4) device are back. To use 1417 them, the kernel must have 1418 1419 device random 1420 options RANDOM_LOADABLE 1421 1422 kldload(8) can then be used to load random_fortuna.ko 1423 or random_yarrow.ko. Please note that due to the indirect 1424 function calls that the loadable modules need to provide, 1425 the build-in variants will be slightly more efficient. 1426 1427 The random(4) kernel option RANDOM_DUMMY has been retired due to 1428 unpopularity. It was not all that useful anyway. 1429 143020150813: 1431 The WITHOUT_ELFTOOLCHAIN_TOOLS src.conf(5) knob has been retired. 1432 Control over building the ELF Tool Chain tools is now provided by 1433 the WITHOUT_TOOLCHAIN knob. 1434 143520150810: 1436 The polarity of Pulse Per Second (PPS) capture events with the 1437 uart(4) driver has been corrected. Prior to this change the PPS 1438 "assert" event corresponded to the trailing edge of a positive PPS 1439 pulse and the "clear" event was the leading edge of the next pulse. 1440 1441 As the width of a PPS pulse in a typical GPS receiver is on the 1442 order of 1 millisecond, most users will not notice any significant 1443 difference with this change. 1444 1445 Anyone who has compensated for the historical polarity reversal by 1446 configuring a negative offset equal to the pulse width will need to 1447 remove that workaround. 1448 144920150809: 1450 The default group assigned to /dev/dri entries has been changed 1451 from 'wheel' to 'video' with the id of '44'. If you want to have 1452 access to the dri devices please add yourself to the video group 1453 with: 1454 1455 # pw groupmod video -m $USER 1456 145720150806: 1458 The menu.rc and loader.rc files will now be replaced during 1459 upgrades. Please migrate local changes to menu.rc.local and 1460 loader.rc.local instead. 1461 146220150805: 1463 GNU Binutils versions of addr2line, c++filt, nm, readelf, size, 1464 strings and strip have been removed. The src.conf(5) knob 1465 WITHOUT_ELFTOOLCHAIN_TOOLS no longer provides the binutils tools. 1466 146720150728: 1468 As ZFS requires more kernel stack pages than is the default on some 1469 architectures e.g. i386, it now warns if KSTACK_PAGES is less than 1470 ZFS_MIN_KSTACK_PAGES (which is 4 at the time of writing). 1471 1472 Please consider using 'options KSTACK_PAGES=X' where X is greater 1473 than or equal to ZFS_MIN_KSTACK_PAGES i.e. 4 in such configurations. 1474 147520150706: 1476 sendmail has been updated to 8.15.2. Starting with FreeBSD 11.0 1477 and sendmail 8.15, sendmail uses uncompressed IPv6 addresses by 1478 default, i.e., they will not contain "::". For example, instead 1479 of ::1, it will be 0:0:0:0:0:0:0:1. This permits a zero subnet 1480 to have a more specific match, such as different map entries for 1481 IPv6:0:0 vs IPv6:0. This change requires that configuration 1482 data (including maps, files, classes, custom ruleset, etc.) must 1483 use the same format, so make certain such configuration data is 1484 upgrading. As a very simple check search for patterns like 1485 'IPv6:[0-9a-fA-F:]*::' and 'IPv6::'. To return to the old 1486 behavior, set the m4 option confUSE_COMPRESSED_IPV6_ADDRESSES or 1487 the cf option UseCompressedIPv6Addresses. 1488 148920150630: 1490 The default kernel entropy-processing algorithm is now 1491 Fortuna, replacing Yarrow. 1492 1493 Assuming you have 'device random' in your kernel config 1494 file, the configurations allow a kernel option to override 1495 this default. You may choose *ONE* of: 1496 1497 options RANDOM_YARROW # Legacy /dev/random algorithm. 1498 options RANDOM_DUMMY # Blocking-only driver. 1499 1500 If you have neither, you get Fortuna. For most people, 1501 read no further, Fortuna will give a /dev/random that works 1502 like it always used to, and the difference will be irrelevant. 1503 1504 If you remove 'device random', you get *NO* kernel-processed 1505 entropy at all. This may be acceptable to folks building 1506 embedded systems, but has complications. Carry on reading, 1507 and it is assumed you know what you need. 1508 1509 *PLEASE* read random(4) and random(9) if you are in the 1510 habit of tweaking kernel configs, and/or if you are a member 1511 of the embedded community, wanting specific and not-usual 1512 behaviour from your security subsystems. 1513 1514 NOTE!! If you use RANDOM_DUMMY and/or have no 'device 1515 random', you will NOT have a functioning /dev/random, and 1516 many cryptographic features will not work, including SSH. 1517 You may also find strange behaviour from the random(3) set 1518 of library functions, in particular sranddev(3), srandomdev(3) 1519 and arc4random(3). The reason for this is that the KERN_ARND 1520 sysctl only returns entropy if it thinks it has some to 1521 share, and with RANDOM_DUMMY or no 'device random' this 1522 will never happen. 1523 152420150623: 1525 An additional fix for the issue described in the 20150614 sendmail 1526 entry below has been committed in revision 284717. 1527 152820150616: 1529 FreeBSD's old make (fmake) has been removed from the system. It is 1530 available as the devel/fmake port or via pkg install fmake. 1531 153220150615: 1533 The fix for the issue described in the 20150614 sendmail entry 1534 below has been committed in revision 284436. The work 1535 around described in that entry is no longer needed unless the 1536 default setting is overridden by a confDH_PARAMETERS configuration 1537 setting of '5' or pointing to a 512 bit DH parameter file. 1538 153920150614: 1540 ALLOW_DEPRECATED_ATF_TOOLS/ATFFILE support has been removed from 1541 atf.test.mk (included from bsd.test.mk). Please upgrade devel/atf 1542 and devel/kyua to version 0.20+ and adjust any calling code to work 1543 with Kyuafile and kyua. 1544 154520150614: 1546 The import of openssl to address the FreeBSD-SA-15:10.openssl 1547 security advisory includes a change which rejects handshakes 1548 with DH parameters below 768 bits. sendmail releases prior 1549 to 8.15.2 (not yet released), defaulted to a 512 bit 1550 DH parameter setting for client connections. To work around 1551 this interoperability, sendmail can be configured to use a 1552 2048 bit DH parameter by: 1553 1554 1. Edit /etc/mail/`hostname`.mc 1555 2. If a setting for confDH_PARAMETERS does not exist or 1556 exists and is set to a string beginning with '5', 1557 replace it with '2'. 1558 3. If a setting for confDH_PARAMETERS exists and is set to 1559 a file path, create a new file with: 1560 openssl dhparam -out /path/to/file 2048 1561 4. Rebuild the .cf file: 1562 cd /etc/mail/; make; make install 1563 5. Restart sendmail: 1564 cd /etc/mail/; make restart 1565 1566 A sendmail patch is coming, at which time this file will be 1567 updated. 1568 156920150604: 1570 Generation of legacy formatted entries have been disabled by default 1571 in pwd_mkdb(8), as all base system consumers of the legacy formatted 1572 entries were converted to use the new format by default when the new, 1573 machine independent format have been added and supported since FreeBSD 1574 5.x. 1575 1576 Please see the pwd_mkdb(8) manual page for further details. 1577 157820150525: 1579 Clang and llvm have been upgraded to 3.6.1 release. Please see the 1580 20141231 entry below for information about prerequisites and upgrading, 1581 if you are not already using 3.5.0 or higher. 1582 158320150521: 1584 TI platform code switched to using vendor DTS files and this update 1585 may break existing systems running on Beaglebone, Beaglebone Black, 1586 and Pandaboard: 1587 1588 - dtb files should be regenerated/reinstalled. Filenames are the 1589 same but content is different now 1590 - GPIO addressing was changed, now each GPIO bank (32 pins per bank) 1591 has its own /dev/gpiocX device, e.g. pin 121 on /dev/gpioc0 in old 1592 addressing scheme is now pin 25 on /dev/gpioc3. 1593 - Pandaboard: /etc/ttys should be updated, serial console device is 1594 now /dev/ttyu2, not /dev/ttyu0 1595 159620150501: 1597 soelim(1) from gnu/usr.bin/groff has been replaced by usr.bin/soelim. 1598 If you need the GNU extension from groff soelim(1), install groff 1599 from package: pkg install groff, or via ports: textproc/groff. 1600 160120150423: 1602 chmod, chflags, chown and chgrp now affect symlinks in -R mode as 1603 defined in symlink(7); previously symlinks were silently ignored. 1604 160520150415: 1606 The const qualifier has been removed from iconv(3) to comply with 1607 POSIX. The ports tree is aware of this from r384038 onwards. 1608 160920150416: 1610 Libraries specified by LIBADD in Makefiles must have a corresponding 1611 DPADD_<lib> variable to ensure correct dependencies. This is now 1612 enforced in src.libnames.mk. 1613 161420150324: 1615 From legacy ata(4) driver was removed support for SATA controllers 1616 supported by more functional drivers ahci(4), siis(4) and mvs(4). 1617 Kernel modules ataahci and ataadaptec were removed completely, 1618 replaced by ahci and mvs modules respectively. 1619 162020150315: 1621 Clang, llvm and lldb have been upgraded to 3.6.0 release. Please see 1622 the 20141231 entry below for information about prerequisites and 1623 upgrading, if you are not already using 3.5.0 or higher. 1624 162520150307: 1626 The 32-bit PowerPC kernel has been changed to a position-independent 1627 executable. This can only be booted with a version of loader(8) 1628 newer than January 31, 2015, so make sure to update both world and 1629 kernel before rebooting. 1630 163120150217: 1632 If you are running a -CURRENT kernel since r273872 (Oct 30th, 2014), 1633 but before r278950, the RNG was not seeded properly. Immediately 1634 upgrade the kernel to r278950 or later and regenerate any keys (e.g. 1635 ssh keys or openssl keys) that were generated w/ a kernel from that 1636 range. This does not affect programs that directly used /dev/random 1637 or /dev/urandom. All userland uses of arc4random(3) are affected. 1638 163920150210: 1640 The autofs(4) ABI was changed in order to restore binary compatibility 1641 with 10.1-RELEASE. The automountd(8) daemon needs to be rebuilt to work 1642 with the new kernel. 1643 164420150131: 1645 The powerpc64 kernel has been changed to a position-independent 1646 executable. This can only be booted with a new version of loader(8), 1647 so make sure to update both world and kernel before rebooting. 1648 164920150118: 1650 Clang and llvm have been upgraded to 3.5.1 release. This is a bugfix 1651 only release, no new features have been added. Please see the 20141231 1652 entry below for information about prerequisites and upgrading, if you 1653 are not already using 3.5.0. 1654 165520150107: 1656 ELF tools addr2line, elfcopy (strip), nm, size, and strings are now 1657 taken from the ELF Tool Chain project rather than GNU binutils. They 1658 should be drop-in replacements, with the addition of arm64 support. 1659 The WITHOUT_ELFTOOLCHAIN_TOOLS= knob may be used to obtain the 1660 binutils tools, if necessary. See 20150805 for updated information. 1661 166220150105: 1663 The default Unbound configuration now enables remote control 1664 using a local socket. Users who have already enabled the 1665 local_unbound service should regenerate their configuration 1666 by running "service local_unbound setup" as root. 1667 166820150102: 1669 The GNU texinfo and GNU info pages have been removed. 1670 To be able to view GNU info pages please install texinfo from ports. 1671 167220141231: 1673 Clang, llvm and lldb have been upgraded to 3.5.0 release. 1674 1675 As of this release, a prerequisite for building clang, llvm and lldb is 1676 a C++11 capable compiler and C++11 standard library. This means that to 1677 be able to successfully build the cross-tools stage of buildworld, with 1678 clang as the bootstrap compiler, your system compiler or cross compiler 1679 should either be clang 3.3 or later, or gcc 4.8 or later, and your 1680 system C++ library should be libc++, or libdstdc++ from gcc 4.8 or 1681 later. 1682 1683 On any standard FreeBSD 10.x or 11.x installation, where clang and 1684 libc++ are on by default (that is, on x86 or arm), this should work out 1685 of the box. 1686 1687 On 9.x installations where clang is enabled by default, e.g. on x86 and 1688 powerpc, libc++ will not be enabled by default, so libc++ should be 1689 built (with clang) and installed first. If both clang and libc++ are 1690 missing, build clang first, then use it to build libc++. 1691 1692 On 8.x and earlier installations, upgrade to 9.x first, and then follow 1693 the instructions for 9.x above. 1694 1695 Sparc64 and mips users are unaffected, as they still use gcc 4.2.1 by 1696 default, and do not build clang. 1697 1698 Many embedded systems are resource constrained, and will not be able to 1699 build clang in a reasonable time, or in some cases at all. In those 1700 cases, cross building bootable systems on amd64 is a workaround. 1701 1702 This new version of clang introduces a number of new warnings, of which 1703 the following are most likely to appear: 1704 1705 -Wabsolute-value 1706 1707 This warns in two cases, for both C and C++: 1708 * When the code is trying to take the absolute value of an unsigned 1709 quantity, which is effectively a no-op, and almost never what was 1710 intended. The code should be fixed, if at all possible. If you are 1711 sure that the unsigned quantity can be safely cast to signed, without 1712 loss of information or undefined behavior, you can add an explicit 1713 cast, or disable the warning. 1714 1715 * When the code is trying to take an absolute value, but the called 1716 abs() variant is for the wrong type, which can lead to truncation. 1717 If you want to disable the warning instead of fixing the code, please 1718 make sure that truncation will not occur, or it might lead to unwanted 1719 side-effects. 1720 1721 -Wtautological-undefined-compare and 1722 -Wundefined-bool-conversion 1723 1724 These warn when C++ code is trying to compare 'this' against NULL, while 1725 'this' should never be NULL in well-defined C++ code. However, there is 1726 some legacy (pre C++11) code out there, which actively abuses this 1727 feature, which was less strictly defined in previous C++ versions. 1728 1729 Squid and openjdk do this, for example. The warning can be turned off 1730 for C++98 and earlier, but compiling the code in C++11 mode might result 1731 in unexpected behavior; for example, the parts of the program that are 1732 unreachable could be optimized away. 1733 173420141222: 1735 The old NFS client and server (kernel options NFSCLIENT, NFSSERVER) 1736 kernel sources have been removed. The .h files remain, since some 1737 utilities include them. This will need to be fixed later. 1738 If "mount -t oldnfs ..." is attempted, it will fail. 1739 If the "-o" option on mountd(8), nfsd(8) or nfsstat(1) is used, 1740 the utilities will report errors. 1741 174220141121: 1743 The handling of LOCAL_LIB_DIRS has been altered to skip addition of 1744 directories to top level SUBDIR variable when their parent 1745 directory is included in LOCAL_DIRS. Users with build systems with 1746 such hierarchies and without SUBDIR entries in the parent 1747 directory Makefiles should add them or add the directories to 1748 LOCAL_DIRS. 1749 175020141109: 1751 faith(4) and faithd(8) have been removed from the base system. Faith 1752 has been obsolete for a very long time. 1753 175420141104: 1755 vt(4), the new console driver, is enabled by default. It brings 1756 support for Unicode and double-width characters, as well as 1757 support for UEFI and integration with the KMS kernel video 1758 drivers. 1759 1760 You may need to update your console settings in /etc/rc.conf, 1761 most probably the keymap. During boot, /etc/rc.d/syscons will 1762 indicate what you need to do. 1763 1764 vt(4) still has issues and lacks some features compared to 1765 syscons(4). See the wiki for up-to-date information: 1766 https://wiki.freebsd.org/Newcons 1767 1768 If you want to keep using syscons(4), you can do so by adding 1769 the following line to /boot/loader.conf: 1770 kern.vty=sc 1771 177220141102: 1773 pjdfstest has been integrated into kyua as an opt-in test suite. 1774 Please see share/doc/pjdfstest/README for more details on how to 1775 execute it. 1776 177720141009: 1778 gperf has been removed from the base system for architectures 1779 that use clang. Ports that require gperf will obtain it from the 1780 devel/gperf port. 1781 178220140923: 1783 pjdfstest has been moved from tools/regression/pjdfstest to 1784 contrib/pjdfstest . 1785 178620140922: 1787 At svn r271982, The default linux compat kernel ABI has been adjusted 1788 to 2.6.18 in support of the linux-c6 compat ports infrastructure 1789 update. If you wish to continue using the linux-f10 compat ports, 1790 add compat.linux.osrelease=2.6.16 to your local sysctl.conf. Users are 1791 encouraged to update their linux-compat packages to linux-c6 during 1792 their next update cycle. 1793 179420140729: 1795 The ofwfb driver, used to provide a graphics console on PowerPC when 1796 using vt(4), no longer allows mmap() of all physical memory. This 1797 will prevent Xorg on PowerPC with some ATI graphics cards from 1798 initializing properly unless x11-servers/xorg-server is updated to 1799 1.12.4_8 or newer. 1800 180120140723: 1802 The xdev targets have been converted to using TARGET and 1803 TARGET_ARCH instead of XDEV and XDEV_ARCH. 1804 180520140719: 1806 The default unbound configuration has been modified to address 1807 issues with reverse lookups on networks that use private 1808 address ranges. If you use the local_unbound service, run 1809 "service local_unbound setup" as root to regenerate your 1810 configuration, then "service local_unbound reload" to load the 1811 new configuration. 1812 181320140709: 1814 The GNU texinfo and GNU info pages are not built and installed 1815 anymore, WITH_INFO knob has been added to allow to built and install 1816 them again. 1817 UPDATE: see 20150102 entry on texinfo's removal 1818 181920140708: 1820 The GNU readline library is now an INTERNALLIB - that is, it is 1821 statically linked into consumers (GDB and variants) in the base 1822 system, and the shared library is no longer installed. The 1823 devel/readline port is available for third party software that 1824 requires readline. 1825 182620140702: 1827 The Itanium architecture (ia64) has been removed from the list of 1828 known architectures. This is the first step in the removal of the 1829 architecture. 1830 183120140701: 1832 Commit r268115 has added NFSv4.1 server support, merged from 1833 projects/nfsv4.1-server. Since this includes changes to the 1834 internal interfaces between the NFS related modules, a full 1835 build of the kernel and modules will be necessary. 1836 __FreeBSD_version has been bumped. 1837 183820140629: 1839 The WITHOUT_VT_SUPPORT kernel config knob has been renamed 1840 WITHOUT_VT. (The other _SUPPORT knobs have a consistent meaning 1841 which differs from the behaviour controlled by this knob.) 1842 184320140619: 1844 Maximal length of the serial number in CTL was increased from 16 to 1845 64 chars, that breaks ABI. All CTL-related tools, such as ctladm 1846 and ctld, need to be rebuilt to work with a new kernel. 1847 184820140606: 1849 The libatf-c and libatf-c++ major versions were downgraded to 0 and 1850 1 respectively to match the upstream numbers. They were out of 1851 sync because, when they were originally added to FreeBSD, the 1852 upstream versions were not respected. These libraries are private 1853 and not yet built by default, so renumbering them should be a 1854 non-issue. However, unclean source trees will yield broken test 1855 programs once the operator executes "make delete-old-libs" after a 1856 "make installworld". 1857 1858 Additionally, the atf-sh binary was made private by moving it into 1859 /usr/libexec/. Already-built shell test programs will keep the 1860 path to the old binary so they will break after "make delete-old" 1861 is run. 1862 1863 If you are using WITH_TESTS=yes (not the default), wipe the object 1864 tree and rebuild from scratch to prevent spurious test failures. 1865 This is only needed once: the misnumbered libraries and misplaced 1866 binaries have been added to OptionalObsoleteFiles.inc so they will 1867 be removed during a clean upgrade. 1868 186920140512: 1870 Clang and llvm have been upgraded to 3.4.1 release. 1871 187220140508: 1873 We bogusly installed src.opts.mk in /usr/share/mk. This file should 1874 be removed to avoid issues in the future (and has been added to 1875 ObsoleteFiles.inc). 1876 187720140505: 1878 /etc/src.conf now affects only builds of the FreeBSD src tree. In the 1879 past, it affected all builds that used the bsd.*.mk files. The old 1880 behavior was a bug, but people may have relied upon it. To get this 1881 behavior back, you can .include /etc/src.conf from /etc/make.conf 1882 (which is still global and isn't changed). This also changes the 1883 behavior of incremental builds inside the tree of individual 1884 directories. Set MAKESYSPATH to ".../share/mk" to do that. 1885 Although this has survived make universe and some upgrade scenarios, 1886 other upgrade scenarios may have broken. At least one form of 1887 temporary breakage was fixed with MAKESYSPATH settings for buildworld 1888 as well... In cases where MAKESYSPATH isn't working with this 1889 setting, you'll need to set it to the full path to your tree. 1890 1891 One side effect of all this cleaning up is that bsd.compiler.mk 1892 is no longer implicitly included by bsd.own.mk. If you wish to 1893 use COMPILER_TYPE, you must now explicitly include bsd.compiler.mk 1894 as well. 1895 189620140430: 1897 The lindev device has been removed since /dev/full has been made a 1898 standard device. __FreeBSD_version has been bumped. 1899 190020140424: 1901 The knob WITHOUT_VI was added to the base system, which controls 1902 building ex(1), vi(1), etc. Older releases of FreeBSD required ex(1) 1903 in order to reorder files share/termcap and didn't build ex(1) as a 1904 build tool, so building/installing with WITH_VI is highly advised for 1905 build hosts for older releases. 1906 1907 This issue has been fixed in stable/9 and stable/10 in r277022 and 1908 r276991, respectively. 1909 191020140418: 1911 The YES_HESIOD knob has been removed. It has been obsolete for 1912 a decade. Please move to using WITH_HESIOD instead or your builds 1913 will silently lack HESIOD. 1914 191520140405: 1916 The uart(4) driver has been changed with respect to its handling 1917 of the low-level console. Previously the uart(4) driver prevented 1918 any process from changing the baudrate or the CLOCAL and HUPCL 1919 control flags. By removing the restrictions, operators can make 1920 changes to the serial console port without having to reboot. 1921 However, when getty(8) is started on the serial device that is 1922 associated with the low-level console, a misconfigured terminal 1923 line in /etc/ttys will now have a real impact. 1924 Before upgrading the kernel, make sure that /etc/ttys has the 1925 serial console device configured as 3wire without baudrate to 1926 preserve the previous behaviour. E.g: 1927 ttyu0 "/usr/libexec/getty 3wire" vt100 on secure 1928 192920140306: 1930 Support for libwrap (TCP wrappers) in rpcbind was disabled by default 1931 to improve performance. To re-enable it, if needed, run rpcbind 1932 with command line option -W. 1933 193420140226: 1935 Switched back to the GPL dtc compiler due to updates in the upstream 1936 dts files not being supported by the BSDL dtc compiler. You will need 1937 to rebuild your kernel toolchain to pick up the new compiler. Core dumps 1938 may result while building dtb files during a kernel build if you fail 1939 to do so. Set WITHOUT_GPL_DTC if you require the BSDL compiler. 1940 194120140216: 1942 Clang and llvm have been upgraded to 3.4 release. 1943 194420140216: 1945 The nve(4) driver has been removed. Please use the nfe(4) driver 1946 for NVIDIA nForce MCP Ethernet adapters instead. 1947 194820140212: 1949 An ABI incompatibility crept into the libc++ 3.4 import in r261283. 1950 This could cause certain C++ applications using shared libraries built 1951 against the previous version of libc++ to crash. The incompatibility 1952 has now been fixed, but any C++ applications or shared libraries built 1953 between r261283 and r261801 should be recompiled. 1954 195520140204: 1956 OpenSSH will now ignore errors caused by kernel lacking of Capsicum 1957 capability mode support. Please note that enabling the feature in 1958 kernel is still highly recommended. 1959 196020140131: 1961 OpenSSH is now built with sandbox support, and will use sandbox as 1962 the default privilege separation method. This requires Capsicum 1963 capability mode support in kernel. 1964 196520140128: 1966 The libelf and libdwarf libraries have been updated to newer 1967 versions from upstream. Shared library version numbers for 1968 these two libraries were bumped. Any ports or binaries 1969 requiring these two libraries should be recompiled. 1970 __FreeBSD_version is bumped to 1100006. 1971 197220140110: 1973 If a Makefile in a tests/ directory was auto-generating a Kyuafile 1974 instead of providing an explicit one, this would prevent such 1975 Makefile from providing its own Kyuafile in the future during 1976 NO_CLEAN builds. This has been fixed in the Makefiles but manual 1977 intervention is needed to clean an objdir if you use NO_CLEAN: 1978 # find /usr/obj -name Kyuafile | xargs rm -f 1979 198020131213: 1981 The behavior of gss_pseudo_random() for the krb5 mechanism 1982 has changed, for applications requesting a longer random string 1983 than produced by the underlying enctype's pseudo-random() function. 1984 In particular, the random string produced from a session key of 1985 enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will 1986 be different at the 17th octet and later, after this change. 1987 The counter used in the PRF+ construction is now encoded as a 1988 big-endian integer in accordance with RFC 4402. 1989 __FreeBSD_version is bumped to 1100004. 1990 199120131108: 1992 The WITHOUT_ATF build knob has been removed and its functionality 1993 has been subsumed into the more generic WITHOUT_TESTS. If you were 1994 using the former to disable the build of the ATF libraries, you 1995 should change your settings to use the latter. 1996 199720131025: 1998 The default version of mtree is nmtree which is obtained from 1999 NetBSD. The output is generally the same, but may vary 2000 slightly. If you found you need identical output adding 2001 "-F freebsd9" to the command line should do the trick. For the 2002 time being, the old mtree is available as fmtree. 2003 200420131014: 2005 libbsdyml has been renamed to libyaml and moved to /usr/lib/private. 2006 This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg 2007 1.1.4_8 and verify bsdyml not linked in, before running "make 2008 delete-old-libs": 2009 # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean 2010 or 2011 # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml 2012 201320131010: 2014 The stable/10 branch has been created in subversion from head 2015 revision r256279. 2016 2017COMMON ITEMS: 2018 2019 General Notes 2020 ------------- 2021 Sometimes, obscure build problems are the result of environment 2022 poisoning. This can happen because the make utility reads its 2023 environment when searching for values for global variables. To run 2024 your build attempts in an "environmental clean room", prefix all make 2025 commands with 'env -i '. See the env(1) manual page for more details. 2026 Occasionally a build failure will occur with "make -j" due to a race 2027 condition. If this happens try building again without -j, and please 2028 report a bug if it happens consistently. 2029 2030 When upgrading from one major version to another it is generally best to 2031 upgrade to the latest code in the currently installed branch first, then 2032 do an upgrade to the new branch. This is the best-tested upgrade path, 2033 and has the highest probability of being successful. Please try this 2034 approach if you encounter problems with a major version upgrade. Since 2035 the stable 4.x branch point, one has generally been able to upgrade from 2036 anywhere in the most recent stable branch to head / current (or even the 2037 last couple of stable branches). See the top of this file when there's 2038 an exception. 2039 2040 The update process will emit an error on an attempt to perform a build 2041 or install from a FreeBSD version below the earliest supported version. 2042 When updating from an older version the update should be performed one 2043 major release at a time, including running `make delete-old` at each 2044 step. 2045 2046 When upgrading a live system, having a root shell around before 2047 installing anything can help undo problems. Not having a root shell 2048 around can lead to problems if pam has changed too much from your 2049 starting point to allow continued authentication after the upgrade. 2050 2051 This file should be read as a log of events. When a later event changes 2052 information of a prior event, the prior event should not be deleted. 2053 Instead, a pointer to the entry with the new information should be 2054 placed in the old entry. Readers of this file should also sanity check 2055 older entries before relying on them blindly. Authors of new entries 2056 should write them with this in mind. 2057 2058 ZFS notes 2059 --------- 2060 When upgrading the boot ZFS pool to a new version, always follow 2061 these two steps: 2062 2063 1.) recompile and reinstall the ZFS boot loader and boot block 2064 (this is part of "make buildworld" and "make installworld") 2065 2066 2.) update the ZFS boot block on your boot drive 2067 2068 The following example updates the ZFS boot block on the first 2069 partition (freebsd-boot) of a GPT partitioned drive ada0: 2070 "gpart bootcode -p /boot/gptzfsboot -i 1 ada0" 2071 2072 Non-boot pools do not need these updates. 2073 2074 To build a kernel 2075 ----------------- 2076 If you are updating from a prior version of FreeBSD (even one just 2077 a few days old), you should follow this procedure. It is the most 2078 failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 2079 2080 make kernel-toolchain 2081 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 2082 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 2083 2084 To test a kernel once 2085 --------------------- 2086 If you just want to boot a kernel once (because you are not sure 2087 if it works, or if you want to boot a known bad kernel to provide 2088 debugging information) run 2089 make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 2090 nextboot -k testkernel 2091 2092 To rebuild everything and install it on the current system. 2093 ----------------------------------------------------------- 2094 # Note: sometimes if you are running current you gotta do more than 2095 # is listed here if you are upgrading from a really old current. 2096 2097 <make sure you have good level 0 dumps> 2098 make buildworld 2099 make buildkernel KERNCONF=YOUR_KERNEL_HERE 2100 make installkernel KERNCONF=YOUR_KERNEL_HERE 2101 [1] 2102 <reboot in single user> [3] 2103 mergemaster -Fp [5] 2104 make installworld 2105 mergemaster -Fi [4] 2106 make delete-old [6] 2107 <reboot> 2108 2109 To cross-install current onto a separate partition 2110 -------------------------------------------------- 2111 # In this approach we use a separate partition to hold 2112 # current's root, 'usr', and 'var' directories. A partition 2113 # holding "/", "/usr" and "/var" should be about 2GB in 2114 # size. 2115 2116 <make sure you have good level 0 dumps> 2117 <boot into -stable> 2118 make buildworld 2119 make buildkernel KERNCONF=YOUR_KERNEL_HERE 2120 <maybe newfs current's root partition> 2121 <mount current's root partition on directory ${CURRENT_ROOT}> 2122 make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC 2123 make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 2124 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 2125 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 2126 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 2127 <reboot into current> 2128 <do a "native" rebuild/install as described in the previous section> 2129 <maybe install compatibility libraries from ports/misc/compat*> 2130 <reboot> 2131 2132 2133 To upgrade in-place from stable to current 2134 ---------------------------------------------- 2135 <make sure you have good level 0 dumps> 2136 make buildworld [9] 2137 make buildkernel KERNCONF=YOUR_KERNEL_HERE [8] 2138 make installkernel KERNCONF=YOUR_KERNEL_HERE 2139 [1] 2140 <reboot in single user> [3] 2141 mergemaster -Fp [5] 2142 make installworld 2143 mergemaster -Fi [4] 2144 make delete-old [6] 2145 <reboot> 2146 2147 Make sure that you've read the UPDATING file to understand the 2148 tweaks to various things you need. At this point in the life 2149 cycle of current, things change often and you are on your own 2150 to cope. The defaults can also change, so please read ALL of 2151 the UPDATING entries. 2152 2153 Also, if you are tracking -current, you must be subscribed to 2154 freebsd-current@freebsd.org. Make sure that before you update 2155 your sources that you have read and understood all the recent 2156 messages there. If in doubt, please track -stable which has 2157 much fewer pitfalls. 2158 2159 [1] If you have third party modules, such as vmware, you 2160 should disable them at this point so they don't crash your 2161 system on reboot. 2162 2163 [3] From the bootblocks, boot -s, and then do 2164 fsck -p 2165 mount -u / 2166 mount -a 2167 sh /etc/rc.d/zfs start # mount zfs filesystem, if needed 2168 cd src # full path to source 2169 adjkerntz -i # if CMOS is wall time 2170 Also, when doing a major release upgrade, it is required that 2171 you boot into single user mode to do the installworld. 2172 2173 [4] Note: This step is non-optional. Failure to do this step 2174 can result in a significant reduction in the functionality of the 2175 system. Attempting to do it by hand is not recommended and those 2176 that pursue this avenue should read this file carefully, as well 2177 as the archives of freebsd-current and freebsd-hackers mailing lists 2178 for potential gotchas. The -U option is also useful to consider. 2179 See mergemaster(8) for more information. 2180 2181 [5] Usually this step is a no-op. However, from time to time 2182 you may need to do this if you get unknown user in the following 2183 step. It never hurts to do it all the time. You may need to 2184 install a new mergemaster (cd src/usr.sbin/mergemaster && make 2185 install) after the buildworld before this step if you last updated 2186 from current before 20130425 or from -stable before 20130430. 2187 2188 [6] This only deletes old files and directories. Old libraries 2189 can be deleted by "make delete-old-libs", but you have to make 2190 sure that no program is using those libraries anymore. 2191 2192 [8] The new kernel must be able to run existing binaries used by an 2193 installworld. When upgrading across major versions, the new kernel's 2194 configuration must include the correct COMPAT_FREEBSD<n> option for 2195 existing binaries (e.g. COMPAT_FREEBSD11 to run 11.x binaries). Failure 2196 to do so may leave you with a system that is hard to boot to recover. A 2197 GENERIC kernel will include suitable compatibility options to run 2198 binaries from older branches. Note that the ability to run binaries 2199 from unsupported branches is not guaranteed. 2200 2201 Make sure that you merge any new devices from GENERIC since the 2202 last time you updated your kernel config file. Options also 2203 change over time, so you may need to adjust your custom kernels 2204 for these as well. 2205 2206 [9] If CPUTYPE is defined in your /etc/make.conf, make sure to use the 2207 "?=" instead of the "=" assignment operator, so that buildworld can 2208 override the CPUTYPE if it needs to. 2209 2210 MAKEOBJDIRPREFIX must be defined in an environment variable, and 2211 not on the command line, or in /etc/make.conf. buildworld will 2212 warn if it is improperly defined. 2213FORMAT: 2214 2215This file contains a list, in reverse chronological order, of major 2216breakages in tracking -current. It is not guaranteed to be a complete 2217list of such breakages, and only contains entries since September 23, 2011. 2218If you need to see UPDATING entries from before that date, you will need 2219to fetch an UPDATING file from an older FreeBSD release. 2220 2221Copyright information: 2222 2223Copyright 1998-2009 M. Warner Losh <imp@FreeBSD.org> 2224 2225Redistribution, publication, translation and use, with or without 2226modification, in full or in part, in any form or format of this 2227document are permitted without further permission from the author. 2228 2229THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 2230IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 2231WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 2232DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 2233INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 2234(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 2235SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2236HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 2237STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 2238IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2239POSSIBILITY OF SUCH DAMAGE. 2240 2241Contact Warner Losh if you have any questions about your use of 2242this document. 2243 2244$FreeBSD$ 2245