Learning about Control of Optimization -- for dummies please
David Southwell
david at vizion2000.net
Wed Aug 5 13:49:10 UTC 2009
> On Wed, Aug 05, 2009 at 02:02:05PM +0100, David Southwell wrote:
> > > >Additionally, compiler settings for building the kernel can be set
> > > > with COPTFLAGS in /etc/make.conf. Using anything other than -O or -O2
> > > > is not guaranteed to work. If you don't know what you are doing, do
> > > > not use COPTFLAGS and stick with the defaults that the build system
> > > > generates.
> > >
> > > Right. -O3 might royally screw a kernel in particular. :-)
> > >
> > >
> > > Scott Bennett, Comm. ASMELG, CFIAG
> >
> > Thanks for add more useful info however would you mind elaborating a
> > little more because I do not understand the implications.
> >
> > should I have:
> > CPUTYPE=nocona
> > in make.conf?
>
> Yes.
>
> > Do I need anything else in make.conf?
>
> If you are building a custom kernel, you can set the name of the kernel
> config there. E.g.:
>
> KERNCONF=FOO
>
> You should then put your kernel config in /usr/src/sys/amd64/conf/FOO.
>
> > So far my draft make.conf has these entries:
> >
> > CPUTYPE=nocona
>
> OK.
>
> > CFLAGS= -O2 -fno-strict-aliasing -pipe
>
> CFLAGS are used for building userland programs. COPTFLAGS are used for
> building the kernel. I think that the values you've listed here are already
> the default, so they are superfluous really.
>
> > FORCE_MAKE_JOBS= true
>
> This is only for ports.
>
> > Incidentally I am also puzzled because it appears necessary to use amd64
> > GENERIC as my starting point when the cpu is actually Intel Quad Core!!
>
> This is a FAQ. AMD originated the 64-bit extensions to the x86
> architecture while intel was chasing the itanium pipedream. This
> extended architecture became known as x86_64 or amd64. After itanium
> became a dud, intel started making amd64 compatible chips as well,
> because the AMD chips had been hugely successfull.
>
> > I presume this means that in drafting a kernconf I need to refer to;
> >
> > dns1# pwd
> > /usr/src/sys/amd64/conf
> > dns1# ls -l
> > total 44
> > -rw-r--r-- 1 root wheel 13 Jun 20 2005 .cvsignore
> > -rw-r--r-- 1 root wheel 482 Apr 15 04:14 DEFAULTS
>
> Some options were moved to a DEFAULT file that is automatically included
> in every kernel, so that people can't forget them. Formetting one of
> those can result in an unusable kernel.
>
> > -rw-r--r-- 1 root wheel 11968 Apr 15 04:14 GENERIC
> > -rw-r--r-- 1 root wheel 818 Apr 15 04:14 GENERIC.hints
> > -rw-r--r-- 1 root wheel 1036 Apr 15 04:14 MAC
> > -rw-r--r-- 1 root wheel 132 Apr 15 04:14 Makefile
> > -rw-r--r-- 1 root wheel 20721 Apr 15 04:14 NOTES
>
> NOTES contains extra options that aren't in the GENERIC kernel.
>
> > It would be great if some logical consistency could be introduced into
> > naming conventions!!! It would really help those of us who know little
> > and make it a trifle easier to climb the greasy pole of knowledge
> > <chuckles>
>
> Just look at the beginning of each file. You'll find a description of
> that files purpose.
>
> You should base you kernel configuration on the GENERIC kernel. The
> first thing you need to do is change the "ident" line to match the
> filename. A kernel config FOO should include "ident FOO". Then remove
> devices and options that you don't need. If you don't know what a device
> or option is, leave it in. For devices, there is usually a manual
> page. E.g. if you see 'device em', you can get information about it with
> 'man em'.
>
> Look at the dmesg(8) output to see which devices you actually have.
>
> Roland
Roland
Thank you
I will be digging around and try and make good use of yr advice
David
More information about the freebsd-questions
mailing list