Commit Graph

277 Commits

Author SHA1 Message Date
imp
2c0af1c897 Clang's 3.5 integrated assembler now handles these files correctly (it
has support for the .codeXX directives). However, it is desirable, for
a time, to allow kernels to be built with clang 3.4. Historically, it
has been advantageous to allow stable X-1 to build kernels the old
way (so long as the impact of doing so is small), and this restores
that ability.

Also, centralize the addition of ${ASM_CFLAGS.${.IMPSRC}}, place it in
kern.mk rather than kern.pre.mk so that all modules can benefit, and
give the same treatment to CFLAGS in kern.mk as well.
2015-01-05 12:28:22 +00:00
rdivacky
be1e6fe0d4 LLVM integrated assembler can assemble these files just fine. 2015-01-01 10:07:57 +00:00
imp
fdc52c1fa0 Bump the version of config to the latest (3 year old, so upgrade
worries are long past). Also remove redundant MACHINE= declarations
and passing MACHINE/MACHINE_ARCH to module builds. That's now done in
common code.
2014-02-04 18:24:25 +00:00
marcel
65b2bbd1ff Add basic support for FDT to i386 & amd64. This change includes:
1.  Common headers for fdt.h and ofw_machdep.h under x86/include
    with indirections under i386/include and amd64/include.
2.  New modinfo for loader provided FDT blob.
3.  Common x86_init_fdt() called from hammer_time() on amd64 and
    init386() on i386.
4.  Split-off FDT specific low-level console functions from FDT
    bus methods for the uart(4) driver. The low-level console
    logic has been moved to uart_cpu_fdt.c and is used for arm,
    mips & powerpc only. The FDT bus methods are shared across
    all architectures.
5.  Add dev/fdt/fdt_x86.c to hold the fdt_fixup_table[] and the
    fdt_pic_table[] arrays. Both are empty right now.

FDT addresses are I/O ports on x86. Since the core FDT code does
not handle different address spaces, adding support for both I/O
ports and memory addresses requires some thought and discussion.
It may be better to use a compile-time option that controls this.

Obtained from:	Juniper Networks, Inc.
2013-05-21 03:05:49 +00:00
dim
0d1f91e8e1 Define several extra macros in bsd.sys.mk and sys/conf/kern.pre.mk, to
get rid of testing explicitly for clang (using ${CC:T:Mclang}) in
individual Makefiles.

Instead, use the following extra macros, for use with clang:
- NO_WERROR.clang       (disables -Werror)
- NO_WCAST_ALIGN.clang  (disables -Wcast-align)
- NO_WFORMAT.clang	(disables -Wformat and friends)
- CLANG_NO_IAS		(disables integrated assembler)
- CLANG_OPT_SMALL	(adds flags for extra small size optimizations)

As a side effect, this enables setting CC/CXX/CPP in src.conf instead of
make.conf!  For clang, use the following:

CC=clang
CXX=clang++
CPP=clang-cpp

MFC after:	2 weeks
2012-02-28 18:30:18 +00:00
dim
a0b20b5d1f Upgrade our copy of llvm/clang to r126079, from upstream's trunk.
This contains many improvements, primarily better C++ support, an
integrated assembler for x86 and support for -pg.
2011-02-20 19:33:47 +00:00
wkoszek
147aff09a7 Revert config(8) version bump. It brings major pain for people working on
different versions of FreeBSD source tree.

Old config(8) can now be used unless you want to use INCLUDE_CONFIG_FILE
option.

Approved by:	imp
Reviewed by:	imp
2007-05-16 17:23:54 +00:00
wkoszek
f6d4544853 Bump config(8) version and build requirement for config(8) to 600006. This
is caused by my latest changes to config(8). You're supposed to install new
config(8) in order to prevent yourself from seeing a warning about old
version of that tool.

You should configure the kernel with a new config(8) then.

