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 http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html 10 11Items affecting the ports and packages system can be found in 12/usr/ports/UPDATING. Please read that file before running portupgrade. 13 14NOTE: FreeBSD has switched from gcc to clang. If you have trouble bootstrapping 15from older versions of FreeBSD, try WITHOUT_CLANG and WITH_GCC to bootstrap to 16the tip of head, and then rebuild without this option. The bootstrap process from 17older version of current across the gcc/clang cutover is a bit fragile. 18 19NOTE TO PEOPLE WHO THINK THAT FreeBSD 11.x IS SLOW: 20 FreeBSD 11.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 3420150525: 35 Clang and llvm have been upgraded to 3.6.1 release. Please see the 36 20141231 entry below for information about prerequisites and upgrading, 37 if you are not already using 3.5.0 or higher. 38 3920150521: 40 TI platform code switched to using vendor DTS files and this update 41 may break existing systems running on Beaglebone, Beaglebone Black, 42 and Pandaboard: 43 44 - dtb files should be regenerated/reinstalled. Filenames are the 45 same but content is different now 46 - GPIO addressing was changed, now each GPIO bank (32 pins per bank) 47 has its own /dev/gpiocX device, e.g. pin 121 on /dev/gpioc0 in old 48 addressing scheme is now pin 25 on /dev/gpioc3. 49 - Pandaboard: /etc/ttys should be updated, serial console device is 50 now /dev/ttyu2, not /dev/ttyu0 51 5220150501: 53 soelim(1) from gnu/usr.bin/groff has been replaced by usr.bin/soelim. 54 If you need the GNU extension from groff soelim(1), install groff 55 from package: pkg install groff, or via ports: textproc/groff. 56 5720150423: 58 chmod, chflags, chown and chgrp now affect symlinks in -R mode as 59 defined in symlink(7); previously symlinks were silently ignored. 60 6120150415: 62 The const qualifier has been removed from iconv(3) to comply with 63 POSIX. The ports tree is aware of this from r384038 onwards. 64 6520150416: 66 Libraries specified by LIBADD in Makefiles must have a corresponding 67 DPADD_<lib> variable to ensure correct dependencies. This is now 68 enforced in src.libnames.mk. 69 7020150324: 71 From legacy ata(4) driver was removed support for SATA controllers 72 supported by more functional drivers ahci(4), siis(4) and mvs(4). 73 Kernel modules ataahci and ataadaptec were removed completely, 74 replaced by ahci and mvs modules respectively. 75 7620150315: 77 Clang, llvm and lldb have been upgraded to 3.6.0 release. Please see 78 the 20141231 entry below for information about prerequisites and 79 upgrading, if you are not already using 3.5.0 or higher. 80 8120150307: 82 The 32-bit PowerPC kernel has been changed to a position-independent 83 executable. This can only be booted with a version of loader(8) 84 newer than January 31, 2015, so make sure to update both world and 85 kernel before rebooting. 86 8720150217: 88 If you are running a -CURRENT kernel since r273872 (Oct 30th, 2014), 89 but before r278950, the RNG was not seeded properly. Immediately 90 upgrade the kernel to r278950 or later and regenerate any keys (e.g. 91 ssh keys or openssl keys) that were generated w/ a kernel from that 92 range. This does not affect programs that directly used /dev/random 93 or /dev/urandom. All userland uses of arc4random(3) are affected. 94 9520150210: 96 The autofs(4) ABI was changed in order to restore binary compatibility 97 with 10.1-RELEASE. The automountd(8) daemon needs to be rebuilt to work 98 with the new kernel. 99 10020150131: 101 The powerpc64 kernel has been changed to a position-independent 102 executable. This can only be booted with a new version of loader(8), 103 so make sure to update both world and kernel before rebooting. 104 10520150118: 106 Clang and llvm have been upgraded to 3.5.1 release. This is a bugfix 107 only release, no new features have been added. Please see the 20141231 108 entry below for information about prerequisites and upgrading, if you 109 are not already using 3.5.0. 110 11120150107: 112 ELF tools addr2line, elfcopy (strip), nm, size, and strings are now 113 taken from the ELF Tool Chain project rather than GNU binutils. They 114 should be drop-in replacements, with the addition of arm64 support. 115 The WITHOUT_ELFTOOLCHAIN_TOOLS= knob may be used to obtain the 116 binutils tools, if necessary. 117 11820150105: 119 The default Unbound configuration now enables remote control 120 using a local socket. Users who have already enabled the 121 local_unbound service should regenerate their configuration 122 by running "service local_unbound setup" as root. 123 12420150102: 125 The GNU texinfo and GNU info pages have been removed. 126 To be able to view GNU info pages please install texinfo from ports. 127 12820141231: 129 Clang, llvm and lldb have been upgraded to 3.5.0 release. 130 131 As of this release, a prerequisite for building clang, llvm and lldb is 132 a C++11 capable compiler and C++11 standard library. This means that to 133 be able to successfully build the cross-tools stage of buildworld, with 134 clang as the bootstrap compiler, your system compiler or cross compiler 135 should either be clang 3.3 or later, or gcc 4.8 or later, and your 136 system C++ library should be libc++, or libdstdc++ from gcc 4.8 or 137 later. 138 139 On any standard FreeBSD 10.x or 11.x installation, where clang and 140 libc++ are on by default (that is, on x86 or arm), this should work out 141 of the box. 142 143 On 9.x installations where clang is enabled by default, e.g. on x86 and 144 powerpc, libc++ will not be enabled by default, so libc++ should be 145 built (with clang) and installed first. If both clang and libc++ are 146 missing, build clang first, then use it to build libc++. 147 148 On 8.x and earlier installations, upgrade to 9.x first, and then follow 149 the instructions for 9.x above. 150 151 Sparc64 and mips users are unaffected, as they still use gcc 4.2.1 by 152 default, and do not build clang. 153 154 Many embedded systems are resource constrained, and will not be able to 155 build clang in a reasonable time, or in some cases at all. In those 156 cases, cross building bootable systems on amd64 is a workaround. 157 158 This new version of clang introduces a number of new warnings, of which 159 the following are most likely to appear: 160 161 -Wabsolute-value 162 163 This warns in two cases, for both C and C++: 164 * When the code is trying to take the absolute value of an unsigned 165 quantity, which is effectively a no-op, and almost never what was 166 intended. The code should be fixed, if at all possible. If you are 167 sure that the unsigned quantity can be safely cast to signed, without 168 loss of information or undefined behavior, you can add an explicit 169 cast, or disable the warning. 170 171 * When the code is trying to take an absolute value, but the called 172 abs() variant is for the wrong type, which can lead to truncation. 173 If you want to disable the warning instead of fixing the code, please 174 make sure that truncation will not occur, or it might lead to unwanted 175 side-effects. 176 177 -Wtautological-undefined-compare and 178 -Wundefined-bool-conversion 179 180 These warn when C++ code is trying to compare 'this' against NULL, while 181 'this' should never be NULL in well-defined C++ code. However, there is 182 some legacy (pre C++11) code out there, which actively abuses this 183 feature, which was less strictly defined in previous C++ versions. 184 185 Squid and openjdk do this, for example. The warning can be turned off 186 for C++98 and earlier, but compiling the code in C++11 mode might result 187 in unexpected behavior; for example, the parts of the program that are 188 unreachable could be optimized away. 189 19020141222: 191 The old NFS client and server (kernel options NFSCLIENT, NFSSERVER) 192 kernel sources have been removed. The .h files remain, since some 193 utilities include them. This will need to be fixed later. 194 If "mount -t oldnfs ..." is attempted, it will fail. 195 If the "-o" option on mountd(8), nfsd(8) or nfsstat(1) is used, 196 the utilities will report errors. 197 19820141121: 199 The handling of LOCAL_LIB_DIRS has been altered to skip addition of 200 directories to top level SUBDIR variable when their parent 201 directory is included in LOCAL_DIRS. Users with build systems with 202 such hierarchies and without SUBDIR entries in the parent 203 directory Makefiles should add them or add the directories to 204 LOCAL_DIRS. 205 20620141109: 207 faith(4) and faithd(8) have been removed from the base system. Faith 208 has been obsolete for a very long time. 209 21020141104: 211 vt(4), the new console driver, is enabled by default. It brings 212 support for Unicode and double-width characters, as well as 213 support for UEFI and integration with the KMS kernel video 214 drivers. 215 216 You may need to update your console settings in /etc/rc.conf, 217 most probably the keymap. During boot, /etc/rc.d/syscons will 218 indicate what you need to do. 219 220 vt(4) still has issues and lacks some features compared to 221 syscons(4). See the wiki for up-to-date information: 222 https://wiki.freebsd.org/Newcons 223 224 If you want to keep using syscons(4), you can do so by adding 225 the following line to /boot/loader.conf: 226 kern.vty=sc 227 22820141102: 229 pjdfstest has been integrated into kyua as an opt-in test suite. 230 Please see share/doc/pjdfstest/README for more details on how to 231 execute it. 232 23320141009: 234 gperf has been removed from the base system for architectures 235 that use clang. Ports that require gperf will obtain it from the 236 devel/gperf port. 237 23820140923: 239 pjdfstest has been moved from tools/regression/pjdfstest to 240 contrib/pjdfstest . 241 24220140922: 243 At svn r271982, The default linux compat kernel ABI has been adjusted 244 to 2.6.18 in support of the linux-c6 compat ports infrastructure 245 update. If you wish to continue using the linux-f10 compat ports, 246 add compat.linux.osrelease=2.6.16 to your local sysctl.conf. Users are 247 encouraged to update their linux-compat packages to linux-c6 during 248 their next update cycle. 249 25020140729: 251 The ofwfb driver, used to provide a graphics console on PowerPC when 252 using vt(4), no longer allows mmap() of all physical memory. This 253 will prevent Xorg on PowerPC with some ATI graphics cards from 254 initializing properly unless x11-servers/xorg-server is updated to 255 1.12.4_8 or newer. 256 25720140723: 258 The xdev targets have been converted to using TARGET and 259 TARGET_ARCH instead of XDEV and XDEV_ARCH. 260 26120140719: 262 The default unbound configuration has been modified to address 263 issues with reverse lookups on networks that use private 264 address ranges. If you use the local_unbound service, run 265 "service local_unbound setup" as root to regenerate your 266 configuration, then "service local_unbound reload" to load the 267 new configuration. 268 26920140709: 270 The GNU texinfo and GNU info pages are not built and installed 271 anymore, WITH_INFO knob has been added to allow to built and install 272 them again. 273 UPDATE: see 20150102 entry on texinfo's removal 274 27520140708: 276 The GNU readline library is now an INTERNALLIB - that is, it is 277 statically linked into consumers (GDB and variants) in the base 278 system, and the shared library is no longer installed. The 279 devel/readline port is available for third party software that 280 requires readline. 281 28220140702: 283 The Itanium architecture (ia64) has been removed from the list of 284 known architectures. This is the first step in the removal of the 285 architecture. 286 28720140701: 288 Commit r268115 has added NFSv4.1 server support, merged from 289 projects/nfsv4.1-server. Since this includes changes to the 290 internal interfaces between the NFS related modules, a full 291 build of the kernel and modules will be necessary. 292 __FreeBSD_version has been bumped. 293 29420140629: 295 The WITHOUT_VT_SUPPORT kernel config knob has been renamed 296 WITHOUT_VT. (The other _SUPPORT knobs have a consistent meaning 297 which differs from the behaviour controlled by this knob.) 298 29920140619: 300 Maximal length of the serial number in CTL was increased from 16 to 301 64 chars, that breaks ABI. All CTL-related tools, such as ctladm 302 and ctld, need to be rebuilt to work with a new kernel. 303 30420140606: 305 The libatf-c and libatf-c++ major versions were downgraded to 0 and 306 1 respectively to match the upstream numbers. They were out of 307 sync because, when they were originally added to FreeBSD, the 308 upstream versions were not respected. These libraries are private 309 and not yet built by default, so renumbering them should be a 310 non-issue. However, unclean source trees will yield broken test 311 programs once the operator executes "make delete-old-libs" after a 312 "make installworld". 313 314 Additionally, the atf-sh binary was made private by moving it into 315 /usr/libexec/. Already-built shell test programs will keep the 316 path to the old binary so they will break after "make delete-old" 317 is run. 318 319 If you are using WITH_TESTS=yes (not the default), wipe the object 320 tree and rebuild from scratch to prevent spurious test failures. 321 This is only needed once: the misnumbered libraries and misplaced 322 binaries have been added to OptionalObsoleteFiles.inc so they will 323 be removed during a clean upgrade. 324 32520140512: 326 Clang and llvm have been upgraded to 3.4.1 release. 327 32820140508: 329 We bogusly installed src.opts.mk in /usr/share/mk. This file should 330 be removed to avoid issues in the future (and has been added to 331 ObsoleteFiles.inc). 332 33320140505: 334 /etc/src.conf now affects only builds of the FreeBSD src tree. In the 335 past, it affected all builds that used the bsd.*.mk files. The old 336 behavior was a bug, but people may have relied upon it. To get this 337 behavior back, you can .include /etc/src.conf from /etc/make.conf 338 (which is still global and isn't changed). This also changes the 339 behavior of incremental builds inside the tree of individual 340 directories. Set MAKESYSPATH to ".../share/mk" to do that. 341 Although this has survived make universe and some upgrade scenarios, 342 other upgrade scenarios may have broken. At least one form of 343 temporary breakage was fixed with MAKESYSPATH settings for buildworld 344 as well... In cases where MAKESYSPATH isn't working with this 345 setting, you'll need to set it to the full path to your tree. 346 347 One side effect of all this cleaning up is that bsd.compiler.mk 348 is no longer implicitly included by bsd.own.mk. If you wish to 349 use COMPILER_TYPE, you must now explicitly include bsd.compiler.mk 350 as well. 351 35220140430: 353 The lindev device has been removed since /dev/full has been made a 354 standard device. __FreeBSD_version has been bumped. 355 35620140424: 357 The knob WITHOUT_VI was added to the base system, which controls 358 building ex(1), vi(1), etc. Older releases of FreeBSD required ex(1) 359 in order to reorder files share/termcap and didn't build ex(1) as a 360 build tool, so building/installing with WITH_VI is highly advised for 361 build hosts for older releases. 362 363 This issue has been fixed in stable/9 and stable/10 in r277022 and 364 r276991, respectively. 365 36620140418: 367 The YES_HESIOD knob has been removed. It has been obsolete for 368 a decade. Please move to using WITH_HESIOD instead or your builds 369 will silently lack HESIOD. 370 37120140405: 372 The uart(4) driver has been changed with respect to its handling 373 of the low-level console. Previously the uart(4) driver prevented 374 any process from changing the baudrate or the CLOCAL and HUPCL 375 control flags. By removing the restrictions, operators can make 376 changes to the serial console port without having to reboot. 377 However, when getty(8) is started on the serial device that is 378 associated with the low-level console, a misconfigured terminal 379 line in /etc/ttys will now have a real impact. 380 Before upgrading the kernel, make sure that /etc/ttys has the 381 serial console device configured as 3wire without baudrate to 382 preserve the previous behaviour. E.g: 383 ttyu0 "/usr/libexec/getty 3wire" vt100 on secure 384 38520140306: 386 Support for libwrap (TCP wrappers) in rpcbind was disabled by default 387 to improve performance. To re-enable it, if needed, run rpcbind 388 with command line option -W. 389 39020140226: 391 Switched back to the GPL dtc compiler due to updates in the upstream 392 dts files not being supported by the BSDL dtc compiler. You will need 393 to rebuild your kernel toolchain to pick up the new compiler. Core dumps 394 may result while building dtb files during a kernel build if you fail 395 to do so. Set WITHOUT_GPL_DTC if you require the BSDL compiler. 396 39720140216: 398 Clang and llvm have been upgraded to 3.4 release. 399 40020140216: 401 The nve(4) driver has been removed. Please use the nfe(4) driver 402 for NVIDIA nForce MCP Ethernet adapters instead. 403 40420140212: 405 An ABI incompatibility crept into the libc++ 3.4 import in r261283. 406 This could cause certain C++ applications using shared libraries built 407 against the previous version of libc++ to crash. The incompatibility 408 has now been fixed, but any C++ applications or shared libraries built 409 between r261283 and r261801 should be recompiled. 410 41120140204: 412 OpenSSH will now ignore errors caused by kernel lacking of Capsicum 413 capability mode support. Please note that enabling the feature in 414 kernel is still highly recommended. 415 41620140131: 417 OpenSSH is now built with sandbox support, and will use sandbox as 418 the default privilege separation method. This requires Capsicum 419 capability mode support in kernel. 420 42120140128: 422 The libelf and libdwarf libraries have been updated to newer 423 versions from upstream. Shared library version numbers for 424 these two libraries were bumped. Any ports or binaries 425 requiring these two libraries should be recompiled. 426 __FreeBSD_version is bumped to 1100006. 427 42820140110: 429 If a Makefile in a tests/ directory was auto-generating a Kyuafile 430 instead of providing an explicit one, this would prevent such 431 Makefile from providing its own Kyuafile in the future during 432 NO_CLEAN builds. This has been fixed in the Makefiles but manual 433 intervention is needed to clean an objdir if you use NO_CLEAN: 434 # find /usr/obj -name Kyuafile | xargs rm -f 435 43620131213: 437 The behavior of gss_pseudo_random() for the krb5 mechanism 438 has changed, for applications requesting a longer random string 439 than produced by the underlying enctype's pseudo-random() function. 440 In particular, the random string produced from a session key of 441 enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will 442 be different at the 17th octet and later, after this change. 443 The counter used in the PRF+ construction is now encoded as a 444 big-endian integer in accordance with RFC 4402. 445 __FreeBSD_version is bumped to 1100004. 446 44720131108: 448 The WITHOUT_ATF build knob has been removed and its functionality 449 has been subsumed into the more generic WITHOUT_TESTS. If you were 450 using the former to disable the build of the ATF libraries, you 451 should change your settings to use the latter. 452 45320131025: 454 The default version of mtree is nmtree which is obtained from 455 NetBSD. The output is generally the same, but may vary 456 slightly. If you found you need identical output adding 457 "-F freebsd9" to the command line should do the trick. For the 458 time being, the old mtree is available as fmtree. 459 46020131014: 461 libbsdyml has been renamed to libyaml and moved to /usr/lib/private. 462 This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg 463 1.1.4_8 and verify bsdyml not linked in, before running "make 464 delete-old-libs": 465 # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean 466 or 467 # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml 468 46920131010: 470 The rc.d/jail script has been updated to support jail(8) 471 configuration file. The "jail_<jname>_*" rc.conf(5) variables 472 for per-jail configuration are automatically converted to 473 /var/run/jail.<jname>.conf before the jail(8) utility is invoked. 474 This is transparently backward compatible. See below about some 475 incompatibilities and rc.conf(5) manual page for more details. 476 477 These variables are now deprecated in favor of jail(8) configuration 478 file. One can use "rc.d/jail config <jname>" command to generate 479 a jail(8) configuration file in /var/run/jail.<jname>.conf without 480 running the jail(8) utility. The default pathname of the 481 configuration file is /etc/jail.conf and can be specified by 482 using $jail_conf or $jail_<jname>_conf variables. 483 484 Please note that jail_devfs_ruleset accepts an integer at 485 this moment. Please consider to rewrite the ruleset name 486 with an integer. 487 48820130930: 489 BIND has been removed from the base system. If all you need 490 is a local resolver, simply enable and start the local_unbound 491 service instead. Otherwise, several versions of BIND are 492 available in the ports tree. The dns/bind99 port is one example. 493 494 With this change, nslookup(1) and dig(1) are no longer in the base 495 system. Users should instead use host(1) and drill(1) which are 496 in the base system. Alternatively, nslookup and dig can 497 be obtained by installing the dns/bind-tools port. 498 49920130916: 500 With the addition of unbound(8), a new unbound user is now 501 required during installworld. "mergemaster -p" can be used to 502 add the user prior to installworld, as documented in the handbook. 503 50420130911: 505 OpenSSH is now built with DNSSEC support, and will by default 506 silently trust signed SSHFP records. This can be controlled with 507 the VerifyHostKeyDNS client configuration setting. DNSSEC support 508 can be disabled entirely with the WITHOUT_LDNS option in src.conf. 509 51020130906: 511 The GNU Compiler Collection and C++ standard library (libstdc++) 512 are no longer built by default on platforms where clang is the system 513 compiler. You can enable them with the WITH_GCC and WITH_GNUCXX 514 options in src.conf. 515 51620130905: 517 The PROCDESC kernel option is now part of the GENERIC kernel 518 configuration and is required for the rwhod(8) to work. 519 If you are using custom kernel configuration, you should include 520 'options PROCDESC'. 521 52220130905: 523 The API and ABI related to the Capsicum framework was modified 524 in backward incompatible way. The userland libraries and programs 525 have to be recompiled to work with the new kernel. This includes the 526 following libraries and programs, but the whole buildworld is 527 advised: libc, libprocstat, dhclient, tcpdump, hastd, hastctl, 528 kdump, procstat, rwho, rwhod, uniq. 529 53020130903: 531 AES-NI intrinsic support has been added to gcc. The AES-NI module 532 has been updated to use this support. A new gcc is required to build 533 the aesni module on both i386 and amd64. 534 53520130821: 536 The PADLOCK_RNG and RDRAND_RNG kernel options are now devices. 537 Thus "device padlock_rng" and "device rdrand_rng" should be 538 used instead of "options PADLOCK_RNG" & "options RDRAND_RNG". 539 54020130813: 541 WITH_ICONV has been split into two feature sets. WITH_ICONV now 542 enables just the iconv* functionality and is now on by default. 543 WITH_LIBICONV_COMPAT enables the libiconv api and link time 544 compatability. Set WITHOUT_ICONV to build the old way. 545 If you have been using WITH_ICONV before, you will very likely 546 need to turn on WITH_LIBICONV_COMPAT. 547 54820130806: 549 INVARIANTS option now enables DEBUG for code with OpenSolaris and 550 Illumos origin, including ZFS. If you have INVARIANTS in your 551 kernel configuration, then there is no need to set DEBUG or ZFS_DEBUG 552 explicitly. 553 DEBUG used to enable witness(9) tracking of OpenSolaris (mostly ZFS) 554 locks if WITNESS option was set. Because that generated a lot of 555 witness(9) reports and all of them were believed to be false 556 positives, this is no longer done. New option OPENSOLARIS_WITNESS 557 can be used to achieve the previous behavior. 558 55920130806: 560 Timer values in IPv6 data structures now use time_uptime instead 561 of time_second. Although this is not a user-visible functional 562 change, userland utilities which directly use them---ndp(8), 563 rtadvd(8), and rtsold(8) in the base system---need to be updated 564 to r253970 or later. 565 56620130802: 567 find -delete can now delete the pathnames given as arguments, 568 instead of only files found below them or if the pathname did 569 not contain any slashes. Formerly, the following error message 570 would result: 571 572 find: -delete: <path>: relative path potentially not safe 573 574 Deleting the pathnames given as arguments can be prevented 575 without error messages using -mindepth 1 or by changing 576 directory and passing "." as argument to find. This works in the 577 old as well as the new version of find. 578 57920130726: 580 Behavior of devfs rules path matching has been changed. 581 Pattern is now always matched against fully qualified devfs 582 path and slash characters must be explicitly matched by 583 slashes in pattern (FNM_PATHNAME). Rulesets involving devfs 584 subdirectories must be reviewed. 585 58620130716: 587 The default ARM ABI has changed to the ARM EABI. The old ABI is 588 incompatible with the ARM EABI and all programs and modules will 589 need to be rebuilt to work with a new kernel. 590 591 To keep using the old ABI ensure the WITHOUT_ARM_EABI knob is set. 592 593 NOTE: Support for the old ABI will be removed in the future and 594 users are advised to upgrade. 595 59620130709: 597 pkg_install has been disconnected from the build if you really need it 598 you should add WITH_PKGTOOLS in your src.conf(5). 599 60020130709: 601 Most of network statistics structures were changed to be able 602 keep 64-bits counters. Thus all tools, that work with networking 603 statistics, must be rebuilt (netstat(1), bsnmpd(1), etc.) 604 60520130629: 606 Fix targets that run multiple make's to use && rather than ; 607 so that subsequent steps depend on success of previous. 608 609 NOTE: if building 'universe' with -j* on stable/8 or stable/9 610 it would be better to start the build using bmake, to avoid 611 overloading the machine. 612 61320130618: 614 Fix a bug that allowed a tracing process (e.g. gdb) to write 615 to a memory-mapped file in the traced process's address space 616 even if neither the traced process nor the tracing process had 617 write access to that file. 618 61920130615: 620 CVS has been removed from the base system. An exact copy 621 of the code is available from the devel/cvs port. 622 62320130613: 624 Some people report the following error after the switch to bmake: 625 626 make: illegal option -- J 627 usage: make [-BPSXeiknpqrstv] [-C directory] [-D variable] 628 ... 629 *** [buildworld] Error code 2 630 631 this likely due to an old instance of make in 632 ${MAKEPATH} (${MAKEOBJDIRPREFIX}${.CURDIR}/make.${MACHINE}) 633 which src/Makefile will use that blindly, if it exists, so if 634 you see the above error: 635 636 rm -rf `make -V MAKEPATH` 637 638 should resolve it. 639 64020130516: 641 Use bmake by default. 642 Whereas before one could choose to build with bmake via 643 -DWITH_BMAKE one must now use -DWITHOUT_BMAKE to use the old 644 make. The goal is to remove these knobs for 10-RELEASE. 645 646 It is worth noting that bmake (like gmake) treats the command 647 line as the unit of failure, rather than statements within the 648 command line. Thus '(cd some/where && dosomething)' is safer 649 than 'cd some/where; dosomething'. The '()' allows consistent 650 behavior in parallel build. 651 65220130429: 653 Fix a bug that allows NFS clients to issue READDIR on files. 654 65520130426: 656 The WITHOUT_IDEA option has been removed because 657 the IDEA patent expired. 658 65920130426: 660 The sysctl which controls TRIM support under ZFS has been renamed 661 from vfs.zfs.trim_disable -> vfs.zfs.trim.enabled and has been 662 enabled by default. 663 66420130425: 665 The mergemaster command now uses the default MAKEOBJDIRPREFIX 666 rather than creating it's own in the temporary directory in 667 order allow access to bootstrapped versions of tools such as 668 install and mtree. When upgrading from version of FreeBSD where 669 the install command does not support -l, you will need to 670 install a new mergemaster command if mergemaster -p is required. 671 This can be accomplished with the command (cd src/usr.sbin/mergemaster 672 && make install). 673 67420130404: 675 Legacy ATA stack, disabled and replaced by new CAM-based one since 676 FreeBSD 9.0, completely removed from the sources. Kernel modules 677 atadisk and atapi*, user-level tools atacontrol and burncd are 678 removed. Kernel option `options ATA_CAM` is now permanently enabled 679 and removed. 680 68120130319: 682 SOCK_CLOEXEC and SOCK_NONBLOCK flags have been added to socket(2) 683 and socketpair(2). Software, in particular Kerberos, may 684 automatically detect and use these during building. The resulting 685 binaries will not work on older kernels. 686 68720130308: 688 CTL_DISABLE has also been added to the sparc64 GENERIC (for further 689 information, see the respective 20130304 entry). 690 69120130304: 692 Recent commits to callout(9) changed the size of struct callout, 693 so the KBI is probably heavily disturbed. Also, some functions 694 in callout(9)/sleep(9)/sleepqueue(9)/condvar(9) KPIs were replaced 695 by macros. Every kernel module using it won't load, so rebuild 696 is requested. 697 698 The ctl device has been re-enabled in GENERIC for i386 and amd64, 699 but does not initialize by default (because of the new CTL_DISABLE 700 option) to save memory. To re-enable it, remove the CTL_DISABLE 701 option from the kernel config file or set kern.cam.ctl.disable=0 702 in /boot/loader.conf. 703 70420130301: 705 The ctl device has been disabled in GENERIC for i386 and amd64. 706 This was done due to the extra memory being allocated at system 707 initialisation time by the ctl driver which was only used if 708 a CAM target device was created. This makes a FreeBSD system 709 unusable on 128MB or less of RAM. 710 71120130208: 712 A new compression method (lz4) has been merged to -HEAD. Please 713 refer to zpool-features(7) for more information. 714 715 Please refer to the "ZFS notes" section of this file for information 716 on upgrading boot ZFS pools. 717 71820130129: 719 A BSD-licensed patch(1) variant has been added and is installed 720 as bsdpatch, being the GNU version the default patch. 721 To inverse the logic and use the BSD-licensed one as default, 722 while having the GNU version installed as gnupatch, rebuild 723 and install world with the WITH_BSD_PATCH knob set. 724 72520130121: 726 Due to the use of the new -l option to install(1) during build 727 and install, you must take care not to directly set the INSTALL 728 make variable in your /etc/make.conf, /etc/src.conf, or on the 729 command line. If you wish to use the -C flag for all installs 730 you may be able to add INSTALL+=-C to /etc/make.conf or 731 /etc/src.conf. 732 73320130118: 734 The install(1) option -M has changed meaning and now takes an 735 argument that is a file or path to append logs to. In the 736 unlikely event that -M was the last option on the command line 737 and the command line contained at least two files and a target 738 directory the first file will have logs appended to it. The -M 739 option served little practical purpose in the last decade so its 740 use is expected to be extremely rare. 741 74220121223: 743 After switching to Clang as the default compiler some users of ZFS 744 on i386 systems started to experience stack overflow kernel panics. 745 Please consider using 'options KSTACK_PAGES=4' in such configurations. 746 74720121222: 748 GEOM_LABEL now mangles label names read from file system metadata. 749 Mangling affect labels containing spaces, non-printable characters, 750 '%' or '"'. Device names in /etc/fstab and other places may need to 751 be updated. 752 75320121217: 754 By default, only the 10 most recent kernel dumps will be saved. To 755 restore the previous behaviour (no limit on the number of kernel dumps 756 stored in the dump directory) add the following line to /etc/rc.conf: 757 758 savecore_flags="" 759 76020121201: 761 With the addition of auditdistd(8), a new auditdistd user is now 762 required during installworld. "mergemaster -p" can be used to 763 add the user prior to installworld, as documented in the handbook. 764 76520121117: 766 The sin6_scope_id member variable in struct sockaddr_in6 is now 767 filled by the kernel before passing the structure to the userland via 768 sysctl or routing socket. This means the KAME-specific embedded scope 769 id in sin6_addr.s6_addr[2] is always cleared in userland application. 770 This behavior can be controlled by net.inet6.ip6.deembed_scopeid. 771 __FreeBSD_version is bumped to 1000025. 772 77320121105: 774 On i386 and amd64 systems WITH_CLANG_IS_CC is now the default. 775 This means that the world and kernel will be compiled with clang 776 and that clang will be installed as /usr/bin/cc, /usr/bin/c++, 777 and /usr/bin/cpp. To disable this behavior and revert to building 778 with gcc, compile with WITHOUT_CLANG_IS_CC. Really old versions 779 of current may need to bootstrap WITHOUT_CLANG first if the clang 780 build fails (its compatibility window doesn't extend to the 9 stable 781 branch point). 782 78320121102: 784 The IPFIREWALL_FORWARD kernel option has been removed. Its 785 functionality now turned on by default. 786 78720121023: 788 The ZERO_COPY_SOCKET kernel option has been removed and 789 split into SOCKET_SEND_COW and SOCKET_RECV_PFLIP. 790 NB: SOCKET_SEND_COW uses the VM page based copy-on-write 791 mechanism which is not safe and may result in kernel crashes. 792 NB: The SOCKET_RECV_PFLIP mechanism is useless as no current 793 driver supports disposeable external page sized mbuf storage. 794 Proper replacements for both zero-copy mechanisms are under 795 consideration and will eventually lead to complete removal 796 of the two kernel options. 797 79820121023: 799 The IPv4 network stack has been converted to network byte 800 order. The following modules need to be recompiled together 801 with kernel: carp(4), divert(4), gif(4), siftr(4), gre(4), 802 pf(4), ipfw(4), ng_ipfw(4), stf(4). 803 80420121022: 805 Support for non-MPSAFE filesystems was removed from VFS. The 806 VFS_VERSION was bumped, all filesystem modules shall be 807 recompiled. 808 80920121018: 810 All the non-MPSAFE filesystems have been disconnected from 811 the build. The full list includes: codafs, hpfs, ntfs, nwfs, 812 portalfs, smbfs, xfs. 813 81420121016: 815 The interface cloning API and ABI has changed. The following 816 modules need to be recompiled together with kernel: 817 ipfw(4), pfsync(4), pflog(4), usb(4), wlan(4), stf(4), 818 vlan(4), disc(4), edsc(4), if_bridge(4), gif(4), tap(4), 819 faith(4), epair(4), enc(4), tun(4), if_lagg(4), gre(4). 820 82120121015: 822 The sdhci driver was split in two parts: sdhci (generic SD Host 823 Controller logic) and sdhci_pci (actual hardware driver). 824 No kernel config modifications are required, but if you 825 load sdhc as a module you must switch to sdhci_pci instead. 826 82720121014: 828 Import the FUSE kernel and userland support into base system. 829 83020121013: 831 The GNU sort(1) program has been removed since the BSD-licensed 832 sort(1) has been the default for quite some time and no serious 833 problems have been reported. The corresponding WITH_GNU_SORT 834 knob has also gone. 835 83620121006: 837 The pfil(9) API/ABI for AF_INET family has been changed. Packet 838 filtering modules: pf(4), ipfw(4), ipfilter(4) need to be recompiled 839 with new kernel. 840 84120121001: 842 The net80211(4) ABI has been changed to allow for improved driver 843 PS-POLL and power-save support. All wireless drivers need to be 844 recompiled to work with the new kernel. 845 84620120913: 847 The random(4) support for the VIA hardware random number 848 generator (`PADLOCK') is no longer enabled unconditionally. 849 Add the padlock_rng device in the custom kernel config if 850 needed. The GENERIC kernels on i386 and amd64 do include the 851 device, so the change only affects the custom kernel 852 configurations. 853 85420120908: 855 The pf(4) packet filter ABI has been changed. pfctl(8) and 856 snmp_pf module need to be recompiled to work with new kernel. 857 85820120828: 859 A new ZFS feature flag "com.delphix:empty_bpobj" has been merged 860 to -HEAD. Pools that have empty_bpobj in active state can not be 861 imported read-write with ZFS implementations that do not support 862 this feature. For more information read the zpool-features(5) 863 manual page. 864 86520120727: 866 The sparc64 ZFS loader has been changed to no longer try to auto- 867 detect ZFS providers based on diskN aliases but now requires these 868 to be explicitly listed in the OFW boot-device environment variable. 869 87020120712: 871 The OpenSSL has been upgraded to 1.0.1c. Any binaries requiring 872 libcrypto.so.6 or libssl.so.6 must be recompiled. Also, there are 873 configuration changes. Make sure to merge /etc/ssl/openssl.cnf. 874 87520120712: 876 The following sysctls and tunables have been renamed for consistency 877 with other variables: 878 kern.cam.da.da_send_ordered -> kern.cam.da.send_ordered 879 kern.cam.ada.ada_send_ordered -> kern.cam.ada.send_ordered 880 88120120628: 882 The sort utility has been replaced with BSD sort. For now, GNU sort 883 is also available as "gnusort" or the default can be set back to 884 GNU sort by setting WITH_GNU_SORT. In this case, BSD sort will be 885 installed as "bsdsort". 886 88720120611: 888 A new version of ZFS (pool version 5000) has been merged to -HEAD. 889 Starting with this version the old system of ZFS pool versioning 890 is superseded by "feature flags". This concept enables forward 891 compatibility against certain future changes in functionality of ZFS 892 pools. The first read-only compatible "feature flag" for ZFS pools 893 is named "com.delphix:async_destroy". For more information 894 read the new zpool-features(5) manual page. 895 Please refer to the "ZFS notes" section of this file for information 896 on upgrading boot ZFS pools. 897 89820120417: 899 The malloc(3) implementation embedded in libc now uses sources imported 900 as contrib/jemalloc. The most disruptive API change is to 901 /etc/malloc.conf. If your system has an old-style /etc/malloc.conf, 902 delete it prior to installworld, and optionally re-create it using the 903 new format after rebooting. See malloc.conf(5) for details 904 (specifically the TUNING section and the "opt.*" entries in the MALLCTL 905 NAMESPACE section). 906 90720120328: 908 Big-endian MIPS TARGET_ARCH values no longer end in "eb". mips64eb 909 is now spelled mips64. mipsn32eb is now spelled mipsn32. mipseb is 910 now spelled mips. This is to aid compatibility with third-party 911 software that expects this naming scheme in uname(3). Little-endian 912 settings are unchanged. If you are updating a big-endian mips64 machine 913 from before this change, you may need to set MACHINE_ARCH=mips64 in 914 your environment before the new build system will recognize your machine. 915 91620120306: 917 Disable by default the option VFS_ALLOW_NONMPSAFE for all supported 918 platforms. 919 92020120229: 921 Now unix domain sockets behave "as expected" on nullfs(5). Previously 922 nullfs(5) did not pass through all behaviours to the underlying layer, 923 as a result if we bound to a socket on the lower layer we could connect 924 only to the lower path; if we bound to the upper layer we could connect 925 only to the upper path. The new behavior is one can connect to both the 926 lower and the upper paths regardless what layer path one binds to. 927 92820120211: 929 The getifaddrs upgrade path broken with 20111215 has been restored. 930 If you have upgraded in between 20111215 and 20120209 you need to 931 recompile libc again with your kernel. You still need to recompile 932 world to be able to configure CARP but this restriction already 933 comes from 20111215. 934 93520120114: 936 The set_rcvar() function has been removed from /etc/rc.subr. All 937 base and ports rc.d scripts have been updated, so if you have a 938 port installed with a script in /usr/local/etc/rc.d you can either 939 hand-edit the rcvar= line, or reinstall the port. 940 941 An easy way to handle the mass-update of /etc/rc.d: 942 rm /etc/rc.d/* && mergemaster -i 943 94420120109: 945 panic(9) now stops other CPUs in the SMP systems, disables interrupts 946 on the current CPU and prevents other threads from running. 947 This behavior can be reverted using the kern.stop_scheduler_on_panic 948 tunable/sysctl. 949 The new behavior can be incompatible with kern.sync_on_panic. 950 95120111215: 952 The carp(4) facility has been changed significantly. Configuration 953 of the CARP protocol via ifconfig(8) has changed, as well as format 954 of CARP events submitted to devd(8) has changed. See manual pages 955 for more information. The arpbalance feature of carp(4) is currently 956 not supported anymore. 957 958 Size of struct in_aliasreq, struct in6_aliasreq has changed. User 959 utilities using SIOCAIFADDR, SIOCAIFADDR_IN6, e.g. ifconfig(8), 960 need to be recompiled. 961 96220111122: 963 The acpi_wmi(4) status device /dev/wmistat has been renamed to 964 /dev/wmistat0. 965 96620111108: 967 The option VFS_ALLOW_NONMPSAFE option has been added in order to 968 explicitely support non-MPSAFE filesystems. 969 It is on by default for all supported platform at this present 970 time. 971 97220111101: 973 The broken amd(4) driver has been replaced with esp(4) in the amd64, 974 i386 and pc98 GENERIC kernel configuration files. 975 97620110930: 977 sysinstall has been removed 978 97920110923: 980 The stable/9 branch created in subversion. This corresponds to the 981 RELENG_9 branch in CVS. 982 983COMMON ITEMS: 984 985 General Notes 986 ------------- 987 Avoid using make -j when upgrading. While generally safe, there are 988 sometimes problems using -j to upgrade. If your upgrade fails with 989 -j, please try again without -j. From time to time in the past there 990 have been problems using -j with buildworld and/or installworld. This 991 is especially true when upgrading between "distant" versions (eg one 992 that cross a major release boundary or several minor releases, or when 993 several months have passed on the -current branch). 994 995 Sometimes, obscure build problems are the result of environment 996 poisoning. This can happen because the make utility reads its 997 environment when searching for values for global variables. To run 998 your build attempts in an "environmental clean room", prefix all make 999 commands with 'env -i '. See the env(1) manual page for more details. 1000 1001 When upgrading from one major version to another it is generally best 1002 to upgrade to the latest code in the currently installed branch first, 1003 then do an upgrade to the new branch. This is the best-tested upgrade 1004 path, and has the highest probability of being successful. Please try 1005 this approach before reporting problems with a major version upgrade. 1006 1007 When upgrading a live system, having a root shell around before 1008 installing anything can help undo problems. Not having a root shell 1009 around can lead to problems if pam has changed too much from your 1010 starting point to allow continued authentication after the upgrade. 1011 1012 ZFS notes 1013 --------- 1014 When upgrading the boot ZFS pool to a new version, always follow 1015 these two steps: 1016 1017 1.) recompile and reinstall the ZFS boot loader and boot block 1018 (this is part of "make buildworld" and "make installworld") 1019 1020 2.) update the ZFS boot block on your boot drive 1021 1022 The following example updates the ZFS boot block on the first 1023 partition (freebsd-boot) of a GPT partitioned drive ada0: 1024 "gpart bootcode -p /boot/gptzfsboot -i 1 ada0" 1025 1026 Non-boot pools do not need these updates. 1027 1028 To build a kernel 1029 ----------------- 1030 If you are updating from a prior version of FreeBSD (even one just 1031 a few days old), you should follow this procedure. It is the most 1032 failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 1033 1034 make kernel-toolchain 1035 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 1036 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 1037 1038 To test a kernel once 1039 --------------------- 1040 If you just want to boot a kernel once (because you are not sure 1041 if it works, or if you want to boot a known bad kernel to provide 1042 debugging information) run 1043 make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 1044 nextboot -k testkernel 1045 1046 To just build a kernel when you know that it won't mess you up 1047 -------------------------------------------------------------- 1048 This assumes you are already running a CURRENT system. Replace 1049 ${arch} with the architecture of your machine (e.g. "i386", 1050 "arm", "amd64", "ia64", "pc98", "sparc64", "powerpc", "mips", etc). 1051 1052 cd src/sys/${arch}/conf 1053 config KERNEL_NAME_HERE 1054 cd ../compile/KERNEL_NAME_HERE 1055 make depend 1056 make 1057 make install 1058 1059 If this fails, go to the "To build a kernel" section. 1060 1061 To rebuild everything and install it on the current system. 1062 ----------------------------------------------------------- 1063 # Note: sometimes if you are running current you gotta do more than 1064 # is listed here if you are upgrading from a really old current. 1065 1066 <make sure you have good level 0 dumps> 1067 make buildworld 1068 make kernel KERNCONF=YOUR_KERNEL_HERE 1069 [1] 1070 <reboot in single user> [3] 1071 mergemaster -Fp [5] 1072 make installworld 1073 mergemaster -Fi [4] 1074 make delete-old [6] 1075 <reboot> 1076 1077 To cross-install current onto a separate partition 1078 -------------------------------------------------- 1079 # In this approach we use a separate partition to hold 1080 # current's root, 'usr', and 'var' directories. A partition 1081 # holding "/", "/usr" and "/var" should be about 2GB in 1082 # size. 1083 1084 <make sure you have good level 0 dumps> 1085 <boot into -stable> 1086 make buildworld 1087 make buildkernel KERNCONF=YOUR_KERNEL_HERE 1088 <maybe newfs current's root partition> 1089 <mount current's root partition on directory ${CURRENT_ROOT}> 1090 make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC 1091 make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 1092 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 1093 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 1094 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 1095 <reboot into current> 1096 <do a "native" rebuild/install as described in the previous section> 1097 <maybe install compatibility libraries from ports/misc/compat*> 1098 <reboot> 1099 1100 1101 To upgrade in-place from stable to current 1102 ---------------------------------------------- 1103 <make sure you have good level 0 dumps> 1104 make buildworld [9] 1105 make kernel KERNCONF=YOUR_KERNEL_HERE [8] 1106 [1] 1107 <reboot in single user> [3] 1108 mergemaster -Fp [5] 1109 make installworld 1110 mergemaster -Fi [4] 1111 make delete-old [6] 1112 <reboot> 1113 1114 Make sure that you've read the UPDATING file to understand the 1115 tweaks to various things you need. At this point in the life 1116 cycle of current, things change often and you are on your own 1117 to cope. The defaults can also change, so please read ALL of 1118 the UPDATING entries. 1119 1120 Also, if you are tracking -current, you must be subscribed to 1121 freebsd-current@freebsd.org. Make sure that before you update 1122 your sources that you have read and understood all the recent 1123 messages there. If in doubt, please track -stable which has 1124 much fewer pitfalls. 1125 1126 [1] If you have third party modules, such as vmware, you 1127 should disable them at this point so they don't crash your 1128 system on reboot. 1129 1130 [3] From the bootblocks, boot -s, and then do 1131 fsck -p 1132 mount -u / 1133 mount -a 1134 cd src 1135 adjkerntz -i # if CMOS is wall time 1136 Also, when doing a major release upgrade, it is required that 1137 you boot into single user mode to do the installworld. 1138 1139 [4] Note: This step is non-optional. Failure to do this step 1140 can result in a significant reduction in the functionality of the 1141 system. Attempting to do it by hand is not recommended and those 1142 that pursue this avenue should read this file carefully, as well 1143 as the archives of freebsd-current and freebsd-hackers mailing lists 1144 for potential gotchas. The -U option is also useful to consider. 1145 See mergemaster(8) for more information. 1146 1147 [5] Usually this step is a noop. However, from time to time 1148 you may need to do this if you get unknown user in the following 1149 step. It never hurts to do it all the time. You may need to 1150 install a new mergemaster (cd src/usr.sbin/mergemaster && make 1151 install) after the buildworld before this step if you last updated 1152 from current before 20130425 or from -stable before 20130430. 1153 1154 [6] This only deletes old files and directories. Old libraries 1155 can be deleted by "make delete-old-libs", but you have to make 1156 sure that no program is using those libraries anymore. 1157 1158 [8] In order to have a kernel that can run the 4.x binaries needed to 1159 do an installworld, you must include the COMPAT_FREEBSD4 option in 1160 your kernel. Failure to do so may leave you with a system that is 1161 hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 is 1162 required to run the 5.x binaries on more recent kernels. And so on 1163 for COMPAT_FREEBSD6 and COMPAT_FREEBSD7. 1164 1165 Make sure that you merge any new devices from GENERIC since the 1166 last time you updated your kernel config file. 1167 1168 [9] When checking out sources, you must include the -P flag to have 1169 cvs prune empty directories. 1170 1171 If CPUTYPE is defined in your /etc/make.conf, make sure to use the 1172 "?=" instead of the "=" assignment operator, so that buildworld can 1173 override the CPUTYPE if it needs to. 1174 1175 MAKEOBJDIRPREFIX must be defined in an environment variable, and 1176 not on the command line, or in /etc/make.conf. buildworld will 1177 warn if it is improperly defined. 1178FORMAT: 1179 1180This file contains a list, in reverse chronological order, of major 1181breakages in tracking -current. It is not guaranteed to be a complete 1182list of such breakages, and only contains entries since October 10, 2007. 1183If you need to see UPDATING entries from before that date, you will need 1184to fetch an UPDATING file from an older FreeBSD release. 1185 1186Copyright information: 1187 1188Copyright 1998-2009 M. Warner Losh. All Rights Reserved. 1189 1190Redistribution, publication, translation and use, with or without 1191modification, in full or in part, in any form or format of this 1192document are permitted without further permission from the author. 1193 1194THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 1195IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 1196WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1197DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 1198INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 1199(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 1200SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 1201HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 1202STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 1203IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 1204POSSIBILITY OF SUCH DAMAGE. 1205 1206Contact Warner Losh if you have any questions about your use of 1207this document. 1208 1209$FreeBSD$ 1210