UPDATING revision 1.118 1 $NetBSD: UPDATING,v 1.118 2004/04/25 21:16:57 dbj Exp $
2
3 This file is intended to be a brief introduction to the build
4 process and a reference on what to do if something doesn't work.
5
6 For a more detailed description see Makefile.
7
8 Recent changes:
9 ^^^^^^^^^^^^^^^
10
11 20040425:
12 The ffs superblock issues listed below under 20040109 and 20030402
13 are now automatically addressed by the /etc/rc.d/fixsb script or by
14 sysinst when it checks a a filesystem. The manual fsck_ffs -b16 -c4
15 invocation mentioned below will continue to work and is now
16 automated by those scripts. Note that under certain circumstances,
17 affected filesystems upgraded to a -current kernel first before
18 upgrading their userland with the fixsb and fsck_ffs fixes may
19 encounter a 'freeing free inode' panic when writing to the affected
20 filesystem, so it is a good idea to repair the filesystem as soon as
21 possible. For more details on the fixsb script, see pr install/25138.
22
23 20040418:
24 Statfs(2) and friends have been replaced with statvfs(2). Before
25 installing a newly build userland make sure that you are running
26 a newly built kernel with COMPAT_20 set. In addition your libc
27 build might not work (undefined SYS_statfs symbol) because make
28 clean does not know how to remove files it does not know about
29 anymore. Manually remove all generated .S sources and objects
30 from the libc build directory.
31
32 20040326:
33 The method by which athhal-elf.o gets pulled into i386 kernel builds
34 has been changed. The file is now stored as a uuencoded file in CVS
35 and the generated Makefile will use the new .uue rules from bsd.file.mk
36 to build it.
37
38 This means you must have the latest bsd.files.mk installed when
39 building a kernel without USETOOLS=yes.
40
41 20040318:
42 A bug in the cgd(4) blowfish code was corrected, without
43 provision of backwards compatibility, after several public
44 notices over several months. Users of cgd with blowfish cipher
45 ONLY must dump their data before updating their kernels, and
46 recreate cgd's and restore data using the new kernel. See
47 (recent message to current-users, URL when mail-index has updated)
48
49 20040313:
50 On acorn32, the opms and qms drivers have been withdrawn, and
51 the old wsqms driver is now called qms. Kernel config files
52 will need updating. See the ones in sys/arch/acorn32/conf
53 for examples.
54
55 20040125:
56 On acorn32, the beep and sysbeep devices are no longer
57 needed, and will need to be deleted from kernel configuration
58 files.
59
60 20040109:
61 Compatibility for old ffs superblock layouts has been
62 added, and the restrictive fsck checks have been reenabled
63 when using those layouts. If you have been using -current
64 since 20030402, you may find that fsck again signals fatal
65 superblock mismatches. To repair, make sure you have
66 an updated fsck_ffs and then you can use fsck_ffs -b 16 -c 4
67 to complete the filesystem upgrade. A message has
68 been added to the kernel which should detect this problem.
69 See the following discussion for more information:
70 http://mail-index.NetBSD.org/current-users/2004/01/11/0022.html
71
72 20031203:
73 New binutils builds may fail due to old dependencies.
74 It's necessary to "make cleandir" to ensure that
75 the dependencies will be rebuilt correctly.
76
77 20031111:
78 A newer mkdep is needed. Error noting that is
79 cc: Ambiguous abbreviation --
80
81 20031008:
82 /usr/include/sys/disklabel_mbr.h was removed.
83 It's necessary to "make cleandir" to ensure that
84 the dependencies will be rebuilt correctly.
85
86 20031007:
87 A sign exension bug was fixed which set all the high bits
88 of our newly expanded ffs fs_flags. This should only
89 affect users who installed or upgraded in September of 2003.
90 A small utility program was posted to tech-kern which
91 should fix this problem, and a warning message was added
92 to the kernel which should discover and warn about it. See
93 http://mail-index.NetBSD.org/tech-kern/2003/10/07/0005.html
94
95 20030906:
96 With the addition of siginfo support the old signal trampoline
97 code has been deprecated to COMPAT_16. Make sure that your running
98 kernel has COMPAT_16 enabled before building userland.
99
100 20030801:
101 With the new openssl, there is some header and library shuffling.
102 rm -f /usr/include/des.h /usr/include/kerberosIV/* /lib/libdes* \
103 /usr/lib/libdes* before building.
104
105 20030703:
106 Texinfo was updated to 4.6. To avoid failures when trying to
107 build the included texinfo files, do:
108
109 cd src/gnu/usr.bin/texinfo
110 make MKINFO=no dependall install
111
112 20030630:
113 Groff was updated to 1.19; it's probably necessary to do
114 cd share/mk && make install
115 cd src/gnu/usr.bin/groff
116 make MKMAN=no dependall install
117 (untested).
118
119 20030516:
120 Due to bugs in the export handling code, invalid export lines
121 were accepted before and caused the kernel to panic when
122 mountd got restarted because it freed memory that had already
123 been freed. This has been fixed and the kernel checks
124 export addresses very strictly. If you upgrade your kernel,
125 make sure you also upgrade mountd, because if your export
126 file contains lines with an old inet4 address syntax (i.e.
127 a.b.c or a.b or a), they will get rejected by the new kernel.
128
129 20030402:
130 The superblock layout for FFS was changed. If you have 1.6
131 fsck binaries, they will signal a fatal superblock mismatch
132 with the first alternate, because they compare too many
133 fields (even ones that aren't useful). If possible, upgrade
134 your fsck_ffs binary before using a new kernel.
135 None of this signals actual filesystem damage.
136
137 20030324:
138 sendmail version 8.12.8 was imported. Since sendmail is
139 now setgid to the smmsp group, and runs in "collection"
140 mode for most common activities, there is a new config
141 file called submit.cf that needs to live in /etc/mail.
142 The generic submit.cf sample in /usr/share/sendmail/cf
143 is named netbsd-msp.cf. Upgrading your regular sendmail
144 configuration file is also strongly advised.
145
146 See the section named "MESSAGE SUBMISSION PROGRAM" in
147 the updated /usr/share/sendmail/README file for more
148 information.
149
150 20030117:
151 Texinfo was updated to 4.3. To avoid failures when trying to
152 build the included texinfo files, do:
153
154 cd src/gnu/usr.bin/texinfo
155 make MKINFO=no dependall install
156
157 20021223:
158 The METALOG format changed slightly, to remove the leading
159 "${DESTDIR}" from path names.
160 This only affects people building with UNPRIVED.
161 For complete safety, remove the DESTDIR entirely and
162 update tools/mtree, before running make build.
163
164 20021219:
165 CVS repository layout was changed. See the following for details
166 if you are using (anonymous) cvs to update your tree.
167
168 http://mail-index.NetBSD.org/netbsd-announce/2002/12/19/0000.html
169
170 20021219:
171 install(1) had a '-N dbdir' option added, to specify an
172 alternate location to look up users & groups (instead
173 of the host system passwd(5) and group(5) databases).
174
175 The build system was modified to take advantage of
176 this option (using ${NETBSDSRCDIR}/etc), so if you
177 use USETOOLS==no, you may have to rebuild and
178 reinstall usr.bin/xinstall first.
179
180 20021130:
181 fparseln(3) moved from libutil to libc.
182 If building to DESTDIR=/, reinstall the includes
183 and rebuild libc:
184 make includes
185 make do-lib-libc
186 If using build.sh, "cd tools/compat && make clean"
187 before rebuilding the tools.
188
189 20021126:
190 The mk.conf(5) variable SYS_INCLUDE has been deprecated,
191 including the optional "SYS_INCLUDE=symlinks" support.
192 All header files, including <sys/*.h> are copied into
193 /usr/include.
194
195 20021121:
196 The C run-time support files crtbegin.o and crtend.o
197 (and their companions crtbeginS.o and crtendS.o) were
198 split up, with new crti.o and crtn.o files resulting.
199 This means that libtool needs to be rebuilt once the
200 new libraries are installed. The process of rebuilding
201 libtool will cause it to automatically notice the new
202 required files, but it *must* be rebuilt in order to
203 do this.
204
205 An out-of-date libtool will result in shared libraries
206 which lack _init() and _fini() routines, which means that
207 their global contructors/destructors will not be invoked.
208
209 20021121:
210 A bug related to how ARM ELF objects were tagged has been
211 corrected.
212
213 NetBSD ARM ELF uses the soft-VFP floating point model by
214 default. However, the assembler lacked support for marking
215 objects as using the VFP floating point format, and the
216 compiler was not properly passing the flag indicating "soft-VFP"
217 to the assembler.
218
219 Unfortunately, this means that the linker will now consider
220 old (i.e. not marked "softvfp") NetBSD ARM ELF objects to be
221 incompatible with new (properly marked) objects.
222
223 The problem will only manifest itself if you attempt to compile
224 a new program using the fixed toolchain, and link that program
225 against old libraries which do not have the proper "softvfp"
226 markings. ALL OF YOUR EXISTING BINARIES AND SHARED LIBRARIES
227 WILL CONTINUE TO WORK PROPERLY.
228
229 The only work-around for the problem is to recompile all of
230 the libraries on the system. The easiest way to do this for
231 system libraries is to install a binary snapshot; they are
232 generally available on releng.NetBSD.org. Any packages you
233 have installed which supply libraries will have to be recompiled
234 if you wish to link new programs against those libraries.
235
236 If you have questions about this matter, please contact
237 port-arm (a] NetBSD.org.
238
239 20021011:
240 Systrace has been improved to support privilege elevation.
241 Updating the kernel requires the userland part of systrace
242 to be rebuilt.
243
244 20021010:
245 The config(8) grammar was changed to allow options to register
246 dependencies on attributes, as well as other options. Users
247 must update and reinstall usr.sbin/config before building a new
248 kernel.
249
250 20021009:
251 A new attribute dependency syntax was introduced to config(8),
252 which is now used by the SCSI configuration description. Users
253 must update and reinstall usr.sbin/config before building a new
254 kernel.
255
256 20021003:
257 Several changes have been made to the autoconfiguration
258 framework. Users must update and reinstall usr.sbin/config
259 before building a new kernel.
260
261 20021001:
262 The i386mp branch has been merged. To compile a kernel, users
263 will need to add the option 'cpu* at mainbus?' to their configuration
264 file. Multiprocessor kernels will need
265 ioapic* at mainbus? apid ?
266 options MULTIPROCESSOR
267 options COM_MPLOCK
268
269 20020922:
270 MKDYNAMICROOT=yes enabled by default, which means that
271 certain shared libraries are installed into /lib, the shared
272 linker is installed into /libexec, and all programs in /bin
273 and /sbin are dynamically linked.
274 If you do not use "make build", you should ensure that
275 you have the libraries and shared linker in the new locations,
276 with:
277 make do-lib-csu do-lib-libc do-lib do-gnu-lib do-ld.elf_so
278
279 20020917:
280 USE_NEW_TOOLCHAIN has been replaced with:
281 - TOOLCHAIN_MISSING -- set to "yes" on platforms for which
282 there is no working in-tree toolchain (hppa, ns32k, sh5,
283 x86_64).
284 - EXTERNAL_TOOLCHAIN -- if defined by the user, points to the
285 root of an external toolchain (e.g. /usr/local/gnu). This
286 enables the cross-build framework even for TOOLCHAIN_MISSING
287 platforms.
288
289 20020906:
290 gehenna-devsw has been merged into the trunk. Need to update and
291 reinstall usr.sbin/config before building the kernel.
292
293 20020822:
294 Crunched rescue tools (contents of /bin and /sbin, plus others)
295 are now provided in /rescue.
296
297 To ensure that these are built statically linked (no matter
298 what the setting of LDSTATIC is), use a crunchgen(1) built
299 from sources newer than 20020820 (see the next entry).
300
301 20020820:
302 crunchgen(1) changed to ensure that the generated program
303 is statically linked.
304
305 Solution: update and reinstall usr.bin/crunch
306
307 20020605:
308 smmsp user/group has been added for sendmail.
309
310 Add the following into /etc/group:
311
312 smmsp:*:17:
313
314 and the following to /etc/master.passwd (via vipw):
315
316 smmsp:*:17:17::0:0:Sendmail Message Submission Program:/nonexistent:/sbin/nologin
317
318 20020515:
319 sshd user/group has been added. Need to hand add this in, or sshd
320 will not let you log in (with default, or UsePrivlegeSeparation=yes)
321
322 Add the following into /etc/group:
323
324 sshd:*:16:
325
326 and the following to /etc/master.passwd (via vipw):
327
328 sshd:*:16:16::0:0:& pseudo-user:/var/chroot/sshd:/sbin/nologin
329
330 Also /var/chroot/sshd directory needs to be present (digged as part of
331 the build process).
332
333 20020426:
334 NBUILDJOBS obsoleted in favor of just using -j.
335
336 20020426:
337 etc/postinstall added, which performs various checks for
338 configuration file updates and changes, and can fix most of
339 the problems identified.
340 This should make it much easier to upgrade a system's
341 configuration from earlier systems (as far back as NetBSD 1.5).
342
343 20020320:
344 <bsd.lib.mk> needs a new install(1) for its "-a cmd" support.
345 Build and install at usr.bin/xinstall before the build.
346
347 20020319:
348 Raw IPv6 socket now makes strict checking for sa_family and sa_len
349 on send(2) operation. Be sure to have sbin/rtsol and usr.sbin/rtsold
350 newer than November 2001 when you upgrade the kernel.
351
352 20020311:
353 ssh configuration files were moved from /etc to /etc/ssh. Beware
354 if you restart your machine from remote. Note that sshd.conf needs
355 to be changed (due to the use of "/etc" inside).
356
357 20020223:
358 Users of the VAX port will need to rebuild and install gas
359 so it deal with the now present register prefix used in all
360 the VAX assembly files.
361
362 20020118:
363 ntpd user/group has been added. Need to hand add this in or builds
364 will break as mtree aborts early.
365
366 Add the following into /etc/group:
367
368 ntpd:*:15:
369
370 and the following to /etc/master.passwd (via vipw):
371
372 ntpd:*:15:15::0:0:Ntpd pseudo-user:/var/chroot/ntpd:/sbin/nologin
373
374 20011207:
375 If you're attempting to build a snapshot on sparc64 and are getting
376 reloc errors from the toolchain groff binary this means your native
377 toolchain has some broken C++ bits.
378
379 To fix:
380
381 Build a new toolchain (i.e. build.sh -t)
382 Use the new toolchain to build and install natively (i.e. /usr/lib)
383
384 gnu/lib/libgcc
385 gnu/lib/libstdc++
386
387 After this a snapshot will be able to be built.
388
389 20011201:
390 In order for a sparc64 build to work you must have a working awk. If
391 you've built and installed a system with the new toolchain up to this
392 point you do not have a working awk as its ability to do floating
393 point is broken.
394
395 To build:
396
397 remake and install gnu/lib/libgcc
398 remake and install gnu/usr.bin/gawk into /usr/bin (make sure it links
399 against the new libgcc.a)
400
401 20011128:
402 Kernel config information was changed to use defflag in
403 the various "files" files. Bug fixes to config(8) are
404 required in order for this to work properly. Make sure
405 to build and install in usr.sbin/config before attempting
406 to build a new kernel.
407
408 20011030:
409 libc/locale/wcstod.c now needs new lint(1). Update lint(1)
410 before building libc.
411
412 20011029:
413 The new document BUILDING.mdoc (view with nroff | more, or
414 see pre-generated .txt and .html versions) describes the build
415 procedure in great detail. BUILDING, and the USE_NEW_TOOLCHAIN
416 build process, are intended in the long run to replace this
417 manual update log.
418
419 Users building a USE_NEW_TOOLCHAIN system should read the
420 BUILDING document for caveats. Generally, BUILDING supersedes
421 UPDATING for these systems, as tool updating is taken care of
422 by the new build system.
423
424 20011028:
425 src/etc/Makefile now needs install to be able to handle
426 symlinks that point to nowhere. A bug in install that
427 prevented this was corrected.
428
429 Solution: update and reinstall usr.bin/xinstall
430 Better Solution: Use the new toolchain and it will just work
431 for you.
432
433 20011006:
434 /etc/mtree/NetBSD.dist has been updated to take advantage of
435 absolute path support added to mtree(8). Older mtree(8)s don't
436 understand the format.
437
438 Solution: update and reinstall usr.sbin/mtree
439
440 20011004:
441 Crunchgen has been updated to work via reach-over makefiles. Updating
442 is suggested before running a snapshot build
443
444 20010915:
445 The new "ubcperf" code committed by Chuck Silvers removed
446 a header file, uvm/uvm_vnode.h. There may be stale .depend
447 files that still reference this file.
448
449 Solution: "make cleandir && make dependall" in affected
450 directories.
451
452 20010803:
453 grep.info is now built from grep.texi using makeinfo. Since it
454 requires makeinfo v4.0, you need to install new texinfo before
455 building gnu/usr.bin/grep. To install new texinfo, please follow
456 the instruction described in 20010726 entry.
457
458 20010803:
459 (i386 only): i386 kernel now uses new instructions like
460 `fxsave' which old gas doesn't understand. To build the
461 kernel successfully, you need to build and install a new toolchain,
462 (i.e., build.sh -t) or (temporarily) comment out "options I686_CPU"
463 from your kernel configuration until you rebuild your userland.
464 See 20011029 above and BUILDING file in this directory for more information.
465 [updated 20020630 since i386 gas moved when USE_NEW_TOOLCHAIN enabled]
466
467 20010731:
468 Bootloader update on ELF platforms. DDB in kernels from before
469 this will be unable to read symbol tables provided by newer
470 bootloaders.
471
472 20010726:
473 Texinfo was updated to 4.0. To avoid failures when trying to
474 build the included texinfo files, do:
475
476 cd src/gnu/usr.bin/texinfo
477 make MKINFO=no dependall install
478
479 20010718:
480 Enabled correct .init/.fini processing in crt0. The way this
481 was done was to change a -I directive to cc(1), which means
482 make(1) will have a stale dependency (it will be checking the
483 timestamp on the wrong "dot_init.h").
484
485 The symptom you will see is that new programs die with SIGSEGV
486 if you have a stale dependency.
487
488 Solution: "make cleandir" in both lib/csu and libexec/ld.elf_so
489 before starting your build.
490
491 20010628:
492 A construct was added to uvm_page.h that uncovered a bug
493 in lint(1). If you get a warning/error about a non-portable
494 bitfield, update your lint(1) before proceeding.
495
496 20010226:
497 Added named user/group to system. Need to hand add this in or builds
498 will break as mtree aborts early.
499
500 To work around add by hand:
501
502 named:*:14:
503
504 to /etc/group and add:
505
506 named:*:14:14::0:0:Named pseudo-user:/var/named:/sbin/nologin
507
508 to master.passwd (use vipw for instance if doing by hand).
509
510 Now a make build should progress.
511
512 20010219:
513 get/setprogname() added. Any hostprogs that may use this will need
514 to be bootstrapped manually until the host system is current.
515
516 Known problems: sys/arch/macppc/stand/fixcoff
517 usr.sbin/config (adding -DMAKE_BOOTSTRAP to
518 CFLAGS and rebuilding should work)
519 usr.sbin/mdsetimage - Build a static copy if
520 building a snapshot before fully bootstrapped.
521
522 20010204:
523 prepare the code to compile with stricter gcc flags. in
524 particular start eliminating redundant declarations. Yacc
525 needs to be installed before make build.
526
527 20010114:
528 introduce .if commands(target) in make(1). You need to
529 bring everything up-to-date first, then without installing
530 anything make and install in usr.bin/make, then proceed
531 with make build.
532
533 20010101:
534 bsd.subdir.mk committed 20001230 had a bug which caused
535 afterinstall targets to run too soon; update again.
536
537 20001230:
538 New share/mk files needed to support .WAIT in SUBDIR variables.
539 If you get make errors,
540 (cd share/mk; make install)
541 Also, PRINTOBJDIR has changed and is now used more heavily.
542
543 20001019:
544 The `ca' device driver has been replaced by `ld'; although the
545 major and minor numbers haven't changed, you should update your /dev
546 directory.
547
548 20000929:
549 The following make directives are obsoleted.
550 MKCRYPTO_RSA NOCRYPTO_RSA NOCRYPTO_RC5 NOCRYPTO_IDEA
551 By default, RSA is built into libcrypto. IDEA and RC5 will not be
552 built into libcrypto. By using MKCRYPTO_{RC5,IDEA}, you can build
553 additional library libcrypto_{idea,rc5}.
554
555
556 Hints for a more successful build:
557 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
558 Build a new kernel first:
559 This makes sure that any new system calls or features
560 expected by the new userland will be present. This
561 helps to avoid critical errors when upgrading.
562 Use object directories:
563 This helps to keep stale object
564 files from polluting the build if a Makefile "forgets"
565 about one. It also makes it easier to clean up after
566 a build. It's also necessary if you want to use the
567 same source tree for multiple machines.
568 To use object directories:
569 a) cd /usr/src ; make cleandir
570 b) Add "OBJMACHINE=yes" to /etc/mk.conf
571 c) Add "MKOBJDIRS=yes" to /etc/mk.conf
572 d) cd /usr/src ; make build
573 Note that running "make obj" in a directory will create
574 in obj.$MACHINE directory.
575 Build to a DESTDIR:
576 This helps to keep old
577 installed files (especially libraries) from interfering
578 with the new build.
579 To build to a DESTDIR, set the DESTDIR environment
580 variable before running make build. It should be set to
581 the pathname of an initially empty directory.
582 Problems: you might need to update critical utilities
583 without using DESTDIR since nothing is executed
584 from what is installed in DESTDIR.
585 (See critical utils, below)
586 Build often:
587 This keeps critical utilities current enough to not choke
588 on any other part of the source tree that depends on up to
589 date functionality.
590
591 What to do if things don't work:
592 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
593 When things don't work there is usually a few things that commonly
594 should be done.
595 1) make includes
596 This should be done automatically by make build.
597 2) cd share/mk && make install
598 Again, automatically done by make build.
599
600 Failsafe rebuild of a small part of the tree:
601 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
602 To make sure you rebuild something correctly you want to do
603 something like the following:
604 1) Make sure the includes and .mk files are up to date.
605 2) Make sure any program used to build the particular
606 utility is up to date. (yacc, lex, etc...)
607 3) cd ...path/to/util...
608 make cleandir
609 rm ...all obj directories...
610 make cleandir # yes, again
611 make obj
612 make depend && make
613
614 Failsafe rebuild of the entire tree:
615 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
616 If you really want to make sure the source tree is clean and
617 ready for a build try the following. Note that sourcing /etc/mk.conf
618 (a make(1) Makefile) in this manner is not right, and will not work
619 for anyone who uses any make(1) features in /etc/mk.conf.
620
621 ---cut here---
622 #!/bin/sh
623 . /etc/mk.conf
624
625 if [ -z $NETBSDSRCDIR ] ; then
626 NETBSDSRCDIR=/usr/src
627 fi
628 if [ \! -d $NETBSDSRCDIR ] ; then
629 echo Unable to find sources
630 exit 1
631 fi
632 find $NETBSDSRCDIR -name \*.o -o -name obj.\* -o -name obj -exec rm \{\} \;
633
634 if [ -z $BSDOBJDIR ] ; then
635 BSDOBJDIR=/usr/obj
636 fi
637 if [ -d $BSDOBJDIR ] ; then
638 rm -rf $BSDOBJDIR
639 fi
640
641 cd $NETBSDSRCDIR && make cleandir
642
643 ---cut here---
644
645 Critical utilities:
646 ^^^^^^^^^^^^^^^^^^^
647 gnu/usr.bin/egcs
648 usr.bin/compile_et
649 usr.bin/make
650 usr.bin/yacc
651 usr.bin/lex
652 usr.bin/xlint
653 usr.sbin/config
654
655 Other problems and possible solutions:
656 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
657 Symptom:Unreasonable compiler errors.
658 Fix: Rebuild gnu/usr.bin/egcs
659
660 Symptom:Complaints involving a Makefile.
661 Fix: Rebuild usr.bin/make:
662 cd usr.bin/make && make && make install
663 Or, a failsafe method if that doesn't work:
664 cd usr.bin/make && cc *.c */*.c -I . -o make && mv make /usr/bin
665
666 Fix: Make sure .mk files are up to date.
667 cd share/mk && make install
668
669 Symptom:Kernel `config' fails to configure any kernel, including GENERIC.
670 Fix: Rebuild usr.sbin/config
671
672 Symptom:
673 Fix: Rebuild usr.bin/yacc
674
675 Symptom:
676 Fix: Rebuild usr.bin/lex
677
678 Symptom:
679 Fix: rm /usr/lib/libbfd.a
680
681 Symptom:Obsolete intermediate files are used during compilation
682 Fix: Try the following sequence of commands in the directory in question.
683 make cleandir; rm `make print-objdir`; make cleandir; make obj
684 (If you built the tree without "make obj" in the past, obsolete files
685 may remain. The command tries to clean everything up)
686
687 Symptom:.../sysinst/run.c:xx: warning: initialization from incompatible pointer type
688 Fix: Rebuild and install usr.bin/menuc
689
690 Symptom:mklocale not found during build in share/locale/ctype
691 Fix: Build and install usr.bin/mklocale
692
693 Symptom:undefined reference to `__assert13' or `__unsetenv13'
694 Fix: Rebuild and install lib/libc
695
696 Symptom:usr.sbin/config fails to build.
697 Fix: Try building with -DMAKE_BOOTSTRAP added to CFLAGS in Makefile.
698
699 Symptom:undefined reference to `getprogname' or `setprogname'
700 Fix: Rebuild and install lib/libc
701
702 Symptom:lint does not understand the '-X' option
703 Fix: May need to build & install libs with NOLINT=1 before rebuilding lint
704