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