宮尾です。

鶴谷様、太田様、小松様、中治様 ありがとうございます。

おっしゃるとおり、7.2 マシンの/usr/obj を空にすると、
7.2マシンでmake buildworld も buildkernelもうまくいきました。

# grep -rwl 'sprite\.h' /usr/obj に関しては、
空にしてしまった後にメールを受け取ったので、
確認できませんでした。

先月は、7.2マシンで buildworld, buildkernelした実行ファイルを5.5にマウントし
て、installworld, installkernelでうまくいったのですが、今回は、5.5マシンにマ
ウントした7.2の/usr/srcで念のため、5.5マシンからbuildwoldを実行したのが悪
かったようです。

とりあえず、7.2マシンでbuildできましたので、連休中に再度installしてみます。

運用中のマシンなので、こういう作業は休みでないとできないです。。。

うまくいけば、手順をまとめてお知らせします。

--
宮尾安藝雄 博士(農学)
独立行政法人 農業生物資源研究所
基盤研究領域 ゲノムリソースセンター
〒305-8602 茨城県つくば市観音台2-1-2
mailto:mi...@affrc.go.jp
http://publicationslist.org/miyao
居場所 http://tos.nias.affrc.go.jp/cgi-bin/renraku.cgi?id=miyao

--
Akio Miyao, PhD
Genome Resource Center
Division of Genome and Biodiversity Research
National Institute of Agrobiological Sciences
2-1-2, Kannondai, Tsukuba, Ibaraki, 305-8602, Japan
TEL/FAX +81-29-838-7021
mi...@affrc.go.jp
-----Original Message-----
From: owner-freebsd-users...@jp.freebsd.org
[mailto:owner-freebsd-users...@jp.freebsd.org] On Behalf Of NAKAJI Hiroyuki
Sent: Friday, September 18, 2009 6:49 PM
To: FreeBSD-users-jp@jp.FreeBSD.org
Subject: [FreeBSD-users-jp 92517] Re: 7.2-stable の make buildworld ができな
い

中治@鳥取です。

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 (中治 弘行)

メールによる返信