Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/UPDATING,v rcsdiff: /ftp/cvs/cvsroot/src/UPDATING,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.2 retrieving revision 1.46 diff -u -p -r1.2 -r1.46 --- src/UPDATING 2000/08/20 15:43:43 1.2 +++ src/UPDATING 2001/11/28 18:53:34 1.46 @@ -1,4 +1,4 @@ -$NetBSD: UPDATING,v 1.2 2000/08/20 15:43:43 mrg Exp $ +$NetBSD: UPDATING,v 1.46 2001/11/28 18:53:34 thorpej Exp $ This file is intended to be a brief introduction to the build process and a reference on what to do if something doesn't work. @@ -7,10 +7,158 @@ For a more detailed description see Make Recent changes: ^^^^^^^^^^^^^^^ - -20000623: - MKCRYPTO and friends added to share/mk/bsd.own.mk. - 'cd share/mk ; make install' needed before make build. +20011128: + Kernel config information was changed to use defflag in + the various "files" files. Bug fixes to config(8) are + required in order for this to work properly. Make sure + to build and install in usr.sbin/config before attempting + to build a new kernel. + +20011030: + libc/locale/wcstod.c now needs new lint(1). Update lint(1) + before building libc. + +20011029: + The new document BUILDING.mdoc (view with nroff | more, or + see pre-generated .txt and .html versions) describes the build + procedure in great detail. BUILDING, and the USE_NEW_TOOLCHAIN + build process, are intended in the long run to replace this + manual update log. + + Users building a USE_NEW_TOOLCHAIN system should read the + BUILDING document for caveats. Generally, BUILDING supersedes + UPDATING for these systems, as tool updating is taken care of + by the new build system. + +20011028: + src/etc/Makefile now needs install to be able to handle + symlinks that point to nowhere. A bug in install that + prevented this was corrected. + + Solution: update and reinstall usr.bin/xinstall + Better Solution: Use the new toolchain and it will just work + for you. + +20011006: + /etc/mtree/NetBSD.dist has been updated to take advantage of + absolute path support added to mtree(8). Older mtree(8)s don't + understand the format. + + Solution: update and reinstall usr.sbin/mtree + +20011004: + Crunchgen has been updated to work via reach-over makefiles. Updating + is suggested before running a snapshot build + +20010915: + The new "ubcperf" code committed by Chuck Silvers removed + a header file, uvm/uvm_vnode.h. There may be stale .depend + files that still reference this file. + + Solution: "make cleandir && make dependall" in affected + directories. + +20010803: + grep.info is now built from grep.texi using makeinfo. Since it + requires makeinfo v4.0, you need to install new texinfo before + building gnu/usr.bin/grep. To install new texinfo, please follow + the instruction described in 20010726 entry. + +20010803: + (i386 only): i386 kernel now uses new instructions like + `fxsave' which old gas doesn't understand. To build the + kernel successfuly, you need to build and install new gas + (gnu/usr.bin/gas.new), or (temporarily) comment out + "options I686_CPU" from your kernel configuration until you + rebuilt your userland (and got a new gas). + +20010731: + Bootloader update on ELF platforms. DDB in kernels from before + this will be unable to read symbol tables provided by newer + bootloaders. + +20010726: + Texinfo was updated to 4.0. To avoid failures when trying to + build the included texinfo files, do: + + cd src/gnu/usr.bin/texinfo + make MKINFO=no dependall install + +20010718: + Enabled correct .init/.fini processing in crt0. The way this + was done was to change a -I directive to cc(1), which means + make(1) will have a stale dependency (it will be checking the + timestamp on the wrong "dot_init.h"). + + The symptom you will see is that new programs die with SIGSEGV + if you have a stale dependency. + + Solution: "make cleandir" in both lib/csu and libexec/ld.elf_so + before starting your build. + +20010628: + A construct was added to uvm_page.h that uncovered a bug + in lint(1). If you get a warning/error about a non-portable + bitfield, update your lint(1) before proceeding. + +20010226: + Added named user/group to system. Need to hand add this in or builds + will break as mtree aborts early. + + To work around add by hand: + + named:*:14: + + to /etc/group and add: + + named:*:14:14::0:0:Named pseudo-user:/var/named:/sbin/nologin + + to master.passwd (use vipw for instance if doing by hand). + + Now a make build should progress. + +20010219: + get/setprogname() added. Any hostprog's that may use this will need + to be bootstrapped manually until the host system is current. + + Known problems: sys/arch/macppc/stand/fixcoff + usr.sbin/config (adding -DMAKE_BOOTSTRAP to + CFLAGS and rebuilding should work) + usr.sbin/mdsetimage - Build a static copy if + building a snapshot before fully bootstrapped. + +20010204: + prepare the code to compile with stricter gcc flags. in + particular start eliminating redundant declarations. Yacc + needs to be installed before make build. + +20010114: + introduce .if commands(target) in make(1). You need to + bring everything up-to-date first, then without installing + anything make and install in usr.bin/make, then proceed + with make build. + +20010101: + bsd.subdir.mk committed 20001230 had a bug which caused + afterinstall targets to run too soon; update again. + +20001230: + New share/mk files needed to support .WAIT in SUBDIR variables. + If you get make errors, + (cd share/mk; make install) + Also, PRINTOBJDIR has changed and is now used more heavily. + +20001019: + The `ca' device driver has been replaced by `ld'; although the + major and minor numbers haven't changed, you should update your /dev + directory. + +20000929: + The following make directives are obsoleted. + MKCRYPTO_RSA NOCRYPTO_RSA NOCRYPTO_RC5 NOCRYPTO_IDEA + By default, RSA is built into libcrypto. IDEA and RC5 will not be + built into libcrypto. By using MKCRYPTO_{RC5,IDEA}, you can build + additional library libcrypto_{idea,rc5}. Hints for a more successful build: @@ -105,22 +253,26 @@ cd $BSDSRCDIR && make cleandir Critical utilities: ^^^^^^^^^^^^^^^^^^^ gnu/usr.bin/egcs + usr.bin/compile_et usr.bin/make usr.bin/yacc usr.bin/lex + usr.bin/xlint usr.sbin/config - crypto-*/usr.bin/compile_et - crypto-*/usr.bin/make_cmds -Other problems and possibly solutions: +Other problems and possible solutions: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Symptom:Unreasonable compiler errors. Fix: Rebuild gnu/usr.bin/egcs Symptom:Complaints involving a Makefile. +Fix: Rebuild usr.bin/make: + cd usr.bin/make && make && make install + Or, a failsafe method if that doesn't work: + cd usr.bin/make && cc *.c */*.c -I . -o make && mv make /usr/bin + Fix: Make sure .mk files are up to date. cd share/mk && make install -Fix: Rebuild usr.bin/make Symptom:Kernel `config' fails to configure any kernel, including GENERIC. Fix: Rebuild usr.sbin/config @@ -133,3 +285,27 @@ Fix: Rebuild usr.bin/lex Symptom: Fix: rm /usr/lib/libbfd.a + +Symptom:Obsolete intermediate files are used during compilation +Fix: Try the following sequence of commands in the directory in question. + make cleandir; rm `make print-objdir`; make cleandir; make obj + (If you built the tree without "make obj" in the past, obsolete files + may remain. The command tries to clean everything up) + +Symptom:.../sysinst/run.c:xx: warning: initialization from incompatible pointer type +Fix: Rebuild and install usr.bin/menuc + +Symptom:mklocale not found during build in share/locale/ctype +Fix: Build and install usr.bin/mklocale + +Symptom:undefined reference to `__assert13' +Fix: Rebuild and install lib/libc + +Symptom:usr.sbin/config fails to build. +Fix: Try building with -DMAKE_BOOTSTRAP added to CFLAGS in Makefile. + +Symptom:undefined reference to `getprogname' or `setprogname' +Fix: Rebuild and install lib/libc + +Symptom:lint does not understand the '-X' option +Fix: May need to build & install libs with NOLINT=1 before rebuilding lint