Oked by:	rwatson, cognet (mentor)
2007-05-13 02:36:41 +00:00
nyan
22e90d53d9 Set MACHINE to i386(pc98). This fixes cross-building. 2006-01-29 03:32:19 +00:00
imp
ca2911b147 Version 600004 is better than 700000 given other changes that are in
the pipeline.  We had to bump the version for 600004 because the old
parser got confused and generated bogus output.

Approved by: ru@
2005-11-28 17:51:31 +00:00
ru
cbff67d85c Make config(8) understand ORed dependecies in "files*" and
improve tracking of known devices.  Bump config(8) version.
2005-11-27 21:41:58 +00:00
imp
3e0bd8923f We don't bump the config version for additions to config that aren't
used in the base system.  This has been much discussed in the past
(typically people giving me a hard time for it).  Since all that was
added to config was nocpu, and since we don't use it, we don't need to
bump the version.
2005-11-04 04:14:49 +00:00
ru
aaf1885b0a Implement the "nocpu" directive.
Requested by:	rwatson
2005-11-03 14:01:22 +00:00
jhb
b133e7a8cd Bump config(8) version for the DEFAULTS change. 2005-10-27 19:27:55 +00:00
imp
64504c2ac7 Never hardcode /sys into these Makefiles. The proper way to spell it is $S.
Also, move the -I stuff to the centralized kern.pre.mk.  However, it
might be better to add these flags to files.conf.  This is a short
term fix to fix the broken builds on my machine (I don't have a valid
/sys link).
2005-04-13 14:49:57 +00:00
vkashyap
363d709ec6 The latest release of the FreeBSD driver (twa) for
3ware's 9xxx series controllers.  This corresponds to
the 9.2 release (for FreeBSD 5.2.1) on the 3ware website.

Highlights of this release are:

