freebsd-dev/sys/conf
Tom Rhodes 06d6e4fcfe 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 Our awk does not implement the ARGIND variable, so we were attempting 2002-08-06 19:31:04 +00:00
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 Sync up with the files in the hammer branch in the p4 tree to get basic 2003-05-01 02:59:24 +00:00
ldscript.i386 Align the .ctors section correctly. 2003-12-03 07:40:03 +00:00
ldscript.ia64 Load the kernel at a 64M instead of 5M. The advantage of this is that 2003-09-06 05:15:36 +00:00
ldscript.powerpc Page align the data segment. 2001-10-08 10:43:34 +00:00
ldscript.sparc64 Use the same SEARCH_DIR as other platforms. 2003-06-07 18:23:50 +00:00
majors Fix vinums cdevsw{} to initialize d_version. 2004-02-23 08:55:13 +00:00
majors.awk Add necessary awk magic to create a table of major numbers allocated 2003-02-27 08:52:11 +00:00
Makefile.alpha Don't override the standard SYSTEM_LD setting from kern.pre.mk. 2004-02-13 12:28:53 +00:00
Makefile.amd64 Stop this warning: 2003-09-30 03:49:09 +00:00
Makefile.i386 Bump the config version to force people to upgrade their config(8) 2003-04-15 21:29:11 +00:00
Makefile.ia64 Revamp of the syscall path, exception and context handling. The 2003-05-16 21:26:42 +00:00
Makefile.pc98 Bump the config version to force people to upgrade their config(8) 2003-04-15 21:29:11 +00:00
Makefile.powerpc Remove duplicate script for locore.o 2003-12-09 15:48:20 +00:00
Makefile.sparc64 Bump the config version to force people to upgrade their config(8) 2003-04-15 21:29:11 +00:00
makeLINT.mk Implemented "nooption" and "nomakeoption" config(8) tokens. 2003-02-26 23:36:59 +00:00
makeLINT.sed Implemented "nooption" and "nomakeoption" config(8) tokens. 2003-02-26 23:36:59 +00:00
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 Add option NO_SIO to work-around the hardcoded dependency on sio(4). 2003-08-25 03:43:08 +00:00
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 Add LOG2_ID_PAGE_SIZE to the mix of options on ia64. 2003-09-09 18:30:20 +00:00
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 Hook syscons and the creator driver up to the sparc64. This compiles but 2003-08-24 01:54:06 +00:00
systags.sh Fix pathname so 'make tags' in a kernel build directory looks in 2004-01-29 14:58:22 +00:00