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.38 diff -u -p -r1.2 -r1.38 --- src/UPDATING 2000/08/20 15:43:43 1.2 +++ src/UPDATING 2001/09/30 20:09:11 1.38 @@ -1,4 +1,4 @@ -$NetBSD: UPDATING,v 1.2 2000/08/20 15:43:43 mrg Exp $ +$NetBSD: UPDATING,v 1.38 2001/09/30 20:09:11 tron 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. @@ -8,6 +8,130 @@ For a more detailed description see Make Recent changes: ^^^^^^^^^^^^^^^ +20010922: + The new toolchain is enabled on i386. This new build method + is intended to make all the upgrade issues elsewhere in UPDATING + obsolete (stay tuned...). + + i386 platform builds must now set TOOLDIR in mk.conf or the + environment in order to build the system. This is a pathname + where host build tools will be installed, and must NOT be + the same as src/tools. + + (Optionally, USETOOLS=no can be set in the environment if you + wish to avoid using the separate host toolchain for building a + subtree. Otherwise, this will default to "yes" automatically.) + +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). + +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}. + 20000623: MKCRYPTO and friends added to share/mk/bsd.own.mk. 'cd share/mk ; make install' needed before make build. @@ -105,22 +229,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 +261,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