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.254 retrieving revision 1.274 diff -u -p -r1.254 -r1.274 --- src/UPDATING 2014/02/01 13:29:45 1.254 +++ src/UPDATING 2016/10/10 13:28:24 1.274 @@ -1,4 +1,4 @@ -$NetBSD: UPDATING,v 1.254 2014/02/01 13:29:45 skrll Exp $ +$NetBSD: UPDATING,v 1.274 2016/10/10 13:28:24 martin Exp $ This file (UPDATING) is intended to be a brief reference to recent changes that might cause problems in the build process, and a guide for @@ -11,11 +11,112 @@ Note that much of the advice in this UPD build.sh existed. Nevertheless, the advice here may be useful for working around specific problems with build.sh. +Sections are marked with "^^^^^". After the section on "Recent changes" +are several sections containing more general information. + See also: BUILDING, build.sh, Makefile. Recent changes: ^^^^^^^^^^^^^^^ +20161009: + a new version of dhcpcd has been imported with slightly changed + build infrastructure. When doing a build.sh -u this requires + pruning the external/bsd/dhcpcd objdir. + +20160914: + i386, amd64, shark, ofppc and macppc have joined shark and x68k + ports in using xorg-server 1.18. This requires a clean destdir + and a clean objdir. + +20160527: + i386 needs a full cleandir or objdir deletion because PIE has + been enabled. (see the amd64 entry two down for further info) + +20160418: + libedit needs manual removal of all autogenerated files since + some of them are not autogenerated anymore. Remember that there + might be two copies of libedit if your platform builds "compat". + +20160410: + amd64 needs full "make cleandir" or deletion of objdir now that + PIE has been enabled for amd64. PIE, or position-independent + executables, means all code, including executables and not just + shared libraries, is position-independent and hence able to be + relocated by ASLR, address space layout randomization. + + The change was made in Makefile variables for compiler and + linker flags, for which make(1) does not record dependencies, + hence it is unable to detect that all .o files need rebuilding. + + Partial rebuilds with some modified source files will likely + fail when linking executables, since the linker refuses to mix + position-independent code with position-dependent code in + position-independent executables: + + .../x86_64--netbsd/bin/ld: foo.o: relocation R_X86_64_32 against `...' cannot be used when making a shared object; recompile with -fPIC + +20160401: + Ports switching to GCC 5.3 will need a full "make cleandir". + Some people have found that cleandir is not sufficient, so if + in doubt delete the entire object directory tree for gcc. + +20160306: + NetBSD's regexp implementation is now part of libnbcompat. + Nblex, nbm4, nbpax, nbsed use it and they may crash on + non-NetBSD hosts if linked with stale object files produced + while they included a non-NetBSD regex.h. + In any case, you should "make cleandir" at least these tools + before updating your toolchain. + +20160125: + Dtrace has been enabled by default on some architectures. + When doing an update build, make sure to clean the etc/mtree + object directory before starting the build - otherwise the + needed directories in destdir will not be created. + An easy way to do this is: + cd src/etc/mtree && $TOOLDIR/bin/nbmake-$arch cleandir + +20150818: + New acpica requires "make cleandir" in src/external/bsd/acpica + again. + +20150413: + New acpica requires "make cleandir" and reinstalling yacc + in /usr/src/external/bsd/byacc and /usr/src/tools/yacc and + also "make cleandir" in /usr/src/external/bsd/acpica. + +20150404: + Lint changes require a full rebuild of the tool, so make + sure to build without -u option to build.sh, or manually + do a make cleandir in src/tools/lint1 and + src/usr.bin/xlint. + +20150310: + Improvements to openssl for arm mean that update builds of + the openssl libraries will fail. A make cleandir in + external/bsd/openssl/lib is needed + +20141026: + A mishap during the import of pppd may cause your corruption + in your cvs directory if you happened to do a cvs update + during a short period of time. To fix, just remove the + directory src/external/bsd/ppp/dist/pppd completely + and let cvs restore it on next update. + +20140721: + The src/external/mit/lua/src directory was accidentally created + and then deleted in the CVS repository. If you get errors like + + cvs [update aborted]: cannot open directory + /cvsroot/src/external/mit/lua/src: No such file or directory + + then delete your local copy of that directory tree and try again. + +20140530: + ARM eABI switched to DWARF based exception handling. This requires + rebuilding all C++ code. It is strongly advised to do a clean build. + 20140131: The new compiler_rt/libc integration moved a few things. It is strongly advised to do a clean build. At least lib/libc, the compat version(s) @@ -664,3 +765,13 @@ Fix: May need to build & install libs Symptom:Update build fails in src/tools/gcc complaining that a variable (e.g. CPPFLAGS) has changed since the previous run. Fix: Run "nbmake-${ARCH} clean" in src/tools/gcc or do a clean build. + +Symptom:cvs [update aborted]: cannot open directory /cvsroot/src/...: + No such file or directory. +Cause: If a directory is created by mistake, then it is sometimes + deleted from the CVS repository using administrative commands + that bypass the normal cvs access controls. If your cvs working tree + contains references to a directory that has been deleted on the + server in this way, then "cvs update" reports this error. +Fix: Recursively delete the affected directory from your working tree + and try the update again.