Date: Mon, 23 Feb 2004 01:05:38 +1100 From: Tony Frank <tfrank@optushome.com.au> To: D J Hawkey Jr <hawkeyd@visi.com> Cc: questions at FreeBSD <freebsd-questions@freebsd.org> Subject: Re: Clarification needed on Handbook: Tracking for Multiple Machines Message-ID: <20040222140538.GA16873@marvin.home.local> In-Reply-To: <20040221172328.GA22671@sheol.localdomain> References: <20040221160709.GA22447@sheol.localdomain> <1455334090.20040221175633@buz.ch> <20040221172328.GA22671@sheol.localdomain>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi, On Sat, Feb 21, 2004 at 11:23:28AM -0600, D J Hawkey Jr wrote: > On Feb 21, at 05:56 PM, Gabriel Ambuehl wrote: > > > > DJHJ> Second, two machines are of the same architecture, but they have different > > DJHJ> CPUs: One is an Intel PIII, but the other is a PII. Will the world built > > DJHJ> on a PIII be correct for a PII? Similarly, will the kernel for the PII > > DJHJ> built on a PIII be correct for the PII, given the different variables and > > DJHJ> settings in the two kernel configuration files? > > > > Just make sure you build for 686. If that doesn't work, make it 586 (I > > think the PI qualifies as 686 but I'm not entirely sure). I think the extensions such as > > SSE etc are detected dynamically and shouldn't cause any problem. > > In all my years of messing with builds, I never run into this problem, > > so I guess it's pretty safe. > Yes, both [my] machines define I686_CPU. > > "Dynamically", as in "at runtime"? I think you're right, but I don't > know for certain, either. This is exactly what I'm wondering about; > the PII has only MMX, for instance, while the PIII has SSE and MMX2. > > I assume the world's codebase is CPU-agnostic within an architecture, > but I really don't want to assume this; I'd rather know this. I have PII, Celeron, PIII and P4 in my environment. All these use "I686_CPU" in my kernel configs (I got rid of the other I[345]_CPU types. In /etc/make.conf I include "CPUTYPE=p2" as the lowest common denominator if including a CPUTYPE flag. The resulting world & kernel run fine on all the systems. The higher flags p3 and p4 still just use -march=pentiumpro, however for SSE you will need p3 or p4 as MACHINE_CPU does not include SSE for p2 level. Check out /usr/share/mk/bsd.cpu.mk for specifics. > > DJHJ> /etc/defaults/make.conf doesn't mention KERNCONF; /usr/src/Makefile.inc1 > > DJHJ> does. Since /usr/share/mk/sys.mk sucks in /etc/make.conf, that should > > DJHJ> propogate KERNCONF to /usr/src/Makefile, right? > > You can also > > just supply it on the command line when doing your make runs. > Yes, but this means individual commands for each machine's kernel, as > opposed to one command for all machines (think "issue command and go to > bed", or even an `at` command). Are you stating definitively that what > I saw in the makefile chain isn't what is really there? To your original question, yes. Just add a KERNCONF= line to /etc/make.conf. First entry should be the local machine kernel (to install) and any subsequent entries will also be built during 'make buildkernel' eg: KERNCONF= MARVIN RAIDER RAIDERI GENERIC make buildkernel builds all four. make installkernel installs MARVIN. Good luck, Tony
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040222140538.GA16873>