freebsd-skq/sys/conf
trhodes 1492567af1 This are the build infrastructure changes to allow to use the
Intel C/C++ compiler (lang/icc) to build the kernel.

The icc CPUTYPE CFLAGS use icc v7 syntax, icc v8 moans about them, but
doesn't abort. They also produce CPU specific code (new instructions
of the CPU, not only CPU specific scheduling), so if you get coredumps
with signal 4 (SIGILL, illegal instruction) you've used the wrong
CPUTYPE.

Incarnations of this patch survive gcc compiles and my make universe.
I use it on my desktop.

To use it update share/mk, add
	/usr/local/intel/compiler70/ia32/bin	(icc v7, works)
or
	/usr/local/intel_cc_80/bin		(icc v8, doesn't work)
to your PATH, make sure you have a new kernel compile directory
(e.g. MYKERNEL_icc) and run
	CFLAGS="-O2 -ip" CC=icc make depend
	CFLAGS="-O2 -ip" CC=icc make
in it.

Don't compile with -ipo, the build infrastructure uses ld directly to
link the kernel and the modules, but -ipo needs the link step to be
performed with Intel's linker.

Problems with icc v8:
 - panic: npx0 cannot be emulated on an SMP system
 - UP: first start of /bin/sh results in a FP exception

Parts of this commit contains suggestions or submissions from
Marius Strobl <marius@alchemy.franken.de>.

Reviewed by:	silence on -arch
Submitted by:	netchild
2004-03-12 21:36:12 +00:00
..
defines
files This are the build infrastructure changes to allow to use the 2004-03-12 21:36:12 +00:00
files.alpha Forgot ffsl() and flsl() on alpha. 2004-01-13 18:05:49 +00:00
files.amd64 Add rules for font.h atkbdmap.h ukbdmap.h so more of LINT can be built. 2004-03-03 09:37:44 +00:00
files.i386 Add if_ndis_pci.c and if_ndis_pccard.c so that building the NDISulator 2004-03-12 17:31:29 +00:00
files.ia64 Add ffsl(), fls() flsl() to platforms that don't already have them. 2004-01-13 15:37:23 +00:00
files.pc98 Remove unneeded devices. 2004-03-07 05:38:20 +00:00
files.powerpc Work-in-progress for the 'Kauai' ATA device in Mac notebooks. The 2004-02-12 09:17:16 +00:00
files.sparc64 Re-add libkern/ffs.c. I thought sparc64 had an inline version, but 2004-01-14 08:38:13 +00:00
kern.mk This are the build infrastructure changes to allow to use the 2004-03-12 21:36:12 +00:00
kern.post.mk Merged from kmod.mk,v 1.152: strip debugging symbols even when not 2004-02-13 13:21:41 +00:00
kern.pre.mk This are the build infrastructure changes to allow to use the 2004-03-12 21:36:12 +00:00
kmod_syms.awk
kmod.mk This are the build infrastructure changes to allow to use the 2004-03-12 21:36:12 +00:00
ldscript.alpha Don't override the standard SYSTEM_LD setting from kern.pre.mk. 2004-02-13 12:28:53 +00:00
ldscript.amd64
ldscript.i386 Align the .ctors section correctly. 2003-12-03 07:40:03 +00:00
ldscript.ia64
ldscript.powerpc
ldscript.sparc64
majors Fix vinums cdevsw{} to initialize d_version. 2004-02-23 08:55:13 +00:00
majors.awk
Makefile.alpha Don't override the standard SYSTEM_LD setting from kern.pre.mk. 2004-02-13 12:28:53 +00:00
Makefile.amd64
Makefile.i386
Makefile.ia64
Makefile.pc98
Makefile.powerpc Remove duplicate script for locore.o 2003-12-09 15:48:20 +00:00
Makefile.sparc64
makeLINT.mk
makeLINT.sed
newvers.sh Stay in sync with src/COPYRIGHT and src/sys/sys/copyright.h, 2004-01-11 14:13:29 +00:00
NOTES Link pf to the build and install: 2004-03-08 22:03:29 +00:00
options Add a netgraph node to handle ATM LLC encapsulation. This currently handles 2004-03-08 10:54:35 +00:00
options.alpha
options.amd64 VESA* is a mistake - it cannot exist due to requiring a 32 bit kernel for 2004-03-05 07:56:23 +00:00
options.i386 Fixed some style bugs (insertion sort errors, tab lossage, and ornation 2004-01-25 15:27:23 +00:00
options.ia64
options.pc98 Fixed some style bugs. 2004-01-26 12:28:40 +00:00
options.powerpc Add required GFB options as well as one for ofw/syscons. 2004-01-21 05:20:58 +00:00
options.sparc64
systags.sh Fix pathname so 'make tags' in a kernel build directory looks in 2004-01-29 14:58:22 +00:00