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