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