summaryrefslogtreecommitdiff
path: root/UPDATING
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2009-09-03 17:04:42 +0000
committerWarner Losh <imp@FreeBSD.org>2009-09-03 17:04:42 +0000
commit456b5dd815b2a25e7b20ce087a62a59c3e7d06cd (patch)
treea5b68ef24c82bd7e83651c93373d387f9b412adb /UPDATING
parentb431ceaa9451d7391cebd894a5dc73a7772edadb (diff)
downloadsrc-test2-456b5dd815b2a25e7b20ce087a62a59c3e7d06cd.tar.gz
src-test2-456b5dd815b2a25e7b20ce087a62a59c3e7d06cd.zip
Time for house-cleaning:
o remove all entries before RELENG_7 was branched, as is tradition[*]. o Update examples... nobody cares about 5.x upgrades. o minor format tweaking in a few places. o update copyright (although at best I hold an editors copyright these days). o Remove giving people permission to buy me beer. I don't do enough for this document for that anymore...
Notes
Notes: svn path=/head/; revision=196789
Diffstat (limited to 'UPDATING')
-rw-r--r--UPDATING945
1 files changed, 119 insertions, 826 deletions
diff --git a/UPDATING b/UPDATING
index 893744a2652d..02a1c75696c3 100644
--- a/UPDATING
+++ b/UPDATING
@@ -1,51 +1,53 @@
Updating Information for FreeBSD current users
-This file is maintained and copyrighted by M. Warner Losh
-<imp@village.org>. See end of file for further details. For commonly
-done items, please see the COMMON ITEMS: section later in the file.
+This file is maintained and copyrighted by M. Warner Losh <imp@freebsd.org>.
+See end of file for further details. For commonly done items, please see the
+COMMON ITEMS: section later in the file. These instructions assume that you
+basically know what you are doing. If not, then please consult the FreeBSD
+handbook.
Items affecting the ports and packages system can be found in
-/usr/ports/UPDATING. Please read that file before running
-portupgrade.
+/usr/ports/UPDATING. Please read that file before running portupgrade.
NOTE TO PEOPLE WHO THINK THAT FreeBSD 9.x IS SLOW:
- FreeBSD 9.x has many debugging features turned on, in
- both the kernel and userland. These features attempt to detect
- incorrect use of system primitives, and encourage loud failure
- through extra sanity checking and fail stop semantics. They
- also substantially impact system performance. If you want to
- do performance measurement, benchmarking, and optimization,
- you'll want to turn them off. This includes various WITNESS-
- related kernel options, INVARIANTS, malloc debugging flags
- in userland, and various verbose features in the kernel. Many
- developers choose to disable these features on build machines
- to maximize performance. (To disable malloc debugging, run
+ FreeBSD 9.x has many debugging features turned on, in both the kernel
+ and userland. These features attempt to detect incorrect use of
+ system primitives, and encourage loud failure through extra sanity
+ checking and fail stop semantics. They also substantially impact
+ system performance. If you want to do performance measurement,
+ benchmarking, and optimization, you'll want to turn them off. This
+ includes various WITNESS- related kernel options, INVARIANTS, malloc
+ debugging flags in userland, and various verbose features in the
+ kernel. Many developers choose to disable these features on build
+ machines to maximize performance. (To disable malloc debugging, run
ln -s aj /etc/malloc.conf.)
20090813:
- Remove the option STOP_NMI. The default action is now to use NMI
- only for KDB via the newly introduced function stop_cpus_hard()
- and maintain stop_cpus() to just use a normal IPI_STOP on ia32
- and amd64.
+ Remove the option STOP_NMI. The default action is now to use NMI only
+ for KDB via the newly introduced function stop_cpus_hard() and
+ maintain stop_cpus() to just use a normal IPI_STOP on ia32 and amd64.
+
+20090803:
+ RELENG_8 branched.
20090719:
- Bump the shared library version numbers for all libraries that
- do not use symbol versioning as part of the 8.0-RELEASE cycle.
- Bump __FreeBSD_version to 800105.
+ Bump the shared library version numbers for all libraries that do not
+ use symbol versioning as part of the 8.0-RELEASE cycle. Bump
+ __FreeBSD_version to 800105.
20090714:
- Due to changes in the implementation of virtual network stack
- support, all network-related kernel modules must be recompiled.
- As this change breaks the ABI, bump __FreeBSD_version to 800104.
+ Due to changes in the implementation of virtual network stack support,
+ all network-related kernel modules must be recompiled. As this change
+ breaks the ABI, bump __FreeBSD_version to 800104.
20090713:
- The TOE interface to the TCP syncache has been modified to remove struct
- tcpopt (<netinet/tcp_var.h>) from the ABI of the network stack. The
- cxgb driver is the only TOE consumer affected by this change, and needs
- to be recompiled along with the kernel. As this change breaks the ABI,
- bump __FreeBSD_version to 800103.
+ The TOE interface to the TCP syncache has been modified to remove
+ struct tcpopt (<netinet/tcp_var.h>) from the ABI of the network stack.
+ The cxgb driver is the only TOE consumer affected by this change, and
+ needs to be recompiled along with the kernel. As this change breaks
+ the ABI, bump __FreeBSD_version to 800103.
-20090712:
+20090712:
Padding has been added to struct tcpcb, sackhint and tcpstat in
<netinet/tcp_var.h> to facilitate future MFCs and bug fixes whilst
maintainig the ABI. However, this change breaks the ABI, so bump
@@ -53,79 +55,75 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 9.x IS SLOW:
any of these structs (e.g. sockstat) need to be recompiled.
20090630:
- The NFS_LEGACYRPC option has been removed along with the old
- kernel RPC implementation that this option selected. Kernel
- configurations may need to be adjusted.
+ The NFS_LEGACYRPC option has been removed along with the old kernel
+ RPC implementation that this option selected. Kernel configurations
+ may need to be adjusted.
20090629:
- The network interface device nodes at /dev/net/<interface> have
- been removed. All ioctl operations can be performed the normal
- way using routing sockets. The kqueue functionality can
- generally be replaced with routing sockets.
+ The network interface device nodes at /dev/net/<interface> have been
+ removed. All ioctl operations can be performed the normal way using
+ routing sockets. The kqueue functionality can generally be replaced
+ with routing sockets.
20090628:
- The documentation from the FreeBSD Documentation Project
- (Handbook, FAQ, etc.) is now installed via packages by
- sysinstall(8) and under the /usr/local/share/doc/freebsd
- directory instead of /usr/share/doc.
+ The documentation from the FreeBSD Documentation Project (Handbook,
+ FAQ, etc.) is now installed via packages by sysinstall(8) and under
+ the /usr/local/share/doc/freebsd directory instead of /usr/share/doc.
20090624:
- The ABI of various structures related to the SYSV IPC API have
- been changed. As a result, the COMPAT_FREEBSD[456] and COMPAT_43
- kernel options now all require COMPAT_FREEBSD7.
- Bump __FreeBSD_version to 800100.
+ The ABI of various structures related to the SYSV IPC API have been
+ changed. As a result, the COMPAT_FREEBSD[456] and COMPAT_43 kernel
+ options now all require COMPAT_FREEBSD7. Bump __FreeBSD_version to
+ 800100.
20090622:
- Layout of struct vnet has changed as routing related variables
- were moved to their own Vimage module. Modules need to be
- recompiled. Bump __FreeBSD_version to 800099.
+ Layout of struct vnet has changed as routing related variables were
+ moved to their own Vimage module. Modules need to be recompiled. Bump
+ __FreeBSD_version to 800099.
20090619:
- NGROUPS_MAX and NGROUPS have been increased from 16 to 1023
- and 1024 respectively. As long as no more than 16 groups per
- process are used, no changes should be visible. When more
- than 16 groups are used, old binaries may fail if they call
- getgroups() or getgrouplist() with statically sized storage.
- Recompiling will work around this, but applications should be
- modified to use dynamically allocated storage for group arrays
- as POSIX.1-2008 does not cap an implementation's number of
- supported groups at NGROUPS_MAX+1 as previous versions did.
-
- NFS and portalfs mounts may also be affected as the list of
- groups is truncated to 16. Users of NFS who use more than 16
- groups, should take care that negative group permissions are not
- used on the exported file systems as they will not be reliable
- unless a GSSAPI based authentication method is used.
-
-20090616:
- The compiling option ADAPTIVE_LOCKMGRS has been introduced.
- This option compiles in the support for adaptive spinning for lockmgrs
- which want to enable it. The lockinit() function now accepts the
- flag LK_ADAPTIVE in order to make the lock object subject to
- adaptive spinning when both held in write and read mode.
+ NGROUPS_MAX and NGROUPS have been increased from 16 to 1023 and 1024
+ respectively. As long as no more than 16 groups per process are used,
+ no changes should be visible. When more than 16 groups are used, old
+ binaries may fail if they call getgroups() or getgrouplist() with
+ statically sized storage. Recompiling will work around this, but
+ applications should be modified to use dynamically allocated storage
+ for group arrays as POSIX.1-2008 does not cap an implementation's
+ number of supported groups at NGROUPS_MAX+1 as previous versions did.
+
+ NFS and portalfs mounts may also be affected as the list of groups is
+ truncated to 16. Users of NFS who use more than 16 groups, should
+ take care that negative group permissions are not used on the exported
+ file systems as they will not be reliable unless a GSSAPI based
+ authentication method is used.
+
+20090616:
+ The compiling option ADAPTIVE_LOCKMGRS has been introduced. This
+ option compiles in the support for adaptive spinning for lockmgrs
+ which want to enable it. The lockinit() function now accepts the flag
+ LK_ADAPTIVE in order to make the lock object subject to adaptive
+ spinning when both held in write and read mode.
20090613:
- The layout of the structure returned by IEEE80211_IOC_STA_INFO
- has changed. User applications that use this ioctl need to be
- rebuilt.
+ The layout of the structure returned by IEEE80211_IOC_STA_INFO has
+ changed. User applications that use this ioctl need to be rebuilt.
20090611:
- The layout of struct thread has changed. Kernel and modules
- need to be rebuilt.
+ The layout of struct thread has changed. Kernel and modules need to
+ be rebuilt.
20090608:
- The layout of structs ifnet, domain, protosw and vnet_net has
- changed. Kernel modules need to be rebuilt.
- Bump __FreeBSD_version to 800097.
+ The layout of structs ifnet, domain, protosw and vnet_net has changed.
+ Kernel modules need to be rebuilt. Bump __FreeBSD_version to 800097.
20090602:
window(1) has been removed from the base system. It can now be
installed from ports. The port is called misc/window.
20090601:
- The way we are storing and accessing `routing table' entries
- has changed. Programs reading the FIB, like netstat, need to
- be re-compiled.
+ The way we are storing and accessing `routing table' entries has
+ changed. Programs reading the FIB, like netstat, need to be
+ re-compiled.
20090601:
A new netisr implementation has been added for FreeBSD 8. Network
@@ -134,24 +132,24 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 9.x IS SLOW:
Bump __FreeBSD_version to 800096.
20090530:
- Remove the tunable/sysctl debug.mpsafevfs as its initial purpose
- is no more valid.
+ Remove the tunable/sysctl debug.mpsafevfs as its initial purpose is no
+ more valid.
20090530:
Add VOP_ACCESSX(9). File system modules need to be rebuilt.
Bump __FreeBSD_version to 800094.
20090529:
- Add mnt_xflag field to 'struct mount'. File system modules
- need to be rebuilt.
+ Add mnt_xflag field to 'struct mount'. File system modules need to be
+ rebuilt.
Bump __FreeBSD_version to 800093.
20090528:
The compiling option ADAPTIVE_SX has been retired while it has been
introduced the option NO_ADAPTIVE_SX which handles the reversed logic.
The KPI for sx_init_flags() changes as accepting flags:
- SX_ADAPTIVESPIN flag has been retired while the SX_NOADAPTIVE flag
- has been introduced in order to handle the reversed logic.
+ SX_ADAPTIVESPIN flag has been retired while the SX_NOADAPTIVE flag has
+ been introduced in order to handle the reversed logic.
Bump __FreeBSD_version to 800092.
20090527:
@@ -164,20 +162,18 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 9.x IS SLOW:
Bump __FreeBSD_version to 800090.
20090523:
- The newly imported zic(8) produces a new format in the
- output. Please run tzsetup(8) to install the newly created
- data to /etc/localtime.
+ The newly imported zic(8) produces a new format in the output. Please
+ run tzsetup(8) to install the newly created data to /etc/localtime.
20090520:
The sysctl tree for the usb stack has renamed from hw.usb2.* to
hw.usb.* and is now consistent again with previous releases.
20090520:
- 802.11 monitor mode support was revised and driver api's
- were changed. Drivers dependent on net80211 now support
- DLT_IEEE802_11_RADIO instead of DLT_IEEE802_11. No
- user-visible data structures were changed but applications
- that use DLT_IEEE802_11 may require changes.
+ 802.11 monitor mode support was revised and driver api's were changed.
+ Drivers dependent on net80211 now support DLT_IEEE802_11_RADIO instead
+ of DLT_IEEE802_11. No user-visible data structures were changed but
+ applications that use DLT_IEEE802_11 may require changes.
Bump __FreeBSD_version to 800088.
20090430:
@@ -768,730 +764,29 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 9.x IS SLOW:
20071010:
RELENG_7 branched.
-20071009:
- Setting WITHOUT_LIBPTHREAD now means WITHOUT_LIBKSE and
- WITHOUT_LIBTHR are set.
-
-20070930:
- The PCI code has been made aware of PCI domains. This means that
- the location strings as used by pciconf(8) etc are now in the
- following format: pci<domain>:<bus>:<device>[:<function>]. It
- also means that consumers of <sys/pciio.h> potentially need to
- be recompiled; this includes the hal and xorg-server ports.
-
-20070928:
- The caching daemon (cached) was renamed to nscd. nscd.conf
- configuration file should be used instead of cached.conf and
- nscd_enable, nscd_pidfile and nscd_flags options should be used
- instead of cached_enable, cached_pidfile and cached_flags in
- rc.conf.
-
-20070921:
- The getfacl(1) utility now prints owning user and group name
- instead of owning uid and gid in the three line comment header.
- This is the same behavior as getfacl(1) on Solaris and Linux.
-
-20070704:
- The new IPsec code is now compiled in using the IPSEC option. The
- IPSEC option now requires "device crypto" be defined in your kernel
- configuration. The FAST_IPSEC kernel option is now deprecated.
-
-20070702:
- The packet filter (pf) code has been updated to OpenBSD 4.1 Please
- note the changed syntax - keep state is now on by default. Also
- note the fact that ftp-proxy(8) has been changed from bottom up and
- has been moved from libexec to usr/sbin. Changes in the ALTQ
- handling also affect users of IPFW's ALTQ capabilities.
-
-20070701:
- Remove KAME IPsec in favor of FAST_IPSEC, which is now the
- only IPsec supported by FreeBSD. The new IPsec stack
- supports both IPv4 and IPv6. The kernel option will change
- after the code changes have settled in. For now the kernel
- option IPSEC is deprecated and FAST_IPSEC is the only option, that
- will change after some settling time.
-
-20070701:
- The wicontrol(8) utility has been removed from the base system. wi(4)
- cards should be configured using ifconfig(8), see the man page for more
- information.
-
-20070612:
- The i386/amd64 GENERIC kernel now defaults to the nfe(4) driver
- instead of the nve(4) driver. Please update your configuration
- accordingly.
-
-20070612:
- By default, /etc/rc.d/sendmail no longer rebuilds the aliases
- database if it is missing or older than the aliases file. If
- desired, set the new rc.conf option sendmail_rebuild_aliases
- to "YES" to restore that functionality.
-
-20070612:
- The IPv4 multicast socket code has been considerably modified, and
- moved to the file sys/netinet/in_mcast.c. Initial support for the
- RFC 3678 Source-Specific Multicast Socket API has been added to
- the IPv4 network stack.
-
- Strict multicast and broadcast reception is now the default for
- UDP/IPv4 sockets; the net.inet.udp.strict_mcast_mship sysctl variable
- has now been removed.
-
- The RFC 1724 hack for interface selection has been removed; the use
- of the Linux-derived ip_mreqn structure with IP_MULTICAST_IF has
- been added to replace it. Consumers such as routed will soon be
- updated to reflect this.
-
- These changes affect users who are running routed(8) or rdisc(8)
- from the FreeBSD base system on point-to-point or unnumbered
- interfaces.
-
-20070610:
- The net80211 layer has changed significantly and all wireless
- drivers that depend on it need to be recompiled. Further these
- changes require that any program that interacts with the wireless
- support in the kernel be recompiled; this includes: ifconfig,
- wpa_supplicant, hostapd, and wlanstats. Users must also, for
- the moment, kldload the wlan_scan_sta and/or wlan_scan_ap modules
- if they use modules for wireless support. These modules implement
- scanning support for station and ap modes, respectively. Failure
- to load the appropriate module before marking a wireless interface
- up will result in a message to the console and the device not
- operating properly.
-
-20070610:
- The pam_nologin(8) module ceases to provide an authentication
- function and starts providing an account management function.
- Consequent changes to /etc/pam.d should be brought in using
- mergemaster(8). Third-party files in /usr/local/etc/pam.d may
- need manual editing as follows. Locate this line (or similar):
-
- auth required pam_nologin.so no_warn
-
- and change it according to this example:
-
- account required pam_nologin.so no_warn
-
- That is, the first word needs to be changed from "auth" to
- "account". The new line can be moved to the account section
- within the file for clarity. Not updating pam.conf(5) files
- will result in nologin(5) ignored by the respective services.
-
-20070529:
- The ether_ioctl() function has been synchronized with ioctl(2)
- and ifnet.if_ioctl. Due to that, the size of one of its arguments
- has changed on 64-bit architectures. All kernel modules using
- ether_ioctl() need to be rebuilt on such architectures.
-
-20070516:
- Improved INCLUDE_CONFIG_FILE support has been introduced to the
- config(8) utility. In order to take advantage of this new
- functionality, you are expected to recompile and install
- src/usr.sbin/config. If you don't rebuild config(8), and your
- kernel configuration depends on INCLUDE_CONFIG_FILE, the kernel
- build will be broken because of a missing "kernconfstring"
- symbol.
-
-20070513:
- Symbol versioning is enabled by default. To disable it, use
- option WITHOUT_SYMVER. It is not advisable to attempt to
- disable symbol versioning once it is enabled; your installworld
- will break because a symbol version-less libc will get installed
- before the install tools. As a result, the old install tools,
- which previously had symbol dependencies to FBSD_1.0, will fail
- because the freshly installed libc will not have them.
-
- The default threading library (providing "libpthread") has been
- changed to libthr. If you wish to have libkse as your default,
- use option DEFAULT_THREAD_LIB=libkse for the buildworld.
-
-20070423:
- The ABI breakage in sendmail(8)'s libmilter has been repaired
- so it is no longer necessary to recompile mail filters (aka,
- milters). If you recompiled mail filters after the 20070408
- note, it is not necessary to recompile them again.
-
-20070417:
- The new trunk(4) driver has been renamed to lagg(4) as it better
- reflects its purpose. ifconfig will need to be recompiled.
-
-20070408:
- sendmail(8) has been updated to version 8.14.1. Mail filters
- (aka, milters) compiled against the libmilter included in the
- base operating system should be recompiled.
-
-20070302:
- Firmwares for ipw(4) and iwi(4) are now included in the base tree.
- In order to use them one must agree to the respective LICENSE in
- share/doc/legal and define legal.intel_<name>.license_ack=1 via
- loader.conf(5) or kenv(1). Make sure to deinstall the now
- deprecated modules from the respective firmware ports.
-
-20070228:
- The name resolution/mapping functions addr2ascii(3) and ascii2addr(3)
- were removed from FreeBSD's libc. These originally came from INRIA
- IPv6. Nothing in FreeBSD ever used them. They may be regarded as
- deprecated in previous releases.
- The AF_LINK support for getnameinfo(3) was merged from NetBSD to
- replace it as a more portable (and re-entrant) API.
-
-20070224:
- To support interrupt filtering a modification to the newbus API
- has occurred, ABI was broken and __FreeBSD_version was bumped
- to 700031. Please make sure that your kernel and modules are in
- sync. For more info:
- http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941
-
-20070224:
- The IPv6 multicast forwarding code may now be loaded into GENERIC
- kernels by loading the ip_mroute.ko module. This is built into the
- module unless WITHOUT_INET6 or WITHOUT_INET6_SUPPORT options are
- set; see src.conf(5) for more information.
-
-20070214:
- The output of netstat -r has changed. Without -n, we now only
- print a "network name" without the prefix length if the network
- address and mask exactly match a Class A/B/C network, and an entry
- exists in the nsswitch "networks" map.
- With -n, we print the full unabbreviated CIDR network prefix in
- the form "a.b.c.d/p". 0.0.0.0/0 is always printed as "default".
- This change is in preparation for changes such as equal-cost
- multipath, and to more generally assist operational deployment
- of FreeBSD as a modern IPv4 router.
-
-20070210:
- PIM has been turned on by default in the IPv4 multicast
- routing code. The kernel option 'PIM' has now been removed.
- PIM is now built by default if option 'MROUTING' is specified.
- It may now be loaded into GENERIC kernels by loading the
- ip_mroute.ko module.
-
-20070207:
- Support for IPIP tunnels (VIFF_TUNNEL) in IPv4 multicast routing
- has been removed. Its functionality may be achieved by explicitly
- configuring gif(4) interfaces and using the 'phyint' keyword in
- mrouted.conf.
- XORP does not support source-routed IPv4 multicast tunnels nor the
- integrated IPIP tunneling, therefore it is not affected by this
- change. The __FreeBSD_version macro has been bumped to 700030.
-
-20061221:
- Support for PCI Message Signalled Interrupts has been
- re-enabled in the bge driver, only for those chips which are
- believed to support it properly. If there are any problems,
- MSI can be disabled completely by setting the
- 'hw.pci.enable_msi' and 'hw.pci.enable_msix' tunables to 0
- in the loader.
-
-20061214:
- Support for PCI Message Signalled Interrupts has been
- disabled again in the bge driver. Many revisions of the
- hardware fail to support it properly. Support can be
- re-enabled by removing the #define of BGE_DISABLE_MSI in
- "src/sys/dev/bge/if_bge.c".
-
-20061214:
- Support for PCI Message Signalled Interrupts has been added
- to the bge driver. If there are any problems, MSI can be
- disabled completely by setting the 'hw.pci.enable_msi' and
- 'hw.pci.enable_msix' tunables to 0 in the loader.
-
-20061205:
- The removal of several facets of the experimental Threading
- system from the kernel means that the proc and thread structures
- have changed quite a bit. I suggest all kernel modules that might
- reference these structures be recompiled.. Especially the
- linux module.
-
-20061126:
- Sound infrastructure has been updated with various fixes and
- improvements. Most of the changes are pretty much transparent,
- with exceptions of followings:
- 1) All sound driver specific sysctls (hw.snd.pcm%d.*) have been
- moved to their own dev sysctl nodes, for example:
- hw.snd.pcm0.vchans -> dev.pcm.0.vchans
- 2) /dev/dspr%d.%d has been deprecated. Each channel now has its
- own chardev in the form of "dsp%d.<function>%d", where <function>
- is p = playback, r = record and v = virtual, respectively. Users
- are encouraged to use these devs instead of (old) "/dev/dsp%d.%d".
- This does not affect those who are using "/dev/dsp".
-
-20061122:
- geom(4)'s gmirror(8) class metadata structure has been
- rev'd from v3 to v4. If you update across this point and
- your metadata is converted for you, you will not be easily
- able to downgrade since the /boot/kernel.old/geom_mirror.ko
- kernel module will be unable to read the v4 metadata. You
- can resolve this by doing from the loader(8) prompt:
-
- set vfs.root.mountfrom="ufs:/dev/XXX"
-
- where XXX is the root slice of one of the disks that composed
- the mirror (i.e.: /dev/ad0s1a). You can then rebuild
- the array the same way you built it originally.
-
-20061122:
- The following binaries have been disconnected from the build:
- mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs, mount_linprocfs,
- and mount_std. The functionality of these programs has been
- moved into the mount program. For example, to mount a devfs
- filesystem, instead of using mount_devfs, use: "mount -t devfs".
- This does not affect entries in /etc/fstab, since entries in
- /etc/fstab are always processed with "mount -t fstype".
-
-20061113:
- Support for PCI Message Signalled Interrupts on i386 and amd64
- has been added to the kernel and various drivers will soon be
- updated to use MSI when it is available. If there are any problems,
- MSI can be disabled completely by setting the 'hw.pci.enable_msi'
- and 'hw.pci.enable_msix' tunables to 0 in the loader.
-
-20061110:
- The MUTEX_PROFILING option has been renamed to LOCK_PROFILING.
- The lockmgr object layout has been changed as a result of having
- a lock_object embedded in it. As a consequence all file system
- kernel modules must be re-compiled. The mutex profiling man page
- has not yet been updated to reflect this change.
-
-20061026:
- KSE in the kernel has now been made optional and turned on by
- default. Use 'nooption KSE' in your kernel config to turn it
- off. All kernel modules *must* be recompiled after this change.
- There-after, modules from a KSE kernel should be compatible with
- modules from a NOKSE kernel due to the temporary padding fields
- added to 'struct proc'.
-
-20060929:
- mrouted and its utilities have been removed from the base system.
-
-20060927:
- Some ioctl(2) command codes have changed. Full backward ABI
- compatibility is provided if the "options COMPAT_FREEBSD6" is
- present in the kernel configuration file. Make sure to add
- this option to your kernel config file, or recompile X.Org
- and the rest of ports; otherwise they may refuse to work.
-
-20060924:
- tcpslice has been removed from the base system.
-
-20060913:
- The sizes of struct tcpcb (and struct xtcpcb) have changed due to
- the rewrite of TCP syncookies. Tools like netstat, sockstat, and
- systat needs to be rebuilt.
-
-20060903:
- libpcap updated to v0.9.4 and tcpdump to v3.9.4
-
-20060816:
- The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour
- for IPFIREWALL_FORWARD is now as it was before when it was first
- committed and for years after. The behaviour is now ON.
-
-20060725:
- enigma(1)/crypt(1) utility has been changed on 64 bit architectures.
- Now it can decrypt files created from different architectures.
- Unfortunately, it is no longer able to decrypt a cipher text
- generated with an older version on 64 bit architectures.
- If you have such a file, you need old utility to decrypt it.
-
-20060709:
- The interface version of the i4b kernel part has changed. So
- after updating the kernel sources and compiling a new kernel,
- the i4b user space tools in "/usr/src/usr.sbin/i4b" must also
- be rebuilt, and vice versa.
-
-20060627:
- The XBOX kernel now defaults to the nfe(4) driver instead of
- the nve(4) driver. Please update your configuration
- accordingly.
-
-20060514:
- The i386-only lnc(4) driver for the AMD Am7900 LANCE and Am79C9xx
- PCnet family of NICs has been removed. The new le(4) driver serves
- as an equivalent but cross-platform replacement with the pcn(4)
- driver still providing performance-optimized support for the subset
- of AMD Am79C971 PCnet-FAST and greater chips as before.
-
-20060511:
- The machdep.* sysctls and the adjkerntz utility have been
- modified a bit. The new adjkerntz utility uses the new
- sysctl names and sysctlbyname() calls, so it may be impossible
- to run an old /sbin/adjkerntz utility in single-user mode
- with a new kernel. Replace the `adjkerntz -i' step before
- `make installworld' with:
-
- /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i
-
- and proceed as usual with the rest of the installworld-stage
- steps. Otherwise, you risk installing binaries with their
- timestamp set several hours in the future, especially if
- you are running with local time set to GMT+X hours.
-
-20060412:
- The ip6fw utility has been removed. The behavior provided by
- ip6fw has been in ipfw2 for a good while and the rc.d scripts
- have been updated to deal with it. There are some rules that
- might not migrate cleanly. Use rc.firewall6 as a template to
- rewrite rules.
-
-20060428:
- The puc(4) driver has been overhauled. The ebus(4) and sbus(4)
- attachments have been removed. Make sure to configure scc(4)
- on sparc64. Note also that by default puc(4) will use uart(4)
- and not sio(4) for serial ports because interrupt handling has
- been optimized for multi-port serial cards and only uart(4)
- implements the interface to support it.
-
-20060330:
- The scc(4) driver replaces puc(4) for Serial Communications
- Controllers (SCCs) like the Siemens SAB82532 and the Zilog
- Z8530. On sparc64, it is advised to add scc(4) to the kernel
- configuration to make sure that the serial ports remain
- functional.
-
-20060317:
- Most world/kernel related NO_* build options changed names.
- New knobs have common prefixes WITHOUT_*/WITH_* (modelled
- after FreeBSD ports) and should be set in /etc/src.conf
- (the src.conf(5) manpage is provided). Full backwards
- compatibility is maintained for the time being though it's
- highly recommended to start moving old options out of the
- system-wide /etc/make.conf file into the new /etc/src.conf
- while also properly renaming them. More conversions will
- likely follow. Posting to current@:
-
- http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html
-
-20060305:
- The NETSMBCRYPTO kernel option has been retired because its
- functionality is always included in NETSMB and smbfs.ko now.
-
-20060303:
- The TDFX_LINUX kernel option was retired and replaced by the
- tdfx_linux device. The latter can be loaded as the 3dfx_linux.ko
- kernel module. Loading it alone should suffice to get 3dfx support
- for Linux apps because it will pull in 3dfx.ko and linux.ko through
- its dependencies.
-
-20060204:
- The 'audit' group was added to support the new auditing functionality
- in the base system. Be sure to follow the directions for updating,
- including the requirement to run mergemaster -p.
-
-20060201:
- The kernel ABI to file system modules was changed on i386.
- Please make sure that your kernel and modules are in sync.
-
-20060118:
- This actually occured some time ago, but installing the kernel
- now also installs a bunch of symbol files for the kernel modules.
- This increases the size of /boot/kernel to about 67Mbytes. You
- will need twice this if you will eventually back this up to kernel.old
- on your next install.
- If you have a shortage of room in your root partition, you should add
- -DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes"
- to your /etc/make.conf.
-
-20060113:
- libc's malloc implementation has been replaced. This change has the
- potential to uncover application bugs that previously went unnoticed.
- See the malloc(3) manual page for more details.
-
-20060112:
- The generic netgraph(4) cookie has been changed. If you upgrade
- kernel passing this point, you also need to upgrade userland
- and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4.
-
-20060106:
- si(4)'s device files now contain the unit number.
- Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f].
-
-20060106:
- The kernel ABI was mostly destroyed due to a change in the size
- of struct lock_object which is nested in other structures such
- as mutexes which are nested in all sorts of other structures.
- Make sure your kernel and modules are in sync.
-
-20051231:
- The page coloring algorithm in the VM subsystem was converted
- from tuning with kernel options to autotuning. Please remove
- any PQ_* option except PQ_NOOPT from your kernel config.
-
-20051211:
- The net80211-related tools in the tools/tools/ath directory
- have been moved to tools/tools/net80211 and renamed with a
- "wlan" prefix. Scripts that use them should be adjusted
- accordingly.
-
-20051202:
- Scripts in the local_startup directories (as defined in
- /etc/defaults/rc.conf) that have the new rc.d semantics will
- now be run as part of the base system rcorder. If there are
- errors or problems with one of these local scripts, it could
- cause boot problems. If you encounter such problems, boot in
- single user mode, remove that script from the */rc.d directory.
- Please report the problem to the port's maintainer, and the
- freebsd-ports@freebsd.org mailing list.
-
-20051129:
- The nodev mount option was deprecated in RELENG_6 (where it
- was a no-op), and is now unsupported. If you have nodev or dev listed
- in /etc/fstab, remove it, otherwise it will result in a mount error.
-
-20051129:
- ABI between ipfw(4) and ipfw(8) has been changed. You need
- to rebuild ipfw(8) when rebuilding kernel.
-
-20051108:
- rp(4)'s device files now contain the unit number.
- Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f].
-
-20051029:
- /etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp.
- Its /etc/rc.conf.d configuration file has been `ppp' from
- the beginning, and hence there is no need to touch it.
-
-20051014:
- Now most modules get their build-time options from the kernel
- configuration file. A few modules still have fixed options
- due to their non-conformant implementation, but they will be
- corrected eventually. You may need to review the options of
- the modules in use, explicitly specify the non-default options
- in the kernel configuration file, and rebuild the kernel and
- modules afterwards.
-
-20051001:
- kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8)
- to turn polling(4) on your interfaces.
-
-20050927:
- The old bridge(4) implementation was retired. The new
- if_bridge(4) serves as a full functional replacement.
-
-20050722:
- The ai_addrlen of a struct addrinfo was changed to a socklen_t
- to conform to POSIX-2001. This change broke an ABI
- compatibility on 64 bit architecture. You have to recompile
- userland programs that use getaddrinfo(3) on 64 bit
- architecture.
-
-20050711:
- RELENG_6 branched here.
-
-20050629:
- The pccard_ifconfig rc.conf variable has been removed and a new
- variable, ifconfig_DEFAULT has been introduced. Unlike
- pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that
- do not have ifconfig_ifn entries rather than just those in
- removable_interfaces.
-
-20050616:
- Some previous versions of PAM have permitted the use of
- non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring
- to third party PAM modules in /usr/local/lib. A change has been
- made to require the use of absolute paths in order to avoid
- ambiguity and dependence on library path configuration, which may
- affect existing configurations.
-
-20050610:
- Major changes to network interface API. All drivers must be
- recompiled. Drivers not in the base system will need to be
- updated to the new APIs.
-
-20050609:
- Changes were made to kinfo_proc in sys/user.h. Please recompile
- userland, or commands like `fstat', `pkill', `ps', `top' and `w'
- will not behave correctly.
-
- The API and ABI for hwpmc(4) have changed with the addition
- of sampling support. Please recompile lib/libpmc(3) and
- usr.sbin/{pmcstat,pmccontrol}.
-
-20050606:
- The OpenBSD dhclient was imported in place of the ISC dhclient
- and the network interface configuration scripts were updated
- accordingly. If you use DHCP to configure your interfaces, you
- must now run devd. Also, DNS updating was lost so you will need
- to find a workaround if you use this feature.
-
- The '_dhcp' user was added to support the OpenBSD dhclient. Be
- sure to run mergemaster -p (like you are supposed to do every time
- anyway).
-
-20050605:
- if_bridge was added to the tree. This has changed struct ifnet.
- Please recompile userland and all network related modules.
-
-20050603:
- The n_net of a struct netent was changed to an uint32_t, and
- 1st argument of getnetbyaddr() was changed to an uint32_t, to
- conform to POSIX-2001. These changes broke an ABI
- compatibility on 64 bit architecture. With these changes,
- shlib major of libpcap was bumped. You have to recompile
- userland programs that use getnetbyaddr(3), getnetbyname(3),
- getnetent(3) and/or libpcap on 64 bit architecture.
-
-20050528:
- Kernel parsing of extra options on '#!' first lines of shell
- scripts has changed. Lines with multiple options likely will
- fail after this date. For full details, please see
- http://people.freebsd.org/~gad/Updating-20050528.txt
-
-20050503:
- The packet filter (pf) code has been updated to OpenBSD 3.7
- Please note the changed anchor syntax and the fact that
- authpf(8) now needs a mounted fdescfs(5) to function.
-
-20050415:
- The NO_MIXED_MODE kernel option has been removed from the i386
- amd64 platforms as its use has been superceded by the new local
- APIC timer code. Any kernel config files containing this option
- should be updated.
-
-20050227:
- The on-disk format of LC_CTYPE files was changed to be machine
- independent. Please make sure NOT to use NO_CLEAN buildworld
- when crossing this point. Crossing this point also requires
- recompile or reinstall of all locale depended packages.
-
-20050225:
- The ifi_epoch member of struct if_data has been changed to
- contain the uptime at which the interface was created or the
- statistics zeroed rather then the wall clock time because
- wallclock time may go backwards. This should have no impact
- unless an snmp implementation is using this value (I know of
- none at this point.)
-
-20050224:
- The acpi_perf and acpi_throttle drivers are now part of the
- acpi(4) main module. They are no longer built separately.
-
-20050223:
- The layout of struct image_params has changed. You have to
- recompile all compatibility modules (linux, svr4, etc) for use
- with the new kernel.
-
-20050223:
- The p4tcc driver has been merged into cpufreq(4). This makes
- "options CPU_ENABLE_TCC" obsolete. Please load cpufreq.ko or
- compile in "device cpufreq" to restore this functionality.
-
-20050220:
- The responsibility of recomputing the file system summary of
- a SoftUpdates-enabled dirty volume has been transferred to the
- background fsck. A rebuild of fsck(8) utility is recommended
- if you have updated the kernel.
-
- To get the old behavior (recompute file system summary at mount
- time), you can set vfs.ffs.compute_summary_at_mount=1 before
- mounting the new volume.
-
-20050206:
- The cpufreq import is complete. As part of this, the sysctls for
- acpi(4) throttling have been removed. The power_profile script
- has been updated, so you can use performance/economy_cpu_freq in
- rc.conf(5) to set AC on/offline cpu frequencies.
-
-20050206:
- NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko)
- requires recompiling libnetgraph and userland netgraph utilities.
-
-20050114:
- Support for abbreviated forms of a number of ipfw options is
- now deprecated. Warnings are printed to stderr indicating the
- correct full form when a match occurs. Some abbreviations may
- be supported at a later date based on user feedback. To be
- considered for support, abbreviations must be in use prior to
- this commit and unlikely to be confused with current key words.
-
-20041221:
- By a popular demand, a lot of NOFOO options were renamed
- to NO_FOO (see bsd.compat.mk for a full list). The old
- spellings are still supported, but will cause annoying
- warnings on stderr. Make sure you upgrade properly (see
- the COMMON ITEMS: section later in this file).
-
-20041219:
- Auto-loading of ancillary wlan modules such as wlan_wep has
- been temporarily disabled; you need to statically configure
- the modules you need into your kernel or explicitly load them
- prior to use. Specifically, if you intend to use WEP encryption
- with an 802.11 device load/configure wlan_wep; if you want to
- use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp,
- and wlan_xauth as required.
-
-20041213:
- The behaviour of ppp(8) has changed slightly. If lqr is enabled
- (``enable lqr''), older versions would revert to LCP ECHO mode on
- negotiation failure. Now, ``enable echo'' is required for this
- behaviour. The ppp version number has been bumped to 3.4.2 to
- reflect the change.
-
-20041201:
- The wlan support has been updated to split the crypto support
- into separate modules. For static WEP you must configure the
- wlan_wep module in your system or build and install the module
- in place where it can be loaded (the kernel will auto-load
- the module when a wep key is configured).
-
-20041201:
- The ath driver has been updated to split the tx rate control
- algorithm into a separate module. You need to include either
- ath_rate_onoe or ath_rate_amrr when configuring the kernel.
-
-20041116:
- Support for systems with an 80386 CPU has been removed. Please
- use FreeBSD 5.x or earlier on systems with an 80386.
-
-20041110:
- We have had a hack which would mount the root filesystem
- R/W if the device were named 'md*'. As part of the vnode
- work I'm doing I have had to remove this hack. People
- building systems which use preloaded MD root filesystems
- may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in
- their /etc/rc scripts.
-
-20041104:
- FreeBSD 5.3 shipped here.
-
-20041102:
- The size of struct tcpcb has changed again due to the removal
- of RFC1644 T/TCP. You have to recompile userland programs that
- read kmem for tcp sockets directly (netstat, sockstat, etc.)
-
-20041022:
- The size of struct tcpcb has changed. You have to recompile
- userland programs that read kmem for tcp sockets directly
- (netstat, sockstat, etc.)
-
-20041016:
- RELENG_5 branched here. For older entries, please see updating
- in the RELENG_5 branch.
-
COMMON ITEMS:
General Notes
-------------
- Avoid using make -j when upgrading. From time to time in the
- past there have been problems using -j with buildworld and/or
- installworld. This is especially true when upgrading between
- "distant" versions (eg one that cross a major release boundary
- or several minor releases, or when several months have passed
- on the -current branch).
+ Avoid using make -j when upgrading. While generally safe, there are
+ sometimes problems using -j to upgrade. If your upgrade fails with
+ -j, please try again wtihout -j. From time to time in the past there
+ have been problems using -j with buildworld and/or installworld. This
+ is especially true when upgrading between "distant" versions (eg one
+ that cross a major release boundary or several minor releases, or when
+ several months have passed on the -current branch).
Sometimes, obscure build problems are the result of environment
poisoning. This can happen because the make utility reads its
- environment when searching for values for global variables.
- To run your build attempts in an "environmental clean room",
- prefix all make commands with 'env -i '. See the env(1) manual
- page for more details.
-
- When upgrading from one major version to another it is generally
- best to upgrade to the latest code in the currently installed branch
- first, then do an upgrade to the new branch. This is the best-tested
- upgrade path, and has the highest probability of being successful.
- Please try this approach before reporting problems with a major
- version upgrade.
+ environment when searching for values for global variables. To run
+ your build attempts in an "environmental clean room", prefix all make
+ commands with 'env -i '. See the env(1) manual page for more details.
+
+ When upgrading from one major version to another it is generally best
+ to upgrade to the latest code in the currently installed branch first,
+ then do an upgrade to the new branch. This is the best-tested upgrade
+ path, and has the highest probability of being successful. Please try
+ this approach before reporting problems with a major version upgrade.
To build a kernel
-----------------
@@ -1513,9 +808,9 @@ COMMON ITEMS:
To just build a kernel when you know that it won't mess you up
--------------------------------------------------------------
- This assumes you are already running a 5.X system. Replace
+ This assumes you are already running a CURRENT system. Replace
${arch} with the architecture of your machine (e.g. "i386",
- "alpha", "amd64", "ia64", "pc98", "sparc64", etc).
+ "arm", "amd64", "ia64", "pc98", "sparc64", "powerpc", "mips", etc).
cd src/sys/${arch}/conf
config KERNEL_NAME_HERE
@@ -1567,7 +862,7 @@ COMMON ITEMS:
<reboot>
- To upgrade in-place from 5.x-stable to current
+ To upgrade in-place from 8.x-stable to current
----------------------------------------------
<make sure you have good level 0 dumps>
make buildworld [9]
@@ -1619,11 +914,12 @@ COMMON ITEMS:
install) after the buildworld before this step if you last updated
from current before 20020224 or from -stable before 20020408.
- [8] In order to have a kernel that can run the 4.x binaries
- needed to do an installworld, you must include the COMPAT_FREEBSD4
- option in your kernel. Failure to do so may leave you with a system
- that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5
- is required to run the 5.x binaries on more recent kernels.
+ [8] In order to have a kernel that can run the 4.x binaries needed to
+ do an installworld, you must include the COMPAT_FREEBSD4 option in
+ your kernel. Failure to do so may leave you with a system that is
+ hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 is
+ required to run the 5.x binaries on more recent kernels. And so on
+ for COMPAT_FREEBSD6 and COMPAT_FREEBSD7.
Make sure that you merge any new devices from GENERIC since the
last time you updated your kernel config file.
@@ -1647,7 +943,7 @@ previous releases if your system is older than this.
Copyright information:
-Copyright 1998-2005 M. Warner Losh. All Rights Reserved.
+Copyright 1998-2009 M. Warner Losh. All Rights Reserved.
Redistribution, publication, translation and use, with or without
modification, in full or in part, in any form or format of this
@@ -1665,9 +961,6 @@ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
-If you find this document useful, and you want to, you may buy the
-author a beer.
-
Contact Warner Losh if you have any questions about your use of
this document.