Home | History | Annotate | Line # | Download | only in src
UPDATING revision 1.158
      1 $NetBSD: UPDATING,v 1.158 2007/03/10 00:10:15 dbj Exp $
      2 
      3 This file (UPDATING) is intended to be a brief reference to recent
      4 changes that might cause problems in the build process, and a guide for
      5 what to do if something doesn't work.
      6 
      7 For a more detailed description of the recommended way to build NetBSD
      8 using build.sh, see the BUILDING file.
      9 
     10 Note that much of the advice in this UPDATING file was written before
     11 build.sh existed.  Nevertheless, the advice here may be useful for
     12 working around specific problems with build.sh.
     13 
     14 See also: BUILDING, build.sh, Makefile.
     15 
     16 Recent changes:
     17 ^^^^^^^^^^^^^^^
     18 
     19 20070210: 
     20         src/sys/sys/{sa.h,savar.h} were removed.
     21           find ${OBJDIR} \( -name .depend -o -name '*.d' \) -print \
     22               | xargs egrep -l '/sa.h|/savar.h' | xargs rm
     23         will allow dependencies on those files to get get rebuilt
     24 
     25 20070209:
     26         The threading model was changed when the newlock2 branch
     27         was merged to NetBSD-current.  If you boot with a new
     28         kernel (version 4.99.10), then you also need a new pthread
     29         library (/usr/lib/libpthread.so.0.7).  If you boot with
     30         an old kernel, then you need the old pthread library
     31         (/usr/lib/libpthread.so.0.6).  Provided you keep the kernel and
     32         the pthread library in sync, old threaded applications should
     33         continue to work with an old or new kernel.  Note that named(8)
     34 	is the only threaded application in the base system.
     35 
     36 20061214:
     37 	Following the move of string_to_flags() and flags_to_string()
     38 	from the bin/ls/ sources to libutil, users doing UPDATE builds
     39 	will need to do a "make cleandir" in
     40 		tools/mtree/, tools/makefs/, tools/binstall/, tools/pax/,
     41 		bin/pax/, bin/ls/, usr.sbin/mtree/, usr.sbin/makefs/,
     42 		usr.bin/xinstall/, libexec/ftpd/, rescue/, as well
     43 		as the installation images in distrib/
     44 	in order to excise stale references to the old stat_flags.h header
     45 	file in the ls sources -- stat_flags.h has been removed.
     46 
     47 20061108:
     48 	The configure script used in the src/tools/gcc compiler has been
     49 	changed to indicate that our libc has ssp support built-in and
     50 	does not depend on -lssp and -lssp-nonshared. You'll need to
     51 	make clean in src/tools/gcc first to rebuild the compiler.
     52 
     53 20061009:
     54 	The sysctl variables net.inet{,6}.tcp{,6}.newreno are no longer
     55 	available. Use net.inet{,6}.tcp{,6}.congctl.selected instead.
     56 
     57 20060814:
     58 	The vt, vidcconsole, kbd, and rpckbd drivers on acorn32 have been
     59 	withdrawn.  Use vidcvideo and pckbd instead.  See the GENERIC
     60 	kernel configuration for an example.  X servers from the last
     61 	few years should cope.
     62 
     63 20060703:
     64 	MPACPI is no more. We always configure PCI interrupts using ACPI
     65 	if we have an ACPI kernel. The option MPACPI_SCANPCI has been renamed
     66 	to ACPI_SCANPCI. Thanks to work from fvdl.
     67 
     68 20060627:
     69 	socket(2) has changed, and its system call has been versioned.
     70 	For userlands with the old version of socket(2), make sure that
     71 	your kernel has 'options COMPAT_30' set, or else 'bad system call'
     72 	errors will result.
     73 
     74 20060526:
     75 	The kernel linker scripts for i386 and xen 
     76 	(sys/arch/i386/conf/kern.ldscript*) were changed to set the
     77 	load address correctly, for the benefit of MULTIBOOT boot loaders
     78 	(like Grub). If you use a linker (ld) older than from 2006/04/17, it
     79 	will be unable to link the kernel because of a bug and ld will fail
     80 	with an error like:
     81 	    ../../../../arch/i386/conf/kern.ldscript:45 \
     82 		non constant expression for load base
     83 	You need to update at least src/gnu/dist/binutils/ld and recompile
     84 	and install the linker. If using the build.sh script, the easiest
     85 	way is with a "build.sh tools" command, with any other options
     86 	that you use normally. When using build.sh, the linker binary is
     87 	installed as ${TOOLDIR}/bin/i386--netbsdelf-ld.
     88 
     89 20060131:
     90 	the protocol between the sparc64 bootloader (ofwboot) and
     91 	the kernel was changed. Before installing a new kernel,
     92 	you need to update ofwboot. After a full build, just copy
     93 	/usr/mdec/ofwboot to /, or do a rebuild of
     94 	src/sys/arch/sparc/stand/ofwboot and install the result to /.
     95 
     96 20050917:
     97 	arch/*/conf/std.* was changed to include conf/std, which
     98 	contains MI options previously enabled by default.
     99 	If you have kernel config files which doesn't include
    100 	arch/*/conf/std.*, you need to edit them to include conf/std
    101 	to get the previous configuration.
    102 
    103 20050830:
    104 	named.conf was moved from /etc/namedb to /etc.
    105 	postinstall(8) migrates this during interactive use.
    106 	Users of MKUPDATE=yes will need to manually rectify
    107 	this in their DESTDIR.
    108 
    109 20050825:
    110 	Some data structures in sys/device.h, related to interface
    111 	attributes and locator names, were changed. config(1) was
    112 	modified to emit the new data structures.
    113 	Thus usr.bin/config must be updated (and run on the kernel
    114 	configuration file) before a new kernel can be built.
    115 
    116 20050531:
    117 	genassym.sh(8) was moved to genassym(1). You need to either build
    118 	tools first or install the version of genassym from /usr/bin before
    119 	you can build a kernel again.
    120 
    121 20050520:
    122 	Because a kernfs bug which xentools relies on was fixed,
    123 	xentools up to xentools20-2.0.3nb4 won't work with new kernel.
    124 
    125 20050417:
    126 	postinstall(8) was moved from /etc to /usr/sbin and made part
    127 	of the "base" set, to make it easier to invoke after an
    128 	upgrade.
    129 
    130 20050325:
    131 	pcppi(4) was separated in two devices, adding attimer(4).  Be sure
    132 	to add a config line for an attimer(4) device in your kernel
    133 	configuration, or you won't be able to set the pitch of the beep
    134 	with wsconsctl.  Depending on the default value for the pitch, you
    135 	might even not hear any more beep.  Also, it is advised to attach both
    136 	devices the same way (i.e., both on isa or both on acpi) or the
    137 	pcppi(4) device may fail to find the attimer(4) one.
    138 
    139 20050211:
    140 	Fixes to tools/Makefile.gnuhost may cause UPDATE=1 builds in
    141 	some of the cross tools to fail if they use configure. Some configure's
    142 	cache the environment passed in and notice the new environment is
    143 	different and abort. Doing a clean in tools/ should be enough to
    144 	make a build continue.
    145 
    146 20050109:
    147 	Since su is using pam by default now, make sure that you have
    148 	/etc/pam.d populated (postinstall will do that automatically
    149 	for you). Otherwise su will fail open (i.e. will not require
    150 	a password).
    151 
    152 20041229:
    153 	Make had a path resolution bug that manifested itself as not
    154 	being able to install openpam.3. This bug has been fixed, but
    155 	you might need to rebuild make manually first to get through
    156 	the build.
    157 
    158 20041201:
    159 	Userland programs have been changed to use /dev/bpf instead of
    160 	/dev/bpfX. You need to create that device by installing a new
    161 	MAKEDEV and running it, or mv /dev/bpf0 /dev/bpf && rm /dev/bpf[0-9]*
    162 
    163 20041006:
    164 
    165 	A bug was introduced into /bin/sh (var.c rev 1.35) which causes
    166 	variables to not export correctly to subshells in all cases. This
    167 	will cause builds to break if that version of /bin/sh is installed
    168 	on the system. The proper version of /bin/sh can be verified with:
    169 
    170         ident /bin/sh | grep var
    171 
    172 	Any /bin/sh w. version 1.35 will not work and needs to be updated
    173 	before attempting a build.
    174 	
    175 20041001:
    176 	The ipfilter kernel sources moved from sys/netinet to
    177 	dist/sys/ipf/netinet. Due to the move some Makefile
    178 	dependencies are now dangling requiring a make cleandir
    179 	before they work again (kdump, ktruss, rescue, ipf, and
    180 	ftp-proxy are the victims).
    181 
    182 20040715:
    183 	The rc.d/sendmail script now uses a heuristic to determine
    184 	if sendmail should be started at boot time.  It checks the
    185 	contents of /etc/mailer.conf, /etc/mail/submit.cf, and the
    186 	owner and mode of the sendmail binary to see if any changes
    187 	to the mail infrastructure have been made.  If no changes
    188 	are detected, it will start an SMTP listener.
    189 
    190 	Setting sendmail=NO in /etc/rc.conf will override this.
    191 
    192 	If you are only using sendmail by default and only for
    193 	local delivery, it is important that you also update your
    194 	sendmail.cf so that the SMTP listener only listens on the
    195 	loopback interface.
    196 
    197 20040715:
    198 	The method by which athhal-elf.o gets pulled into i386
    199 	kernel builds has been changed again.  The latest version
    200 	of bsd.files.mk is no longer required.
    201 
    202 20040621:
    203 	Due to the recent rototill of tools/compat it's crucial one starts
    204 	from a clean objdir under tools/*.
    205 
    206 	This is mostly due to generated files (yacc and lex sources) needing
    207 	to be generated with new rules from bsd.hostprog.mk.
    208 
    209 	The safest course is to rm -rf all objects under tools before building.
    210 
    211 20040516:
    212 	The end-user modifiable X11 configuration has been moved
    213 	from /usr/X11R6/lib/X11/<dir> to /etc/X11/<dir>.
    214 	Ensure that src and xsrc is up to date, and run
    215 	"make cleandir" in src/x11 before your next build.
    216 
    217 	postinstall currently doesn't migrate the files from
    218 	/usr/X11R6/lib/X11/* to /etc/X11/* although it does
    219 	detect that this needs to occur, so you'll have to
    220 	manually move these files yourself.
    221 
    222 20040426:
    223 	Support for the original dynamic sysctl node structure has
    224 	been removed in favor of the newer layout.  This affects
    225 	consumers of the create and delete interface, as well as
    226 	the dynamic discovery mechanism.  This is believed only to
    227 	be the sysctl(8) binary itself, at this point in time, so
    228 	the only effect of this should be that a sysctl binary
    229 	built from sources dated between 2003/12/04 and 2004/03/24
    230 	will not work on a kernel built from sources dated after
    231 	2004/04/25.  If you need a new sysctl binary but build.sh
    232 	does not work, make sure that your revision of
    233 	src/sys/sys/sysctl.h is 1.112 (or later), and then the
    234 	do the following:
    235 
    236 	cd /usr/src (or wherever your source tree is)
    237 	make USETOOLS=no includes
    238 	cd lib/libc
    239 	make USETOOLS=no dependall install
    240 	cd ../../sbin/sysctl
    241 	make USETOOLS=no dependall install
    242 
    243 	If you are using older sysctl binary, GNU autoconf would fail to
    244 	identify your machine architecture, and tries to build binary for
    245 	"unknown-unknown-netbsd20F" or something like that.  if that happens,
    246 	make sure to follow the above steps.
    247 
    248 20040425:
    249 	The ffs superblock issues listed below under 20040109 and 20030402
    250 	are now automatically addressed by the /etc/rc.d/fixsb script or by
    251 	sysinst when it checks a a filesystem. The manual fsck_ffs -b16 -c4
    252 	invocation mentioned below will continue to work and is now
    253 	automated by those scripts.  Note that under certain circumstances,
    254 	affected filesystems upgraded to a -current kernel first before
    255 	upgrading their userland with the fixsb and fsck_ffs fixes may
    256 	encounter a 'freeing free inode' panic when writing to the affected
    257 	filesystem, so it is a good idea to repair the filesystem as soon as
    258 	possible.  For more details on the fixsb script, see pr install/25138.
    259 
    260 20040418:
    261 	statfs(2) and friends have been replaced with statvfs(2). Before
    262 	installing a newly build userland make sure that you are running
    263 	a newly built kernel with COMPAT_20 set. In addition your libc
    264 	build might not work (undefined SYS_statfs symbol) because make
    265 	clean does not know how to remove files it does not know about
    266 	anymore. Manually remove all generated .S sources and objects
    267 	from the libc build directory.
    268 
    269 20040326:
    270 	The method by which athhal-elf.o gets pulled into i386 kernel builds
    271 	has been changed. The file is now stored as a uuencoded file in CVS
    272 	and the generated Makefile will use the new .uue rules from bsd.file.mk
    273 	to build it.
    274 
    275 	This means you must have the latest bsd.files.mk installed when
    276 	building a kernel without USETOOLS=yes.
    277 
    278 20040318:
    279 	A bug in the cgd(4) blowfish code was corrected, without
    280 	provision of backwards compatibility, after several public
    281 	notices over several months. Users of cgd with blowfish cipher
    282 	ONLY must dump their data before updating their kernels, and
    283 	recreate cgd's and restore data using the new kernel. See
    284 	(recent message to current-users, URL when mail-index has updated)
    285 
    286 20040313:
    287 	On acorn32, the opms and qms drivers have been withdrawn, and
    288 	the old wsqms driver is now called qms.  Kernel config files
    289 	will need updating.  See the ones in sys/arch/acorn32/conf
    290 	for examples.
    291 
    292 20040125:
    293 	On acorn32, the beep and sysbeep devices are no longer
    294 	needed, and will need to be deleted from kernel configuration
    295 	files.
    296 
    297 20040109:
    298 	Compatibility for old ffs superblock layouts has been
    299 	added, and the restrictive fsck checks have been reenabled
    300 	when using those layouts.  If you have been using -current
    301 	since 20030402, you may find that fsck again signals fatal
    302 	superblock mismatches.  To repair, make sure you have
    303 	an updated fsck_ffs and then you can use fsck_ffs -b 16 -c 4
    304 	to complete the filesystem upgrade.  A message has
    305 	been added to the kernel which should detect this problem.
    306 	See the following discussion for more information:
    307 	http://mail-index.NetBSD.org/current-users/2004/01/11/0022.html
    308 
    309 20031203:
    310 	New binutils builds may fail due to old dependencies.
    311 	It's necessary to "make cleandir" to ensure that
    312 	the dependencies will be rebuilt correctly.
    313 
    314 20031111:
    315 	A newer mkdep is needed.  Error noting that is
    316 		cc: Ambiguous abbreviation --
    317 
    318 20031008:
    319 	/usr/include/sys/disklabel_mbr.h was removed.
    320 	It's necessary to "make cleandir" to ensure that
    321 	the dependencies will be rebuilt correctly.
    322 
    323 20031007:
    324 	A sign extension bug was fixed which set all the high bits
    325 	of our newly expanded ffs fs_flags.  This should only
    326 	affect users who installed or upgraded in September of 2003.
    327 	A small utility program was posted to tech-kern which
    328 	should fix this problem, and a warning message was added
    329 	to the kernel which should discover and warn about it.  See
    330 	http://mail-index.NetBSD.org/tech-kern/2003/10/07/0005.html
    331 
    332 20030906:
    333 	With the addition of siginfo support the old signal trampoline
    334 	code has been deprecated to COMPAT_16. Make sure that your running
    335 	kernel has COMPAT_16 enabled before building userland.
    336 
    337 20030801:
    338 	With the new openssl, there is some header and library shuffling.
    339 	rm -f /usr/include/des.h /usr/include/kerberosIV/* /lib/libdes* \
    340 	/usr/lib/libdes* before building.
    341 
    342 20030703:
    343 	Texinfo was updated to 4.6.  To avoid failures when trying to
    344 	build the included texinfo files, do:
    345 
    346 	cd src/gnu/usr.bin/texinfo
    347 	make MKINFO=no dependall install
    348 
    349 20030630:
    350 	Groff was updated to 1.19; it's probably necessary to do
    351 		cd share/mk && make install
    352 		cd src/gnu/usr.bin/groff
    353 		make MKMAN=no dependall install
    354 	(untested).
    355 
    356 20030516:
    357 	Due to bugs in the export handling code, invalid export lines
    358 	were accepted before and caused the kernel to panic when
    359 	mountd got restarted because it freed memory that had already
    360 	been freed. This has been fixed and the kernel checks
    361 	export addresses very strictly. If you upgrade your kernel,
    362 	make sure you also upgrade mountd, because if your export
    363 	file contains lines with an old inet4 address syntax (i.e.
    364 	a.b.c or a.b or a), they will get rejected by the new kernel.
    365 
    366 20030402:
    367 	The superblock layout for FFS was changed.  If you have 1.6
    368 	fsck binaries, they will signal a fatal superblock mismatch
    369 	with the first alternate, because they compare too many
    370 	fields (even ones that aren't useful).  If possible, upgrade
    371 	your fsck_ffs binary before using a new kernel.
    372 	None of this signals actual filesystem damage.
    373 
    374 20030324:
    375 	sendmail version 8.12.8 was imported.  Since sendmail is
    376 	now setgid to the smmsp group, and runs in "collection"
    377 	mode for most common activities, there is a new config
    378 	file called submit.cf that needs to live in /etc/mail.
    379 	The generic submit.cf sample in /usr/share/sendmail/cf
    380 	is named netbsd-msp.cf.  Upgrading your regular sendmail
    381 	configuration file is also strongly advised.
    382 
    383 	See the section named "MESSAGE SUBMISSION PROGRAM" in
    384 	the updated /usr/share/sendmail/README file for more
    385 	information.
    386 
    387 20030117:
    388 	Texinfo was updated to 4.3.  To avoid failures when trying to
    389 	build the included texinfo files, do:
    390 
    391 	cd src/gnu/usr.bin/texinfo
    392 	make MKINFO=no dependall install
    393 
    394 20021223:
    395 	The METALOG format changed slightly, to remove the leading
    396 	"${DESTDIR}" from path names.
    397 	This only affects people building with UNPRIVED.
    398 	For complete safety, remove the DESTDIR entirely and
    399 	update tools/mtree, before running make build.
    400 
    401 20021219:
    402 	CVS repository layout was changed.  See the following for details
    403 	if you are using (anonymous) cvs to update your tree.
    404 
    405 	http://mail-index.NetBSD.org/netbsd-announce/2002/12/19/0000.html
    406 
    407 20021219:
    408 	install(1) had a '-N dbdir' option added, to specify an
    409 	alternate location to look up users & groups (instead
    410 	of the host system passwd(5) and group(5) databases).
    411 
    412 	The build system was modified to take advantage of
    413 	this option (using ${NETBSDSRCDIR}/etc), so if you
    414 	use USETOOLS==no, you may have to rebuild and
    415 	reinstall usr.bin/xinstall first.
    416 
    417 20021130:
    418 	fparseln(3) moved from libutil to libc.
    419 	If building to DESTDIR=/, reinstall the includes
    420 	and rebuild libc:
    421 		make includes
    422 		make do-lib-libc
    423 	If using build.sh, "cd tools/compat && make clean"
    424 	before rebuilding the tools.
    425 
    426 20021126:
    427 	The mk.conf(5) variable SYS_INCLUDE has been deprecated,
    428 	including the optional "SYS_INCLUDE=symlinks" support.
    429 	All header files, including <sys/*.h> are copied into
    430 	/usr/include.
    431 
    432 20021121:
    433 	The C run-time support files crtbegin.o and crtend.o
    434 	(and their companions crtbeginS.o and crtendS.o) were
    435 	split up, with new crti.o and crtn.o files resulting.
    436 	This means that libtool needs to be rebuilt once the
    437 	new libraries are installed.  The process of rebuilding
    438 	libtool will cause it to automatically notice the new
    439 	required files, but it *must* be rebuilt in order to
    440 	do this.
    441 
    442 	An out-of-date libtool will result in shared libraries
    443 	which lack _init() and _fini() routines, which means that
    444 	their global constructors/destructors will not be invoked.
    445 
    446 20021121:
    447 	A bug related to how ARM ELF objects were tagged has been
    448 	corrected.
    449 
    450 	NetBSD ARM ELF uses the soft-VFP floating point model by
    451 	default.  However, the assembler lacked support for marking
    452 	objects as using the VFP floating point format, and the
    453 	compiler was not properly passing the flag indicating "soft-VFP"
    454 	to the assembler.
    455 
    456 	Unfortunately, this means that the linker will now consider
    457 	old (i.e. not marked "softvfp") NetBSD ARM ELF objects to be
    458 	incompatible with new (properly marked) objects.
    459 
    460 	The problem will only manifest itself if you attempt to compile
    461 	a new program using the fixed toolchain, and link that program
    462 	against old libraries which do not have the proper "softvfp"
    463 	markings.  ALL OF YOUR EXISTING BINARIES AND SHARED LIBRARIES
    464 	WILL CONTINUE TO WORK PROPERLY.
    465 
    466 	The only work-around for the problem is to recompile all of
    467 	the libraries on the system.  The easiest way to do this for
    468 	system libraries is to install a binary snapshot; they are
    469 	generally available on releng.NetBSD.org.  Any packages you
    470 	have installed which supply libraries will have to be recompiled
    471 	if you wish to link new programs against those libraries.
    472 
    473 	If you have questions about this matter, please contact
    474 	port-arm (a] NetBSD.org.
    475 
    476 20021011:
    477 	Systrace has been improved to support privilege elevation.
    478 	Updating the kernel requires the userland part of systrace
    479 	to be rebuilt.
    480 
    481 20021010:
    482 	The config(8) grammar was changed to allow options to register
    483 	dependencies on attributes, as well as other options.  Users
    484 	must update and reinstall usr.sbin/config before building a new
    485 	kernel.
    486 
    487 20021009:
    488 	A new attribute dependency syntax was introduced to config(8),
    489 	which is now used by the SCSI configuration description.  Users
    490 	must update and reinstall usr.sbin/config before building a new
    491 	kernel.
    492 
    493 20021003:
    494 	Several changes have been made to the autoconfiguration
    495 	framework.  Users must update and reinstall usr.sbin/config
    496 	before building a new kernel.
    497 
    498 20021001:
    499 	The i386mp branch has been merged.  To compile a kernel, users
    500 	will need to add the option 'cpu* at mainbus?' to their configuration
    501 	file.  Multiprocessor kernels will need
    502 	ioapic*		at mainbus? apid ?
    503 	options		MULTIPROCESSOR
    504 	options		COM_MPLOCK
    505 
    506 20020922:
    507 	MKDYNAMICROOT=yes enabled by default, which means that
    508 	certain shared libraries are installed into /lib, the shared
    509 	linker is installed into /libexec, and all programs in /bin
    510 	and /sbin are dynamically linked.
    511 	If you do not use "make build", you should ensure that
    512 	you have the libraries and shared linker in the new locations,
    513 	with:
    514 		make do-lib-csu do-lib-libc do-lib do-gnu-lib do-ld.elf_so
    515 
    516 20020917:
    517 	USE_NEW_TOOLCHAIN has been replaced with:
    518 	    -	TOOLCHAIN_MISSING -- set to "yes" on platforms for which
    519 		there is no working in-tree toolchain (hppa, ns32k, sh5,
    520 		x86_64).
    521 	    -	EXTERNAL_TOOLCHAIN -- if defined by the user, points to the
    522 		root of an external toolchain (e.g. /usr/local/gnu).  This
    523 		enables the cross-build framework even for TOOLCHAIN_MISSING
    524 		platforms.
    525 
    526 20020906:
    527 	gehenna-devsw has been merged into the trunk. Need to update and
    528 	reinstall usr.sbin/config before building the kernel.
    529 
    530 20020822:
    531 	Crunched rescue tools (contents of /bin and /sbin, plus others)
    532 	are now provided in /rescue.
    533 
    534 	To ensure that these are built statically linked (no matter
    535 	what the setting of LDSTATIC is), use a crunchgen(1) built
    536 	from sources newer than 20020820 (see the next entry).
    537 
    538 20020820:
    539 	crunchgen(1) changed to ensure that the generated program
    540 	is statically linked.
    541 
    542 	Solution: update and reinstall usr.bin/crunch
    543 
    544 20020605:
    545 	smmsp user/group has been added for sendmail.
    546 
    547 	Add the following into /etc/group:
    548 
    549 	smmsp:*:17:
    550 
    551 	and the following to /etc/master.passwd (via vipw):
    552 
    553 	smmsp:*:17:17::0:0:Sendmail Message Submission Program:/nonexistent:/sbin/nologin
    554 
    555 20020515:
    556 	sshd user/group has been added.  Need to hand add this in, or sshd
    557 	will not let you log in (with default, or UsePrivilegeSeparation=yes)
    558 
    559 	Add the following into /etc/group:
    560 
    561 	sshd:*:16:
    562 
    563 	and the following to /etc/master.passwd (via vipw):
    564 
    565 	sshd:*:16:16::0:0:& pseudo-user:/var/chroot/sshd:/sbin/nologin
    566 	
    567 	Also /var/chroot/sshd directory needs to be present (digged as part of
    568 	the build process).
    569 
    570 20020426:
    571 	NBUILDJOBS obsoleted in favor of just using -j.
    572 
    573 20020426:
    574 	etc/postinstall added, which performs various checks for 
    575 	configuration file updates and changes, and can fix most of
    576 	the problems identified.
    577 	This should make it much easier to upgrade a system's
    578 	configuration from earlier systems (as far back as NetBSD 1.5).
    579 
    580 20020320:
    581 	<bsd.lib.mk> needs a new install(1) for its "-a cmd" support.
    582 	Build and install at usr.bin/xinstall before the build.
    583 
    584 20020319:
    585 	Raw IPv6 socket now makes strict checking for sa_family and sa_len
    586 	on send(2) operation.  Be sure to have sbin/rtsol and usr.sbin/rtsold
    587 	newer than November 2001 when you upgrade the kernel.
    588 
    589 20020311:
    590 	ssh configuration files were moved from /etc to /etc/ssh.  Beware
    591 	if you restart your machine from remote.  Note that sshd.conf needs
    592 	to be changed (due to the use of "/etc" inside).
    593 
    594 20020223:
    595 	Users of the VAX port will need to rebuild and install gas
    596 	so it deal with the now present register prefix used in all
    597 	the VAX assembly files.
    598 
    599 20020118:
    600 	ntpd user/group has been added.  Need to hand add this in or builds
    601 	will break as mtree aborts early.
    602 
    603 	Add the following into /etc/group:
    604 
    605 	ntpd:*:15:
    606 
    607 	and the following to /etc/master.passwd (via vipw):
    608 
    609 	ntpd:*:15:15::0:0:Ntpd pseudo-user:/var/chroot/ntpd:/sbin/nologin
    610 
    611 20011207:
    612 	If you're attempting to build a snapshot on sparc64 and are getting
    613 	reloc errors from the toolchain groff binary this means your native
    614 	toolchain has some broken C++ bits.
    615 
    616 	To fix:
    617 
    618 	Build a new toolchain (i.e. build.sh -t)
    619 	Use the new toolchain to build and install natively (i.e. /usr/lib)
    620 
    621 	gnu/lib/libgcc
    622 	gnu/lib/libstdc++
    623 
    624 	After this a snapshot will be able to be built.
    625 
    626 20011201:
    627 	In order for a sparc64 build to work you must have a working awk. If
    628 	you've built and installed a system with the new toolchain up to this
    629 	point you do not have a working awk as its ability to do floating
    630 	point is broken. 
    631 
    632 	To build:
    633 
    634 	remake and install gnu/lib/libgcc
    635 	remake and install gnu/usr.bin/gawk into /usr/bin (make sure it links
    636 	against the new libgcc.a)
    637 
    638 20011128:
    639 	Kernel config information was changed to use defflag in
    640 	the various "files" files.  Bug fixes to config(8) are
    641 	required in order for this to work properly.  Make sure
    642 	to build and install in usr.sbin/config before attempting
    643 	to build a new kernel.
    644 
    645 20011030:
    646 	libc/locale/wcstod.c now needs new lint(1). Update lint(1)
    647 	before building libc.
    648 
    649 20011029:
    650 	The new document BUILDING.mdoc (view with nroff | more, or
    651 	see pre-generated .txt and .html versions) describes the build
    652 	procedure in great detail.  BUILDING, and the USE_NEW_TOOLCHAIN
    653 	build process, are intended in the long run to replace this
    654 	manual update log.
    655 
    656 	Users building a USE_NEW_TOOLCHAIN system should read the
    657 	BUILDING document for caveats.  Generally, BUILDING supersedes
    658 	UPDATING for these systems, as tool updating is taken care of
    659 	by the new build system.
    660 
    661 20011028:
    662 	src/etc/Makefile now needs install to be able to handle
    663 	symlinks that point to nowhere. A bug in install that
    664 	prevented this was corrected.
    665 
    666 	Solution: update and reinstall usr.bin/xinstall
    667 	Better Solution: Use the new toolchain and it will just work
    668 	for you.
    669 
    670 20011006:
    671 	/etc/mtree/NetBSD.dist has been updated to take advantage of
    672 	absolute path support added to mtree(8). Older mtree(8)s don't
    673 	understand the format.
    674 
    675 	Solution: update and reinstall usr.sbin/mtree
    676 
    677 20011004:
    678 	Crunchgen has been updated to work via reach-over makefiles. Updating
    679 	is suggested before running a snapshot build
    680 
    681 20010915:
    682 	The new "ubcperf" code committed by Chuck Silvers removed
    683 	a header file, uvm/uvm_vnode.h.  There may be stale .depend
    684 	files that still reference this file.
    685 
    686 	Solution: "make cleandir && make dependall" in affected
    687 	directories.
    688 
    689 20010803:
    690 	grep.info is now built from grep.texi using makeinfo.  Since it
    691 	requires makeinfo v4.0, you need to install new texinfo before
    692 	building gnu/usr.bin/grep.  To install new texinfo, please follow
    693 	the instruction described in 20010726 entry.
    694 
    695 20010803: 
    696 	(i386 only): i386 kernel now uses new instructions like
    697 	`fxsave' which old gas doesn't understand.  To build the
    698 	kernel successfully, you need to build and install a new toolchain, 
    699 	(i.e., build.sh -t) or 	(temporarily) comment out "options I686_CPU" 
    700 	from your kernel configuration until you rebuild your userland.
    701 	See 20011029 above and BUILDING file in this directory for more information.
    702 	[updated 20020630 since i386 gas moved when USE_NEW_TOOLCHAIN enabled]
    703 
    704 20010731:
    705 	Bootloader update on ELF platforms.  DDB in kernels from before
    706 	this will be unable to read symbol tables provided by newer
    707 	bootloaders.
    708 
    709 20010726:
    710 	Texinfo was updated to 4.0.  To avoid failures when trying to
    711 	build the included texinfo files, do:
    712 
    713 	cd src/gnu/usr.bin/texinfo
    714 	make MKINFO=no dependall install
    715 
    716 20010718:
    717 	Enabled correct .init/.fini processing in crt0.  The way this
    718 	was done was to change a -I directive to cc(1), which means
    719 	make(1) will have a stale dependency (it will be checking the
    720 	timestamp on the wrong "dot_init.h").
    721 
    722 	The symptom you will see is that new programs die with SIGSEGV
    723 	if you have a stale dependency.
    724 
    725 	Solution: "make cleandir" in both lib/csu and libexec/ld.elf_so
    726 	before starting your build.
    727 
    728 20010628:
    729 	A construct was added to uvm_page.h that uncovered a bug
    730 	in lint(1).  If you get a warning/error about a non-portable
    731 	bitfield, update your lint(1) before proceeding.
    732 
    733 20010226:
    734 	Added named user/group to system. Need to hand add this in or builds
    735 	will break as mtree aborts early.
    736 
    737 	To work around add by hand:
    738 
    739 	named:*:14:
    740 
    741 	to /etc/group and add:
    742 
    743 	named:*:14:14::0:0:Named pseudo-user:/var/named:/sbin/nologin
    744 
    745 	to master.passwd (use vipw for instance if doing by hand).
    746 
    747 	Now a make build should progress.
    748 
    749 20010219:
    750 	get/setprogname() added. Any hostprogs that may use this will need
    751 	to be bootstrapped manually until the host system is current.
    752 
    753 	Known problems: sys/arch/macppc/stand/fixcoff
    754 			usr.sbin/config (adding -DMAKE_BOOTSTRAP to
    755 			  CFLAGS and rebuilding should work)
    756 			usr.sbin/mdsetimage - Build a static copy if
    757 			  building a snapshot before fully bootstrapped.
    758 
    759 20010204:
    760 	prepare the code to compile with stricter gcc flags. in
    761 	particular start eliminating redundant declarations. Yacc
    762 	needs to be installed before make build.
    763 
    764 20010114:
    765 	introduce .if commands(target) in make(1). You need to
    766 	bring everything up-to-date first, then without installing
    767 	anything make and install in usr.bin/make, then proceed
    768 	with make build.
    769 
    770 20010101:
    771 	bsd.subdir.mk committed 20001230 had a bug which caused
    772 	afterinstall targets to run too soon; update again.
    773 
    774 20001230:
    775 	New share/mk files needed to support .WAIT in SUBDIR variables.
    776 	If you get make errors, 
    777 		(cd share/mk; make install)
    778 	Also, PRINTOBJDIR has changed and is now used more heavily.
    779 
    780 20001019:
    781 	The `ca' device driver has been replaced by `ld'; although the
    782 	major and minor numbers haven't changed, you should update your /dev
    783 	directory.
    784 
    785 20000929:
    786 	The following make directives are obsoleted.
    787 	MKCRYPTO_RSA NOCRYPTO_RSA NOCRYPTO_RC5 NOCRYPTO_IDEA 
    788 	By default, RSA is built into libcrypto.  IDEA and RC5 will not be
    789 	built into libcrypto.  By using MKCRYPTO_{RC5,IDEA}, you can build
    790 	additional library libcrypto_{idea,rc5}.
    791 
    792 
    793 Hints for a more successful build:
    794 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    795     Use build.sh, but do not use its "expert mode":
    796 	This will automatically build the tools in the
    797 	   correct order, and it will keep the tools and the
    798 	   new build products from interfering with the running
    799 	   system.  This will allow you to ignore most of the
    800 	   other advice in this file.
    801     Build a new kernel first:
    802 	This makes sure that any new system calls or features
    803 	   expected by the new userland will be present.  This
    804 	   helps to avoid critical errors when upgrading.
    805     Use object directories:
    806 	This helps to keep stale object
    807 	   files from polluting the build if a Makefile "forgets"
    808 	   about one.  It also makes it easier to clean up after
    809 	   a build.  It's also necessary if you want to use the
    810 	   same source tree for multiple machines.
    811 	   To use object directories with build.sh:
    812 	    a) invoke build.sh with the "-M" or "-O" options.
    813 	   To use object directories without using build.sh:
    814 	    a) cd /usr/src ; make cleandir
    815 	    b) Add "OBJMACHINE=yes" to /etc/mk.conf
    816 	    c) Add "MKOBJDIRS=yes" to /etc/mk.conf
    817 	    d) cd /usr/src ; make build
    818 	   Note that running "make obj" in a directory will create
    819 	   in obj.$MACHINE directory.
    820     Build to a DESTDIR:
    821 	This helps to keep old installed files (especially libraries)
    822 	   from interfering with the new build.
    823 	   To build to a DESTDIR with build.sh, use the "-D" option.
    824 	   To build to a DESTDIR without using build.sh, set the DESTDIR
    825 	   environment variable before running make build.  It should be
    826 	   set to the pathname of an initially empty directory.
    827 	   Problems: if you do not use build.sh, you might need to
    828 		update critical utilities without using DESTDIR since
    829 		nothing is executed from what is installed in DESTDIR.
    830 		(See critical utils, below.)
    831     Build often:
    832 	This keeps critical utilities current enough to not choke
    833 	on any other part of the source tree that depends on up to
    834 	date functionality.  If you use build.sh, you should not have
    835 	this problem.
    836  
    837 What to do if things don't work:
    838 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    839 When things don't work there is usually a few things that commonly
    840 should be done.
    841     1)	make includes
    842 	This should be done automatically by make build.
    843     2)  cd share/mk && make install
    844 	Again, automatically done by make build.
    845 
    846 Failsafe rebuild of a small part of the tree:
    847 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    848 To make sure you rebuild something correctly you want to do
    849 something like the following:
    850     1)  Make sure the includes and .mk files are up to date.
    851     2)  Make sure any program used to build the particular
    852 	utility is up to date.  (yacc, lex, etc...)
    853     3)  cd ...path/to/util...
    854 	make cleandir
    855 	rm ...all obj directories...
    856 	make cleandir			# yes, again
    857 	make obj
    858 	make depend && make
    859 
    860 Failsafe rebuild of the entire tree:
    861 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    862 If you really want to make sure the source tree is clean and
    863 ready for a build try the following.  Note that sourcing /etc/mk.conf
    864 (a make(1) Makefile) in this manner is not right, and will not work
    865 for anyone who uses any make(1) features in /etc/mk.conf.
    866 
    867 ---cut here---
    868 #!/bin/sh
    869 . /etc/mk.conf
    870 
    871 if [ -z $NETBSDSRCDIR ] ; then
    872     NETBSDSRCDIR=/usr/src
    873 fi
    874 if [ \! -d $NETBSDSRCDIR ] ; then
    875     echo Unable to find sources
    876     exit 1
    877 fi
    878 find $NETBSDSRCDIR -name \*.o -o -name obj.\* -o -name obj -exec rm \{\} \;
    879 
    880 if [ -z $BSDOBJDIR ] ; then
    881     BSDOBJDIR=/usr/obj
    882 fi
    883 if [ -d $BSDOBJDIR ] ; then
    884     rm -rf $BSDOBJDIR
    885 fi
    886 
    887 cd $NETBSDSRCDIR && make cleandir
    888 
    889 ---cut here---
    890 
    891 Critical utilities:
    892 ^^^^^^^^^^^^^^^^^^^
    893 	usr.bin/compile_et
    894 	usr.bin/make
    895 	usr.bin/yacc
    896 	usr.bin/lex
    897 	usr.bin/xlint
    898 	usr.bin/config
    899 
    900 Other problems and possible solutions:
    901 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    902 Symptom:Complaints involving a Makefile.
    903 Fix:	Rebuild usr.bin/make:
    904 	cd usr.bin/make && make && make install
    905 	Or, a failsafe method if that doesn't work:
    906 	cd usr.bin/make && cc *.c */*.c -I . -o make && mv make /usr/bin
    907 
    908 Fix:	Make sure .mk files are up to date.
    909 	cd share/mk && make install
    910 
    911 Symptom:Kernel `config' fails to configure any kernel, including GENERIC.
    912 Fix:	Rebuild usr.bin/config
    913 
    914 Symptom:
    915 Fix:	Rebuild usr.bin/yacc
    916 
    917 Symptom:
    918 Fix:	Rebuild usr.bin/lex
    919 
    920 Symptom:
    921 Fix:	rm /usr/lib/libbfd.a
    922 
    923 Symptom:Obsolete intermediate files are used during compilation
    924 Fix:	Try the following sequence of commands in the directory in question.
    925 	make cleandir; rm `make print-objdir`; make cleandir; make obj
    926 	(If you built the tree without "make obj" in the past, obsolete files
    927 	may remain.  The command tries to clean everything up)
    928 
    929 Symptom:.../sysinst/run.c:xx: warning: initialization from incompatible pointer type
    930 Fix:	Rebuild and install usr.bin/menuc
    931 
    932 Symptom:mklocale not found during build in share/locale/ctype
    933 Fix:	Build and install usr.bin/mklocale
    934 
    935 Symptom:undefined reference to `__assert13' or `__unsetenv13'
    936 Fix:    Rebuild and install lib/libc
    937 
    938 Symptom:usr.bin/config fails to build.
    939 Fix:	Try building with -DMAKE_BOOTSTRAP added to CFLAGS in Makefile.
    940 
    941 Symptom:undefined reference to `getprogname' or `setprogname'
    942 Fix:    Rebuild and install lib/libc
    943 
    944 Symptom:lint does not understand the '-X' option
    945 Fix:    May need to build & install libs with NOLINT=1 before rebuilding lint
    946