1. The driver has been re-architected to use a "Common Layer"
    (all tw_cl* files), which is a consolidation of all OS-independent
    parts of the driver.  The FreeBSD OS specific portions of the
    driver go into an "OS Layer" (all tw_osl* files).
    This re-architecture is to achieve better maintainability, consistency
    of behavior across OS's, and better portability to new OS's (drivers
    for new OS's can be written by just adding an OS Layer that's specific
    to the OS, by complying to a "Common Layer Programming Interface" API.

2. The driver takes advantage of multiple processors.

3. The driver has a new firmware image bundled, the new features of which
   include Online Capacity Expansion and multi-lun support, among others.
   More details about 3ware's 9.2 release can be found here:
   http://www.3ware.com/download/Escalade9000Series/9.2/9.2_Release_Notes_Web.pdf

Since the Common Layer is used across OS's, the FreeBSD specific include
path for header files (/sys/dev/twa) is not part of the #include pre-processor
directive in any of the source files.  For being able to integrate twa into
the kernel despite this, Makefile.<arch> has been changed to add the include
path to CFLAGS.

Reviewed by: scottl
2005-04-12 22:07:11 +00:00
imp
30365aff3a Update version number for latest config version bump 2005-04-01 22:56:10 +00:00
jmg
ad0e8354e0 bump the Makefile config versions now that config is 600001...
Forgotten by:	des
2005-02-10 21:15:31 +00:00
peter
1d9abdbe78 Kill count device support from config. I've changed the last few
remaining consumers to have the count passed as an option.  This is
i4b, pc98/wdc, and coda.

Bump configvers.h from 500013 to 600000.

Remove heuristics that tried to parse "device ed5" as 5 units of the ed
device.  This broke things like the snd_emu10k1 device, which required
quotes to make it parse right.  The no-longer-needed quotes have been
removed from NOTES, GENERIC etc.  eg, I've removed the quotes from:
   device  snd_maestro
   device  "snd_maestro3"
   device  snd_mss

I believe everything will still compile and work after this.
2004-08-30 23:03:58 +00:00
cognet
fc589c8e92 Change required config(8) version. 2004-05-09 22:29:38 +00:00
phk
bb6f66c94d Bump the config version to force people to upgrade their config(8)
so the fix for emitting multiple instances of .o files will prevent
link errors on LINT.
2003-04-15 21:29:11 +00:00
ru
5e7c82c69f Standardize handling of locore.[sS] etc. files.
Submitted by:	jake, bde, ru
2003-02-28 21:59:14 +00:00
jake
3172b6f1b7 Moved the rule for locore.o from kern.post.mk to Makefile.$ARCH. 2002-07-31 14:59:05 +00:00
bde
d738702902 Moved the setting of all profiling-related variables except the key one
(PROFLEVEL) to kern.pre.mk so that it is easier to manage.  Bumped config
version to match.

Moved the check for cputype being configured to a less bogus place in
mkmakefile.c.
2002-07-13 19:36:14 +00:00
peter
cf06489c2d Commit some infrastructure for turning on -Werror for kernel compiles.
It doesn't actually do it yet though.  This adds a flag to config so
that we can exclude certain vendor files from this even when the rest
of the kernel has it on.  make -DNO_WERROR would also bypass all of it.
2002-02-20 23:35:56 +00:00
nyan
3748cc3d0f Added 'MACHINE=i386' to MKMODULESENV variable.
This enables to make modules for PC/AT on PC-98 boxes.

MFC after:	3 weeks
2002-01-14 12:48:18 +00:00
peter
dd0f3c5ca2 Proper fix for old config setting maxusers to 8. 2001-12-14 09:39:29 +00:00
imp
249aae3888 s/PCCARD_/PCMCIA_/g in NEWCARD device tables to enable easier NetBSD sharing 2001-11-11 20:17:10 +00:00
imp
6242c9dd61 Factor the common parts of the Makefile.foo files. This introduces two
new files: kern.pre.mk, which contains most of the definitions, and
kern.post.mk, which contains most of the rules.

I've tested this on i386 and pc98.  I have had feedback on the sparc64
port, but no reports from anybody on alpha, ia64 or powerpc.  I
appologize in advance if I've broken you.

Reviewed by: jake, jhb, arch@
2001-11-02 21:34:20 +00:00
brian
6e6ddbcf2e Only overwrite ${DESTDIR}${KODIR}.old/${KERNEL_KO} if we haven't
booted from it when doing an installkernel.

Only change kern.bootfile from ${DESTDIR}${KODIR}/${KERNEL_KO}
to ${DESTDIR}${KODIR}.old/${KERNEL_KO}, and only when we're renaming
a booted ${DESTDIR}${KODIR}/${KERNEL_KO} kernel.
2001-11-01 02:17:49 +00:00
des
eb0ad6222d Support the "install.debug" and "reinstall.debug" targets for kernel modules.
Small tweaks to kldxref may be necessary to avoid the surprising (but harm-
less) behaviour of 'kldload foo' loading foo.ko.debug instead of foo.ko if
it is present in the kernel directory.

Approved by:	a week of silence on -arch
MFC after:	2 weeks
2001-10-27 00:52:50 +00:00
ru
6993f2ea20 Finish the asbestos suited move of $mach/conf/*.$mach to conf/*.$mach.
Fix some more typos.
2001-10-26 10:33:45 +00:00
mp
e6b6c884ab Make override of nm consistent across all platforms and sort the overrides.
Reminded by:	obrien
2001-10-19 22:19:06 +00:00
brian
2ea42ac6d9 Change kern.bootfile when mv'ing the kernel 2001-10-17 13:57:32 +00:00
peter
e031b90e2a Enable hardwiring of things like tunables from embedded enironments
that do not start from loader(8).
2001-08-27 05:11:53 +00:00
peter
4f359512bf In order to bring about the end of the universe, delete the lines:
# DO NOT DELETE THIS LINE -- make depend uses it
2001-08-15 00:33:55 +00:00
peter
03f8cf60cf Further Makefile.* sync (from Makefile.ia64). The lint target has been
commented out in the entire life of the 2.x+ branch and given the amount
of gcc-specific code we have and the warning checks that gcc does I'm not
sure that it is going to get us much for some time.
2001-08-03 00:07:54 +00:00
sheldonh
c0f2ee6606 When building a debugging kernel with modules, build modules with
debugging support as well.  Debugging module support is handled
identically to kernel debugging support, right down to poor
choice of make variable names.
2001-08-02 09:22:18 +00:00
peter
2165eda637 param.c no longer gets special treatment. Use the source tree version. 2001-07-26 23:04:46 +00:00
imp
5ac44852df Bump config version. 2001-07-02 05:36:32 +00:00
imp
c5f2abfa6d Move kernel compile directory from sys/compile/FOO to
sys/compile/${MACHINE}/FOO.

Reviewed by: arch, obrien, peter and
	the USENIX terminal room secret kernel cabal
2001-06-30 06:29:47 +00:00
peter
f10fa038c1 With this commit, I hereby pronounce gensetdefs past its use-by date.
Replace the a.out emulation of 'struct linker_set' with something
a little more flexible.  <sys/linker_set.h> now provides macros for
accessing elements and completely hides the implementation.

The linker_set.h macros have been on the back burner in various
forms since 1998 and has ideas and code from Mike Smith (SET_FOREACH()),
John Polstra (ELF clue) and myself (cleaned up API and the conversion
of the rest of the kernel to use it).

The macros declare a strongly typed set.  They return elements with the
type that you declare the set with, rather than a generic void *.

For ELF, we use the magic ld symbols (__start_<setname> and
__stop_<setname>).  Thanks to Richard Henderson <rth@redhat.com> for the
trick about how to force ld to provide them for kld's.

For a.out, we use the old linker_set struct.

NOTE: the item lists are no longer null terminated.  This is why
the code impact is high in certain areas.

The runtime linker has a new method to find the linker set
boundaries depending on which backend format is in use.

linker sets are still module/kld unfriendly and should never be used
for anything that may be modular one day.

Reviewed by:	eivind
2001-06-13 10:58:39 +00:00
peter
0d48700820 Move the -I../../../include or -I/usr/include to the last entry on the
cc arguments.  Otherwise ipfilter's bogus #include lines will compile
reference /usr/include/netinet/ip_frag.h etc.
2001-06-12 06:06:18 +00:00
jlemon
1c01a56a7d Relocate IPFilter from sys/netinet to sys/contrib/ipfilter. 2001-06-07 04:06:21 +00:00
msmith
2e3b439906 New files and layout for the ACPI CA 20010518 update. 2001-05-29 20:05:35 +00:00
obrien
9ae1854b2c Add back in the bits to remove any existing "schg" flags as we have
kernel's out in wild that still have these flags set.
2001-04-29 01:53:57 +00:00
obrien
a15a0c029e Don't install KO's with the "schg" flag.
We are way too inconsistent with our setting of the "schg" flag, and in
our default install, it doesn't really offer any additional security.

Reviewed by:	arch@
2001-04-25 20:56:15 +00:00
imp
3a77c500a9 Ignore chflags errors. This makes installing to nfs mounted target
directories work.
2001-04-25 06:19:58 +00:00
imp
a24ec299ea Add support for MODULES_OVERRIDE. This is a list of modules to build
instead of all of them.  You can put this in /etc/make.conf or in
makeoptions.

Reviewed by: arch@

# docs to follow.
2001-04-02 08:52:05 +00:00
obrien
99daa32404 Restore the careful preservation of .depend (rev 1.78 of Makefile.i386)
that I removed in my last commit dealing with `make depend' bogons.
This commit has some races, but hopefully they are too short to matter.
Unfortuneatly, neither .newdep nor .olddep is removed by `make clean'.

Submitted by:	bde
2001-03-24 08:44:28 +00:00