1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-23 11:18:54 +00:00
freebsd/sys
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
..
alpha Retire pmap_pinit2(). Alpha was the last platform that used it. However, 2004-03-07 21:06:48 +00:00
amd64 Don't implement anything in the ffs family in <machine/cpufunc.h> 2004-03-11 13:38:54 +00:00
arm
boot Fixed a misspelling of 0 as NULL. 2004-03-11 10:09:01 +00:00
cam Compare the *number* of patterns to zero, not the *pointer* to the 2004-02-28 12:59:56 +00:00
coda Device megapatch 5/6: 2004-02-21 21:32:15 +00:00
compat Remove unused second arg to vfinddev(). 2004-03-11 16:33:11 +00:00
conf This are the build infrastructure changes to allow to use the 2004-03-12 21:36:12 +00:00
contrib Remove `$Name$' leftovers from the port version reporting. 2004-03-10 15:08:21 +00:00
crypto Fix a reentrancy issue in md5_calc(). 2004-01-27 18:57:21 +00:00
ddb Give DDB a "watchdog" command which disables all watchdogs. 2004-02-29 09:55:32 +00:00
dev This are the build infrastructure changes to allow to use the 2004-03-12 21:36:12 +00:00
fs When I was a kid my work table was one cluttered mess an cleaning it up 2004-03-11 18:50:33 +00:00
geom Be more insistent on destroying geoms at unload time. Still not perfect, 2004-03-11 08:16:23 +00:00
gnu Properly vector all bwrite() and BUF_WRITE() calls through the same path 2004-03-11 18:02:36 +00:00
i4b Device megapatch 4/6: 2004-02-21 21:10:55 +00:00
i386 Don't implement anything in the ffs family in <machine/cpufunc.h> 2004-03-11 13:38:54 +00:00
ia64 Identify the Deerfield processor. Deerfield is a low-voltage variant 2004-03-10 22:23:20 +00:00
isa Remove unused FDNUMTOUNIT() macro 2004-02-29 10:21:40 +00:00
isofs/cd9660 Remove unused second arg to vfinddev(). 2004-03-11 16:33:11 +00:00
kern Do what the execve(2) manpage says and enforce what a Strictly 2004-03-12 21:06:20 +00:00
libkern Remove register keyword and constify tmp values. This fixes 2004-02-12 03:23:13 +00:00
modules Link pf to the build and install: 2004-03-08 22:03:29 +00:00
net Add clone_setup() function rather than rely on lazy initialization. 2004-03-11 12:58:55 +00:00
net80211 Change WI_RID_SCAN_RES compatibility interface to return the result after 2004-01-19 05:25:43 +00:00
netatalk Rename dup_sockaddr() to sodupsockaddr() for consistency with other 2004-03-01 03:14:23 +00:00
netatm Don't remove the first mbuf in the chain if it got empty. 2004-02-21 12:55:07 +00:00
netgraph Add a netgraph node to handle ATM LLC encapsulation. This currently handles 2004-03-08 10:54:35 +00:00
netinet Lock down IP-layer encapsulation library: 2004-03-10 02:48:50 +00:00
netinet6 Move the AH algorithm list from a static local function variable to 2004-03-10 04:56:54 +00:00
netipsec Fix type in a sysctl. It used to be: net.key.prefered_oldsa 2004-02-16 17:09:53 +00:00
netipx Rename dup_sockaddr() to sodupsockaddr() for consistency with other 2004-03-01 03:14:23 +00:00
netkey avoid duplicate free. 2004-01-25 17:18:12 +00:00
netnatm Rename dup_sockaddr() to sodupsockaddr() for consistency with other 2004-03-01 03:14:23 +00:00
netncp Split the mlock() kernel code into two parts, mlock(), which unpacks 2004-02-26 00:27:04 +00:00
netsmb Rename dup_sockaddr() to sodupsockaddr() for consistency with other 2004-03-01 03:14:23 +00:00
nfs
nfs4client Properly vector all bwrite() and BUF_WRITE() calls through the same path 2004-03-11 18:02:36 +00:00
nfsclient Allow kernel with the BOOTP option to boot when DHCP/BOOTP sets the root 2004-03-12 20:37:40 +00:00
nfsserver Properly vector all bwrite() and BUF_WRITE() calls through the same path 2004-03-11 18:02:36 +00:00
opencrypto kthread_exit() no longer requires Giant, so don't force callers to acquire 2004-03-05 22:42:17 +00:00
pc98 Restore CDIOCREADAUDIO ioctl. 2004-03-07 14:16:42 +00:00
pccard Device megapatch 4/6: 2004-02-21 21:10:55 +00:00
pci Stop setting ifp->if_output to ether_output() since ether_ifattach() 2004-03-11 14:04:59 +00:00
posix4 The sem_timedwait() and ksem_timedwait() functions both 2004-02-03 22:27:03 +00:00
powerpc Retire pmap_pinit2(). Alpha was the last platform that used it. However, 2004-03-07 21:06:48 +00:00
rpc Convert from timeout to callout API. 2004-03-07 16:23:03 +00:00
security Define BPFD_LOCK_ASSERT() to assert the BPF descriptor lock. 2004-02-29 15:33:56 +00:00
sparc64 Change time_t from a 32-bit value to a 64-bit value, on FreeBSD/sparc64 2004-03-10 17:39:05 +00:00
sys - Remove old sleep queues. 2004-03-12 19:06:18 +00:00
tools Attempt to clean up the emu10k1-alsa.h stuff so that config doesn't 2004-02-05 22:51:16 +00:00
ufs When I was a kid my work table was one cluttered mess an cleaning it up 2004-03-11 18:50:33 +00:00
vm Part 2 of rev 1.68. Update comment to match reality now that vm_endcopy 2004-03-12 00:16:48 +00:00
Makefile Replaced outdated comment. 2004-01-17 03:28:27 +00:00