Re: Q: continuing interrupted 'make buildworld'
Date: Tue, 1 Oct 2002 04:32:53 +0300 From: Giorgos Keramidas [EMAIL PROTECTED] Sender: [EMAIL PROTECTED] On 2002-09-30 17:31, John Mills [EMAIL PROTECTED] wrote: I would like to restart a 'make buildworld' without deleting or recreating any unnecesary files (i.e., after messing about in the source tree). How should I do this? (Is this the effect of 'make -DNOCLEAN buildworld'?) That should work. It will rebuild a few things that you could probably avoid, but in general it works fine. Try to interrupt the buildworld during a compile as the compiler will not create the output file until the end of the operation and a restart will re-run the interrupted compile. Some other operations leave the system in an indeterminate state. For example, when creating a library, the library is created and then modules are added. IF the process is re-started, make(1) sees the library with an updated time-stamp and goes on without loading the remaining modules. R. Kevin Oberman, Network Engineer Energy Sciences Network (ESnet) Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab) E-mail: [EMAIL PROTECTED] Phone: +1 510 486-8634 To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-questions in the body of the message
Re: Q: continuing interrupted 'make buildworld'
Gary - On 1 Oct 2002, Gary W. Swearingen wrote: IIRC, when I've done make buildkernel (maybe buildworld) a second time (eg, to do benchmarks with two BIOS settings), the thing rebuilt the whole kernel again. I've always wondered why. I thought make was supposed to use old files when possible. I suspect the target 'buildworld' has as a condition the target 'clean' or something similar. I started looking for the target definitions, but didn't find them. Like, in a high-level 'Makefile': ... buildworld: clean [...] ... as it may also have: ... installkernel: buildkernel [...] ... - John Mills To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-questions in the body of the message
Re: Q: continuing interrupted 'make buildworld'
Date: Tue, 1 Oct 2002 17:03:31 -0400 (EDT) From: John Mills [EMAIL PROTECTED] Sender: [EMAIL PROTECTED] Gary - On 1 Oct 2002, Gary W. Swearingen wrote: IIRC, when I've done make buildkernel (maybe buildworld) a second time (eg, to do benchmarks with two BIOS settings), the thing rebuilt the whole kernel again. I've always wondered why. I thought make was supposed to use old files when possible. I suspect the target 'buildworld' has as a condition the target 'clean' or something similar. I started looking for the target definitions, but didn't find them. Look in .usr/src/Makefile.inc1 It's actually rather more complicated that just having clean as a dependency for buildworld/buildkernel. The idea is maximum safety and building something with the complexity of the operating system without knowledge of the state of EVERYTHING in the build is more dangerous, si the default for building wither the kernel or the world is to clean most everything up before starting. Just some honest paranoia. It's really ugly to build a new OS and discover that some stuff won't work. (Try living with a bad libc.) A corrupt kernel is even worse. R. Kevin Oberman, Network Engineer Energy Sciences Network (ESnet) Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab) E-mail: [EMAIL PROTECTED] Phone: +1 510 486-8634 To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-questions in the body of the message
Re: Q: continuing interrupted 'make buildworld'
On 2002-10-01 13:48, Gary W. Swearingen [EMAIL PROTECTED] wrote: Giorgos Keramidas [EMAIL PROTECTED] writes: On 2002-09-30 17:31, John Mills [EMAIL PROTECTED] wrote: I would like to restart a 'make buildworld' without deleting or recreating any unnecesary files (i.e., after messing about in the source tree). How should I do this? (Is this the effect of 'make -DNOCLEAN buildworld'?) That should work. It will rebuild a few things that you could probably avoid, but in general it works fine. IIRC, when I've done make buildkernel (maybe buildworld) a second time (eg, to do benchmarks with two BIOS settings), the thing rebuilt the whole kernel again. I've always wondered why. I thought make was supposed to use old files when possible. The buildkernel target will run a make clean before building the new kernel, in an effort to be on the safe side. This will delete all the old kernel's object files (anything that had been compiled before the interruption took place). Thus, all files will be compiled again... This is exactly what the original question was about. -DNOCLEAN inhibits the Makefiles from running make clean. I don't know if this is a sufficiently explanatory answer, but anyone curious enough can always look up the exact commands that the buildkernel make target runs at /usr/src/Makefile.inc1 :-) Giorgos. To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-questions in the body of the message
Re: Q: continuing interrupted 'make buildworld'
Giorgos - Thanks for the note. On Wed, 2 Oct 2002, Giorgos Keramidas wrote: The buildkernel target will run a make clean before building the new kernel, in an effort to be on the safe side. This will delete all the old kernel's object files (anything that had been compiled before the interruption took place). Thus, all files will be compiled again... This is exactly what the original question was about. -DNOCLEAN inhibits the Makefiles from running make clean. I don't know if this is a sufficiently explanatory answer, but anyone curious enough can always look up the exact commands that the buildkernel make target runs at /usr/src/Makefile.inc1 :-) I am in a bit of a quandry with my upgrade from RELENG_4_5 to RELENG_4_6. 1. I got the not-unfamiliar compiler bomb-out on alloc_entry.c in ncurses/ncurses/tminfo (or close). 2. I backed off to RELENG_4_5 and got a clean cvsup and 'make buildworld' 3. RELENG_4_5 and RELENG_4_6 have identical versions of the file on which cc bombed, and the version of gcc in 4_5 seems to be the latest, and presumably the same as anticipated for 4_6. ['make' is a bit dated (compared with what 'gcc' is claimed to need); perhaps I need to upgrade that package.] 4. I followed 'make buildworld' in RELENG_4_5 with a 'cvsup' to RELENG_4_6 and a 'make -DNOCLEAN buildworld', which ran cleanly to completion, as did 'make buildkernel'. #$%!!! My fear is that I'm running with part of my 'world' compiled in RELENG_4_5 sources and part in RELENG_4_6 sources. I guess as soon as I am running on 4_6, I will immediately remake 'world' and kernel and see how it goes. I am seeing lots of log streaming by, but so far I don't think I've actually learned anything. Cheers, and thanks for the patient help. - John Mills To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-questions in the body of the message
Q: continuing interrupted 'make buildworld'
Freebies - I would like to restart a 'make buildworld' without deleting or recreating any unnecesary files (i.e., after messing about in the source tree). How should I do this? (Is this the effect of 'make -DNOCLEAN buildworld'?) More generally, is there some outline or the _more_important_ 'make' targets after one has done 'cvsup'? (By '_more_important_' I really mean the ones a person is likely to use commonly.) Also, where should I look to get an idea of the defined tags for 'cvsup' (RELENG_4_5_??? for example)? Thanks for any help to a newbie. - John Mills To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-questions in the body of the message