UPDATING revision 215166
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 9Items affecting the ports and packages system can be found in 10/usr/ports/UPDATING. Please read that file before running portupgrade. 11 12NOTE TO PEOPLE WHO THINK THAT FreeBSD 9.x IS SLOW: 13 FreeBSD 9.x has many debugging features turned on, in both the kernel 14 and userland. These features attempt to detect incorrect use of 15 system primitives, and encourage loud failure through extra sanity 16 checking and fail stop semantics. They also substantially impact 17 system performance. If you want to do performance measurement, 18 benchmarking, and optimization, you'll want to turn them off. This 19 includes various WITNESS- related kernel options, INVARIANTS, malloc 20 debugging flags in userland, and various verbose features in the 21 kernel. Many developers choose to disable these features on build 22 machines to maximize performance. (To disable malloc debugging, run 23 ln -s aj /etc/malloc.conf.) 24 2520101111: 26 The TCP stack has received a significant update to add support for 27 modularised congestion control and generally improve the clarity of 28 congestion control decisions. Bump __FreeBSD_version to 900025. User 29 space tools that rely on the size of struct tcpcb in tcp_var.h (e.g. 30 sockstat) need to be recompiled. 31 3220101002: 33 The man(1) utility has been replaced by a new version that no longer 34 uses /etc/manpath.config. Please consult man.conf(5) for how to 35 migrate local entries to the new format. 36 3720100928: 38 The copyright strings printed by login(1) and sshd(8) at the time of a 39 new connection have been removed to follow other operating systems and 40 upstream sshd. 41 4220100915: 43 A workaround for a fixed ld bug has been removed in kernel code, 44 so make sure that your system ld is built from sources after 45 revision 210245 from 2010-07-19 (r211583 if building head kernel 46 on stable/8, r211584 for stable/7; both from 2010-08-21). 47 A symptom of incorrect ld version is different addresses for 48 set_pcpu section and __start_set_pcpu symbol in kernel and/or modules. 49 5020100913: 51 The $ipv6_prefer variable in rc.conf(5) has been split into 52 $ip6addrctl_policy and $ipv6_activate_all_interfaces. 53 54 The $ip6addrctl_policy is a variable to choose a pre-defined 55 address selection policy set by ip6addrctl(8). A value 56 "ipv4_prefer", "ipv6_prefer" or "AUTO" can be specified. The 57 default is "AUTO". 58 59 The $ipv6_activate_all_interfaces specifies whether IFDISABLED 60 flag (see an entry of 20090926) is set on an interface with no 61 corresponding $ifconfig_IF_ipv6 line. The default is "NO" for 62 security reason. If you want IPv6 link-local address on all 63 interfaces by default, set this to "YES". 64 65 The old ipv6_prefer="YES" is equivalent to 66 ipv6_activate_all_interfaces="YES" and 67 ip6addrctl_policy="ipv6_prefer". 68 6920100913: 70 DTrace has grown support for userland tracing. Due to this, DTrace is 71 now i386 and amd64 only. 72 dtruss(1) is now installed by default on those systems and a new 73 kernel module is needed for userland tracing: fasttrap. 74 No changes to your kernel config file are necessary to enable 75 userland tracing, but you might consider adding 'STRIP=' and 76 'CFLAGS+=-fno-omit-frame-pointer' to your make.conf if you want 77 to have informative userland stack traces in DTrace (ustack). 78 7920100725: 80 The acpi_aiboost(4) driver has been removed in favor of the new 81 aibs(4) driver. You should update your kernel configuration file. 82 8320100722: 84 BSD grep has been imported to the base system and it is built by 85 default. It is completely BSD licensed, highly GNU-compatible, uses 86 less memory than its GNU counterpart and has a small codebase. 87 However, it is slower than its GNU counterpart, which is mostly 88 noticeable for larger searches, for smaller ones it is measurable 89 but not significant. The reason is complex, the most important factor 90 is that we lack a modern and efficient regex library and GNU 91 overcomes this by optimizing the searches internally. Future work 92 on improving the regex performance is planned, for the meantime, 93 users that need better performance, can build GNU grep instead by 94 setting the WITH_GNU_GREP knob. 95 9620100713: 97 Due to the import of powerpc64 support, all existing powerpc kernel 98 configuration files must be updated with a machine directive like this: 99 machine powerpc powerpc 100 101 In addition, an updated config(8) is required to build powerpc kernels 102 after this change. 103 10420100713: 105 A new version of ZFS (version 15) has been merged to -HEAD. 106 This version uses a python library for the following subcommands: 107 zfs allow, zfs unallow, zfs groupspace, zfs userspace. 108 For full functionality of these commands the following port must 109 be installed: sysutils/py-zfs 110 11120100429: 112 'vm_page's are now hashed by physical address to an array of mutexes. 113 Currently this is only used to serialize access to hold_count. Over 114 time the page queue mutex will be peeled away. This changes the size 115 of pmap on every architecture. And requires all callers of vm_page_hold 116 and vm_page_unhold to be updated. 117 11820100402: 119 WITH_CTF can now be specified in src.conf (not recommended, there 120 are some problems with static executables), make.conf (would also 121 affect ports which do not use GNU make and do not override the 122 compile targets) or in the kernel config (via "makeoptions 123 WITH_CTF=yes"). 124 When WITH_CTF was specified there before this was silently ignored, 125 so make sure that WITH_CTF is not used in places which could lead 126 to unwanted behavior. 127 12820100311: 129 The kernel option COMPAT_IA32 has been replaced with COMPAT_FREEBSD32 130 to allow 32-bit compatibility on non-x86 platforms. All kernel 131 configurations on amd64 and ia64 platforms using these options must 132 be modified accordingly. 133 13420100113: 135 The utmp user accounting database has been replaced with utmpx, 136 the user accounting interface standardized by POSIX. 137 Unfortunately the semantics of utmp and utmpx don't match, 138 making it practically impossible to support both interfaces. 139 The user accounting database is used by tools like finger(1), 140 last(1), talk(1), w(1) and ac(8). 141 142 All applications in the base system use utmpx. This means only 143 local binaries (e.g. from the ports tree) may still use these 144 utmp database files. These applications must be rebuilt to make 145 use of utmpx. 146 147 After the system has been upgraded, it is safe to remove the old 148 log files (/var/run/utmp, /var/log/lastlog and /var/log/wtmp*), 149 assuming their contents is of no importance anymore. Old wtmp 150 databases can only be used by last(1) and ac(8) after they have 151 been converted to the new format using wtmpcvt(1). 152 15320100108: 154 Introduce the kernel thread "deadlock resolver" (which can be enabled 155 via the DEADLKRES option, see NOTES for more details) and the 156 sleepq_type() function for sleepqueues. 157 15820091202: 159 The rc.firewall and rc.firewall6 were unified, and 160 rc.firewall6 and rc.d/ip6fw were removed. 161 According to the removal of rc.d/ip6fw, ipv6_firewall_* rc 162 variables are obsoleted. Instead, the following new rc 163 variables are added to rc.d/ipfw: 164 165 firewall_client_net_ipv6, firewall_simple_iif_ipv6, 166 firewall_simple_inet_ipv6, firewall_simple_oif_ipv6, 167 firewall_simple_onet_ipv6, firewall_trusted_ipv6 168 169 The meanings correspond to the relevant IPv4 variables. 170 17120091125: 172 8.0-RELEASE. 173 17420091113: 175 The default terminal emulation for syscons(4) has been changed 176 from cons25 to xterm on all platforms except pc98. This means 177 that the /etc/ttys file needs to be updated to ensure correct 178 operation of applications on the console. 179 180 The terminal emulation style can be toggled per window by using 181 vidcontrol(1)'s -T flag. The TEKEN_CONS25 kernel configuration 182 options can be used to change the compile-time default back to 183 cons25. 184 185 To prevent graphical artifacts, make sure the TERM environment 186 variable is set to match the terminal emulation that is being 187 performed by syscons(4). 188 18920091109: 190 The layout of the structure ieee80211req_scan_result has changed. 191 Applications that require wireless scan results (e.g. ifconfig(8)) 192 from net80211 need to be recompiled. 193 194 Applications such as wpa_supplicant(8) may require a full world 195 build without using NO_CLEAN in order to get synchronized with the 196 new structure. 197 19820091025: 199 The iwn(4) driver has been updated to support the 5000 and 5150 series. 200 There's one kernel module for each firmware. Adding "device iwnfw" 201 to the kernel configuration file means including all three firmware 202 images inside the kernel. If you want to include just the one for 203 your wireless card, use the the devices iwn4965fw, iwn5000fw or 204 iwn5150fw. 205 20620090926: 207 The rc.d/network_ipv6, IPv6 configuration script has been integrated 208 into rc.d/netif. The changes are the following: 209 210 1. To use IPv6, simply define $ifconfig_IF_ipv6 like $ifconfig_IF 211 for IPv4. For aliases, $ifconfig_IF_aliasN should be used. 212 Note that both variables need the "inet6" keyword at the head. 213 214 Do not set $ipv6_network_interfaces manually if you do not 215 understand what you are doing. It is not needed in most cases. 216 217 $ipv6_ifconfig_IF and $ipv6_ifconfig_IF_aliasN still work, but 218 they are obsolete. 219 220 2. $ipv6_enable is obsolete. Use $ipv6_prefer and 221 "inet6 accept_rtadv" keyword in ifconfig(8) instead. 222 223 If you define $ipv6_enable=YES, it means $ipv6_prefer=YES and 224 all configured interfaces have "inet6 accept_rtadv" in the 225 $ifconfig_IF_ipv6. These are for backward compatibility. 226 227 3. A new variable $ipv6_prefer has been added. If NO, IPv6 228 functionality of interfaces with no corresponding 229 $ifconfig_IF_ipv6 is disabled by using "inet6 ifdisabled" flag, 230 and the default address selection policy of ip6addrctl(8) 231 is the IPv4-preferred one (see rc.d/ip6addrctl for more details). 232 Note that if you want to configure IPv6 functionality on the 233 disabled interfaces after boot, first you need to clear the flag by 234 using ifconfig(8) like: 235 236 ifconfig em0 inet6 -ifdisabled 237 238 If YES, the default address selection policy is set as 239 IPv6-preferred. 240 241 The default value of $ipv6_prefer is NO. 242 243 4. If your system need to receive Router Advertisement messages, 244 define "inet6 accept_rtadv" in $ifconfig_IF_ipv6. The rc(8) 245 scripts automatically invoke rtsol(8) when the interface becomes 246 UP. The Router Advertisement messages are used for SLAAC 247 (State-Less Address AutoConfiguration). 248 24920090922: 250 802.11s D3.03 support was committed. This is incompatible with the 251 previous code, which was based on D3.0. 252 25320090912: 254 A sysctl variable net.inet6.ip6.accept_rtadv now sets the default value 255 of a per-interface flag ND6_IFF_ACCEPT_RTADV, not a global knob to 256 control whether accepting Router Advertisement messages or not. 257 Also, a per-interface flag ND6_IFF_AUTO_LINKLOCAL has been added and 258 a sysctl variable net.inet6.ip6.auto_linklocal is its default value. 259 The ifconfig(8) utility now supports these flags. 260 26120090910: 262 ZFS snapshots are now mounted with MNT_IGNORE flag. Use -v option for 263 mount(8) and -a option for df(1) to see them. 264 26520090825: 266 The old tunable hw.bus.devctl_disable has been superseded by 267 hw.bus.devctl_queue. hw.bus.devctl_disable=1 in loader.conf should be 268 replaced by hw.bus.devctl_queue=0. The default for this new tunable 269 is 1000. 270 27120090813: 272 Remove the option STOP_NMI. The default action is now to use NMI only 273 for KDB via the newly introduced function stop_cpus_hard() and 274 maintain stop_cpus() to just use a normal IPI_STOP on ia32 and amd64. 275 27620090803: 277 The stable/8 branch created in subversion. This corresponds to the 278 RELENG_8 branch in CVS. 279 28020090719: 281 Bump the shared library version numbers for all libraries that do not 282 use symbol versioning as part of the 8.0-RELEASE cycle. Bump 283 __FreeBSD_version to 800105. 284 28520090714: 286 Due to changes in the implementation of virtual network stack support, 287 all network-related kernel modules must be recompiled. As this change 288 breaks the ABI, bump __FreeBSD_version to 800104. 289 29020090713: 291 The TOE interface to the TCP syncache has been modified to remove 292 struct tcpopt (<netinet/tcp_var.h>) from the ABI of the network stack. 293 The cxgb driver is the only TOE consumer affected by this change, and 294 needs to be recompiled along with the kernel. As this change breaks 295 the ABI, bump __FreeBSD_version to 800103. 296 29720090712: 298 Padding has been added to struct tcpcb, sackhint and tcpstat in 299 <netinet/tcp_var.h> to facilitate future MFCs and bug fixes whilst 300 maintaining the ABI. However, this change breaks the ABI, so bump 301 __FreeBSD_version to 800102. User space tools that rely on the size of 302 any of these structs (e.g. sockstat) need to be recompiled. 303 30420090630: 305 The NFS_LEGACYRPC option has been removed along with the old kernel 306 RPC implementation that this option selected. Kernel configurations 307 may need to be adjusted. 308 30920090629: 310 The network interface device nodes at /dev/net/<interface> have been 311 removed. All ioctl operations can be performed the normal way using 312 routing sockets. The kqueue functionality can generally be replaced 313 with routing sockets. 314 31520090628: 316 The documentation from the FreeBSD Documentation Project (Handbook, 317 FAQ, etc.) is now installed via packages by sysinstall(8) and under 318 the /usr/local/share/doc/freebsd directory instead of /usr/share/doc. 319 32020090624: 321 The ABI of various structures related to the SYSV IPC API have been 322 changed. As a result, the COMPAT_FREEBSD[456] and COMPAT_43 kernel 323 options now all require COMPAT_FREEBSD7. Bump __FreeBSD_version to 324 800100. 325 32620090622: 327 Layout of struct vnet has changed as routing related variables were 328 moved to their own Vimage module. Modules need to be recompiled. Bump 329 __FreeBSD_version to 800099. 330 33120090619: 332 NGROUPS_MAX and NGROUPS have been increased from 16 to 1023 and 1024 333 respectively. As long as no more than 16 groups per process are used, 334 no changes should be visible. When more than 16 groups are used, old 335 binaries may fail if they call getgroups() or getgrouplist() with 336 statically sized storage. Recompiling will work around this, but 337 applications should be modified to use dynamically allocated storage 338 for group arrays as POSIX.1-2008 does not cap an implementation's 339 number of supported groups at NGROUPS_MAX+1 as previous versions did. 340 341 NFS and portalfs mounts may also be affected as the list of groups is 342 truncated to 16. Users of NFS who use more than 16 groups, should 343 take care that negative group permissions are not used on the exported 344 file systems as they will not be reliable unless a GSSAPI based 345 authentication method is used. 346 34720090616: 348 The compiling option ADAPTIVE_LOCKMGRS has been introduced. This 349 option compiles in the support for adaptive spinning for lockmgrs 350 which want to enable it. The lockinit() function now accepts the flag 351 LK_ADAPTIVE in order to make the lock object subject to adaptive 352 spinning when both held in write and read mode. 353 35420090613: 355 The layout of the structure returned by IEEE80211_IOC_STA_INFO has 356 changed. User applications that use this ioctl need to be rebuilt. 357 35820090611: 359 The layout of struct thread has changed. Kernel and modules need to 360 be rebuilt. 361 36220090608: 363 The layout of structs ifnet, domain, protosw and vnet_net has changed. 364 Kernel modules need to be rebuilt. Bump __FreeBSD_version to 800097. 365 36620090602: 367 window(1) has been removed from the base system. It can now be 368 installed from ports. The port is called misc/window. 369 37020090601: 371 The way we are storing and accessing `routing table' entries has 372 changed. Programs reading the FIB, like netstat, need to be 373 re-compiled. 374 37520090601: 376 A new netisr implementation has been added for FreeBSD 8. Network 377 file system modules, such as igmp, ipdivert, and others, should be 378 rebuilt. 379 Bump __FreeBSD_version to 800096. 380 38120090530: 382 Remove the tunable/sysctl debug.mpsafevfs as its initial purpose is no 383 more valid. 384 38520090530: 386 Add VOP_ACCESSX(9). File system modules need to be rebuilt. 387 Bump __FreeBSD_version to 800094. 388 38920090529: 390 Add mnt_xflag field to 'struct mount'. File system modules need to be 391 rebuilt. 392 Bump __FreeBSD_version to 800093. 393 39420090528: 395 The compiling option ADAPTIVE_SX has been retired while it has been 396 introduced the option NO_ADAPTIVE_SX which handles the reversed logic. 397 The KPI for sx_init_flags() changes as accepting flags: 398 SX_ADAPTIVESPIN flag has been retired while the SX_NOADAPTIVE flag has 399 been introduced in order to handle the reversed logic. 400 Bump __FreeBSD_version to 800092. 401 40220090527: 403 Add support for hierarchical jails. Remove global securelevel. 404 Bump __FreeBSD_version to 800091. 405 40620090523: 407 The layout of struct vnet_net has changed, therefore modules 408 need to be rebuilt. 409 Bump __FreeBSD_version to 800090. 410 41120090523: 412 The newly imported zic(8) produces a new format in the output. Please 413 run tzsetup(8) to install the newly created data to /etc/localtime. 414 41520090520: 416 The sysctl tree for the usb stack has renamed from hw.usb2.* to 417 hw.usb.* and is now consistent again with previous releases. 418 41920090520: 420 802.11 monitor mode support was revised and driver api's were changed. 421 Drivers dependent on net80211 now support DLT_IEEE802_11_RADIO instead 422 of DLT_IEEE802_11. No user-visible data structures were changed but 423 applications that use DLT_IEEE802_11 may require changes. 424 Bump __FreeBSD_version to 800088. 425 42620090430: 427 The layout of the following structs has changed: sysctl_oid, 428 socket, ifnet, inpcbinfo, tcpcb, syncache_head, vnet_inet, 429 vnet_inet6 and vnet_ipfw. Most modules need to be rebuild or 430 panics may be experienced. World rebuild is required for 431 correctly checking networking state from userland. 432 Bump __FreeBSD_version to 800085. 433 43420090429: 435 MLDv2 and Source-Specific Multicast (SSM) have been merged 436 to the IPv6 stack. VIMAGE hooks are in but not yet used. 437 The implementation of SSM within FreeBSD's IPv6 stack closely 438 follows the IPv4 implementation. 439 440 For kernel developers: 441 442 * The most important changes are that the ip6_output() and 443 ip6_input() paths no longer take the IN6_MULTI_LOCK, 444 and this lock has been downgraded to a non-recursive mutex. 445 446 * As with the changes to the IPv4 stack to support SSM, filtering 447 of inbound multicast traffic must now be performed by transport 448 protocols within the IPv6 stack. This does not apply to TCP and 449 SCTP, however, it does apply to UDP in IPv6 and raw IPv6. 450 451 * The KPIs used by IPv6 multicast are similar to those used by 452 the IPv4 stack, with the following differences: 453 * im6o_mc_filter() is analogous to imo_multicast_filter(). 454 * The legacy KAME entry points in6_joingroup and in6_leavegroup() 455 are shimmed to in6_mc_join() and in6_mc_leave() respectively. 456 * IN6_LOOKUP_MULTI() has been deprecated and removed. 457 * IPv6 relies on MLD for the DAD mechanism. KAME's internal KPIs 458 for MLDv1 have an additional 'timer' argument which is used to 459 jitter the initial membership report for the solicited-node 460 multicast membership on-link. 461 * This is not strictly needed for MLDv2, which already jitters 462 its report transmissions. However, the 'timer' argument is 463 preserved in case MLDv1 is active on the interface. 464 465 * The KAME linked-list based IPv6 membership implementation has 466 been refactored to use a vector similar to that used by the IPv4 467 stack. 468 Code which maintains a list of its own multicast memberships 469 internally, e.g. carp, has been updated to reflect the new 470 semantics. 471 472 * There is a known Lock Order Reversal (LOR) due to in6_setscope() 473 acquiring the IF_AFDATA_LOCK and being called within ip6_output(). 474 Whilst MLDv2 tries to avoid this otherwise benign LOR, it is an 475 implementation constraint which needs to be addressed in HEAD. 476 477 For application developers: 478 479 * The changes are broadly similar to those made for the IPv4 480 stack. 481 482 * The use of IPv4 and IPv6 multicast socket options on the same 483 socket, using mapped addresses, HAS NOT been tested or supported. 484 485 * There are a number of issues with the implementation of various 486 IPv6 multicast APIs which need to be resolved in the API surface 487 before the implementation is fully compatible with KAME userland 488 use, and these are mostly to do with interface index treatment. 489 490 * The literature available discusses the use of either the delta / ASM 491 API with setsockopt(2)/getsockopt(2), or the full-state / ASM API 492 using setsourcefilter(3)/getsourcefilter(3). For more information 493 please refer to RFC 3768, 'Socket Interface Extensions for 494 Multicast Source Filters'. 495 496 * Applications which use the published RFC 3678 APIs should be fine. 497 498 For systems administrators: 499 500 * The mtest(8) utility has been refactored to support IPv6, in 501 addition to IPv4. Interface addresses are no longer accepted 502 as arguments, their names must be used instead. The utility 503 will map the interface name to its first IPv4 address as 504 returned by getifaddrs(3). 505 506 * The ifmcstat(8) utility has also been updated to print the MLDv2 507 endpoint state and source filter lists via sysctl(3). 508 509 * The net.inet6.ip6.mcast.loop sysctl may be tuned to 0 to disable 510 loopback of IPv6 multicast datagrams by default; it defaults to 1 511 to preserve the existing behaviour. Disabling multicast loopback is 512 recommended for optimal system performance. 513 514 * The IPv6 MROUTING code has been changed to examine this sysctl 515 instead of attempting to perform a group lookup before looping 516 back forwarded datagrams. 517 518 Bump __FreeBSD_version to 800084. 519 52020090422: 521 Implement low-level Bluetooth HCI API. 522 Bump __FreeBSD_version to 800083. 523 52420090419: 525 The layout of struct malloc_type, used by modules to register new 526 memory allocation types, has changed. Most modules will need to 527 be rebuilt or panics may be experienced. 528 Bump __FreeBSD_version to 800081. 529 53020090415: 531 Anticipate overflowing inp_flags - add inp_flags2. 532 This changes most offsets in inpcb, so checking v4 connection 533 state will require a world rebuild. 534 Bump __FreeBSD_version to 800080. 535 53620090415: 537 Add an llentry to struct route and struct route_in6. Modules 538 embedding a struct route will need to be recompiled. 539 Bump __FreeBSD_version to 800079. 540 54120090414: 542 The size of rt_metrics_lite and by extension rtentry has changed. 543 Networking administration apps will need to be recompiled. 544 The route command now supports show as an alias for get, weighting 545 of routes, sticky and nostick flags to alter the behavior of stateful 546 load balancing. 547 Bump __FreeBSD_version to 800078. 548 54920090408: 550 Do not use Giant for kbdmux(4) locking. This is wrong and 551 apparently causing more problems than it solves. This will 552 re-open the issue where interrupt handlers may race with 553 kbdmux(4) in polling mode. Typical symptoms include (but 554 not limited to) duplicated and/or missing characters when 555 low level console functions (such as gets) are used while 556 interrupts are enabled (for example geli password prompt, 557 mountroot prompt etc.). Disabling kbdmux(4) may help. 558 55920090407: 560 The size of structs vnet_net, vnet_inet and vnet_ipfw has changed; 561 kernel modules referencing any of the above need to be recompiled. 562 Bump __FreeBSD_version to 800075. 563 56420090320: 565 GEOM_PART has become the default partition slicer for storage devices, 566 replacing GEOM_MBR, GEOM_BSD, GEOM_PC98 and GEOM_GPT slicers. It 567 introduces some changes: 568 569 MSDOS/EBR: the devices created from MSDOS extended partition entries 570 (EBR) can be named differently than with GEOM_MBR and are now symlinks 571 to devices with offset-based names. fstabs may need to be modified. 572 573 BSD: the "geometry does not match label" warning is harmless in most 574 cases but it points to problems in file system misalignment with 575 disk geometry. The "c" partition is now implicit, covers the whole 576 top-level drive and cannot be (mis)used by users. 577 578 General: Kernel dumps are now not allowed to be written to devices 579 whose partition types indicate they are meant to be used for file 580 systems (or, in case of MSDOS partitions, as something else than 581 the "386BSD" type). 582 583 Most of these changes date approximately from 200812. 584 58520090319: 586 The uscanner(4) driver has been removed from the kernel. This follows 587 Linux removing theirs in 2.6 and making libusb the default interface 588 (supported by sane). 589 59020090319: 591 The multicast forwarding code has been cleaned up. netstat(1) 592 only relies on KVM now for printing bandwidth upcall meters. 593 The IPv4 and IPv6 modules are split into ip_mroute_mod and 594 ip6_mroute_mod respectively. The config(5) options for statically 595 compiling this code remain the same, i.e. 'options MROUTING'. 596 59720090315: 598 Support for the IFF_NEEDSGIANT network interface flag has been 599 removed, which means that non-MPSAFE network device drivers are no 600 longer supported. In particular, if_ar, if_sr, and network device 601 drivers from the old (legacy) USB stack can no longer be built or 602 used. 603 60420090313: 605 POSIX.1 Native Language Support (NLS) has been enabled in libc and 606 a bunch of new language catalog files have also been added. 607 This means that some common libc messages are now localized and 608 they depend on the LC_MESSAGES environmental variable. 609 61020090313: 611 The k8temp(4) driver has been renamed to amdtemp(4) since 612 support for Family 10 and Family 11 CPU families was added. 613 61420090309: 615 IGMPv3 and Source-Specific Multicast (SSM) have been merged 616 to the IPv4 stack. VIMAGE hooks are in but not yet used. 617 618 For kernel developers, the most important changes are that the 619 ip_output() and ip_input() paths no longer take the IN_MULTI_LOCK(), 620 and this lock has been downgraded to a non-recursive mutex. 621 622 Transport protocols (UDP, Raw IP) are now responsible for filtering 623 inbound multicast traffic according to group membership and source 624 filters. The imo_multicast_filter() KPI exists for this purpose. 625 Transports which do not use multicast (SCTP, TCP) already reject 626 multicast by default. Forwarding and receive performance may improve 627 as a mutex acquisition is no longer needed in the ip_input() 628 low-level input path. in_addmulti() and in_delmulti() are shimmed 629 to new KPIs which exist to support SSM in-kernel. 630 631 For application developers, it is recommended that loopback of 632 multicast datagrams be disabled for best performance, as this 633 will still cause the lock to be taken for each looped-back 634 datagram transmission. The net.inet.ip.mcast.loop sysctl may 635 be tuned to 0 to disable loopback by default; it defaults to 1 636 to preserve the existing behaviour. 637 638 For systems administrators, to obtain best performance with 639 multicast reception and multiple groups, it is always recommended 640 that a card with a suitably precise hash filter is used. Hash 641 collisions will still result in the lock being taken within the 642 transport protocol input path to check group membership. 643 644 If deploying FreeBSD in an environment with IGMP snooping switches, 645 it is recommended that the net.inet.igmp.sendlocal sysctl remain 646 enabled; this forces 224.0.0.0/24 group membership to be announced 647 via IGMP. 648 649 The size of 'struct igmpstat' has changed; netstat needs to be 650 recompiled to reflect this. 651 Bump __FreeBSD_version to 800070. 652 65320090309: 654 libusb20.so.1 is now installed as libusb.so.1 and the ports system 655 updated to use it. This requires a buildworld/installworld in order to 656 update the library and dependencies (usbconfig, etc). Its advisable to 657 rebuild all ports which uses libusb. More specific directions are given 658 in the ports collection UPDATING file. Any /etc/libmap.conf entries for 659 libusb are no longer required and can be removed. 660 66120090302: 662 A workaround is committed to allow the creation of System V shared 663 memory segment of size > 2 GB on the 64-bit architectures. 664 Due to a limitation of the existing ABI, the shm_segsz member 665 of the struct shmid_ds, returned by shmctl(IPC_STAT) call is 666 wrong for large segments. Note that limits must be explicitly 667 raised to allow such segments to be created. 668 66920090301: 670 The layout of struct ifnet has changed, requiring a rebuild of all 671 network device driver modules. 672 67320090227: 674 The /dev handling for the new USB stack has changed, a 675 buildworld/installworld is required for libusb20. 676 67720090223: 678 The new USB2 stack has now been permanently moved in and all kernel and 679 module names reverted to their previous values (eg, usb, ehci, ohci, 680 ums, ...). The old usb stack can be compiled in by prefixing the name 681 with the letter 'o', the old usb modules have been removed. 682 Updating entry 20090216 for xorg and 20090215 for libmap may still 683 apply. 684 68520090217: 686 The rc.conf(5) option if_up_delay has been renamed to 687 defaultroute_delay to better reflect its purpose. If you have 688 customized this setting in /etc/rc.conf you need to update it to 689 use the new name. 690 69120090216: 692 xorg 7.4 wants to configure its input devices via hald which does not 693 yet work with USB2. If the keyboard/mouse does not work in xorg then 694 add 695 Option "AllowEmptyInput" "off" 696 to your ServerLayout section. This will cause X to use the configured 697 kbd and mouse sections from your xorg.conf. 698 69920090215: 700 The GENERIC kernels for all architectures now default to the new USB2 701 stack. No kernel config options or code have been removed so if a 702 problem arises please report it and optionally revert to the old USB 703 stack. If you are loading USB kernel modules or have a custom kernel 704 that includes GENERIC then ensure that usb names are also changed over, 705 eg uftdi -> usb2_serial_ftdi. 706 707 Older programs linked against the ports libusb 0.1 need to be 708 redirected to the new stack's libusb20. /etc/libmap.conf can 709 be used for this: 710 # Map old usb library to new one for usb2 stack 711 libusb-0.1.so.8 libusb20.so.1 712 71320090209: 714 All USB ethernet devices now attach as interfaces under the name ueN 715 (eg. ue0). This is to provide a predictable name as vendors often 716 change usb chipsets in a product without notice. 717 71820090203: 719 The ichsmb(4) driver has been changed to require SMBus slave 720 addresses be left-justified (xxxxxxx0b) rather than right-justified. 721 All of the other SMBus controller drivers require left-justified 722 slave addresses, so this change makes all the drivers provide the 723 same interface. 724 72520090201: 726 INET6 statistics (struct ip6stat) was updated. 727 netstat(1) needs to be recompiled. 728 72920090119: 730 NTFS has been removed from GENERIC kernel on amd64 to match 731 GENERIC on i386. Should not cause any issues since mount_ntfs(8) 732 will load ntfs.ko module automatically when NTFS support is 733 actually needed, unless ntfs.ko is not installed or security 734 level prohibits loading kernel modules. If either is the case, 735 "options NTFS" has to be added into kernel config. 736 73720090115: 738 TCP Appropriate Byte Counting (RFC 3465) support added to kernel. 739 New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to 740 800061. User space tools that rely on the size of struct tcpcb in 741 tcp_var.h (e.g. sockstat) need to be recompiled. 742 74320081225: 744 ng_tty(4) module updated to match the new TTY subsystem. 745 Due to API change, user-level applications must be updated. 746 New API support added to mpd5 CVS and expected to be present 747 in next mpd5.3 release. 748 74920081219: 750 With __FreeBSD_version 800060 the makefs tool is part of 751 the base system (it was a port). 752 75320081216: 754 The afdata and ifnet locks have been changed from mutexes to 755 rwlocks, network modules will need to be re-compiled. 756 75720081214: 758 __FreeBSD_version 800059 incorporates the new arp-v2 rewrite. 759 RTF_CLONING, RTF_LLINFO and RTF_WASCLONED flags are eliminated. 760 The new code reduced struct rtentry{} by 16 bytes on 32-bit 761 architecture and 40 bytes on 64-bit architecture. The userland 762 applications "arp" and "ndp" have been updated accordingly. 763 The output from "netstat -r" shows only routing entries and 764 none of the L2 information. 765 76620081130: 767 __FreeBSD_version 800057 marks the switchover from the 768 binary ath hal to source code. Users must add the line: 769 770 options AH_SUPPORT_AR5416 771 772 to their kernel config files when specifying: 773 774 device ath_hal 775 776 The ath_hal module no longer exists; the code is now compiled 777 together with the driver in the ath module. It is now 778 possible to tailor chip support (i.e. reduce the set of chips 779 and thereby the code size); consult ath_hal(4) for details. 780 78120081121: 782 __FreeBSD_version 800054 adds memory barriers to 783 <machine/atomic.h>, new interfaces to ifnet to facilitate 784 multiple hardware transmit queues for cards that support 785 them, and a lock-less ring-buffer implementation to 786 enable drivers to more efficiently manage queueing of 787 packets. 788 78920081117: 790 A new version of ZFS (version 13) has been merged to -HEAD. 791 This version has zpool attribute "listsnapshots" off by 792 default, which means "zfs list" does not show snapshots, 793 and is the same as Solaris behavior. 794 79520081028: 796 dummynet(4) ABI has changed. ipfw(8) needs to be recompiled. 797 79820081009: 799 The uhci, ohci, ehci and slhci USB Host controller drivers have 800 been put into separate modules. If you load the usb module 801 separately through loader.conf you will need to load the 802 appropriate *hci module as well. E.g. for a UHCI-based USB 2.0 803 controller add the following to loader.conf: 804 805 uhci_load="YES" 806 ehci_load="YES" 807 80820081009: 809 The ABI used by the PMC toolset has changed. Please keep 810 userland (libpmc(3)) and the kernel module (hwpmc(4)) in 811 sync. 812 81320081009: 814 atapci kernel module now includes only generic PCI ATA 815 driver. AHCI driver moved to ataahci kernel module. 816 All vendor-specific code moved into separate kernel modules: 817 ataacard, ataacerlabs, ataadaptec, ataamd, ataati, atacenatek, 818 atacypress, atacyrix, atahighpoint, ataintel, ataite, atajmicron, 819 atamarvell, atamicron, atanational, atanetcell, atanvidia, 820 atapromise, ataserverworks, atasiliconimage, atasis, atavia 821 82220080820: 823 The TTY subsystem of the kernel has been replaced by a new 824 implementation, which provides better scalability and an 825 improved driver model. Most common drivers have been migrated to 826 the new TTY subsystem, while others have not. The following 827 drivers have not yet been ported to the new TTY layer: 828 829 PCI/ISA: 830 cy, digi, rc, rp, sio 831 832 USB: 833 ubser, ucycom 834 835 Line disciplines: 836 ng_h4, ng_tty, ppp, sl, snp 837 838 Adding these drivers to your kernel configuration file shall 839 cause compilation to fail. 840 84120080818: 842 ntpd has been upgraded to 4.2.4p5. 843 84420080801: 845 OpenSSH has been upgraded to 5.1p1. 846 847 For many years, FreeBSD's version of OpenSSH preferred DSA 848 over RSA for host and user authentication keys. With this 849 upgrade, we've switched to the vendor's default of RSA over 850 DSA. This may cause upgraded clients to warn about unknown 851 host keys even for previously known hosts. Users should 852 follow the usual procedure for verifying host keys before 853 accepting the RSA key. 854 855 This can be circumvented by setting the "HostKeyAlgorithms" 856 option to "ssh-dss,ssh-rsa" in ~/.ssh/config or on the ssh 857 command line. 858 859 Please note that the sequence of keys offered for 860 authentication has been changed as well. You may want to 861 specify IdentityFile in a different order to revert this 862 behavior. 863 86420080713: 865 The sio(4) driver has been removed from the i386 and amd64 866 kernel configuration files. This means uart(4) is now the 867 default serial port driver on those platforms as well. 868 869 To prevent collisions with the sio(4) driver, the uart(4) driver 870 uses different names for its device nodes. This means the 871 onboard serial port will now most likely be called "ttyu0" 872 instead of "ttyd0". You may need to reconfigure applications to 873 use the new device names. 874 875 When using the serial port as a boot console, be sure to update 876 /boot/device.hints and /etc/ttys before booting the new kernel. 877 If you forget to do so, you can still manually specify the hints 878 at the loader prompt: 879 880 set hint.uart.0.at="isa" 881 set hint.uart.0.port="0x3F8" 882 set hint.uart.0.flags="0x10" 883 set hint.uart.0.irq="4" 884 boot -s 885 88620080609: 887 The gpt(8) utility has been removed. Use gpart(8) to partition 888 disks instead. 889 89020080603: 891 The version that Linuxulator emulates was changed from 2.4.2 892 to 2.6.16. If you experience any problems with Linux binaries 893 please try to set sysctl compat.linux.osrelease to 2.4.2 and 894 if it fixes the problem contact emulation mailing list. 895 89620080525: 897 ISDN4BSD (I4B) was removed from the src tree. You may need to 898 update a your kernel configuration and remove relevant entries. 899 90020080509: 901 I have checked in code to support multiple routing tables. 902 See the man pages setfib(1) and setfib(2). 903 This is a hopefully backwards compatible version, 904 but to make use of it you need to compile your kernel 905 with options ROUTETABLES=2 (or more up to 16). 906 90720080420: 908 The 802.11 wireless support was redone to enable multi-bss 909 operation on devices that are capable. The underlying device 910 is no longer used directly but instead wlanX devices are 911 cloned with ifconfig. This requires changes to rc.conf files. 912 For example, change: 913 ifconfig_ath0="WPA DHCP" 914 to 915 wlans_ath0=wlan0 916 ifconfig_wlan0="WPA DHCP" 917 see rc.conf(5) for more details. In addition, mergemaster of 918 /etc/rc.d is highly recommended. Simultaneous update of userland 919 and kernel wouldn't hurt either. 920 921 As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta 922 modules were merged into the base wlan module. All references 923 to these modules (e.g. in kernel config files) must be removed. 924 92520080408: 926 psm(4) has gained write(2) support in native operation level. 927 Arbitrary commands can be written to /dev/psm%d and status can 928 be read back from it. Therefore, an application is responsible 929 for status validation and error recovery. It is a no-op in 930 other operation levels. 931 93220080312: 933 Support for KSE threading has been removed from the kernel. To 934 run legacy applications linked against KSE libmap.conf may 935 be used. The following libmap.conf may be used to ensure 936 compatibility with any prior release: 937 938 libpthread.so.1 libthr.so.1 939 libpthread.so.2 libthr.so.2 940 libkse.so.3 libthr.so.3 941 94220080301: 943 The layout of struct vmspace has changed. This affects libkvm 944 and any executables that link against libkvm and use the 945 kvm_getprocs() function. In particular, but not exclusively, 946 it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1). 947 The effects are minimal, but it's advisable to upgrade world 948 nonetheless. 949 95020080229: 951 The latest em driver no longer has support in it for the 952 82575 adapter, this is now moved to the igb driver. The 953 split was done to make new features that are incompatible 954 with older hardware easier to do. 955 95620080220: 957 The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4), 958 likewise the kernel option is now GEOM_LINUX_LVM. 959 96020080211: 961 The default NFS mount mode has changed from UDP to TCP for 962 increased reliability. If you rely on (insecurely) NFS 963 mounting across a firewall you may need to update your 964 firewall rules. 965 96620080208: 967 Belatedly note the addition of m_collapse for compacting 968 mbuf chains. 969 97020080126: 971 The fts(3) structures have been changed to use adequate 972 integer types for their members and so to be able to cope 973 with huge file trees. The old fts(3) ABI is preserved 974 through symbol versioning in libc, so third-party binaries 975 using fts(3) should still work, although they will not take 976 advantage of the extended types. At the same time, some 977 third-party software might fail to build after this change 978 due to unportable assumptions made in its source code about 979 fts(3) structure members. Such software should be fixed 980 by its vendor or, in the worst case, in the ports tree. 981 FreeBSD_version 800015 marks this change for the unlikely 982 case that a portable fix is impossible. 983 98420080123: 985 To upgrade to -current after this date, you must be running 986 FreeBSD not older than 6.0-RELEASE. Upgrading to -current 987 from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems. 988 98920071128: 990 The ADAPTIVE_GIANT kernel option has been retired because its 991 functionality is the default now. 992 99320071118: 994 The AT keyboard emulation of sunkbd(4) has been turned on 995 by default. In order to make the special symbols of the Sun 996 keyboards driven by sunkbd(4) work under X these now have 997 to be configured the same way as Sun USB keyboards driven 998 by ukbd(4) (which also does AT keyboard emulation), f.e.: 999 1000 Option "XkbLayout" "us" 1001 Option "XkbRules" "xorg" 1002 Option "XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us" 1003 100420071024: 1005 It has been decided that it is desirable to provide ABI 1006 backwards compatibility to the FreeBSD 4/5/6 versions of the 1007 PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was 1008 broken with the introduction of PCI domain support (see the 1009 20070930 entry). Unfortunately, this required the ABI of 1010 PCIOCGETCONF to be broken again in order to be able to 1011 provide backwards compatibility to the old version of that 1012 IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled 1013 again. As for prominent ports this affects neither pciutils 1014 nor xorg-server this time, the hal port needs to be rebuilt 1015 however. 1016 101720071020: 1018 The misnamed kthread_create() and friends have been renamed 1019 to kproc_create() etc. Many of the callers already 1020 used kproc_start().. 1021 I will return kthread_create() and friends in a while 1022 with implementations that actually create threads, not procs. 1023 Renaming corresponds with version 800002. 1024 102520071010: 1026 RELENG_7 branched. 1027 1028COMMON ITEMS: 1029 1030 General Notes 1031 ------------- 1032 Avoid using make -j when upgrading. While generally safe, there are 1033 sometimes problems using -j to upgrade. If your upgrade fails with 1034 -j, please try again without -j. From time to time in the past there 1035 have been problems using -j with buildworld and/or installworld. This 1036 is especially true when upgrading between "distant" versions (eg one 1037 that cross a major release boundary or several minor releases, or when 1038 several months have passed on the -current branch). 1039 1040 Sometimes, obscure build problems are the result of environment 1041 poisoning. This can happen because the make utility reads its 1042 environment when searching for values for global variables. To run 1043 your build attempts in an "environmental clean room", prefix all make 1044 commands with 'env -i '. See the env(1) manual page for more details. 1045 1046 When upgrading from one major version to another it is generally best 1047 to upgrade to the latest code in the currently installed branch first, 1048 then do an upgrade to the new branch. This is the best-tested upgrade 1049 path, and has the highest probability of being successful. Please try 1050 this approach before reporting problems with a major version upgrade. 1051 1052 ZFS notes 1053 --------- 1054 When upgrading the boot ZFS pool to a new version, always follow 1055 these two steps: 1056 1057 1.) recompile and reinstall the ZFS boot loader and boot block 1058 (this is part of "make buildworld" and "make installworld") 1059 1060 2.) update the ZFS boot block on your boot drive 1061 1062 The following example updates the ZFS boot block on the first 1063 partition (freebsd-boot) of a GPT partitioned drive ad0: 1064 "gpart bootcode -p /boot/gptzfsboot -i 1 ad0" 1065 1066 Non-boot pools do not need these updates. 1067 1068 To build a kernel 1069 ----------------- 1070 If you are updating from a prior version of FreeBSD (even one just 1071 a few days old), you should follow this procedure. It is the most 1072 failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 1073 1074 make kernel-toolchain 1075 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 1076 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 1077 1078 To test a kernel once 1079 --------------------- 1080 If you just want to boot a kernel once (because you are not sure 1081 if it works, or if you want to boot a known bad kernel to provide 1082 debugging information) run 1083 make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 1084 nextboot -k testkernel 1085 1086 To just build a kernel when you know that it won't mess you up 1087 -------------------------------------------------------------- 1088 This assumes you are already running a CURRENT system. Replace 1089 ${arch} with the architecture of your machine (e.g. "i386", 1090 "arm", "amd64", "ia64", "pc98", "sparc64", "powerpc", "mips", etc). 1091 1092 cd src/sys/${arch}/conf 1093 config KERNEL_NAME_HERE 1094 cd ../compile/KERNEL_NAME_HERE 1095 make depend 1096 make 1097 make install 1098 1099 If this fails, go to the "To build a kernel" section. 1100 1101 To rebuild everything and install it on the current system. 1102 ----------------------------------------------------------- 1103 # Note: sometimes if you are running current you gotta do more than 1104 # is listed here if you are upgrading from a really old current. 1105 1106 <make sure you have good level 0 dumps> 1107 make buildworld 1108 make kernel KERNCONF=YOUR_KERNEL_HERE 1109 [1] 1110 <reboot in single user> [3] 1111 mergemaster -p [5] 1112 make installworld 1113 make delete-old 1114 mergemaster -i [4] 1115 <reboot> 1116 1117 1118 To cross-install current onto a separate partition 1119 -------------------------------------------------- 1120 # In this approach we use a separate partition to hold 1121 # current's root, 'usr', and 'var' directories. A partition 1122 # holding "/", "/usr" and "/var" should be about 2GB in 1123 # size. 1124 1125 <make sure you have good level 0 dumps> 1126 <boot into -stable> 1127 make buildworld 1128 make buildkernel KERNCONF=YOUR_KERNEL_HERE 1129 <maybe newfs current's root partition> 1130 <mount current's root partition on directory ${CURRENT_ROOT}> 1131 make installworld DESTDIR=${CURRENT_ROOT} 1132 make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 1133 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 1134 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 1135 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 1136 <reboot into current> 1137 <do a "native" rebuild/install as described in the previous section> 1138 <maybe install compatibility libraries from ports/misc/compat*> 1139 <reboot> 1140 1141 1142 To upgrade in-place from 8.x-stable to current 1143 ---------------------------------------------- 1144 <make sure you have good level 0 dumps> 1145 make buildworld [9] 1146 make kernel KERNCONF=YOUR_KERNEL_HERE [8] 1147 [1] 1148 <reboot in single user> [3] 1149 mergemaster -p [5] 1150 make installworld 1151 make delete-old 1152 mergemaster -i [4] 1153 <reboot> 1154 1155 Make sure that you've read the UPDATING file to understand the 1156 tweaks to various things you need. At this point in the life 1157 cycle of current, things change often and you are on your own 1158 to cope. The defaults can also change, so please read ALL of 1159 the UPDATING entries. 1160 1161 Also, if you are tracking -current, you must be subscribed to 1162 freebsd-current@freebsd.org. Make sure that before you update 1163 your sources that you have read and understood all the recent 1164 messages there. If in doubt, please track -stable which has 1165 much fewer pitfalls. 1166 1167 [1] If you have third party modules, such as vmware, you 1168 should disable them at this point so they don't crash your 1169 system on reboot. 1170 1171 [3] From the bootblocks, boot -s, and then do 1172 fsck -p 1173 mount -u / 1174 mount -a 1175 cd src 1176 adjkerntz -i # if CMOS is wall time 1177 Also, when doing a major release upgrade, it is required that 1178 you boot into single user mode to do the installworld. 1179 1180 [4] Note: This step is non-optional. Failure to do this step 1181 can result in a significant reduction in the functionality of the 1182 system. Attempting to do it by hand is not recommended and those 1183 that pursue this avenue should read this file carefully, as well 1184 as the archives of freebsd-current and freebsd-hackers mailing lists 1185 for potential gotchas. The -U option is also useful to consider. 1186 See mergemaster(8) for more information. 1187 1188 [5] Usually this step is a noop. However, from time to time 1189 you may need to do this if you get unknown user in the following 1190 step. It never hurts to do it all the time. You may need to 1191 install a new mergemaster (cd src/usr.sbin/mergemaster && make 1192 install) after the buildworld before this step if you last updated 1193 from current before 20020224 or from -stable before 20020408. 1194 1195 [8] In order to have a kernel that can run the 4.x binaries needed to 1196 do an installworld, you must include the COMPAT_FREEBSD4 option in 1197 your kernel. Failure to do so may leave you with a system that is 1198 hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 is 1199 required to run the 5.x binaries on more recent kernels. And so on 1200 for COMPAT_FREEBSD6 and COMPAT_FREEBSD7. 1201 1202 Make sure that you merge any new devices from GENERIC since the 1203 last time you updated your kernel config file. 1204 1205 [9] When checking out sources, you must include the -P flag to have 1206 cvs prune empty directories. 1207 1208 If CPUTYPE is defined in your /etc/make.conf, make sure to use the 1209 "?=" instead of the "=" assignment operator, so that buildworld can 1210 override the CPUTYPE if it needs to. 1211 1212 MAKEOBJDIRPREFIX must be defined in an environment variable, and 1213 not on the command line, or in /etc/make.conf. buildworld will 1214 warn if it is improperly defined. 1215FORMAT: 1216 1217This file contains a list, in reverse chronological order, of major 1218breakages in tracking -current. Not all things will be listed here, 1219and it only starts on October 16, 2004. Updating files can found in 1220previous releases if your system is older than this. 1221 1222Copyright information: 1223 1224Copyright 1998-2009 M. Warner Losh. All Rights Reserved. 1225 1226Redistribution, publication, translation and use, with or without 1227modification, in full or in part, in any form or format of this 1228document are permitted without further permission from the author. 1229 1230THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 1231IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 1232WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1233DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 1234INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 1235(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 1236SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 1237HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 1238STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 1239IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 1240POSSIBILITY OF SUCH DAMAGE. 1241 1242Contact Warner Losh if you have any questions about your use of 1243this document. 1244 1245$FreeBSD: head/UPDATING 215166 2010-11-12 06:41:55Z lstewart $ 1246