| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | $NetBSD: UPDATING,v 1.347 2024/04/11 06:20:29 nia Exp $ | | 1 | $NetBSD: UPDATING,v 1.348 2024/04/20 14:06:47 rillig 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" |
| @@ -174,30 +174,26 @@ Recent changes: | | | @@ -174,30 +174,26 @@ Recent changes: |
174 | Changed MNT_ACLS to default to POSIX1e ACLs instead of NFSv4 | | 174 | Changed MNT_ACLS to default to POSIX1e ACLs instead of NFSv4 |
175 | ACLs, to be compatible with FreeBSD. If you are using NFSv4 ACLs | | 175 | ACLs, to be compatible with FreeBSD. If you are using NFSv4 ACLs |
176 | and have "acls" in /etc/fstab you'll need to change it to "nfs4acls". | | 176 | and have "acls" in /etc/fstab you'll need to change it to "nfs4acls". |
177 | | | 177 | |
178 | 20210711: | | 178 | 20210711: |
179 | Updated GMP sources may require cleaning in tools/gmp and/or in | | 179 | Updated GMP sources may require cleaning in tools/gmp and/or in |
180 | external/lgpl3/gmp/lib, particularly if GCC itself does not build. | | 180 | external/lgpl3/gmp/lib, particularly if GCC itself does not build. |
181 | | | 181 | |
182 | 20210417: | | 182 | 20210417: |
183 | GCC 10 was enabled for several platforms. If builds fail in either | | 183 | GCC 10 was enabled for several platforms. If builds fail in either |
184 | tools/gcc or external/gpl/gcc, first try cleaning those objects and | | 184 | tools/gcc or external/gpl/gcc, first try cleaning those objects and |
185 | removing the $DESTDIR/usr/include/g++ subdirectory. | | 185 | removing the $DESTDIR/usr/include/g++ subdirectory. |
186 | | | 186 | |
187 | 20201230: | | | |
188 | lint1/ops.c is no longer autogenerated. If this makes the build | | | |
189 | fail, clean $OBJDIR/tools/*lint* and $OBJDIR/usr.bin/*xlint*. | | | |
190 | | | | |
191 | 20201016: | | 187 | 20201016: |
192 | MIPS kernel modules have been disabled until they work. This will | | 188 | MIPS kernel modules have been disabled until they work. This will |
193 | turn up in extra files in the DESTDIR, which should be cleaned. | | 189 | turn up in extra files in the DESTDIR, which should be cleaned. |
194 | | | 190 | |
195 | 20200925: | | 191 | 20200925: |
196 | GNU MPC and MPFR have been updated. At least MPFR needs cleaning | | 192 | GNU MPC and MPFR have been updated. At least MPFR needs cleaning |
197 | in both the tools and external dirs. | | 193 | in both the tools and external dirs. |
198 | | | 194 | |
199 | 20200912: | | 195 | 20200912: |
200 | GCC 9 has arrived for Arm and x86 platforms, and will be coming | | 196 | GCC 9 has arrived for Arm and x86 platforms, and will be coming |
201 | for several more, as will binutils 2.34. Clean as required. | | 197 | for several more, as will binutils 2.34. Clean as required. |
202 | | | 198 | |
203 | 20200907: | | 199 | 20200907: |
| @@ -329,705 +325,26 @@ Recent changes: | | | @@ -329,705 +325,26 @@ Recent changes: |
329 | directory by something like: | | 325 | directory by something like: |
330 | cd sys/arch/i386/stand/efiboot && make clean | | 326 | cd sys/arch/i386/stand/efiboot && make clean |
331 | | | 327 | |
332 | 20190723: | | 328 | 20190723: |
333 | The jemalloc allocator in libc is now built without extended | | 329 | The jemalloc allocator in libc is now built without extended |
334 | debugging (for performance reasons). In update builds make sure | | 330 | debugging (for performance reasons). In update builds make sure |
335 | to rebuild it completely, by removing all affected object files, | | 331 | to rebuild it completely, by removing all affected object files, |
336 | including compat builds, something like: | | 332 | including compat builds, something like: |
337 | cd /usr/obj && find . -type d -name jemalloc|xargs rm -rf | | 333 | cd /usr/obj && find . -type d -name jemalloc|xargs rm -rf |
338 | | | 334 | |
339 | 20190207: | | 335 | 20190207: |
340 | GCC 7 switched for many ports. Update builds are likely to fail. | | 336 | GCC 7 switched for many ports. Update builds are likely to fail. |
341 | | | 337 | |
342 | 20180924: | | | |
343 | A newer OpenSSL version has been imported. If you are doing | | | |
344 | update builds, make sure to remove all old obj dirs, like: | | | |
345 | cd /usr/obj && find . -type d -name openssl | xargs rm -rf | | | |
346 | | | | |
347 | 20180717: | | | |
348 | On aarch64 int64_t and related types have changed from long long | | | |
349 | to long. This requires recompiling all C++ binaries. | | | |
350 | | | | |
351 | 20180713: | | | |
352 | On amd64 and i386 static binaries are now build position | | | |
353 | independent. This requires recompilation of all object | | | |
354 | files used to create the crunched /rescue binary. | | | |
355 | Clean the rescue directory in your obj directory before | | | |
356 | doing an update build, otherwise linking will fail. | | | |
357 | | | | |
358 | 20180414: | | | |
359 | Existing binutils was migrated to binutils.old. Manual | | | |
360 | removal of tools/binutils objects directory may be required | | | |
361 | to fix tools build failure. | | | |
362 | | | | |
363 | 20180311: | | | |
364 | bdftopcf was updated and may need cleaning in the | | | |
365 | src/external/mit/xorg/tools/bdftopcf subdirectory if there are | | | |
366 | link errors. | | | |
367 | | | | |
368 | 20180212: | | | |
369 | between OpenSSL and GCC updates, many things may fail to build. | | | |
370 | any failure that looks like GCC or openssl is best handled by | | | |
371 | a clean destdir and objdir. Full cleandir and destdir deletion | | | |
372 | is recommended if build failures occur. | | | |
373 | | | | |
374 | 20171225: | | | |
375 | removal of the vadvise syscall requires manual removal of all | | | |
376 | associated files from the libc build object directory (including | | | |
377 | the .depend files) - a command like: | | | |
378 | cd $OBJ && find . -type d -name libc | xargs rm -rf | | | |
379 | For architectures that support multiple "compat" binary targets, | | | |
380 | you'll need to cleanup both the regular libc directory and the | | | |
381 | compat ones (the above command will do that). | | | |
382 | | | | |
383 | 20171010: | | | |
384 | a change to the build structure of external/bsd/acpica/bin/iasl | | | |
385 | means that its objdir (or *.d and .depend at least) might need | | | |
386 | to be manually removed - or a build done once without -u. | | | |
387 | | | | |
388 | 20170822: | | | |
389 | a new version of GMP has been imported and probably | | | |
390 | will break parts of builds related to themselves or GCC, both | | | |
391 | in the tools and the native section. Remove all GCC, GMP, MPFR | | | |
392 | and MPC objdirs or build once without -u. | | | |
393 | | | | |
394 | 20170816: | | | |
395 | a new version of MPFR and MPC have been imported and probably | | | |
396 | will break parts of builds related to themselves or GCC, both | | | |
397 | in the tools and the native section. Remove all GCC, GMP, MPFR | | | |
398 | and MPC objdirs or build once without -u. | | | |
399 | | | | |
400 | 20170402: | | | |
401 | a new version of dhcpcd has been imported, which does not support | | | |
402 | update builds from the previous version. Remove your | | | |
403 | external/bsd/dhcpcd object dir or build once without -u. | | | |
404 | | | | |
405 | 20170211: | | | |
406 | a new terminfo database has been imported. | | | |
407 | The structure of it has changed slightly from prior versions and | | | |
408 | an updated tic tool is required. | | | |
409 | If you build.sh, don't use -u | | | |
410 | | | | |
411 | 20170207: | | | |
412 | various arch dependent libc/exect.S files were removed | | | |
413 | Either remove the obj directories (lib/libc and compat/amd64/i386/lib | | | |
414 | if it exists) or do a clean build. | | | |
415 | (This is a bug in the make system, it should be corrected without | | | |
416 | human intervention, but isn't.) | | | |
417 | | | | |
418 | 20170104: | | | |
419 | xinput build options have changed. | | | |
420 | Remove the obj directory (external/mit/xorg/bin/xinput) | | | |
421 | if you build.sh -u | | | |
422 | | | | |
423 | 20170103: | | | |
424 | a new version of flex has been imported. | | | |
425 | Remove the file from obj (external/bsd/flex) | | | |
426 | if you build.sh -u | | | |
427 | | | | |
428 | 20161014: | | | |
429 | a new version of OpenSSL has been imported. | | | |
430 | Remove the files from obj (crypto/external/bsd/openssl) | | | |
431 | if you build.sh -u | | | |
432 | | | | |
433 | 20161009: | | | |
434 | a new version of dhcpcd has been imported with slightly changed | | | |
435 | build infrastructure. When doing a build.sh -u this requires | | | |
436 | pruning the external/bsd/dhcpcd objdir. | | | |
437 | | | | |
438 | 20160914: | | | |
439 | i386, amd64, shark, ofppc and macppc have joined shark and x68k | | | |
440 | ports in using xorg-server 1.18. This requires a clean destdir | | | |
441 | and a clean objdir. | | | |
442 | | | | |
443 | 20160527: | | | |
444 | i386 needs a full cleandir or objdir deletion because PIE has | | | |
445 | been enabled. (see the amd64 entry two down for further info) | | | |
446 | | | | |
447 | 20160418: | | | |
448 | libedit needs manual removal of all autogenerated files since | | | |
449 | some of them are not autogenerated anymore. Remember that there | | | |
450 | might be two copies of libedit if your platform builds "compat". | | | |
451 | | | | |
452 | 20160410: | | | |
453 | amd64 needs full "make cleandir" or deletion of objdir now that | | | |
454 | PIE has been enabled for amd64. PIE, or position-independent | | | |
455 | executables, means all code, including executables and not just | | | |
456 | shared libraries, is position-independent and hence able to be | | | |
457 | relocated by ASLR, address space layout randomization. | | | |
458 | | | | |
459 | The change was made in Makefile variables for compiler and | | | |
460 | linker flags, for which make(1) does not record dependencies, | | | |
461 | hence it is unable to detect that all .o files need rebuilding. | | | |
462 | | | | |
463 | Partial rebuilds with some modified source files will likely | | | |
464 | fail when linking executables, since the linker refuses to mix | | | |
465 | position-independent code with position-dependent code in | | | |
466 | position-independent executables: | | | |
467 | | | | |
468 | .../x86_64--netbsd/bin/ld: foo.o: relocation R_X86_64_32 against `...' cannot be used when making a shared object; recompile with -fPIC | | | |
469 | | | | |
470 | 20160401: | | | |
471 | Ports switching to GCC 5.3 will need a full "make cleandir". | | | |
472 | Some people have found that cleandir is not sufficient, so if | | | |
473 | in doubt delete the entire object directory tree for gcc. | | | |
474 | | | | |
475 | 20160306: | | | |
476 | NetBSD's regexp implementation is now part of libnbcompat. | | | |
477 | Nblex, nbm4, nbpax, nbsed use it and they may crash on | | | |
478 | non-NetBSD hosts if linked with stale object files produced | | | |
479 | while they included a non-NetBSD regex.h. | | | |
480 | In any case, you should "make cleandir" at least these tools | | | |
481 | before updating your toolchain. | | | |
482 | | | | |
483 | 20160125: | | | |
484 | Dtrace has been enabled by default on some architectures. | | | |
485 | When doing an update build, make sure to clean the etc/mtree | | | |
486 | object directory before starting the build - otherwise the | | | |
487 | needed directories in destdir will not be created. | | | |
488 | An easy way to do this is: | | | |
489 | cd src/etc/mtree && $TOOLDIR/bin/nbmake-$arch cleandir | | | |
490 | | | | |
491 | 20150818: | | | |
492 | New acpica requires "make cleandir" in src/external/bsd/acpica | | | |
493 | again. | | | |
494 | | | | |
495 | 20150413: | | | |
496 | New acpica requires "make cleandir" and reinstalling yacc | | | |
497 | in /usr/src/external/bsd/byacc and /usr/src/tools/yacc and | | | |
498 | also "make cleandir" in /usr/src/external/bsd/acpica. | | | |
499 | | | | |
500 | 20150404: | | | |
501 | Lint changes require a full rebuild of the tool, so make | | | |
502 | sure to build without -u option to build.sh, or manually | | | |
503 | do a make cleandir in src/tools/lint1 and | | | |
504 | src/usr.bin/xlint. | | | |
505 | | | | |
506 | 20150310: | | | |
507 | Improvements to openssl for arm mean that update builds of | | | |
508 | the openssl libraries will fail. A make cleandir in | | | |
509 | external/bsd/openssl/lib is needed | | | |
510 | | | | |
511 | 20141026: | | | |
512 | A mishap during the import of pppd may cause your corruption | | | |
513 | in your cvs directory if you happened to do a cvs update | | | |
514 | during a short period of time. To fix, just remove the | | | |
515 | directory src/external/bsd/ppp/dist/pppd completely | | | |
516 | and let cvs restore it on next update. | | | |
517 | | | | |
518 | 20140721: | | | |
519 | The src/external/mit/lua/src directory was accidentally created | | | |
520 | and then deleted in the CVS repository. If you get errors like | | | |
521 | | | | |
522 | cvs [update aborted]: cannot open directory | | | |
523 | /cvsroot/src/external/mit/lua/src: No such file or directory | | | |
524 | | | | |
525 | then delete your local copy of that directory tree and try again. | | | |
526 | | | | |
527 | 20140530: | | | |
528 | ARM eABI switched to DWARF based exception handling. This requires | | | |
529 | rebuilding all C++ code. It is strongly advised to do a clean build. | | | |
530 | | | | |
531 | 20140131: | | | |
532 | The new compiler_rt/libc integration moved a few things. It is strongly | | | |
533 | advised to do a clean build. At least lib/libc, the compat version(s) | | | |
534 | of libc, libkern, rump and the kernels need to be cleaned. | | | |
535 | | | | |
536 | 20131227: | | | |
537 | 1. The new ntpd runs in a restricted mode to prevent amplification | | | |
538 | attacks. If you need ntpdc to work you need to explicitly enable | | | |
539 | mode7 in your config file. Make sure you put the necessary restrict | | | |
540 | statements to avoid being exposed. | | | |
541 | 2. strncat has moved from lib/libc to common/lib/libc; you might need | | | |
542 | to make clean in libc | | | |
543 | | | | |
544 | 20131129: | | | |
545 | The GMP sources were updated, and builds will likely fail without | | | |
546 | cleaning their build trees for both tools and in-tree, like below. | | | |
547 | | | | |
548 | 20131128: | | | |
549 | The MPC and MPFR sources were updated, and builds may require their | | | |
550 | tools and in-tree directories cleaned for successful updates. | | | |
551 | | | | |
552 | 20130605: | | | |
553 | The kernel option FAST_IPSEC no longer exists, it's been renamed | | | |
554 | to IPSEC (and the older IPSEC version removed). | | | |
555 | | | | |
556 | 20130605: | | | |
557 | Previous freetype installations erroneously installed private | | | |
558 | header files. If you are building against a non-empty $DESTDIR, | | | |
559 | please remove ${DESTDIR}//usr/X11R7/include/freetype2/freetype/. | | | |
560 | | | | |
561 | 20130531: | | | |
562 | The xdm update may cause build failure due to xdm.man being | | | |
563 | in the obj tree. Make sure to ensure any like this: | | | |
564 | nbmake: nbmake: don't know how to make xdm.man. Stop | | | |
565 | is fixed by deleting the xdm.man in the obj tree. | | | |
566 | | | | |
567 | 20130530: | | | |
568 | Updates of many xsrc packages will leave old .pc files around. | | | |
569 | Best to clean out the xsrc objdir entirely before rebuilds. | | | |
570 | | | | |
571 | 20130301: | | | |
572 | The removal of netiso requires manual removal of /usr/include/netiso | | | |
573 | prior to the build and make cleandir in /usr/src/usr.bin/{ktruss,kdump} | | | |
574 | | | | |
575 | 20120726: | | | |
576 | The update of OpenSSL requires cleaning both the OpenSSL build | | | |
577 | directory and DESTDIR. *Even non-update builds require cleaning | | | |
578 | DESTDIR.* Builds done without taking these steps may fail, or in | | | |
579 | some cases may succeed and install broken OpenSSL libraries that | | | |
580 | cause third-party software to link incorrectly and/or crash. | | | |
581 | | | | |
582 | 20120507: | | | |
583 | The database schema for makemandb was changed. You will | | | |
584 | need to update the database using 'makemandb -f' or wait | | | |
585 | for the next weekly run to fix it. | | | |
586 | | | | |
587 | 20120319: | | | |
588 | sys/conf/Makefile.kern.inc has been modified to adjust the | | | |
589 | size of db_symtab automatically. You need to update dbsym in | | | |
590 | your $TOOLDIR to build kernels with options SYMTAB_SPACE. If | | | |
591 | you don't want this behavior, add AUTO_SYMTAB_SPACE=no to your | | | |
592 | mk.conf. | | | |
593 | | | | |
594 | 20120216: | | | |
595 | Default for MKCATPAGES changed to NO. Update builds will fail | | | |
596 | unless DESTDIR is cleaned manually. If you built between 20120207 | | | |
597 | and 20120216, daily and weekly could have created an unreadable | | | |
598 | /var/db/man.db index for apropos. Running makemandb -f or | | | |
599 | the next run of weekly will fix it. | | | |
600 | | | | |
601 | 20111227: | | | |
602 | If you built between 20111225 and 20111227 you need to remove | | | |
603 | /usr/lib/libpam.so.4* and /usr/lib/security/*.so.4, since the | | | |
604 | bump has been reverted. | | | |
605 | | | | |
606 | 20111125: | | | |
607 | The "rnd" pseudodevice has been added to sys/conf/std, which | | | |
608 | means it should no longer be explicitly listed in kernel | | | |
609 | configuration files. The line "pseudo-device rnd" should be | | | |
610 | removed from any custom kernel config files users may have. | | | |
611 | | | | |
612 | 20111119: | | | |
613 | A problem with the datastructures used by the rndctl(8) | | | |
614 | utility (pointers in datastructures in an array, making 32->64 | | | |
615 | bit compatibility very painful) has been fixed in a | | | |
616 | non-backwards-compatible way. If you replace your kernel, | | | |
617 | replace your rndctl executable too. | | | |
618 | | | | |
619 | 20111001: | | | |
620 | the prop_*_send_syscall() functions from proplib(3) have been | | | |
621 | changed and their new version is not backward compatible with the old | | | |
622 | one. So ensure that all consumers of these functions (currently: | | | |
623 | quota2 code and its tests) are updated together with the new lib. | | | |
624 | | | | |
625 | 20110817: | | | |
626 | sparc has been changed to use GCC 4.5.3, so any objdir or | | | |
627 | DESTDIR for them should be deleted before updating. | | | |
628 | | | | |
629 | 20110806: | | | |
630 | i386 and amd64 have been changed to use GCC 4.5.3, so any | | | |
631 | objdir or DESTDIR for them should be deleted before updating. | | | |
632 | | | | |
633 | 20110805: | | | |
634 | The update to GCC 4.5.3 requires a non-trivial portion of | | | |
635 | the tree to be cleaned. Best to delete both objdir and | | | |
636 | DESTDIR before running this update. So far, only the | | | |
637 | sparc64, mips and powerpc platforms have changed. | | | |
638 | | | | |
639 | 20110803: | | | |
640 | The layout of external/public-domain/xz has changed. To do an | | | |
641 | update build you will have to remove the contents of the OBJDIR | | | |
642 | for external/public-domain/xz/bin by hand as the xz entry there | | | |
643 | is now a directory. | | | |
644 | | | | |
645 | 20110410: | | | |
646 | The configuration of src/tools/gcc has changed. To do an | | | |
647 | update build you have to clean both tools/binutils and | | | |
648 | tools/gcc by hand. | | | |
649 | | | | |
650 | 20110328: | | | |
651 | Building the Xorg binary was moved into a subdirectory to fix | | | |
652 | ordering issues with "make all". It may be necessary to remove | | | |
653 | the OBJDIR for external/mit/xorg/server/xorg-server/hw/xfree86 | | | |
654 | if your update build fails, as the "Xorg" entry there is now a | | | |
655 | directory. | | | |
656 | | | | |
657 | 20110121: | | | |
658 | Assembler files no longer use -traditional-cpp. This can break | | | |
659 | the build of individual parts of the tree. This is handled | | | |
660 | correctly by build.sh. Manual builds have to update /usr/share/mk | | | |
661 | and re-run config(1) for any kernel configurations as needed. | | | |
662 | | | | |
663 | 20101217: | | | |
664 | The tcpdump(8) program was changed to drop privileges and chroot(2) | | | |
665 | by default. It may be necessary to manually update passwd(5) and | | | |
666 | group(5) in order to make the program work with existing setups. | | | |
667 | | | | |
668 | 20101125: | | | |
669 | The latest changes to setenv(3) disallow setting environment | | | |
670 | variables with names that contain '='. Revision 1.18 of env.c | | | |
671 | assumed that this was allowed. Installing a new libc with an | | | |
672 | old copy of /usr/bin/env causes env x=1 printenv | grep x= to | | | |
673 | break which affects the autoconf tests for dependency finding, | | | |
674 | so building gcc will end up printing: | | | |
675 | checking dependency style of gcc... none | | | |
676 | configure: error: no usable dependency style found | | | |
677 | Fix it by rebuilding and re-installing env. | | | |
678 | | | | |
679 | 20101119: | | | |
680 | Recent Xorg updates in xsrc/external/mit/ may cause various build | | | |
681 | or run-time problems. Delete your entire DESTDIR and OBJDIR if you | | | |
682 | have any build problems with xsrc, or problems with mismatched | | | |
683 | versions between xorg-server and drivers. | | | |
684 | | | | |
685 | 20100604: | | | |
686 | The update of ATF to 0.9 causes old tests written in shell to fail | | | |
687 | unless they are rebuilt. If you are building with MKUPDATE=yes, | | | |
688 | you need to clean the src/external/bsd/atf/tests/ and the src/tests/ | | | |
689 | trees by hand. | | | |
690 | | | | |
691 | 20100522: | | | |
692 | Recent Xorg updates in xsrc/external/mit/ will cause various build | | | |
693 | problems. Delete your entire DESTDIR and OBJDIR if you have any | | | |
694 | build problems with xsrc. | | | |
695 | | | | |
696 | 20100522: | | | |
697 | private section of <ctype.h> was split, and now mklocale(1) | | | |
698 | include ctype_local.h, so you have to make cleandir in tools/mklocale. | | | |
699 | | | | |
700 | 20100520: | | | |
701 | The location of the xkb compiled descriptions has changed. Please | | | |
702 | remove usr/X11R7/lib/X11/xkb/compiled from your $DESTDIR. | | | |
703 | | | | |
704 | 20100222: | | | |
705 | The shared objects file extension has been changed from .so to | | | |
706 | .pico, in order to avoid conflicts with shared libraries names | | | |
707 | libXX.so. All now stale regular .so files can be removed from | | | |
708 | your object directories. | | | |
709 | | | | |
710 | 20100204: | | | |
711 | The termcap database has been removed from the sources, | | | |
712 | but has not been marked obsolete so it is not removed | | | |
713 | from the system when upgrading. | | | |
714 | As such, you will need to remove them from your object | | | |
715 | and destination directories. | | | |
716 | | | | |
717 | 20091101: | | | |
718 | After updating, it may be necessary to make the 'cleandir' | | | |
719 | target in src/tools/yacc/ and in src/usr.bin/yacc/ before a | | | |
720 | 'build.sh -u tools' or 'build.sh -u distribution'. Ditto | | | |
721 | src/tools/lex/ and src/usr.bin/lex/. | | | |
722 | | | | |
723 | 20091001: | | | |
724 | On amd64 you must rebuild tools (to get the new binutils) | | | |
725 | before building a kernel, or the build fails on cpufunc.S. | | | |
726 | | | | |
727 | 20091001: | | | |
728 | An error will create a ./usr/X11R7/lib/X11/xkb/compiled/xkb | | | |
729 | symlink, failing the build. Delete the link, and the subdir | | | |
730 | it is in, and retry your build. | | | |
731 | | | | |
732 | 20090718: | | | |
733 | libc build changed so that strchr() provides the extra entry | | | |
734 | point for index(). Update build of libc.a (and libc_pic.a) | | | |
735 | may fail because the archive contains the unwanted index.o. | | | |
736 | (Similarly for strrchr() and rindex().) | | | |
737 | | | | |
738 | 20090709: | | | |
739 | Native Xorg was upgraded again. Builds will probably fail again | | | |
740 | without a clean objdir, at least for src/external/mit/xorg. | | | |
741 | | | | |
742 | 20090616: | | | |
743 | Native Xorg was upgraded. Builds will need a clean objdir for | | | |
744 | src/external/mit/xorg. Upgrading a system from sets will not | | | |
745 | work properly yet as the /usr/X11R7/lib/X11/xkb/symbols/pc | | | |
746 | subdirectory has been changed into a file, and this needs to | | | |
747 | be manually "rm -r"'ed before installing xbase.tgz. | | | |
748 | | | | |
749 | 20090501: | | | |
750 | Several new functions were added to string.h/libc, and this | | | |
751 | can cause autoconf problems during the tool build for people | | | |
752 | who fail to clean out their tools objects properly. If you | | | |
753 | note messages about stpcpy, stpncpy or strnlen accompanying a | | | |
754 | failure during the tool build, clean out all your tools | | | |
755 | objects and start again. | | | |
756 | | | | |
757 | 20090325: | | | |
758 | The i386 port was switched to i486 default toolchain. This requires | | | |
759 | cleaning your src/tools directory and $TOOLDIR and rebuilding them. | | | |
760 | | | | |
761 | 20090126: | | | |
762 | The __posix_fadvise50 system call changed assembly stub type. You | | | |
763 | need to 'rm -f __posix_fadvise50.*' in the libc build directory | | | |
764 | to avoid using the old assembly stub. | | | |
765 | | | | |
766 | 20090202: | | | |
767 | pkg_install now depends on the pkgdb cache for automatic conflict | | | |
768 | detection. It is recommended to rebuild the cache with | | | |
769 | ``pkg_admin rebuild''. | | | |
770 | | | | |
771 | 20090110: | | | |
772 | time_t and dev_t have been bumped to 64 bit quantities. To upgrade: | | | |
773 | 1. Make sure your kernel has COMPAT_50 in it. Build and install. | | | |
774 | This is needed even in the MODULAR kernel because there is | | | |
775 | conditionally compiled code in rtsock.c. | | | |
776 | 2. make sure build.sh completes and the binaries in a chroot work | | | |
777 | before installing. | | | |
778 | 3. If you don't use build.sh and you build directly to root, and | | | |
779 | your build breaks in the middle, don't despair. Make sure headers | | | |
780 | are installed properly, and start building libraries first libc | | | |
781 | and libutil, install them and then continue building all the | | | |
782 | libraries in src/lib and src/gnu/lib and install them. Once | | | |
783 | the new libraries are installed, you can restart the build. | | | |
784 | 4. If you compile packages and you notice link time warnings, | | | |
785 | rebuild the required packages to update their shared libraries. | | | |
786 | Any package you rebuild will require rebuilding all the packages | | | |
787 | that depend on it. | | | |
788 | 5. Next time you run pwd_mkdb with the new binary, the file | | | |
789 | will be upgraded and it will not be backwards compatible. | | | |
790 | 6. The utmpx/wtmpx files (/var/run/utmpx and /var/log/wtmpx, see | | | |
791 | lastlogx(5)) have been versioned, and there is a heuristic | | | |
792 | for utmp. You are better off removing the old files after | | | |
793 | upgrading. The automated clearing of /var/run during | | | |
794 | boot, and the automated rotating of files in /var/log by | | | |
795 | newsyslog(8), may mean that you do not have to remove the | | | |
796 | files manually. | | | |
797 | 7. The optional accounting file (/var/account/acct, see | | | |
798 | accton(8)) has not been versioned, and will need to be | | | |
799 | removed. The automatic rotation of the accounting file by | | | |
800 | /etc/daily limits the bad consequences of failure to remove | | | |
801 | the file. | | | |
802 | 8. Application software that writes time_t to binary files on | | | |
803 | disk will break or need attention. Most notably: if you are | | | |
804 | using PostgreSQL < 8.4, you need to dump your databases, | | | |
805 | rebuild PostgreSQL with the new time_t, then restore. | | | |
806 | | | | |
807 | 20081219: | | | |
808 | config(1) has been updated, and one of the files it creates - | | | |
809 | swapnetbsd.o - has changed format. You need to rebuild config | | | |
810 | (done automatically by build.sh) and then you need to rerun | | | |
811 | config on all kernel configuration files before rebuilding those | | | |
812 | kernels. | | | |
813 | | | | |
814 | 20081205: | | | |
815 | If you build with MKX11=no, you should remove /etc/rc.d/xdm and | | | |
816 | /etc/rc.d/xfs from DESTDIR because those files were moved to the xetc | | | |
817 | set and will appear as extra files for MKX11=no update builds. | | | |
818 | | | | |
819 | 20081122: | | | |
820 | On i386, various kernel options(4) in GENERIC including | | | |
821 | file systems have been disabled and moved into kernel modules. | | | |
822 | Before trying a new GENERIC kernel, you have to prepare the | | | |
823 | following files as well as a new GENERIC kernel: | | | |
824 | | | | |
825 | - build and install kernel modules from src/sys/modules | | | |
826 | | | | |
827 | - install the latest bootloader, which will load a module | | | |
828 | for the file system from which the kernel is loaded automatically | | | |
829 | | | | |
830 | If you have to load your kernel from a file system which is not of | | | |
831 | the same type as the root file system, you have to load the necessary | | | |
832 | file system module manually on the boot prompt or in the boot.cfg file. | | | |
833 | | | | |
834 | 20080827: | | | |
835 | If you built and installed a libc from sources between | | | |
836 | 2008/08/20 and 2008/08/26 you got a broken strtouq(3) | | | |
837 | which results in false errors reported by lint(1). | | | |
838 | Since this breaks the libc build itself, manual help is | | | |
839 | needed -- lint must be disabled temporarily, e.g.: | | | |
840 | $ (cd lib/libc && make MKLINT=no dependall install) | | | |
841 | | | | |
842 | 20080813: | | | |
843 | MKDEBUG build was broken because the .depend files did not know | | | |
844 | about .go files. You need to remove all .depend files and rebuild. | | | |
845 | | | | |
846 | 20080802: | | | |
847 | A regression in binary compatibility for pthread_mutex_t has | | | |
848 | been fixed. Unfortunately, the price is breaking compatibility | | | |
849 | for -current. | | | |
850 | | | | |
851 | Threaded programs (using libpthread) and C++ programs (using | | | |
852 | libstdc++) compiled after 20070907 and before 20080802 need to | | | |
853 | be recompiled. | | | |
854 | | | | |
855 | One way to find affected pkgsrc packages: | | | |
856 | | | | |
857 | $ grep REQUIRES=/usr/lib/libpthread /var/db/pkg/*/+BUILD_INFO | | | |
858 | $ grep REQUIRES=/usr/lib/libstdc++ /var/db/pkg/*/+BUILD_INFO | | | |
859 | | | | |
860 | 20080731: | | | |
861 | WAPBL (metadata journaling support) has been added, but at this | | | |
862 | time isn't backwards compatible with pre-WAPBL aware kernels | | | |
863 | and userland (fsck_ffs in particular). Please make sure you | | | |
864 | don't use a journaled filesystem with an older kernel/userland, | | | |
865 | especially an uncleanly mounted journaled filesystem. WAPBL | | | |
866 | also requires the super block to be in the UFS2 format. You | | | |
867 | can use fsck_ffs -c 4 to update the superblock format. | | | |
868 | | | | |
869 | 20080721: | | | |
870 | Assembler warnings are now fatal if $WARNS>0 and $NOGCCERROR | | | |
871 | isn't defined. | | | |
872 | | | | |
873 | 20080531: | | | |
874 | The ioctl number of DRVSUSPENDDEV command on /dev/drvctl changed | | | |
875 | from 125 (conflicted with DRVCTLCOMMAND) to 129. The drvctl(8) | | | |
876 | utility needs to be rebuilt and reinstalled as older binaries | | | |
877 | won't work correctly. The following sequence of commands: | | | |
878 | | | | |
879 | $ (cd sys/sys/ && nbmake-$arch includes) | | | |
880 | $ (cd sbin/drvctl/ && nbmake-$arch clean) | | | |
881 | $ (cd sbin/drvctl/ && nbmake-$arch all) | | | |
882 | | | | |
883 | leaves new drvctl utility in sbin/drvctl build directory. | | | |
884 | | | | |
885 | 20080503: | | | |
886 | The <bsd.lib.mk> variable MKPRIVATELIB was renamed to LIBISPRIVATE. | | | |
887 | | | | |
888 | 20080521: | | | |
889 | For a while, unprivileged UPDATE builds would fail to | | | |
890 | succeed at the checkflist stage, complaining that | | | |
891 | ${DESTDIR}/stand/<arch>/ did not exist. A fix for this | | | |
892 | problem was committed to share/mk/bsd.kmodule.mk, revision 1.9. | | | |
893 | If you already hit this problem, update the .mk file, | | | |
894 | remove ${DESTDIR}/stand/<arch>, and re-run the build. | | | |
895 | | | | |
896 | 20080303: | | | |
897 | Linker warnings are now fatal if $WARNS>0. | | | |
898 | | | | |
899 | 20080126: | | | |
900 | The posix_fadvise system call has been changed from an assembly | | | |
901 | stub, to a c file that calls an assembly stub. You need to | | | |
902 | 'rm -f posix_fadvise.* .depend' in the libc build directory to | | | |
903 | avoid using the old assembly stub. | | | |
904 | | | | |
905 | 20071209: | | | |
906 | The acpiec(4) driver has been split into two attachments. If you | | | |
907 | get ACPI errors before the attachment, please update your kernel | | | |
908 | configuration file appropriately or see GENERIC for more details. | | | |
909 | | | | |
910 | 20071115: | | | |
911 | The it(4) driver has been renamed to itesio(4) and the old port | | | |
912 | argument specified in the kernel configuration file is not valid | | | |
913 | anymore. The itesio(4) driver now uses the Super I/O address port | | | |
914 | rather than the EC address port. Please update your kernel | | | |
915 | configuration file appropriately or see GENERIC for more details. | | | |
916 | | | | |
917 | 20071028: | | | |
918 | The pccons(4) driver has been removed from the NetBSD/shark port. | | | |
919 | You need to update any custom kernel configuration file you have | | | |
920 | to remove any references to pccons (which includes removing the | | | |
921 | now useless XSERVER option) and replace them with the correct | | | |
922 | entries for the wscons driver. See the GENERIC configuration file | | | |
923 | for more details. | | | |
924 | | | | |
925 | 20070913: | | | |
926 | A latent bug in dhclient/dhcpd that caused it to be unable to | | | |
927 | enumerate interfaces was fixed. The bug began to cause | | | |
928 | problems after 20070911 when the kernel's SIOCGIFCONF | | | |
929 | implementation was repaired. From 20070529 to 20070911 racoon | | | |
930 | could not enumerate interfaces. (These are noted because | | | |
931 | normal kernel/userspace version matching hygiene is not | | | |
932 | sufficient to avoid this problem.) Ensure that both kernel | | | |
933 | and userland are from after 20070913. | | | |
934 | | | | |
935 | 20070703: | | | |
936 | nbinstall has been renamed ${MACHINE_GNU_ARCH}-install. It | | | |
937 | calls the target-specific strip program, and the logic to pass | | | |
938 | down STRIP from make has been removed. This requires a | | | |
939 | re-installation of tools. | | | |
940 | | | | |
941 | 20070422: | | | |
942 | The way OS emulations lookup filenames inside the emulation root | | | |
943 | has been changed. Rather than modify the pathname (and copy back | | | |
944 | to userspace) namei() and lookup() directly check the emulation | | | |
945 | root. One side effect is that absolute symlinks inside the emulated | | | |
946 | root file system will be relative to that file system - unless they | | | |
947 | start /../ this is useful when the emulated root is a real install | | | |
948 | that has such links. | | | |
949 | This might affect symlinks that have been added to reference outside | | | |
950 | the emulated root. | | | |
951 | | | | |
952 | 20070412: | | | |
953 | The pckbc driver on sgimips IP32 has been removed. Use macekbc | | | |
954 | instead. See the GENERIC32_IP3x kernel configuration for an | | | |
955 | example. | | | |
956 | | | | |
957 | 20070319: | | | |
958 | src/lib/libc/Makefile revision 1.129 broke libc and ld.elf_so | | | |
959 | on many platforms due to incorrect flags settings. If you | | | |
960 | updated and built after about 20070315, do "nbmake-$arch | | | |
961 | cleandir" in src/lib/libc and src/libexec/ld.elf_so to force a | | | |
962 | rebuild of object files that might have been built | | | |
963 | incorrectly, and ensure that you have at least | | | |
964 | src/lib/libc/Makefile 1.130. | | | |
965 | | | | |
966 | 20070210: | | | |
967 | src/sys/sys/{sa.h,savar.h} were removed. | | | |
968 | find ${OBJDIR} \( -name .depend -o -name '*.d' \) -print \ | | | |
969 | | xargs egrep -l '/sa.h|/savar.h' | xargs rm | | | |
970 | will allow dependencies on those files to get get rebuilt | | | |
971 | | | | |
972 | 20070209: | | | |
973 | The threading model was changed when the newlock2 branch | | | |
974 | was merged to NetBSD-current. If you boot with a new | | | |
975 | kernel (version 4.99.10), then you also need a new pthread | | | |
976 | library (/usr/lib/libpthread.so.0.7). If you boot with | | | |
977 | an old kernel, then you need the old pthread library | | | |
978 | (/usr/lib/libpthread.so.0.6). Provided you keep the kernel and | | | |
979 | the pthread library in sync, old threaded applications should | | | |
980 | continue to work with an old or new kernel. Note that named(8) | | | |
981 | is the only threaded application in the base system. | | | |
982 | | | | |
983 | 20061214: | | | |
984 | Following the move of string_to_flags() and flags_to_string() | | | |
985 | from the bin/ls/ sources to libutil, users doing UPDATE builds | | | |
986 | will need to do a "make cleandir" in | | | |
987 | tools/mtree/, tools/makefs/, tools/binstall/, tools/pax/, | | | |
988 | bin/pax/, bin/ls/, usr.sbin/mtree/, usr.sbin/makefs/, | | | |
989 | usr.bin/xinstall/, libexec/ftpd/, rescue/, as well | | | |
990 | as the installation images in distrib/ | | | |
991 | in order to excise stale references to the old stat_flags.h header | | | |
992 | file in the ls sources -- stat_flags.h has been removed. | | | |
993 | | | | |
994 | 20061108: | | | |
995 | The configure script used in the src/tools/gcc compiler has been | | | |
996 | changed to indicate that our libc has ssp support built-in and | | | |
997 | does not depend on -lssp and -lssp-nonshared. You'll need to | | | |
998 | make clean in src/tools/gcc first to rebuild the compiler. | | | |
999 | | | | |
1000 | 20061009: | | | |
1001 | The sysctl variables net.inet{,6}.tcp{,6}.newreno are no longer | | | |
1002 | available. Use net.inet{,6}.tcp{,6}.congctl.selected instead. | | | |
1003 | | | | |
1004 | 20060814: | | | |
1005 | The vt, vidcconsole, kbd, and rpckbd drivers on acorn32 have been | | | |
1006 | withdrawn. Use vidcvideo and pckbd instead. See the GENERIC | | | |
1007 | kernel configuration for an example. X servers from the last | | | |
1008 | few years should cope. | | | |
1009 | | | | |
1010 | 20060703: | | | |
1011 | MPACPI is no more. We always configure PCI interrupts using ACPI | | | |
1012 | if we have an ACPI kernel. The option MPACPI_SCANPCI has been renamed | | | |
1013 | to ACPI_SCANPCI. Thanks to work from fvdl. | | | |
1014 | | | | |
1015 | 20060627: | | | |
1016 | socket(2) has changed, and its system call has been versioned. | | | |
1017 | For userlands with the old version of socket(2), make sure that | | | |
1018 | your kernel has 'options COMPAT_30' set, or else 'bad system call' | | | |
1019 | errors will result. | | | |
1020 | | | | |
1021 | Hints for a more successful build: | | 338 | Hints for a more successful build: |
1022 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | 339 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
1023 | Use build.sh, but do not use its "expert mode": | | 340 | Use build.sh, but do not use its "expert mode": |
1024 | This will automatically build the tools in the | | 341 | This will automatically build the tools in the |
1025 | correct order, and it will keep the tools and the | | 342 | correct order, and it will keep the tools and the |
1026 | new build products from interfering with the running | | 343 | new build products from interfering with the running |
1027 | system. This will allow you to ignore most of the | | 344 | system. This will allow you to ignore most of the |
1028 | other advice in this file. | | 345 | other advice in this file. |
1029 | Build a new kernel first: | | 346 | Build a new kernel first: |
1030 | This makes sure that any new system calls or features | | 347 | This makes sure that any new system calls or features |
1031 | expected by the new userland will be present. This | | 348 | expected by the new userland will be present. This |
1032 | helps to avoid critical errors when upgrading. | | 349 | helps to avoid critical errors when upgrading. |
1033 | Use object directories: | | 350 | Use object directories: |
| @@ -1108,81 +425,69 @@ find $NETBSDSRCDIR -name \*.o -o -name o | | | @@ -1108,81 +425,69 @@ find $NETBSDSRCDIR -name \*.o -o -name o |
1108 | if [ -z $BSDOBJDIR ] ; then | | 425 | if [ -z $BSDOBJDIR ] ; then |
1109 | BSDOBJDIR=/usr/obj | | 426 | BSDOBJDIR=/usr/obj |
1110 | fi | | 427 | fi |
1111 | if [ -d $BSDOBJDIR ] ; then | | 428 | if [ -d $BSDOBJDIR ] ; then |
1112 | rm -rf $BSDOBJDIR | | 429 | rm -rf $BSDOBJDIR |
1113 | fi | | 430 | fi |
1114 | | | 431 | |
1115 | cd $NETBSDSRCDIR && make cleandir | | 432 | cd $NETBSDSRCDIR && make cleandir |
1116 | | | 433 | |
1117 | ---cut here--- | | 434 | ---cut here--- |
1118 | | | 435 | |
1119 | Critical utilities: | | 436 | Critical utilities: |
1120 | ^^^^^^^^^^^^^^^^^^^ | | 437 | ^^^^^^^^^^^^^^^^^^^ |
1121 | usr.bin/compile_et | | | |
1122 | usr.bin/make | | 438 | usr.bin/make |
1123 | usr.bin/yacc | | 439 | usr.bin/yacc |
1124 | usr.bin/lex | | 440 | usr.bin/lex |
1125 | usr.bin/xlint | | 441 | usr.bin/xlint |
1126 | usr.bin/config | | 442 | usr.bin/config |
1127 | | | 443 | |
1128 | Other problems and possible solutions: | | 444 | Other problems and possible solutions: |
1129 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | 445 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
1130 | Symptom:Complaints involving a Makefile. | | 446 | Symptom:Complaints involving a Makefile. |
1131 | Fix: Rebuild usr.bin/make: | | 447 | Fix: Rebuild usr.bin/make: |
1132 | cd usr.bin/make && make && make install | | 448 | cd usr.bin/make && make && make install |
1133 | Or, a failsafe method if that doesn't work: | | 449 | Or, a failsafe method if that doesn't work: |
1134 | cd usr.bin/make && cc *.c */*.c -I . -o make && mv make /usr/bin | | 450 | cd usr.bin/make && cc -DMAKE_NATIVE *.c -I. -o make \ |
| | | 451 | && install make /usr/bin |
1135 | | | 452 | |
1136 | Fix: Make sure .mk files are up to date. | | 453 | Fix: Make sure .mk files are up to date. |
1137 | cd share/mk && make install | | 454 | cd share/mk && make install |
1138 | | | 455 | |
1139 | Symptom:Kernel `config' fails to configure any kernel, including GENERIC. | | 456 | Symptom:Kernel `config' fails to configure any kernel, including GENERIC. |
1140 | Fix: Rebuild usr.bin/config | | 457 | Fix: Rebuild usr.bin/config |
1141 | | | 458 | |
1142 | Symptom: | | | |
1143 | Fix: Rebuild usr.bin/yacc | | | |
1144 | | | | |
1145 | Symptom: | | | |
1146 | Fix: Rebuild usr.bin/lex | | | |
1147 | | | | |
1148 | Symptom: | | | |
1149 | Fix: rm /usr/lib/libbfd.a | | | |
1150 | | | | |
1151 | Symptom:Obsolete intermediate files are used during compilation | | 459 | Symptom:Obsolete intermediate files are used during compilation |
1152 | Fix: Try the following sequence of commands in the directory in question. | | 460 | Fix: Try the following sequence of commands in the directory in question. |
1153 | make cleandir; rm `make print-objdir`; make cleandir; make obj | | 461 | make cleandir; rm `make print-objdir`; make cleandir; make obj |
1154 | (If you built the tree without "make obj" in the past, obsolete files | | 462 | (If you built the tree without "make obj" in the past, obsolete files |
1155 | may remain. The command tries to clean everything up) | | 463 | may remain. The command tries to clean everything up) |
1156 | | | 464 | |
1157 | Symptom:.../sysinst/run.c:xx: warning: initialization from incompatible | | 465 | Symptom:.../sysinst/run.c:xx: warning: initialization from incompatible |
1158 | pointer type | | 466 | pointer type |
1159 | Fix: Rebuild and install usr.bin/menuc | | 467 | Fix: Rebuild and install usr.bin/menuc |
1160 | | | 468 | |
1161 | Symptom:mklocale not found during build in share/locale/ctype | | 469 | Symptom:mklocale not found during build in share/locale/ctype |
1162 | Fix: Build and install usr.bin/mklocale | | 470 | Fix: Build and install usr.bin/mklocale |
1163 | | | 471 | |
1164 | Symptom:undefined reference to `__assert13' or `__unsetenv13' | | 472 | Symptom:undefined reference to `__assert13' or `__unsetenv13' |
1165 | Fix: Rebuild and install lib/libc | | 473 | Fix: Rebuild and install lib/libc |
1166 | | | 474 | |
1167 | Symptom:usr.bin/config fails to build. | | 475 | Symptom:usr.bin/config fails to build. |
1168 | Fix: Try building with -DMAKE_BOOTSTRAP added to CFLAGS in Makefile. | | 476 | Fix: Try building with -DMAKE_BOOTSTRAP added to CFLAGS in Makefile. |
1169 | | | 477 | |
1170 | Symptom:undefined reference to `getprogname' or `setprogname' | | 478 | Symptom:undefined reference to `getprogname' or `setprogname' |
1171 | Fix: Rebuild and install lib/libc | | 479 | Fix: Rebuild and install lib/libc |
1172 | | | 480 | |
1173 | Symptom:lint does not understand the '-X' option | | | |
1174 | Fix: May need to build & install libs with NOLINT=1 before rebuilding lint | | | |
1175 | | | | |
1176 | Symptom:Update build fails in src/tools/gcc complaining that a variable | | 481 | Symptom:Update build fails in src/tools/gcc complaining that a variable |
1177 | (e.g. CPPFLAGS) has changed since the previous run. | | 482 | (e.g. CPPFLAGS) has changed since the previous run. |
1178 | Fix: Run "nbmake-${ARCH} clean" in src/tools/gcc or do a clean build. | | 483 | Fix: Run "nbmake-${ARCH} clean" in src/tools/gcc or do a clean build. |
1179 | | | 484 | |
1180 | Symptom:cvs [update aborted]: cannot open directory /cvsroot/src/...: | | 485 | Symptom:cvs [update aborted]: cannot open directory /cvsroot/src/...: |
1181 | No such file or directory. | | 486 | No such file or directory. |
1182 | Cause: If a directory is created by mistake, then it is sometimes | | 487 | Cause: If a directory is created by mistake, then it is sometimes |
1183 | deleted from the CVS repository using administrative commands | | 488 | deleted from the CVS repository using administrative commands |
1184 | that bypass the normal cvs access controls. If your cvs working tree | | 489 | that bypass the normal cvs access controls. If your cvs working tree |
1185 | contains references to a directory that has been deleted on the | | 490 | contains references to a directory that has been deleted on the |
1186 | server in this way, then "cvs update" reports this error. | | 491 | server in this way, then "cvs update" reports this error. |
1187 | Fix: Recursively delete the affected directory from your working tree | | 492 | Fix: Recursively delete the affected directory from your working tree |
1188 | and try the update again. | | 493 | and try the update again. |