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