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