| @@ -1,719 +1,727 @@ | | | @@ -1,719 +1,727 @@ |
1 | $NetBSD: UPDATING,v 1.263 2015/09/19 18:31:41 dholland Exp $ | | 1 | $NetBSD: UPDATING,v 1.264 2016/01/25 09:24:29 martin Exp $ |
2 | | | 2 | |
3 | This file (UPDATING) is intended to be a brief reference to recent | | 3 | This file (UPDATING) is intended to be a brief reference to recent |
4 | changes that might cause problems in the build process, and a guide for | | 4 | changes that might cause problems in the build process, and a guide for |
5 | what to do if something doesn't work. | | 5 | what to do if something doesn't work. |
6 | | | 6 | |
7 | For a more detailed description of the recommended way to build NetBSD | | 7 | For a more detailed description of the recommended way to build NetBSD |
8 | using build.sh, see the BUILDING file. | | 8 | using build.sh, see the BUILDING file. |
9 | | | 9 | |
10 | Note that much of the advice in this UPDATING file was written before | | 10 | Note that much of the advice in this UPDATING file was written before |
11 | build.sh existed. Nevertheless, the advice here may be useful for | | 11 | build.sh existed. Nevertheless, the advice here may be useful for |
12 | working around specific problems with build.sh. | | 12 | working around specific problems with build.sh. |
13 | | | 13 | |
14 | Sections are marked with "^^^^^". After the section on "Recent changes" | | 14 | Sections are marked with "^^^^^". After the section on "Recent changes" |
15 | are several sections containing more general information. | | 15 | are several sections containing more general information. |
16 | | | 16 | |
17 | See also: BUILDING, build.sh, Makefile. | | 17 | See also: BUILDING, build.sh, Makefile. |
18 | | | 18 | |
19 | Recent changes: | | 19 | Recent changes: |
20 | ^^^^^^^^^^^^^^^ | | 20 | ^^^^^^^^^^^^^^^ |
21 | | | 21 | |
| | | 22 | 20160125: |
| | | 23 | Dtrace has been enabled by default on some architectures. |
| | | 24 | When doing an update build, make sure to clean the etc/mtree |
| | | 25 | object directory before starting the build - otherwise the |
| | | 26 | needed directories in destdir will not be created. |
| | | 27 | An easy way to do this is: |
| | | 28 | cd src/etc/mtree && $TOOLDIR/bin/nbmake-$arch cleandir |
| | | 29 | |
22 | 20150818: | | 30 | 20150818: |
23 | New acpica requires "make cleandir" in src/external/bsd/acpica | | 31 | New acpica requires "make cleandir" in src/external/bsd/acpica |
24 | again. | | 32 | again. |
25 | | | 33 | |
26 | 20150413: | | 34 | 20150413: |
27 | New acpica requires "make cleandir" and reinstalling yacc | | 35 | New acpica requires "make cleandir" and reinstalling yacc |
28 | in /usr/src/external/bsd/byacc and /usr/src/tools/yacc and | | 36 | in /usr/src/external/bsd/byacc and /usr/src/tools/yacc and |
29 | also "make cleandir" in /usr/src/external/bsd/acpica. | | 37 | also "make cleandir" in /usr/src/external/bsd/acpica. |
30 | | | 38 | |
31 | 20150404: | | 39 | 20150404: |
32 | Lint changes require a full rebuild of the tool, so make | | 40 | Lint changes require a full rebuild of the tool, so make |
33 | sure to build without -u option to build.sh, or manually | | 41 | sure to build without -u option to build.sh, or manually |
34 | do a make cleandir in src/tools/lint1 and | | 42 | do a make cleandir in src/tools/lint1 and |
35 | src/usr.bin/xlint. | | 43 | src/usr.bin/xlint. |
36 | | | 44 | |
37 | 20150310: | | 45 | 20150310: |
38 | Improvements to openssl for arm mean that update builds of | | 46 | Improvements to openssl for arm mean that update builds of |
39 | the openssl libraries will fail. A make cleandir in | | 47 | the openssl libraries will fail. A make cleandir in |
40 | external/bsd/openssl/lib is needed | | 48 | external/bsd/openssl/lib is needed |
41 | | | 49 | |
42 | 20141026: | | 50 | 20141026: |
43 | A mishap during the import of pppd may cause your corruption | | 51 | A mishap during the import of pppd may cause your corruption |
44 | in your cvs directory if you happened to do a cvs update | | 52 | in your cvs directory if you happened to do a cvs update |
45 | during a short period of time. To fix, just remove the | | 53 | during a short period of time. To fix, just remove the |
46 | directory src/external/bsd/ppp/dist/pppd completely | | 54 | directory src/external/bsd/ppp/dist/pppd completely |
47 | and let cvs restore it on next update. | | 55 | and let cvs restore it on next update. |
48 | | | 56 | |
49 | 20140721: | | 57 | 20140721: |
50 | The src/external/mit/lua/src directory was accidentally created | | 58 | The src/external/mit/lua/src directory was accidentally created |
51 | and then deleted in the CVS repository. If you get errors like | | 59 | and then deleted in the CVS repository. If you get errors like |
52 | | | 60 | |
53 | cvs [update aborted]: cannot open directory | | 61 | cvs [update aborted]: cannot open directory |
54 | /cvsroot/src/external/mit/lua/src: No such file or directory | | 62 | /cvsroot/src/external/mit/lua/src: No such file or directory |
55 | | | 63 | |
56 | then delete your local copy of that directory tree and try again. | | 64 | then delete your local copy of that directory tree and try again. |
57 | | | 65 | |
58 | 20140530: | | 66 | 20140530: |
59 | ARM eABI switched to DWARF based exception handling. This requires | | 67 | ARM eABI switched to DWARF based exception handling. This requires |
60 | rebuilding all C++ code. It is strongly advised to do a clean build. | | 68 | rebuilding all C++ code. It is strongly advised to do a clean build. |
61 | | | 69 | |
62 | 20140131: | | 70 | 20140131: |
63 | The new compiler_rt/libc integration moved a few things. It is strongly | | 71 | The new compiler_rt/libc integration moved a few things. It is strongly |
64 | advised to do a clean build. At least lib/libc, the compat version(s) | | 72 | advised to do a clean build. At least lib/libc, the compat version(s) |
65 | of libc, libkern, rump and the kernels need to be cleaned. | | 73 | of libc, libkern, rump and the kernels need to be cleaned. |
66 | | | 74 | |
67 | 20131227: | | 75 | 20131227: |
68 | 1. The new ntpd runs in a restricted mode to prevent amplification | | 76 | 1. The new ntpd runs in a restricted mode to prevent amplification |
69 | attacks. If you need ntpdc to work you need to explicitly enable | | 77 | attacks. If you need ntpdc to work you need to explicitly enable |
70 | mode7 in your config file. Make sure you put the necessary restrict | | 78 | mode7 in your config file. Make sure you put the necessary restrict |
71 | statements to avoid being exposed. | | 79 | statements to avoid being exposed. |
72 | 2. strncat has moved from lib/libc to common/lib/libc; you might need | | 80 | 2. strncat has moved from lib/libc to common/lib/libc; you might need |
73 | to make clean in libc | | 81 | to make clean in libc |
74 | | | 82 | |
75 | 20131129: | | 83 | 20131129: |
76 | The GMP sources were updated, and builds will likely fail without | | 84 | The GMP sources were updated, and builds will likely fail without |
77 | cleaning their build trees for both tools and in-tree, like below. | | 85 | cleaning their build trees for both tools and in-tree, like below. |
78 | | | 86 | |
79 | 20131128: | | 87 | 20131128: |
80 | The MPC and MPFR sources were updated, and builds may require their | | 88 | The MPC and MPFR sources were updated, and builds may require their |
81 | tools and in-tree directories cleaned for successful updates. | | 89 | tools and in-tree directories cleaned for successful updates. |
82 | | | 90 | |
83 | 20130605: | | 91 | 20130605: |
84 | The kernel option FAST_IPSEC no longer exists, it's been renamed | | 92 | The kernel option FAST_IPSEC no longer exists, it's been renamed |
85 | to IPSEC (and the older IPSEC version removed). | | 93 | to IPSEC (and the older IPSEC version removed). |
86 | | | 94 | |
87 | 20130605: | | 95 | 20130605: |
88 | Previous freetype installations eroneously installed private | | 96 | Previous freetype installations eroneously installed private |
89 | header files. If you are building against a non-empty $DESTDIR, | | 97 | header files. If you are building against a non-empty $DESTDIR, |
90 | please remove ${DESTDIR}//usr/X11R7/include/freetype2/freetype/. | | 98 | please remove ${DESTDIR}//usr/X11R7/include/freetype2/freetype/. |
91 | | | 99 | |
92 | 20130531: | | 100 | 20130531: |
93 | The xdm update may cause build failure due to xdm.man being | | 101 | The xdm update may cause build failure due to xdm.man being |
94 | in the obj tree. Make sure to ensure any like this: | | 102 | in the obj tree. Make sure to ensure any like this: |
95 | nbmake: nbmake: don't know how to make xdm.man. Stop | | 103 | nbmake: nbmake: don't know how to make xdm.man. Stop |
96 | is fixed by deleting the xdm.man in the obj tree. | | 104 | is fixed by deleting the xdm.man in the obj tree. |
97 | | | 105 | |
98 | 20130530: | | 106 | 20130530: |
99 | Updates of many xsrc packages will leave old .pc files around. | | 107 | Updates of many xsrc packages will leave old .pc files around. |
100 | Best to clean out the xsrc objdir entirely before rebuilds. | | 108 | Best to clean out the xsrc objdir entirely before rebuilds. |
101 | | | 109 | |
102 | 20130301: | | 110 | 20130301: |
103 | The removal of netiso requires manual removal of /usr/include/netiso | | 111 | The removal of netiso requires manual removal of /usr/include/netiso |
104 | prior to the build and make cleandir in /usr/src/usr.bin/{ktruss,kdump} | | 112 | prior to the build and make cleandir in /usr/src/usr.bin/{ktruss,kdump} |
105 | | | 113 | |
106 | 20120726: | | 114 | 20120726: |
107 | The update of OpenSSL requires cleaning both the OpenSSL build | | 115 | The update of OpenSSL requires cleaning both the OpenSSL build |
108 | directory and DESTDIR. *Even non-update builds require cleaning | | 116 | directory and DESTDIR. *Even non-update builds require cleaning |
109 | DESTDIR.* Builds done without taking these steps may fail, or in | | 117 | DESTDIR.* Builds done without taking these steps may fail, or in |
110 | some cases may succeed and install broken OpenSSL libraries that | | 118 | some cases may succeed and install broken OpenSSL libraries that |
111 | cause third-party software to link incorrectly and/or crash. | | 119 | cause third-party software to link incorrectly and/or crash. |
112 | | | 120 | |
113 | 20120507: | | 121 | 20120507: |
114 | The database schema for makemandb was changed. You will | | 122 | The database schema for makemandb was changed. You will |
115 | need to update the database using 'makemandb -f' or wait | | 123 | need to update the database using 'makemandb -f' or wait |
116 | for the next weekly run to fix it. | | 124 | for the next weekly run to fix it. |
117 | | | 125 | |
118 | 20120319: | | 126 | 20120319: |
119 | sys/conf/Makefile.kern.inc has been modified to adjust the | | 127 | sys/conf/Makefile.kern.inc has been modified to adjust the |
120 | size of db_symtab automatically. You need to update dbsym in | | 128 | size of db_symtab automatically. You need to update dbsym in |
121 | your $TOOLDIR to build kernels with options SYMTAB_SPACE. If | | 129 | your $TOOLDIR to build kernels with options SYMTAB_SPACE. If |
122 | you don't want this behavior, add AUTO_SYMTAB_SPACE=no to your | | 130 | you don't want this behavior, add AUTO_SYMTAB_SPACE=no to your |
123 | mk.conf. | | 131 | mk.conf. |
124 | | | 132 | |
125 | 20120216: | | 133 | 20120216: |
126 | Default for MKCATPAGES changed to NO. Update builds will fail | | 134 | Default for MKCATPAGES changed to NO. Update builds will fail |
127 | unless DESTDIR is cleaned manually. If you built between 20120207 | | 135 | unless DESTDIR is cleaned manually. If you built between 20120207 |
128 | and 20120216, daily and weekly could have created an unreadable | | 136 | and 20120216, daily and weekly could have created an unreadable |
129 | /var/db/man.db index for apropos. Running makemandb -f or | | 137 | /var/db/man.db index for apropos. Running makemandb -f or |
130 | the next run of weekly will fix it. | | 138 | the next run of weekly will fix it. |
131 | | | 139 | |
132 | 20111227: | | 140 | 20111227: |
133 | If you built between 20111225 and 20111227 you need to remove | | 141 | If you built between 20111225 and 20111227 you need to remove |
134 | /usr/lib/libpam.so.4* and /usr/lib/security/*.so.4, since the | | 142 | /usr/lib/libpam.so.4* and /usr/lib/security/*.so.4, since the |
135 | bump has been reverted. | | 143 | bump has been reverted. |
136 | | | 144 | |
137 | 20111125: | | 145 | 20111125: |
138 | The "rnd" pseudodevice has been added to sys/conf/std, which | | 146 | The "rnd" pseudodevice has been added to sys/conf/std, which |
139 | means it should no longer be explicitly listed in kernel | | 147 | means it should no longer be explicitly listed in kernel |
140 | configuration files. The line "pseudo-device rnd" should be | | 148 | configuration files. The line "pseudo-device rnd" should be |
141 | removed from any custom kernel config files users may have. | | 149 | removed from any custom kernel config files users may have. |
142 | | | 150 | |
143 | 20111119: | | 151 | 20111119: |
144 | A problem with the datastructures used by the rndctl(8) | | 152 | A problem with the datastructures used by the rndctl(8) |
145 | utility (pointers in datastructures in an array, making 32->64 | | 153 | utility (pointers in datastructures in an array, making 32->64 |
146 | bit compatibility very painful) has been fixed in a | | 154 | bit compatibility very painful) has been fixed in a |
147 | non-backwards-compatible way. If you replace your kernel, | | 155 | non-backwards-compatible way. If you replace your kernel, |
148 | replace your rndctl executable too. | | 156 | replace your rndctl executable too. |
149 | | | 157 | |
150 | 20111001: | | 158 | 20111001: |
151 | the prop_*_send_syscall() functions from proplib(3) have been | | 159 | the prop_*_send_syscall() functions from proplib(3) have been |
152 | changed and their new version is not backward compatible with the old | | 160 | changed and their new version is not backward compatible with the old |
153 | one. So ensure that all consumers of these functions (currently: | | 161 | one. So ensure that all consumers of these functions (currently: |
154 | quota2 code and its tests) are updated together with the new lib. | | 162 | quota2 code and its tests) are updated together with the new lib. |
155 | | | 163 | |
156 | 20110817: | | 164 | 20110817: |
157 | sparc has been changed to use GCC 4.5.3, so any objdir or | | 165 | sparc has been changed to use GCC 4.5.3, so any objdir or |
158 | DESTDIR for them should be deleted before updating. | | 166 | DESTDIR for them should be deleted before updating. |
159 | | | 167 | |
160 | 20110806: | | 168 | 20110806: |
161 | i386 and amd64 have been changed to use GCC 4.5.3, so any | | 169 | i386 and amd64 have been changed to use GCC 4.5.3, so any |
162 | objdir or DESTDIR for them should be deleted before updating. | | 170 | objdir or DESTDIR for them should be deleted before updating. |
163 | | | 171 | |
164 | 20110805: | | 172 | 20110805: |
165 | The update to GCC 4.5.3 requires a non-trivial portion of | | 173 | The update to GCC 4.5.3 requires a non-trivial portion of |
166 | the tree to be cleaned. Best to delete both objdir and | | 174 | the tree to be cleaned. Best to delete both objdir and |
167 | DESTDIR before running this update. So far, only the | | 175 | DESTDIR before running this update. So far, only the |
168 | sparc64, mips and powerpc platforms have changed. | | 176 | sparc64, mips and powerpc platforms have changed. |
169 | | | 177 | |
170 | 20110803: | | 178 | 20110803: |
171 | The layout of external/public-domain/xz has changed. To do an | | 179 | The layout of external/public-domain/xz has changed. To do an |
172 | update build you will have to remove the contents of the OBJDIR | | 180 | update build you will have to remove the contents of the OBJDIR |
173 | for external/public-domain/xz/bin by hand as the xz entry there | | 181 | for external/public-domain/xz/bin by hand as the xz entry there |
174 | is now a directory. | | 182 | is now a directory. |
175 | | | 183 | |
176 | 20110410: | | 184 | 20110410: |
177 | The configuration of src/tools/gcc has changed. To do an | | 185 | The configuration of src/tools/gcc has changed. To do an |
178 | update build you have to clean both tools/binutils and | | 186 | update build you have to clean both tools/binutils and |
179 | tools/gcc by hand. | | 187 | tools/gcc by hand. |
180 | | | 188 | |
181 | 20110328: | | 189 | 20110328: |
182 | Building the Xorg binary was moved into a subdirectory to fix | | 190 | Building the Xorg binary was moved into a subdirectory to fix |
183 | ordering issues with "make all". It may be necessary to remove | | 191 | ordering issues with "make all". It may be necessary to remove |
184 | the OBJDIR for external/mit/xorg/server/xorg-server/hw/xfree86 | | 192 | the OBJDIR for external/mit/xorg/server/xorg-server/hw/xfree86 |
185 | if your update build fails, as the "Xorg" entry there is now a | | 193 | if your update build fails, as the "Xorg" entry there is now a |
186 | directory. | | 194 | directory. |
187 | | | 195 | |
188 | 20110121: | | 196 | 20110121: |
189 | Assembler files no longer use -traditional-cpp. This can break | | 197 | Assembler files no longer use -traditional-cpp. This can break |
190 | the build of individual parts of the tree. This is handled | | 198 | the build of individual parts of the tree. This is handled |
191 | correctly by build.sh. Manual builds have to update /usr/share/mk | | 199 | correctly by build.sh. Manual builds have to update /usr/share/mk |
192 | and re-run config(1) for any kernel configurations as needed. | | 200 | and re-run config(1) for any kernel configurations as needed. |
193 | | | 201 | |
194 | 20101217: | | 202 | 20101217: |
195 | The tcpdump(8) program was changed to drop privileges and chroot(2) | | 203 | The tcpdump(8) program was changed to drop privileges and chroot(2) |
196 | by default. It may be necessary to manually update passwd(5) and | | 204 | by default. It may be necessary to manually update passwd(5) and |
197 | group(5) in order to make the program work with existing setups. | | 205 | group(5) in order to make the program work with existing setups. |
198 | | | 206 | |
199 | 20101125: | | 207 | 20101125: |
200 | The latest changes to setenv(3) dissallow setting environment | | 208 | The latest changes to setenv(3) dissallow setting environment |
201 | variables with names that contain '='. Revision 1.18 of env.c | | 209 | variables with names that contain '='. Revision 1.18 of env.c |
202 | assumed that this was allowed. Installing a new libc with an | | 210 | assumed that this was allowed. Installing a new libc with an |
203 | old copy of /usr/bin/env causes env x=1 printenv | grep x= to | | 211 | old copy of /usr/bin/env causes env x=1 printenv | grep x= to |
204 | break which affects the autoconf tests for dependency finding, | | 212 | break which affects the autoconf tests for dependency finding, |
205 | so building gcc will end up printing: | | 213 | so building gcc will end up printing: |
206 | checking dependency style of gcc... none | | 214 | checking dependency style of gcc... none |
207 | configure: error: no usable dependency style found | | 215 | configure: error: no usable dependency style found |
208 | Fix it by rebuilding and re-installing env. | | 216 | Fix it by rebuilding and re-installing env. |
209 | | | 217 | |
210 | 20101119: | | 218 | 20101119: |
211 | Recent Xorg updates in xsrc/external/mit/ may cause various build | | 219 | Recent Xorg updates in xsrc/external/mit/ may cause various build |
212 | or run-time problems. Delete your entire DESTDIR and OBJDIR if you | | 220 | or run-time problems. Delete your entire DESTDIR and OBJDIR if you |
213 | have any build problems with xsrc, or problems with mismatched | | 221 | have any build problems with xsrc, or problems with mismatched |
214 | versions between xorg-server and drivers. | | 222 | versions between xorg-server and drivers. |
215 | | | 223 | |
216 | 20100604: | | 224 | 20100604: |
217 | The update of ATF to 0.9 causes old tests written in shell to fail | | 225 | The update of ATF to 0.9 causes old tests written in shell to fail |
218 | unless they are rebuilt. If you are building with MKUPDATE=yes, | | 226 | unless they are rebuilt. If you are building with MKUPDATE=yes, |
219 | you need to clean the src/external/bsd/atf/tests/ and the src/tests/ | | 227 | you need to clean the src/external/bsd/atf/tests/ and the src/tests/ |
220 | trees by hand. | | 228 | trees by hand. |
221 | | | 229 | |
222 | 20100522: | | 230 | 20100522: |
223 | Recent Xorg updates in xsrc/external/mit/ will cause various build | | 231 | Recent Xorg updates in xsrc/external/mit/ will cause various build |
224 | problems. Delete your entire DESTDIR and OBJDIR if you have any | | 232 | problems. Delete your entire DESTDIR and OBJDIR if you have any |
225 | build problems with xsrc. | | 233 | build problems with xsrc. |
226 | | | 234 | |
227 | 20100522: | | 235 | 20100522: |
228 | private section of <ctype.h> was splitted, and now mklocale(1) | | 236 | private section of <ctype.h> was splitted, and now mklocale(1) |
229 | include ctype_local.h, so you have to make cleandir in tools/mklocale. | | 237 | include ctype_local.h, so you have to make cleandir in tools/mklocale. |
230 | | | 238 | |
231 | 20100520: | | 239 | 20100520: |
232 | The location of the xkb compiled descriptions has changed. Please | | 240 | The location of the xkb compiled descriptions has changed. Please |
233 | remove usr/X11R7/lib/X11/xkb/compiled from your $DESTDIR. | | 241 | remove usr/X11R7/lib/X11/xkb/compiled from your $DESTDIR. |
234 | | | 242 | |
235 | 20100222: | | 243 | 20100222: |
236 | The shared objects file extension has been changed from .so to | | 244 | The shared objects file extension has been changed from .so to |
237 | .pico, in order to avoid conflicts with shared libraries names | | 245 | .pico, in order to avoid conflicts with shared libraries names |
238 | libXX.so. All now stale regular .so files can be removed from | | 246 | libXX.so. All now stale regular .so files can be removed from |
239 | your object directories. | | 247 | your object directories. |
240 | | | 248 | |
241 | 20100204: | | 249 | 20100204: |
242 | The termcap database has been removed from the sources, | | 250 | The termcap database has been removed from the sources, |
243 | but has not been marked obsolete so it is not removed | | 251 | but has not been marked obsolete so it is not removed |
244 | from the system when upgrading. | | 252 | from the system when upgrading. |
245 | As such, you will need to remove them from your object | | 253 | As such, you will need to remove them from your object |
246 | and destination directories. | | 254 | and destination directories. |
247 | | | 255 | |
248 | 20091101: | | 256 | 20091101: |
249 | After updating, it may be necessary to make the 'cleandir' | | 257 | After updating, it may be necessary to make the 'cleandir' |
250 | target in src/tools/yacc/ and in src/usr.bin/yacc/ before a | | 258 | target in src/tools/yacc/ and in src/usr.bin/yacc/ before a |
251 | 'build.sh -u tools' or 'build.sh -u distribution'. Ditto | | 259 | 'build.sh -u tools' or 'build.sh -u distribution'. Ditto |
252 | src/tools/lex/ and src/usr.bin/lex/. | | 260 | src/tools/lex/ and src/usr.bin/lex/. |
253 | | | 261 | |
254 | 20091001: | | 262 | 20091001: |
255 | On amd64 you must rebuild tools (to get the new binutils) | | 263 | On amd64 you must rebuild tools (to get the new binutils) |
256 | before building a kernel, or the build fails on cpufunc.S. | | 264 | before building a kernel, or the build fails on cpufunc.S. |
257 | | | 265 | |
258 | 20091001: | | 266 | 20091001: |
259 | An error will create a ./usr/X11R7/lib/X11/xkb/compiled/xkb | | 267 | An error will create a ./usr/X11R7/lib/X11/xkb/compiled/xkb |
260 | symlink, failing the build. Delete the link, and the subdir | | 268 | symlink, failing the build. Delete the link, and the subdir |
261 | it is in, and retry your build. | | 269 | it is in, and retry your build. |
262 | | | 270 | |
263 | 20090718: | | 271 | 20090718: |
264 | libc build changed so that strchr() provides the extra entry | | 272 | libc build changed so that strchr() provides the extra entry |
265 | point for index(). Update build of libc.a (and libc_pic.a) | | 273 | point for index(). Update build of libc.a (and libc_pic.a) |
266 | may fail because the archive contains the unwanted index.o. | | 274 | may fail because the archive contains the unwanted index.o. |
267 | (Similarly for strrchr() and rindex().) | | 275 | (Similarly for strrchr() and rindex().) |
268 | | | 276 | |
269 | 20090709: | | 277 | 20090709: |
270 | Native Xorg was upgraded again. Builds will probably fail again | | 278 | Native Xorg was upgraded again. Builds will probably fail again |
271 | without a clean objdir, at least for src/external/mit/xorg. | | 279 | without a clean objdir, at least for src/external/mit/xorg. |
272 | | | 280 | |
273 | 20090616: | | 281 | 20090616: |
274 | Native Xorg was upgraded. Builds will need a clean objdir for | | 282 | Native Xorg was upgraded. Builds will need a clean objdir for |
275 | src/external/mit/xorg. Upgrading a system from sets will not | | 283 | src/external/mit/xorg. Upgrading a system from sets will not |
276 | work properly yet as the /usr/X11R7/lib/X11/xkb/symbols/pc | | 284 | work properly yet as the /usr/X11R7/lib/X11/xkb/symbols/pc |
277 | subdirectory has been changed into a file, and this needs to | | 285 | subdirectory has been changed into a file, and this needs to |
278 | be manually "rm -r"'ed before installing xbase.tgz. | | 286 | be manually "rm -r"'ed before installing xbase.tgz. |
279 | | | 287 | |
280 | 20090501: | | 288 | 20090501: |
281 | Several new functions were added to string.h/libc, and this | | 289 | Several new functions were added to string.h/libc, and this |
282 | can cause autoconf problems during the tool build for people | | 290 | can cause autoconf problems during the tool build for people |
283 | who fail to clean out their tools objects properly. If you | | 291 | who fail to clean out their tools objects properly. If you |
284 | note messages about stpcpy, stpncpy or strnlen accompanying a | | 292 | note messages about stpcpy, stpncpy or strnlen accompanying a |
285 | failure during the tool build, clean out all your tools | | 293 | failure during the tool build, clean out all your tools |
286 | objects and start again. | | 294 | objects and start again. |
287 | | | 295 | |
288 | 20090325: | | 296 | 20090325: |
289 | The i386 port was switched to i486 default toolchain. This requires | | 297 | The i386 port was switched to i486 default toolchain. This requires |
290 | cleaning your src/tools directory and $TOOLDIR and rebuilding them. | | 298 | cleaning your src/tools directory and $TOOLDIR and rebuilding them. |
291 | | | 299 | |
292 | 20090126: | | 300 | 20090126: |
293 | The __posix_fadvise50 system call changed assembly stub type. You | | 301 | The __posix_fadvise50 system call changed assembly stub type. You |
294 | need to 'rm -f __posix_fadvise50.*' in the libc build directory | | 302 | need to 'rm -f __posix_fadvise50.*' in the libc build directory |
295 | to avoid using the old assembly stub. | | 303 | to avoid using the old assembly stub. |
296 | | | 304 | |
297 | 20090202: | | 305 | 20090202: |
298 | pkg_install now depends on the pkgdb cache for automatic conflict | | 306 | pkg_install now depends on the pkgdb cache for automatic conflict |
299 | detection. It is recommented to rebuild the cache with | | 307 | detection. It is recommented to rebuild the cache with |
300 | ``pkg_admin rebuild''. | | 308 | ``pkg_admin rebuild''. |
301 | | | 309 | |
302 | 20090110: | | 310 | 20090110: |
303 | time_t and dev_t have been bumped to 64 bit quantities. To upgrade: | | 311 | time_t and dev_t have been bumped to 64 bit quantities. To upgrade: |
304 | 1. Make sure your kernel has COMPAT_50 in it. Build and install. | | 312 | 1. Make sure your kernel has COMPAT_50 in it. Build and install. |
305 | This is needed even in the MODULAR kernel because there is | | 313 | This is needed even in the MODULAR kernel because there is |
306 | conditionally compiled code in rtsock.c. | | 314 | conditionally compiled code in rtsock.c. |
307 | 2. make sure build.sh completes and the binaries in a chroot work | | 315 | 2. make sure build.sh completes and the binaries in a chroot work |
308 | before installing. | | 316 | before installing. |
309 | 3. If you don't use build.sh and you build directly to root, and | | 317 | 3. If you don't use build.sh and you build directly to root, and |
310 | your build breaks in the middle, don't despair. Make sure headers | | 318 | your build breaks in the middle, don't despair. Make sure headers |
311 | are installed properly, and start building libraries first libc | | 319 | are installed properly, and start building libraries first libc |
312 | and libutil, install them and then continue building all the | | 320 | and libutil, install them and then continue building all the |
313 | libraries in src/lib and src/gnu/lib and install them. Once | | 321 | libraries in src/lib and src/gnu/lib and install them. Once |
314 | the new libraries are installed, you can restart the build. | | 322 | the new libraries are installed, you can restart the build. |
315 | 4. If you compile packages and you notice link time warnings, | | 323 | 4. If you compile packages and you notice link time warnings, |
316 | rebuild the required packages to update their shared libraries. | | 324 | rebuild the required packages to update their shared libraries. |
317 | Any package you rebuild will require rebuilding all the packages | | 325 | Any package you rebuild will require rebuilding all the packages |
318 | that depend on it. | | 326 | that depend on it. |
319 | 5. Next time you run pwd_mkdb with the new binary, the file | | 327 | 5. Next time you run pwd_mkdb with the new binary, the file |
320 | will be upgraded and it will not be backwards compatible. | | 328 | will be upgraded and it will not be backwards compatible. |
321 | 6. The utmpx/wtmpx files (/var/run/utmpx and /var/log/wtmpx, see | | 329 | 6. The utmpx/wtmpx files (/var/run/utmpx and /var/log/wtmpx, see |
322 | lastlogx(5)) have been versioned, and there is a heuristic | | 330 | lastlogx(5)) have been versioned, and there is a heuristic |
323 | for utmp. You are better off removing the old files after | | 331 | for utmp. You are better off removing the old files after |
324 | upgrading. The automated clearing of /var/run during | | 332 | upgrading. The automated clearing of /var/run during |
325 | boot, and the automated rotating of files in /var/log by | | 333 | boot, and the automated rotating of files in /var/log by |
326 | newsyslog(8), may mean that you do not have to remove the | | 334 | newsyslog(8), may mean that you do not have to remove the |
327 | files manually. | | 335 | files manually. |
328 | 7. The optional accounting file (/var/account/acct, see | | 336 | 7. The optional accounting file (/var/account/acct, see |
329 | accton(8)) has not been versioned, and will need to be | | 337 | accton(8)) has not been versioned, and will need to be |
330 | removed. The automatic rotation of the accounting file by | | 338 | removed. The automatic rotation of the accounting file by |
331 | /etc/daily limits the bad consequences of failure to remove | | 339 | /etc/daily limits the bad consequences of failure to remove |
332 | the file. | | 340 | the file. |
333 | 8. Application software that writes time_t to binary files on | | 341 | 8. Application software that writes time_t to binary files on |
334 | disk will break or need attention. Most notably: if you are | | 342 | disk will break or need attention. Most notably: if you are |
335 | using PostgreSQL < 8.4, you need to dump your databases, | | 343 | using PostgreSQL < 8.4, you need to dump your databases, |
336 | rebuild PostgreSQL with the new time_t, then restore. | | 344 | rebuild PostgreSQL with the new time_t, then restore. |
337 | | | 345 | |
338 | 20081219: | | 346 | 20081219: |
339 | config(1) has been updated, and one of the files it creates - | | 347 | config(1) has been updated, and one of the files it creates - |
340 | swapnetbsd.o - has changed format. You need to rebuild config | | 348 | swapnetbsd.o - has changed format. You need to rebuild config |
341 | (done automatically by build.sh) and then you need to rerun | | 349 | (done automatically by build.sh) and then you need to rerun |
342 | config on all kernel configuration files before rebuilding those | | 350 | config on all kernel configuration files before rebuilding those |
343 | kernels. | | 351 | kernels. |
344 | | | 352 | |
345 | 20081205: | | 353 | 20081205: |
346 | If you build with MKX11=no, you should remove /etc/rc.d/xdm and | | 354 | If you build with MKX11=no, you should remove /etc/rc.d/xdm and |
347 | /etc/rc.d/xfs from DESTDIR because those files were moved to the xetc | | 355 | /etc/rc.d/xfs from DESTDIR because those files were moved to the xetc |
348 | set and will appear as extra files for MKX11=no update builds. | | 356 | set and will appear as extra files for MKX11=no update builds. |
349 | | | 357 | |
350 | 20081122: | | 358 | 20081122: |
351 | On i386, various kernel options(4) in GENERIC including | | 359 | On i386, various kernel options(4) in GENERIC including |
352 | file systems have been disabled and moved into kernel modules. | | 360 | file systems have been disabled and moved into kernel modules. |
353 | Before trying a new GENERIC kernel, you have to prepare the | | 361 | Before trying a new GENERIC kernel, you have to prepare the |
354 | following files as well as a new GENERIC kernel: | | 362 | following files as well as a new GENERIC kernel: |
355 | | | 363 | |
356 | - build and install kernel modules from src/sys/modules | | 364 | - build and install kernel modules from src/sys/modules |
357 | | | 365 | |
358 | - install the latest bootloader, which will load a module | | 366 | - install the latest bootloader, which will load a module |
359 | for the file system from which the kernel is loaded automatically | | 367 | for the file system from which the kernel is loaded automatically |
360 | | | 368 | |
361 | If you have to load your kernel from a file system which is not of | | 369 | If you have to load your kernel from a file system which is not of |
362 | the same type as the root file system, you have to load the necessary | | 370 | the same type as the root file system, you have to load the necessary |
363 | file system module manually on the boot prompt or in the boot.cfg file. | | 371 | file system module manually on the boot prompt or in the boot.cfg file. |
364 | | | 372 | |
365 | 20080827: | | 373 | 20080827: |
366 | If you built and installed a libc from sources between | | 374 | If you built and installed a libc from sources between |
367 | 2008/08/20 and 2008/08/26 you got a broken strtouq(3) | | 375 | 2008/08/20 and 2008/08/26 you got a broken strtouq(3) |
368 | which results in false errors reported by lint(1). | | 376 | which results in false errors reported by lint(1). |
369 | Since this breaks the libc build itself, manual help is | | 377 | Since this breaks the libc build itself, manual help is |
370 | needed -- lint must be disabled temporarily, e.g.: | | 378 | needed -- lint must be disabled temporarily, e.g.: |
371 | $ (cd lib/libc && make MKLINT=no dependall install) | | 379 | $ (cd lib/libc && make MKLINT=no dependall install) |
372 | | | 380 | |
373 | 20080813: | | 381 | 20080813: |
374 | MKDEBUG build was broken because the .depend files did not know | | 382 | MKDEBUG build was broken because the .depend files did not know |
375 | about .go files. You need to remove all .depend files and rebuild. | | 383 | about .go files. You need to remove all .depend files and rebuild. |
376 | | | 384 | |
377 | 20080802: | | 385 | 20080802: |
378 | A regression in binary compatibility for pthread_mutex_t has | | 386 | A regression in binary compatibility for pthread_mutex_t has |
379 | been fixed. Unfortunately, the price is breaking compatibility | | 387 | been fixed. Unfortunately, the price is breaking compatibility |
380 | for -current. | | 388 | for -current. |
381 | | | 389 | |
382 | Threaded programs (using libpthread) and C++ programs (using | | 390 | Threaded programs (using libpthread) and C++ programs (using |
383 | libstdc++) compiled after 20070907 and before 20080802 need to | | 391 | libstdc++) compiled after 20070907 and before 20080802 need to |
384 | be recompiled. | | 392 | be recompiled. |
385 | | | 393 | |
386 | One way to find affected pkgsrc packages: | | 394 | One way to find affected pkgsrc packages: |
387 | | | 395 | |
388 | $ grep REQUIRES=/usr/lib/libpthread /var/db/pkg/*/+BUILD_INFO | | 396 | $ grep REQUIRES=/usr/lib/libpthread /var/db/pkg/*/+BUILD_INFO |
389 | $ grep REQUIRES=/usr/lib/libstdc++ /var/db/pkg/*/+BUILD_INFO | | 397 | $ grep REQUIRES=/usr/lib/libstdc++ /var/db/pkg/*/+BUILD_INFO |
390 | | | 398 | |
391 | 20080731: | | 399 | 20080731: |
392 | WAPBL (metadata journaling support) has been added, but at this | | 400 | WAPBL (metadata journaling support) has been added, but at this |
393 | time isn't backwards compatible with pre-WAPBL aware kernels | | 401 | time isn't backwards compatible with pre-WAPBL aware kernels |
394 | and userland (fsck_ffs in particular). Please make sure you | | 402 | and userland (fsck_ffs in particular). Please make sure you |
395 | don't use a journaled filesystem with an older kernel/userland, | | 403 | don't use a journaled filesystem with an older kernel/userland, |
396 | especially an uncleanly mounted journaled filesystem. WAPBL | | 404 | especially an uncleanly mounted journaled filesystem. WAPBL |
397 | also requires the super block to be in the UFS2 format. You | | 405 | also requires the super block to be in the UFS2 format. You |
398 | can use fsck_ffs -c 4 to update the superblock format. | | 406 | can use fsck_ffs -c 4 to update the superblock format. |
399 | | | 407 | |
400 | 20080721: | | 408 | 20080721: |
401 | Assembler warnings are now fatal if $WARNS>0 and $NOGCCERROR | | 409 | Assembler warnings are now fatal if $WARNS>0 and $NOGCCERROR |
402 | isn't defined. | | 410 | isn't defined. |
403 | | | 411 | |
404 | 20080531: | | 412 | 20080531: |
405 | The ioctl number of DRVSUSPENDDEV command on /dev/drvctl changed | | 413 | The ioctl number of DRVSUSPENDDEV command on /dev/drvctl changed |
406 | from 125 (conflicted with DRVCTLCOMMAND) to 129. The drvctl(8) | | 414 | from 125 (conflicted with DRVCTLCOMMAND) to 129. The drvctl(8) |
407 | utility needs to be rebuilt and reinstalled as older binaries | | 415 | utility needs to be rebuilt and reinstalled as older binaries |
408 | won't work correctly. The following sequence of commands: | | 416 | won't work correctly. The following sequence of commands: |
409 | | | 417 | |
410 | $ (cd sys/sys/ && nbmake-$arch includes) | | 418 | $ (cd sys/sys/ && nbmake-$arch includes) |
411 | $ (cd sbin/drvctl/ && nbmake-$arch clean) | | 419 | $ (cd sbin/drvctl/ && nbmake-$arch clean) |
412 | $ (cd sbin/drvctl/ && nbmake-$arch all) | | 420 | $ (cd sbin/drvctl/ && nbmake-$arch all) |
413 | | | 421 | |
414 | leaves new drvctl utility in sbin/drvctl build directory. | | 422 | leaves new drvctl utility in sbin/drvctl build directory. |
415 | | | 423 | |
416 | 20080503: | | 424 | 20080503: |
417 | The <bsd.lib.mk> variable MKPRIVATELIB was renamed to LIBISPRIVATE. | | 425 | The <bsd.lib.mk> variable MKPRIVATELIB was renamed to LIBISPRIVATE. |
418 | | | 426 | |
419 | 20080521: | | 427 | 20080521: |
420 | For a while, unprivileged UPDATE builds would fail to | | 428 | For a while, unprivileged UPDATE builds would fail to |
421 | succeed at the checkflist stage, complaining that | | 429 | succeed at the checkflist stage, complaining that |
422 | ${DESTDIR}/stand/<arch>/ did not exist. A fix for this | | 430 | ${DESTDIR}/stand/<arch>/ did not exist. A fix for this |
423 | problem was committed to share/mk/bsd.kmodule.mk, revision 1.9. | | 431 | problem was committed to share/mk/bsd.kmodule.mk, revision 1.9. |
424 | If you already hit this problem, update the .mk file, | | 432 | If you already hit this problem, update the .mk file, |
425 | remove ${DESTDIR}/stand/<arch>, and re-run the build. | | 433 | remove ${DESTDIR}/stand/<arch>, and re-run the build. |
426 | | | 434 | |
427 | 20080303: | | 435 | 20080303: |
428 | Linker warnings are now fatal if $WARNS>0. | | 436 | Linker warnings are now fatal if $WARNS>0. |
429 | | | 437 | |
430 | 20080126: | | 438 | 20080126: |
431 | The posix_fadvise system call has been changed from an assembly | | 439 | The posix_fadvise system call has been changed from an assembly |
432 | stub, to a c file that calls an assembly stub. You need to | | 440 | stub, to a c file that calls an assembly stub. You need to |
433 | 'rm -f posix_fadvise.* .depend' in the libc build directory to | | 441 | 'rm -f posix_fadvise.* .depend' in the libc build directory to |
434 | avoid using the old assembly stub. | | 442 | avoid using the old assembly stub. |
435 | | | 443 | |
436 | 20071209: | | 444 | 20071209: |
437 | The acpiec(4) driver has been split into two attachments. If you | | 445 | The acpiec(4) driver has been split into two attachments. If you |
438 | get ACPI errors before the attachment, please update your kernel | | 446 | get ACPI errors before the attachment, please update your kernel |
439 | configuration file appropriately or see GENERIC for more details. | | 447 | configuration file appropriately or see GENERIC for more details. |
440 | | | 448 | |
441 | 20071115: | | 449 | 20071115: |
442 | The it(4) driver has been renamed to itesio(4) and the old port | | 450 | The it(4) driver has been renamed to itesio(4) and the old port |
443 | argument specified in the kernel configuration file is not valid | | 451 | argument specified in the kernel configuration file is not valid |
444 | anymore. The itesio(4) driver now uses the Super I/O address port | | 452 | anymore. The itesio(4) driver now uses the Super I/O address port |
445 | rather than the EC address port. Please update your kernel | | 453 | rather than the EC address port. Please update your kernel |
446 | configuration file appropriately or see GENERIC for more details. | | 454 | configuration file appropriately or see GENERIC for more details. |
447 | | | 455 | |
448 | 20071028: | | 456 | 20071028: |
449 | The pccons(4) driver has been removed from the NetBSD/shark port. | | 457 | The pccons(4) driver has been removed from the NetBSD/shark port. |
450 | You need to update any custom kernel configuration file you have | | 458 | You need to update any custom kernel configuration file you have |
451 | to remove any references to pccons (which includes removing the | | 459 | to remove any references to pccons (which includes removing the |
452 | now useless XSERVER option) and replace them with the correct | | 460 | now useless XSERVER option) and replace them with the correct |
453 | entries for the wscons driver. See the GENERIC configuration file | | 461 | entries for the wscons driver. See the GENERIC configuration file |
454 | for more details. | | 462 | for more details. |
455 | | | 463 | |
456 | 20070913: | | 464 | 20070913: |
457 | A latent bug in dhclient/dhcpd that caused it to be unable to | | 465 | A latent bug in dhclient/dhcpd that caused it to be unable to |
458 | enumerate interfaces was fixed. The bug began to cause | | 466 | enumerate interfaces was fixed. The bug began to cause |
459 | problems after 20070911 when the kernel's SIOCGIFCONF | | 467 | problems after 20070911 when the kernel's SIOCGIFCONF |
460 | implementation was repaired. From 20070529 to 20070911 racoon | | 468 | implementation was repaired. From 20070529 to 20070911 racoon |
461 | could not enumerate interfaces. (These are noted because | | 469 | could not enumerate interfaces. (These are noted because |
462 | normal kernel/userspace version matching hygiene is not | | 470 | normal kernel/userspace version matching hygiene is not |
463 | sufficient to avoid this problem.) Ensure that both kernel | | 471 | sufficient to avoid this problem.) Ensure that both kernel |
464 | and userland are from after 20070913. | | 472 | and userland are from after 20070913. |
465 | | | 473 | |
466 | 20070703: | | 474 | 20070703: |
467 | nbinstall has been renamed ${MACHINE_GNU_ARCH}-install. It | | 475 | nbinstall has been renamed ${MACHINE_GNU_ARCH}-install. It |
468 | calls the target-specific strip program, and the logic to pass | | 476 | calls the target-specific strip program, and the logic to pass |
469 | down STRIP from make has been removed. This requires a | | 477 | down STRIP from make has been removed. This requires a |
470 | re-installation of tools. | | 478 | re-installation of tools. |
471 | | | 479 | |
472 | 20070422: | | 480 | 20070422: |
473 | The way OS emulations lookup filenames inside the emulation root | | 481 | The way OS emulations lookup filenames inside the emulation root |
474 | has been changed. Rather than modify the pathname (and copy back | | 482 | has been changed. Rather than modify the pathname (and copy back |
475 | to userspace) namei() and lookup() directly check the emulation | | 483 | to userspace) namei() and lookup() directly check the emulation |
476 | root. One side effect is that absolute symlinks inside the emulated | | 484 | root. One side effect is that absolute symlinks inside the emulated |
477 | root file system will be relative to that file system - unless they | | 485 | root file system will be relative to that file system - unless they |
478 | start /../ this is useful when the emulated root is a real install | | 486 | start /../ this is useful when the emulated root is a real install |
479 | that has such links. | | 487 | that has such links. |
480 | This might affect symlinks that have been added to reference outside | | 488 | This might affect symlinks that have been added to reference outside |
481 | the emulated root. | | 489 | the emulated root. |
482 | | | 490 | |
483 | 20070412: | | 491 | 20070412: |
484 | The pckbc driver on sgimips IP32 has been removed. Use macekbc | | 492 | The pckbc driver on sgimips IP32 has been removed. Use macekbc |
485 | instead. See the GENERIC32_IP3x kernel configuration for an | | 493 | instead. See the GENERIC32_IP3x kernel configuration for an |
486 | example. | | 494 | example. |
487 | | | 495 | |
488 | 20070319: | | 496 | 20070319: |
489 | src/lib/libc/Makefile revision 1.129 broke libc and ld.elf_so | | 497 | src/lib/libc/Makefile revision 1.129 broke libc and ld.elf_so |
490 | on many platforms due to incorrect flags settings. If you | | 498 | on many platforms due to incorrect flags settings. If you |
491 | updated and built after about 20070315, do "nbmake-$arch | | 499 | updated and built after about 20070315, do "nbmake-$arch |
492 | cleandir" in src/lib/libc and src/libexec/ld.elf_so to force a | | 500 | cleandir" in src/lib/libc and src/libexec/ld.elf_so to force a |
493 | rebuild of object files that might have been built | | 501 | rebuild of object files that might have been built |
494 | incorrectly, and ensure that you have at least | | 502 | incorrectly, and ensure that you have at least |
495 | src/lib/libc/Makefile 1.130. | | 503 | src/lib/libc/Makefile 1.130. |
496 | | | 504 | |
497 | 20070210: | | 505 | 20070210: |
498 | src/sys/sys/{sa.h,savar.h} were removed. | | 506 | src/sys/sys/{sa.h,savar.h} were removed. |
499 | find ${OBJDIR} \( -name .depend -o -name '*.d' \) -print \ | | 507 | find ${OBJDIR} \( -name .depend -o -name '*.d' \) -print \ |
500 | | xargs egrep -l '/sa.h|/savar.h' | xargs rm | | 508 | | xargs egrep -l '/sa.h|/savar.h' | xargs rm |
501 | will allow dependencies on those files to get get rebuilt | | 509 | will allow dependencies on those files to get get rebuilt |
502 | | | 510 | |
503 | 20070209: | | 511 | 20070209: |
504 | The threading model was changed when the newlock2 branch | | 512 | The threading model was changed when the newlock2 branch |
505 | was merged to NetBSD-current. If you boot with a new | | 513 | was merged to NetBSD-current. If you boot with a new |
506 | kernel (version 4.99.10), then you also need a new pthread | | 514 | kernel (version 4.99.10), then you also need a new pthread |
507 | library (/usr/lib/libpthread.so.0.7). If you boot with | | 515 | library (/usr/lib/libpthread.so.0.7). If you boot with |
508 | an old kernel, then you need the old pthread library | | 516 | an old kernel, then you need the old pthread library |
509 | (/usr/lib/libpthread.so.0.6). Provided you keep the kernel and | | 517 | (/usr/lib/libpthread.so.0.6). Provided you keep the kernel and |
510 | the pthread library in sync, old threaded applications should | | 518 | the pthread library in sync, old threaded applications should |
511 | continue to work with an old or new kernel. Note that named(8) | | 519 | continue to work with an old or new kernel. Note that named(8) |
512 | is the only threaded application in the base system. | | 520 | is the only threaded application in the base system. |
513 | | | 521 | |
514 | 20061214: | | 522 | 20061214: |
515 | Following the move of string_to_flags() and flags_to_string() | | 523 | Following the move of string_to_flags() and flags_to_string() |
516 | from the bin/ls/ sources to libutil, users doing UPDATE builds | | 524 | from the bin/ls/ sources to libutil, users doing UPDATE builds |
517 | will need to do a "make cleandir" in | | 525 | will need to do a "make cleandir" in |
518 | tools/mtree/, tools/makefs/, tools/binstall/, tools/pax/, | | 526 | tools/mtree/, tools/makefs/, tools/binstall/, tools/pax/, |
519 | bin/pax/, bin/ls/, usr.sbin/mtree/, usr.sbin/makefs/, | | 527 | bin/pax/, bin/ls/, usr.sbin/mtree/, usr.sbin/makefs/, |
520 | usr.bin/xinstall/, libexec/ftpd/, rescue/, as well | | 528 | usr.bin/xinstall/, libexec/ftpd/, rescue/, as well |
521 | as the installation images in distrib/ | | 529 | as the installation images in distrib/ |
522 | in order to excise stale references to the old stat_flags.h header | | 530 | in order to excise stale references to the old stat_flags.h header |
523 | file in the ls sources -- stat_flags.h has been removed. | | 531 | file in the ls sources -- stat_flags.h has been removed. |
524 | | | 532 | |
525 | 20061108: | | 533 | 20061108: |
526 | The configure script used in the src/tools/gcc compiler has been | | 534 | The configure script used in the src/tools/gcc compiler has been |
527 | changed to indicate that our libc has ssp support built-in and | | 535 | changed to indicate that our libc has ssp support built-in and |
528 | does not depend on -lssp and -lssp-nonshared. You'll need to | | 536 | does not depend on -lssp and -lssp-nonshared. You'll need to |
529 | make clean in src/tools/gcc first to rebuild the compiler. | | 537 | make clean in src/tools/gcc first to rebuild the compiler. |
530 | | | 538 | |
531 | 20061009: | | 539 | 20061009: |
532 | The sysctl variables net.inet{,6}.tcp{,6}.newreno are no longer | | 540 | The sysctl variables net.inet{,6}.tcp{,6}.newreno are no longer |
533 | available. Use net.inet{,6}.tcp{,6}.congctl.selected instead. | | 541 | available. Use net.inet{,6}.tcp{,6}.congctl.selected instead. |
534 | | | 542 | |
535 | 20060814: | | 543 | 20060814: |
536 | The vt, vidcconsole, kbd, and rpckbd drivers on acorn32 have been | | 544 | The vt, vidcconsole, kbd, and rpckbd drivers on acorn32 have been |
537 | withdrawn. Use vidcvideo and pckbd instead. See the GENERIC | | 545 | withdrawn. Use vidcvideo and pckbd instead. See the GENERIC |
538 | kernel configuration for an example. X servers from the last | | 546 | kernel configuration for an example. X servers from the last |
539 | few years should cope. | | 547 | few years should cope. |
540 | | | 548 | |
541 | 20060703: | | 549 | 20060703: |
542 | MPACPI is no more. We always configure PCI interrupts using ACPI | | 550 | MPACPI is no more. We always configure PCI interrupts using ACPI |
543 | if we have an ACPI kernel. The option MPACPI_SCANPCI has been renamed | | 551 | if we have an ACPI kernel. The option MPACPI_SCANPCI has been renamed |
544 | to ACPI_SCANPCI. Thanks to work from fvdl. | | 552 | to ACPI_SCANPCI. Thanks to work from fvdl. |
545 | | | 553 | |
546 | 20060627: | | 554 | 20060627: |
547 | socket(2) has changed, and its system call has been versioned. | | 555 | socket(2) has changed, and its system call has been versioned. |
548 | For userlands with the old version of socket(2), make sure that | | 556 | For userlands with the old version of socket(2), make sure that |
549 | your kernel has 'options COMPAT_30' set, or else 'bad system call' | | 557 | your kernel has 'options COMPAT_30' set, or else 'bad system call' |
550 | errors will result. | | 558 | errors will result. |
551 | | | 559 | |
552 | Hints for a more successful build: | | 560 | Hints for a more successful build: |
553 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | 561 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
554 | Use build.sh, but do not use its "expert mode": | | 562 | Use build.sh, but do not use its "expert mode": |
555 | This will automatically build the tools in the | | 563 | This will automatically build the tools in the |
556 | correct order, and it will keep the tools and the | | 564 | correct order, and it will keep the tools and the |
557 | new build products from interfering with the running | | 565 | new build products from interfering with the running |
558 | system. This will allow you to ignore most of the | | 566 | system. This will allow you to ignore most of the |
559 | other advice in this file. | | 567 | other advice in this file. |
560 | Build a new kernel first: | | 568 | Build a new kernel first: |
561 | This makes sure that any new system calls or features | | 569 | This makes sure that any new system calls or features |
562 | expected by the new userland will be present. This | | 570 | expected by the new userland will be present. This |
563 | helps to avoid critical errors when upgrading. | | 571 | helps to avoid critical errors when upgrading. |
564 | Use object directories: | | 572 | Use object directories: |
565 | This helps to keep stale object | | 573 | This helps to keep stale object |
566 | files from polluting the build if a Makefile "forgets" | | 574 | files from polluting the build if a Makefile "forgets" |
567 | about one. It also makes it easier to clean up after | | 575 | about one. It also makes it easier to clean up after |
568 | a build. It's also necessary if you want to use the | | 576 | a build. It's also necessary if you want to use the |
569 | same source tree for multiple machines. | | 577 | same source tree for multiple machines. |
570 | To use object directories with build.sh: | | 578 | To use object directories with build.sh: |
571 | a) invoke build.sh with the "-M" or "-O" options. | | 579 | a) invoke build.sh with the "-M" or "-O" options. |
572 | To use object directories without using build.sh: | | 580 | To use object directories without using build.sh: |
573 | a) cd /usr/src ; make cleandir | | 581 | a) cd /usr/src ; make cleandir |
574 | b) Add "OBJMACHINE=yes" to /etc/mk.conf | | 582 | b) Add "OBJMACHINE=yes" to /etc/mk.conf |
575 | c) Add "MKOBJDIRS=yes" to /etc/mk.conf | | 583 | c) Add "MKOBJDIRS=yes" to /etc/mk.conf |
576 | d) cd /usr/src ; make build | | 584 | d) cd /usr/src ; make build |
577 | Note that running "make obj" in a directory will create | | 585 | Note that running "make obj" in a directory will create |
578 | in obj.$MACHINE directory. | | 586 | in obj.$MACHINE directory. |
579 | Build to a DESTDIR: | | 587 | Build to a DESTDIR: |
580 | This helps to keep old installed files (especially libraries) | | 588 | This helps to keep old installed files (especially libraries) |
581 | from interfering with the new build. | | 589 | from interfering with the new build. |
582 | To build to a DESTDIR with build.sh, use the "-D" option. | | 590 | To build to a DESTDIR with build.sh, use the "-D" option. |
583 | To build to a DESTDIR without using build.sh, set the DESTDIR | | 591 | To build to a DESTDIR without using build.sh, set the DESTDIR |
584 | environment variable before running make build. It should be | | 592 | environment variable before running make build. It should be |
585 | set to the pathname of an initially empty directory. | | 593 | set to the pathname of an initially empty directory. |
586 | Problems: if you do not use build.sh, you might need to | | 594 | Problems: if you do not use build.sh, you might need to |
587 | update critical utilities without using DESTDIR since | | 595 | update critical utilities without using DESTDIR since |
588 | nothing is executed from what is installed in DESTDIR. | | 596 | nothing is executed from what is installed in DESTDIR. |
589 | (See critical utils, below.) | | 597 | (See critical utils, below.) |
590 | Build often: | | 598 | Build often: |
591 | This keeps critical utilities current enough to not choke | | 599 | This keeps critical utilities current enough to not choke |
592 | on any other part of the source tree that depends on up to | | 600 | on any other part of the source tree that depends on up to |
593 | date functionality. If you use build.sh, you should not have | | 601 | date functionality. If you use build.sh, you should not have |
594 | this problem. | | 602 | this problem. |
595 | | | 603 | |
596 | What to do if things don't work: | | 604 | What to do if things don't work: |
597 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | 605 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
598 | When things don't work there are usually a few things that commonly | | 606 | When things don't work there are usually a few things that commonly |
599 | should be done. | | 607 | should be done. |
600 | 1) make includes | | 608 | 1) make includes |
601 | This should be done automatically by make build. | | 609 | This should be done automatically by make build. |
602 | 2) cd share/mk && make install | | 610 | 2) cd share/mk && make install |
603 | Again, automatically done by make build. | | 611 | Again, automatically done by make build. |
604 | | | 612 | |
605 | Failsafe rebuild of a small part of the tree: | | 613 | Failsafe rebuild of a small part of the tree: |
606 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | 614 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
607 | To make sure you rebuild something correctly you want to do | | 615 | To make sure you rebuild something correctly you want to do |
608 | something like the following: | | 616 | something like the following: |
609 | 1) Make sure the includes and .mk files are up to date. | | 617 | 1) Make sure the includes and .mk files are up to date. |
610 | 2) Make sure any program used to build the particular | | 618 | 2) Make sure any program used to build the particular |
611 | utility is up to date. (yacc, lex, etc...) | | 619 | utility is up to date. (yacc, lex, etc...) |
612 | 3) cd ...path/to/util... | | 620 | 3) cd ...path/to/util... |
613 | make cleandir | | 621 | make cleandir |
614 | rm ...all obj directories... | | 622 | rm ...all obj directories... |
615 | make cleandir # yes, again | | 623 | make cleandir # yes, again |
616 | make obj | | 624 | make obj |
617 | make depend && make | | 625 | make depend && make |
618 | | | 626 | |
619 | Failsafe rebuild of the entire tree: | | 627 | Failsafe rebuild of the entire tree: |
620 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | 628 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
621 | If you really want to make sure the source tree is clean and | | 629 | If you really want to make sure the source tree is clean and |
622 | ready for a build try the following. Note that sourcing /etc/mk.conf | | 630 | ready for a build try the following. Note that sourcing /etc/mk.conf |
623 | (a make(1) Makefile) in this manner is not right, and will not work | | 631 | (a make(1) Makefile) in this manner is not right, and will not work |
624 | for anyone who uses any make(1) features in /etc/mk.conf. | | 632 | for anyone who uses any make(1) features in /etc/mk.conf. |
625 | | | 633 | |
626 | ---cut here--- | | 634 | ---cut here--- |
627 | #!/bin/sh | | 635 | #!/bin/sh |
628 | . /etc/mk.conf | | 636 | . /etc/mk.conf |
629 | | | 637 | |
630 | if [ -z $NETBSDSRCDIR ] ; then | | 638 | if [ -z $NETBSDSRCDIR ] ; then |
631 | NETBSDSRCDIR=/usr/src | | 639 | NETBSDSRCDIR=/usr/src |
632 | fi | | 640 | fi |
633 | if [ \! -d $NETBSDSRCDIR ] ; then | | 641 | if [ \! -d $NETBSDSRCDIR ] ; then |
634 | echo Unable to find sources | | 642 | echo Unable to find sources |
635 | exit 1 | | 643 | exit 1 |
636 | fi | | 644 | fi |
637 | find $NETBSDSRCDIR -name \*.o -o -name obj.\* -o -name obj -exec rm \{\} \; | | 645 | find $NETBSDSRCDIR -name \*.o -o -name obj.\* -o -name obj -exec rm \{\} \; |
638 | | | 646 | |
639 | if [ -z $BSDOBJDIR ] ; then | | 647 | if [ -z $BSDOBJDIR ] ; then |
640 | BSDOBJDIR=/usr/obj | | 648 | BSDOBJDIR=/usr/obj |
641 | fi | | 649 | fi |
642 | if [ -d $BSDOBJDIR ] ; then | | 650 | if [ -d $BSDOBJDIR ] ; then |
643 | rm -rf $BSDOBJDIR | | 651 | rm -rf $BSDOBJDIR |
644 | fi | | 652 | fi |
645 | | | 653 | |
646 | cd $NETBSDSRCDIR && make cleandir | | 654 | cd $NETBSDSRCDIR && make cleandir |
647 | | | 655 | |
648 | ---cut here--- | | 656 | ---cut here--- |
649 | | | 657 | |
650 | Critical utilities: | | 658 | Critical utilities: |
651 | ^^^^^^^^^^^^^^^^^^^ | | 659 | ^^^^^^^^^^^^^^^^^^^ |
652 | usr.bin/compile_et | | 660 | usr.bin/compile_et |
653 | usr.bin/make | | 661 | usr.bin/make |
654 | usr.bin/yacc | | 662 | usr.bin/yacc |
655 | usr.bin/lex | | 663 | usr.bin/lex |
656 | usr.bin/xlint | | 664 | usr.bin/xlint |
657 | usr.bin/config | | 665 | usr.bin/config |
658 | | | 666 | |
659 | Other problems and possible solutions: | | 667 | Other problems and possible solutions: |
660 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | 668 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
661 | Symptom:Complaints involving a Makefile. | | 669 | Symptom:Complaints involving a Makefile. |
662 | Fix: Rebuild usr.bin/make: | | 670 | Fix: Rebuild usr.bin/make: |
663 | cd usr.bin/make && make && make install | | 671 | cd usr.bin/make && make && make install |
664 | Or, a failsafe method if that doesn't work: | | 672 | Or, a failsafe method if that doesn't work: |
665 | cd usr.bin/make && cc *.c */*.c -I . -o make && mv make /usr/bin | | 673 | cd usr.bin/make && cc *.c */*.c -I . -o make && mv make /usr/bin |
666 | | | 674 | |
667 | Fix: Make sure .mk files are up to date. | | 675 | Fix: Make sure .mk files are up to date. |
668 | cd share/mk && make install | | 676 | cd share/mk && make install |
669 | | | 677 | |
670 | Symptom:Kernel `config' fails to configure any kernel, including GENERIC. | | 678 | Symptom:Kernel `config' fails to configure any kernel, including GENERIC. |
671 | Fix: Rebuild usr.bin/config | | 679 | Fix: Rebuild usr.bin/config |
672 | | | 680 | |
673 | Symptom: | | 681 | Symptom: |
674 | Fix: Rebuild usr.bin/yacc | | 682 | Fix: Rebuild usr.bin/yacc |
675 | | | 683 | |
676 | Symptom: | | 684 | Symptom: |
677 | Fix: Rebuild usr.bin/lex | | 685 | Fix: Rebuild usr.bin/lex |
678 | | | 686 | |
679 | Symptom: | | 687 | Symptom: |
680 | Fix: rm /usr/lib/libbfd.a | | 688 | Fix: rm /usr/lib/libbfd.a |
681 | | | 689 | |
682 | Symptom:Obsolete intermediate files are used during compilation | | 690 | Symptom:Obsolete intermediate files are used during compilation |
683 | Fix: Try the following sequence of commands in the directory in question. | | 691 | Fix: Try the following sequence of commands in the directory in question. |
684 | make cleandir; rm `make print-objdir`; make cleandir; make obj | | 692 | make cleandir; rm `make print-objdir`; make cleandir; make obj |
685 | (If you built the tree without "make obj" in the past, obsolete files | | 693 | (If you built the tree without "make obj" in the past, obsolete files |
686 | may remain. The command tries to clean everything up) | | 694 | may remain. The command tries to clean everything up) |
687 | | | 695 | |
688 | Symptom:.../sysinst/run.c:xx: warning: initialization from incompatible | | 696 | Symptom:.../sysinst/run.c:xx: warning: initialization from incompatible |
689 | pointer type | | 697 | pointer type |
690 | Fix: Rebuild and install usr.bin/menuc | | 698 | Fix: Rebuild and install usr.bin/menuc |
691 | | | 699 | |
692 | Symptom:mklocale not found during build in share/locale/ctype | | 700 | Symptom:mklocale not found during build in share/locale/ctype |
693 | Fix: Build and install usr.bin/mklocale | | 701 | Fix: Build and install usr.bin/mklocale |
694 | | | 702 | |
695 | Symptom:undefined reference to `__assert13' or `__unsetenv13' | | 703 | Symptom:undefined reference to `__assert13' or `__unsetenv13' |
696 | Fix: Rebuild and install lib/libc | | 704 | Fix: Rebuild and install lib/libc |
697 | | | 705 | |
698 | Symptom:usr.bin/config fails to build. | | 706 | Symptom:usr.bin/config fails to build. |
699 | Fix: Try building with -DMAKE_BOOTSTRAP added to CFLAGS in Makefile. | | 707 | Fix: Try building with -DMAKE_BOOTSTRAP added to CFLAGS in Makefile. |
700 | | | 708 | |
701 | Symptom:undefined reference to `getprogname' or `setprogname' | | 709 | Symptom:undefined reference to `getprogname' or `setprogname' |
702 | Fix: Rebuild and install lib/libc | | 710 | Fix: Rebuild and install lib/libc |
703 | | | 711 | |
704 | Symptom:lint does not understand the '-X' option | | 712 | Symptom:lint does not understand the '-X' option |
705 | Fix: May need to build & install libs with NOLINT=1 before rebuilding lint | | 713 | Fix: May need to build & install libs with NOLINT=1 before rebuilding lint |
706 | | | 714 | |
707 | Symptom:Update build fails in src/tools/gcc complaining that a variable | | 715 | Symptom:Update build fails in src/tools/gcc complaining that a variable |
708 | (e.g. CPPFLAGS) has changed since the previous run. | | 716 | (e.g. CPPFLAGS) has changed since the previous run. |
709 | Fix: Run "nbmake-${ARCH} clean" in src/tools/gcc or do a clean build. | | 717 | Fix: Run "nbmake-${ARCH} clean" in src/tools/gcc or do a clean build. |
710 | | | 718 | |
711 | Symptom:cvs [update aborted]: cannot open directory /cvsroot/src/...: | | 719 | Symptom:cvs [update aborted]: cannot open directory /cvsroot/src/...: |
712 | No such file or directory. | | 720 | No such file or directory. |
713 | Cause: If a directory is created by mistake, then it is sometimes | | 721 | Cause: If a directory is created by mistake, then it is sometimes |
714 | deleted from the CVS repository using administrative commands | | 722 | deleted from the CVS repository using administrative commands |
715 | that bypass the normal cvs access controls. If your cvs working tree | | 723 | that bypass the normal cvs access controls. If your cvs working tree |
716 | contains references to a directory that has been deleted on the | | 724 | contains references to a directory that has been deleted on the |
717 | server in this way, then "cvs update" reports this error. | | 725 | server in this way, then "cvs update" reports this error. |
718 | Fix: Recursively delete the affected directory from your working tree | | 726 | Fix: Recursively delete the affected directory from your working tree |
719 | and try the update again. | | 727 | and try the update again. |