Date: Sun, 21 Jul 2002 16:51:43 +0200 From: Gerhard Sittig <Gerhard.Sittig@gmx.net> To: freebsd-stable@FreeBSD.ORG Subject: Re: Kernel config problem with 4.6-STABLE... [solution] Message-ID: <20020721165143.A1494@shell.gsinet.sittig.org> In-Reply-To: <20020720104257.0b1d8dde.steve@sohara.org>; from steve@sohara.org on Sat, Jul 20, 2002 at 10:42:57AM %2B0200 References: <5.1.0.14.0.20020717152215.00a79df0@dns1.popstick.com> <000601c22e72$58b76a80$fb00000a@promethium> <20020719195738.Y1494@shell.gsinet.sittig.org> <1027103476.19808.21.camel@owen1492.it.oot> <20020719221244.GE17899@grimoire.chen.org.nz> <20020720104257.0b1d8dde.steve@sohara.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Jul 20, 2002 at 10:42 +0200, Steve O'Hara-Smith wrote: > > [ ... buildworld before buildkernel ... ] > > I have run make kernel on boxes where buildworld has not run in > moments of absent mindedness - it has always worked perfectly, of course > the sources *must* match the installed system in this case. > > Question - is this supposed to work ? The above emphasis of yours basically makes the point. I'm not a kernel hacker or source guru, but the logic is so simple that everyone should quickly get it: You not only need sources to build a kernel, the source is handled by tools. When you install the kernel source tree with a -RELEASE or a -SNAPSHOT you have the apropriate tools already and can get away with a buildkernel or even the "old fashioned" config and make sequence. But when your source tree is newer than your tools are, there is a _chance_ that building from the source has prerequisites the tools don't satisfy. This chance increases with bigger distances in age of the two aspects. One *might* get away without building new tools, but there is no guarantee. While the heavily suggested buildworld and buildkernel sequence is designed to _always_ work, and is the easiest to describe and declare for everyone. Those who know better (or just feel a little adventurous) are free to search for a way "in between". Or try the less expensive -- in terms of time spent -- methods first before falling back to the more expensive method in case of failure. But since things are complicated and not at all trivial this seems to be beyond the scope of the handbook or UPDATING. Remember, neither do these documents tell you (or are supposed to tell you) how a compiler works, how the kernel tree layout looks like, nor how to program, nor do they give you a basic class in computer science. At least I wouldn't expect the user oriented parts of the FreeBSD doc to tell me about these things. Although this might be on topic for the Porter's Handbook, a Kernel Hacker's Guide or some separate article / book, I wouldn't expect this kind of information (how to cut corners when building the source) in the handbook or UPDATING. I feel that it is a sensible approach to hand out simple instructions ("do buildworld followed by buildkernel, with no 'but' or 'if' ...") and to leave more complicated dependency determination and the resulting saving in time up to the experience of those who want or have to know better. We are talking about users and administrators here who don't do upgrades more than twice a year, don't we? We don't talk about kernel hackers (who should know better). And for bulk upgrade of more machines one might consider copying changed files from a build server or "make release". This way the time consuming steps can be done on a fast machine. I would always take the safe way and like to get a working output instead of trying to save a few minutes and get a "might work" output. Computers are dumb and cheap, they can do the tedious job without me watching them. :) BTW has there been a lengthy thread (I fear there have been many threads:) around the time when the buildkernel target was created. It actually got introduced to not have users complain about "config; make doesn't work" when they need a newer version of config(8) for their kernel source or kernel configuration. The buildkernel target heavily simplified the "user interface" while it catches all the preparation steps and pitfalls one might meet. Should you want to visit the archives, here's a snippet from the commit message: ----- cd /usr/src; cvs log Makefile.inc ------------------------- [ ... ] revision 1.122 date: 2000/01/09 17:56:40; author: marcel; state: Exp; lines: +76 -2 Add a buildkernel and an installkernel target. With these targets users can more easily upgrade. [ ... ] ----- cd /usr/src; cvs log Makefile.inc ------------------------- So the most definitive discussion of the issue has been done two years ago. Everything else is just a rehashing ... :] virtually yours 82D1 9B9C 01DC 4FB4 D7B4 61BE 3F49 4F77 72DE DA76 Gerhard Sittig true | mail -s "get gpg key" Gerhard.Sittig@gmx.net -- If you don't understand or are scared by any of the above ask your parents or an adult to help you. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020721165143.A1494>