中治@鳥取です。

6-STABLEにしてから7-STABLEに持って行くというのに一票入れたいところですが、
5から7へbuildworldで行けるのかどうか、というのも興味深いです。

/usr/src/UPDATING(1.632.2.4 2009/09/15 11:13:40)によれば、

        To upgrade in-place from 5.x-stable to current
        ----------------------------------------------
        <make sure you have good level 0 dumps>
        make buildworld                                 [9]
        make kernel KERNCONF=YOUR_KERNEL_HERE           [8]
                                                        [1]
        <reboot in single user>                         [3]
        mergemaster -p                                  [5]
        make installworld
        make delete-old
        mergemaster -i                                  [4]
        <reboot>

        Make sure that you've read the UPDATING file to understand the
        tweaks to various things you need.  At this point in the life
        cycle of current, things change often and you are on your own
        to cope.  The defaults can also change, so please read ALL of
        the UPDATING entries.

なので、できないことはなさそうです。

>>>>> In <091503845e9c4ae39babb9f5611ad...@your632b92ef6e> 
>>>>>   "Akio Miyao" <mi...@affrc.go.jp> wrote:

> 次に、/usr/srcに移って

> # make buildworld

> --------------------------------------------------------------
> >>> Building an up-to-date make(1)
> --------------------------------------------------------------
> make: don't know how to make /usr/src/usr.bin/make/sprite.h. Stop
> *** Error code 2

> Stop in /usr/src.
> *** Error code 1

> Stop in /usr/src.

> となってしまいます。

いきなり、そのような出力になるのが気になります。

メジャーバージョンを超えるbuildworldでは、

buildworld → ... → upgrade_checks → make → …

といった具合いに、新しいのを作るのに必要なものを確認して、なければ作る、と
いうプロセスとなるようです。

例えば、HEADの/usr/src/Makefileには、

#
# Perform a few tests to determine if the installed tools are adequate
# for building the world.
#
upgrade_checks:
        @if ! (cd ${.CURDIR}/tools/build/make_check && \
            PATH=${PATH} ${BINMAKE} obj >/dev/null 2>&1 && \
            PATH=${PATH} ${BINMAKE} >/dev/null 2>&1); \
        then \
            (cd ${.CURDIR} && ${MAKE} make); \
        fi

#
# Upgrade make(1) to the current version using the installed
# headers, libraries and tools.  Also, allow the location of
# the system bsdmake-like utility to be overridden.
#
MMAKEENV=       MAKEOBJDIRPREFIX=${MAKEPATH} \
                DESTDIR= \
                INSTALL="sh ${.CURDIR}/tools/install.sh"
MMAKE=          ${MMAKEENV} ${MAKE} \
                -D_UPGRADING \
                -DNOMAN -DNO_MAN -DNOSHARED -DNO_SHARED \
                -DNO_CPU_CFLAGS -DNO_WERROR

make: .PHONY
        @echo
        @echo "--------------------------------------------------------------"
        @echo ">>> Building an up-to-date make(1)"
        @echo "--------------------------------------------------------------"
        ${_...@cd ${.CURDIR}/usr.bin/make; \
                ${MMAKE} obj && \
                ${MMAKE} depend && \
                ${MMAKE} all && \
                ${MMAKE} install DESTDIR=${MAKEPATH} BINDIR=

なんてのがあります。

> 大体なぜ sprite.h なのでしょう?

# grep -rwl 'sprite\.h' /usr/obj

で、どこかで誰かがそれに依存していないか探してみるのがよいと思います。
-- 
NAKAJI Hiroyuki (中治 弘行)

メールによる返信